读书人

JAXB入门学习(4)

发布时间: 2012-11-10 10:48:50 作者: rapoo

JAXB入门学习(四)

定制JAXB绑定:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="1.0"> <xsd:annotation> <xsd:documentation> 文件描述 </xsd:documentation> <xsd:appinfo> <jxb:globalBindings fixedAttributeAsConstantProperty="false" collectionType="java.util.Vector" typesafeEnumBase="xsd:NCName" choiceContentProperty="false" typesafeEnumMemberName="generateError" enableFailFastCheck="false" generateIsSetMethod="false" underscoreBinding="asCharInWord"/> <jxb:schemaBindings> <jxb:package name="primer.myPo"><!-- 生成Java代码时候的包路径 --> <jxb:javadoc> <![CDATA[<body> Package level documentation for generated package primer.myPo.</body>]]> </jxb:javadoc> </jxb:package> <jxb:nameXmlTransform> <jxb:elementName suffix="Element"/> </jxb:nameXmlTransform> </jxb:schemaBindings> </xsd:appinfo> </xsd:annotation><xsd:element name="purchaseOrder" type="PurchaseOrderType"/><xsd:element name="comment" type="xsd:string"/><!-- 映射为普通的String类型元素 --><xsd:complexType name="PurchaseOrderType"> <xsd:annotation> <xsd:appinfo> <jxb:class name="POType"> <jxb:javadoc> </jxb:javadoc> </jxb:class> </xsd:appinfo> </xsd:annotation> <xsd:sequence> <xsd:element name="shipTo" type="USAddress"/> <xsd:element name="billTo" type="USAddress"/> <xsd:element ref="comment" minOccurs="0"/> <xsd:element name="items" type="Items"/> </xsd:sequence> <xsd:attribute name="orderDate" type="xsd:date"/></xsd:complexType><!-- Stock Keeping Unit, a code for identifying products --><xsd:simpleType name="SKU"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[A-Z]{2}"/> </xsd:restriction></xsd:simpleType><xsd:simpleType name="ZipCodeType"> <xsd:annotation> <xsd:appinfo><!-- 使用自定义类型转换器 --> <jxb:javaType name="int" parseMethod="inlinecustomize.primer.MyDatatypeConverter.parseIntegerToInt" printMethod="inlinecustomize.primer.MyDatatypeConverter.printIntToInteger" /> </xsd:appinfo> </xsd:annotation> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="10000"/> <xsd:maxInclusive value="99999"/> </xsd:restriction></xsd:simpleType></xsd:schema>

<jxb:bindings version="1.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <jxb:bindings schemaLocation="po.xsd" node="/xs:schema"> <jxb:globalBindings fixedAttributeAsConstantProperty="false" collectionType="java.util.Vector" typesafeEnumBase="xs:NCName" choiceContentProperty="false" typesafeEnumMemberName="generateError" enableFailFastCheck="false" generateIsSetMethod="false" underscoreBinding="asCharInWord"/> <jxb:schemaBindings> <jxb:package name="primer.myPo"> <jxb:javadoc><![CDATA[<body>Package level documentation for generated package primer.myPo.</body>]]></jxb:javadoc> </jxb:package> <jxb:nameXmlTransform> <jxb:elementName suffix="Element"/> </jxb:nameXmlTransform> </jxb:schemaBindings> <jxb:bindings node="//xs:complexType[@name='PurchaseOrderType']"> <jxb:class name="POType"> <jxb:javadoc>A <b>Purchase Order</b> consists of addresses and items.</jxb:javadoc> </jxb:class> </jxb:bindings> <jxb:bindings node="//xs:complexType[@name='USAddress']"> <jxb:class> <jxb:javadoc><![CDATA[First line of documentation for a <b>USAddress</b>.]]></jxb:javadoc> </jxb:class> <jxb:bindings node=".//xs:element[@name='name']"> <jxb:property name="toName"/> </jxb:bindings> <jxb:bindings node=".//xs:element[@name='zip']"> <jxb:property name="zipCode"/> </jxb:bindings> </jxb:bindings> <!-- node="//xs:complexType[@name='USAddress']" --> <jxb:bindings node="//xs:complexType[@name='Items']"> <jxb:bindings node=".//xs:element[@name='item']//xs:element[@name='quantity']"> <jxb:property generateIsSetMethod="true"/> <jxb:bindings node=".//xs:attribute[@name='partNum']"> <jxb:property name="partNumber"/> </jxb:bindings> </jxb:bindings> <jxb:bindings node="//xs:simpleType[@name='ZipCodeType']"> <jxb:javaType name="int" parseMethod="javax.xml.bind.DatatypeConverter.parseInt" printMethod="javax.xml.bind.DatatypeConverter.printInt"/> </jxb:bindings> </jxb:bindings> <!-- schemaLocation="po.xsd" node="/xs:schema" --></jxb:bindings>

读书人网 >软件架构设计

热点推荐