如何在类中为xsd中的1对1关系定义类

时间:2011-11-30 22:26:39

标签: xsd jaxb

如果我像下面那样定义我的xsd架构,则xs:元素会出错。我想在BitStatType和ValidationCountMessage之间建立1:1的关系?如何在类中定义类 - 这适用于JAXB java。

  <xs:complexType name="BitStatType">
                <xs:element name="BitAgeViolation" type="ValidationCountMessage" />                 
                <xs:attribute name="WiId" type="xs:int" use="required"/>
                <xs:attribute name="Title" type="xs:string" use="required"/>
                <xs:attribute name="TriggerRulesCount" type="xs:int" use="required"/>
                <xs:attribute name="TriggerEventsCount" type="xs:int" use="required"/>
                <xs:attribute name="LastPublishedDate" type="xs:date" use="required"/>
    </xs:complexType>  

1 个答案:

答案 0 :(得分:1)

首先,你错过了一个xs:序列(以防万一,不确定它是否在帖子中丢失或者是什么)。

<xs:complexType name="BitStatType">
    <xs:sequence>
        <xs:element name="BitAgeViolation" type="ValidationCountMessage"/>
    </xs:sequence>
    <xs:attribute name="WiId" type="xs:int" use="required"/>
    <xs:attribute name="Title" type="xs:string" use="required"/>
    <xs:attribute name="TriggerRulesCount" type="xs:int" use="required"/>
    <xs:attribute name="TriggerEventsCount" type="xs:int" use="required"/>
    <xs:attribute name="LastPublishedDate" type="xs:date" use="required"/>
</xs:complexType>

如果您的ValidationCountMessage是complexType,那么JAXB应该创建两个类,一个用于BitStatType,另一个用于ValidationCountMessage; BitStatType类将具有ValidationCountMessage类型的字段bitAgeViolation。所以,你们将在这两个类之间建立联系。