是否可以将xs:union用于complexTypes?

kmi*_*ndi 10 xml union xsd

<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>
Run Code Online (Sandbox Code Playgroud)

这应该是什么样子.任务是从Person派生学生,然后可以使用元素Kunde的两种类型之一.

这似乎无效.

Mic*_*Kay 5

您不能为此使用 xs:union。您可以使用 xs:choice,也可以将元素放在替换组中,以便它们中的任何一个都可以代替替换组开头的元素出现。