Можно ли использовать xs: union для complexTypes? - PullRequest
10 голосов
/ 29 июня 2011

<xs:element name="Kunde" type="tKunde"/>


<xs:complexType name="tKunde">
    <xs:union memberTypes="tPerson tStudent"></xs:union>
</xs:complexType>
<xs:complexType name="tPerson">
    <xs:sequence>
        <xs:element name="Vorname" type="xs:string"/>
        <xs:element name="Nachname" type="xs:string"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="tStudent">
    <xs:complexContent>
        <xs:extension base="tPerson">
        <xs:sequence>
            <xs:element name="Matrikelnummer" type="xs:int" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>

Вот как это должно выглядеть.Задача состоит в том, чтобы вывести ученика из личности, а затем дать возможность использовать один из двух типов для элемента Кунде.

Это, похоже, неверно.

1 Ответ

3 голосов
/ 29 июня 2011

Вы не можете использовать xs: union для этого.Вы можете использовать xs: choice или поместить элементы в группу подстановки, чтобы любой из них мог появиться вместо элемента в начале группы подстановки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...