1
我有它的最頂端的元素是DocumentJAXB如何編組可以匹配兩種類型的XML時決定創建哪種類型?
<xsd:element name="Document" type="Document"/>
它包含類型ZZ_Customer的一個元素,它的客戶的限制的XML模式。 這兩個元素都包含同名兒童,但類型略有不同。
<xsd:complexType name="Document">
<xsd:sequence>
<xsd:element name="CstmrCdtTrfInitn" type="ZZ_Customer"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ZZ_Customer">
<xsd:complexContent>
<xsd:restriction base="Customer">
<xsd:sequence>
<xsd:element name="GrpHdr" type="ZZ_Group"/>
<xsd:element name="PmtInf" type="ZZ_Payment" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Customer">
<xsd:sequence>
<xsd:element name="GrpHdr" type="Group"/>
<xsd:element name="PmtInf" type="Payment" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
當JAXB的解組XML文件,將它創建ZZ_Customer的實例或將其創建客戶的一個實例?同樣,什麼時候它會創建一個Group或ZZ_Group的實例?
我注意到JAXB會將ZZ_ *的實例用於XML的某些部分,但將其基本計數器部分用於XML的其他部分。
它在什麼基礎上做出決定? JAXB正在使用的標準並不明顯。
不幸的是,我無法控制架構及其設計。
您顯示的XML模式不完整。您必須提供帶和不帶ZZ_的Group和Payment的定義,以便可以編譯XML Schema並調查結果。 ---所有未定義的類型都像csd:string這樣的類型的簡單替換會導致xjc拒絕編譯,這是可以理解的。 – laune 2014-09-07 18:40:08