`
qtlkw
  • 浏览: 307056 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

通过jaxb产生java code

    博客分类:
  • JAVA
 
阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<name>xxxxx</name>
	<groupId>xxxxx</groupId>
	<artifactId>xxxxx</artifactId>
	<version>0.1</version>

	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>emma-maven-plugin</artifactId>
				<configuration>
					<filters>
						<filter>-org.fpml.reporting.*</filter>
					</filters>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>jaxb2-maven-plugin</artifactId>
				<version>1.5</version>
				<executions>
					<execution>
						<id>xml_reporting-xjc</id>
						<goals>
							<goal>xjc</goal>
						</goals>
						<configuration>
							<schemaDirectory>${project.basedir}/src/main/resources/xsd/</schemaDirectory>
							<packageName>org.fpml.reporting</packageName>
							<staleFile>${project.build.directory}/jaxb2/.reportingXjcStaleFlag</staleFile>
						</configuration>
					</execution>
				</executions>
				<configuration>
					<outputDirectory>${project.basedir}/target/generated/java</outputDirectory>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>


下面的例子是定义extension xsd,并产生相应的java.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>xxxxx</groupId>
    <artifactId>xxxxx</artifactId>
    <version>xxxxx</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.12.3</version>
                <executions>
                    <execution>
                        <id>xjc-extension</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <extension>true</extension>
                            <args>
                                <arg>-npa</arg>
                            </args>
                            <bindingDirectory>src/main/resources/xsd/</bindingDirectory>
                            <bindingIncludes>
                                <include>bindings.xml</include>
                            </bindingIncludes>
                            <schemaDirectory>src/main/resources/xsd/extension</schemaDirectory>
                            <schemaIncludes>
                                <include>extensions.xsd</include>
                            </schemaIncludes>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
			        <dependency>
			            <groupId>commons-io</groupId>
			            <artifactId>commons-io</artifactId>
			            <version>2.4</version>
			        </dependency>
			    </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-install-plugin</artifactId>
                <version>2.3.1</version>
                <configuration>
                    <createChecksum>true</createChecksum>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>
    </dependencies>
</project>


Binding file定义:
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.1">
    <bindings schemaLocation="Standard/fpml-main-5-7.xsd">
        <schemaBindings>
            <package name="org.fpml.reporting"/>
        </schemaBindings>
    </bindings>

    <bindings schemaLocation="Extension/extensions.xsd">
        <schemaBindings>
            <package name="xxxxx.extension"/>
        </schemaBindings>
    </bindings>
</bindings>


Extension file定义:
<schema targetNamespace="http://www.statestreet.com/FpML-Extension"
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        elementFormDefault = "unqualified">
       <xsd:include schemaLocation="fpml-reporting-position-ext.xsd"/>
</schema>


fpml-reporting-position-ext.xsd定义:
<schema targetNamespace="http://www.statestreet.com/FpML-Extension"
	xmlns:ext="http://www.statestreet.com/FpML-Extension" xmlns="http://www.w3.org/2001/XMLSchema"
	xmlns:fpml="http://www.fpml.org/FpML-5/reporting" elementFormDefault="qualified">
	<import namespace="http://www.fpml.org/FpML-5/reporting"
		schemaLocation="../standard/fpml-main-5-7.xsd" />

	<simpleType name="statusEnum">
		<restriction base="normalizedString">
			<enumeration value="booked" />
			<enumeration value="unbooked" />
		</restriction>
	</simpleType>

	<complexType name="Position">
		<complexContent>
			<extension base="fpml:ReportedPosition">
				<sequence>
					<element name="status" type="ext:statusEnum" minOccurs="0" />
					<element name="constituent" type="ext:PositionConstituent"
						minOccurs="0" />
				</sequence>
			</extension>
		</complexContent>
	</complexType>

	<complexType name="FxSingleLeg">
		<complexContent>
			<extension base="fpml:FxSingleLeg">
				<sequence>
					<element minOccurs="0" name="exchangedCurrency1" type="ext:Payment" />
					<element minOccurs="0" name="exchangedCurrency2" type="ext:Payment" />
				</sequence>
			</extension>
		</complexContent>
	</complexType>

	<complexType name="Payment">
		<complexContent>
			<extension base="fpml:Payment">
				<sequence>
					<element minOccurs="0" name="paymentAmount" type="fpml:Money" />
				</sequence>
			</extension>
		</complexContent>
	</complexType>

	<complexType name="NettedBenchmarkFX">
		<sequence>
			<element name="agreementId" type="normalizedString"
				minOccurs="0" />
			<element name="pricingSite" type="normalizedString"
				minOccurs="0" />
			<element name="fxSingleLeg" type="ext:FxSingleLeg" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="PositionConstituent">
		<complexContent>
			<extension base="fpml:PositionConstituent">
				<sequence>
					<element name="nettedBenchmarkFX" type="ext:NettedBenchmarkFX"
						minOccurs="0" />
				</sequence>
			</extension>
		</complexContent>
	</complexType>

</schema>
分享到:
评论

相关推荐

    JAXB(JAXB支持、源码、官方说明文档)

    java -jar JAXB2_20060607.jar On Windows, you can just double-click the jar file to execute. Release Notes Browse the release notes online, including what's new. Technical Support Please subscribe to...

    java code Webservice实例详解

    XFire不仅支持Web服务标准,如WSDL(Web Services Description Language)和SOAP,还集成了Spring框架,并提供了对JBI(Java Business Integration)、JAXB(Java Architecture for XML Binding)、XMLBeans和JAX-WS...

    core java2 5ed source code

    《Core Java2 5th Edition Source Code》是学习Java编程的重要参考资料,它是基于经典书籍《Core Java2》第五版的源代码集合。这本书深入讲解了Java语言的核心概念和技术,覆盖了从基础到高级的广泛主题,是Java...

    java 中文帮助文档 code1

    通过"Java 中文帮助文档 code1" 和 "j2ee part1",学习者可以深入理解Java EE的架构、开发流程、最佳实践以及如何利用这些组件来构建实际的企业级应用。这份文档可能包含了详细的示例、教程、API参考和问题解决方案...

    JAVA_API1.6文档(中文)

    javax.imageio.stream Java Image I/O API 的一个包,用来处理从文件和流中产生的低级别 I/O。 javax.management 提供 Java Management Extensions 的核心类。 javax.management.loading 提供实现高级动态加载的类...

    java_JDK6_code.rar_javajdk6

    这个压缩包文件"java_JDK6_code.rar_javajdk6"包含的资源是针对Java JDK 6的学习资料,特别是PPT课件和示例代码,这对于初学者和有经验的开发者深入理解Java 6特性和API是非常宝贵的。 首先,Java JDK 6引入了一些...

    java and xml 3rd edition

    4. **JAXB(Java Architecture for XML Binding)**:详细阐述Java对象与XML之间的自动绑定机制,允许开发者通过简单的注解将Java类映射到XML Schema,并实现序列化和反序列化。 5. **JDOM**:讨论另一种Java XML...

    CodeModel 自留備份

    它是JAXB(Java Architecture for XML Binding)的一部分,由Oracle公司提供。CodeModel 提供了一种API,让开发者能够动态地构建、修改和生成Java源代码,使得在构建代码生成器或者元编程应用时更加便捷。这个“Code...

    XML、JAVA、JSON多种方式互相转换

    - 使用Apache的JAXB(Java Architecture for XML Binding):JAXB允许将XML绑定到Java对象,然后再将这些对象转换为JSON。 2. JSON到XML转换: - Jackson库同样提供了反向转换功能,使用`writeValueAsString`方法...

    endorsed 解决soa连接错误

    标题中的"endorsed 解决soa连接错误"指的是在Java环境中,通过使用endorsed目录机制来解决SOA(Service-Oriented Architecture,面向服务架构)连接时遇到的问题。SOA是一种设计原则,允许应用程序组件之间通过网络...

    java7帮助文档

    This release contains Java API for XML Processing (JAXP) 1.4.5, supports Java Architecture for XML Binding (JAXB) 2.2.3, and supports Java API for XML Web Services (JAX-WS) 2.2.4. ...

    code-generator.zip

    1. **JAXB (Java Architecture for XML Binding)**:JAXB允许开发者在Java对象和XML文档之间进行自动转换,同时也支持XML到Java代码的生成。 2. **JPA (Java Persistence API)**:JPA提供了ORM(对象关系映射)的...

    Java 1.6 API 中文 New

    javax.imageio.stream Java Image I/O API 的一个包,用来处理从文件和流中产生的低级别 I/O。 javax.management 提供 Java Management Extensions 的核心类。 javax.management.loading 提供实现高级动态加载的类。...

    JAVA高级编程中Enum枚举

    3. **安全性**:枚举不能被实例化,除非通过其定义的常量,防止了非法值的产生。 4. **枚举常量集**:可以通过`values()`方法获取枚举类型的全部实例。 5. **枚举常量的自然顺序**:枚举常量按照声明的顺序进行排序...

    Code-Samples:JavaJEE示例代码

    通常是Java EE 6示例企业应用程序。 该代码故意琐碎地专注于JEE 6产生Spring / Hibernate类型应用程序的技术能力。 组成项目如下: 带有客户端的EJB 3.0会话bean。 会话bean将其访问方法公开为SOAP Web服务。 具有...

    java代码自动生成源码-code-generator:该项目旨在从XML请求文件自动生成Java源代码

    关于这个项目的具体实现,我们可以猜测它可能使用了Java的XML处理库,如JAXB(Java Architecture for XML Binding)或DOM(Document Object Model)来解析XML文件。生成的Java代码可能基于某种模板引擎,例如...

    EXTJS Book stationery source code

    7. **JAXB (Java Architecture for XML Binding)**:JAXB是Java标准,用于将Java对象转换为XML以及从XML反序列化回Java对象。在Book Stationery中,JAXB可能用于XML数据的序列化和反序列化,方便数据的存储和传输。 ...

    java代码-help system code

    在Java编程中,"Help System Code"通常指的是用于构建应用程序内置帮助系统的代码。这个系统能够为用户提供关于软件功能、操作方法以及API用法等信息。本文将深入探讨如何使用Java来设计一个有效的帮助系统,包括...

    Java Web Services: up and running

    5. **JAXB**:Java Architecture for XML Binding,用于将Java类转换为XML文档,反之亦然。这使得Java对象能够轻松地序列化为XML,便于在Web服务中传输数据。 6. **Tomcat或Glassfish**:作为Java应用服务器,它们...

    jaxbSample:Jaxb实现的代码示例

    通过 JAXB,开发者可以轻松地在 XML 文档和 Java 类之间进行数据绑定,使得 XML 数据的处理更加便捷。这极大地简化了 XML 应用程序的开发,特别是在处理基于 XML 的数据交换时。 **JAXB 的工作原理** 1. **XML ...

Global site tag (gtag.js) - Google Analytics