簡體   English   中英

如何創建用於將complexType更改為simpleType的綁定文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM