[英]JAXB: how to specify that a binding rule that a complexType is generated by a different XSD?
[英]How to create the binding file for changing complexType to simpleType
我在XSD模式中有一個字段:
<xs:element name="magicField">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:totalDigits value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
在java類中生成了一個字段:
int magicField;
但隨后,xsd模式已更改為:
<xs:element name="magicField">
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="int_code">
<xs:totalDigits value="8"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
其中“ int_code”:
<xs:complexType name="int_code">
<xs:simpleContent>
<xs:extension base="xs:positiveInteger">
<xs:attribute name="name"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
JAXB生成以下代碼:
MagicField magicField;
和MagicField.java。
但是我仍然只需要
int magicField;
在生成的代碼中。
完全不使用屬性“名稱”。
我無法更改架構,我的方式僅是綁定文件(xjb)。
我應該如何創建綁定以重新映射“ int_code”類型並獲得“ magicField”作為simpleType(代碼中的int
),而不是complexType(代碼中的magicField
)?
據我了解,我不僅需要綁定規則,還需要自定義XmlAdapter。
提前致謝。
您可以使用以下命令來代替創建復雜類型int_code:
<xs:element name="magicField">
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="xs:positiveInteger">
<xs:totalDigits value="8"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
或者,您可以按照以下更好的方法為magicField創建simpleType:
<xs:element name="magicField">
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:totalDigits value="8" />
</xs:restriction>
</xs:simpleType>
</xs:element>
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.