Как определить класс в классе для отношения 1 к 1 в xsd - PullRequest
0 голосов
/ 01 декабря 2011

Если я определю свою схему xsd, как показано ниже, элемент xs: выдаст ошибку.Я хочу иметь отношение 1: 1 между BitStatType и ValidationCountMessage?Как я могу определить класс в классе - это для 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 Ответ

1 голос
/ 01 декабря 2011

Во-первых, вам не хватает последовательности 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 будет иметь поле bitAgeViolation типа ValidationCountMessage. Таким образом, у вас будет связь между этими двумя классами.

...