当XML模式基类型和子类型在其中声明相同的元素时,为什么JAXB不在其生成的代码中创建成员变量?

时间:2012-11-23 10:58:04

标签: java xml jaxb xsd

关于JAXB生成的类,我有一个问题。

我可以看到,我的架构中声明了一个复杂类型DG_PaymentIdentification1。 它是对PaymentIdentification1的限制。 DG_PaymentIdentification1也是一样的 PaymentIdentification1。我还有一个名为DG_CreditTransferTransactionInformation10的类型 其基本类型为CreditTransferTransactionInformation10,与其完全相同。

我在下面列出了相关的XML架构片段。

<xs:complexType name="DG_PaymentIdentification1">
    <xs:complexContent>
        <xs:restriction base="PaymentIdentification1">
            <xs:sequence>
                <xs:element name="InstrId" type="DG_Max35Text_REF" minOccurs="0"/>
                <xs:element name="EndToEndId" type="DG_Max35Text_REF" id="DG-41"/>
            </xs:sequence>
        </xs:restriction>
    </xs:complexContent>
</xs:complexType>


<xs:complexType name="PaymentIdentification1">
    <xs:sequence>
        <xs:element name="InstrId" type="Max35Text" minOccurs="0"/>
        <xs:element name="EndToEndId" type="Max35Text"/>
    </xs:sequence>
</xs:complexType>


<xs:complexType name="DG_CreditTransferTransactionInformation10">
    <xs:complexContent>
        <xs:restriction base="CreditTransferTransactionInformation10">
            <xs:sequence>
                <xs:element name="PmtId" type="DG_PaymentIdentification1"/>



<xs:simpleType name="DG_Max35Text_REF">
    <xs:restriction base="DG_NotEmpty35">
        <xs:pattern value="[\-A-Za-z0-9\+/\?:\(\)\.,'&#x20;]*"/>
    </xs:restriction>
</xs:simpleType>


<xs:simpleType name="Max35Text">
    <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="35"/>
    </xs:restriction>
</xs:simpleType>

JAXB为DG_PaymentIdentification1生成以下java类:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DG_CreditTransferTransactionInformation10")



public class DGCreditTransferTransactionInformation10
     extends CreditTransferTransactionInformation10
{


}

我的问题是为什么DGCreditTransferTransactionInformation10生成的类没有变量 在生成的代码中类型为DG_PaymentIdentification1?基类CreditTransferTransactionInformation10 确实在其中声明了PaymentIdentification1类型。

有没有办法确保DGCreditTransferTransactionInformation10有一个DG_PaymentIdentification1 在它?

0 个答案:

没有答案