Dieser Code Teil einer großen Reihe von XSD-Dateien, die zusammen kombiniert ..gleicher Elementname mit verschiedenen komplexen Typen
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Headers"
targetNamespace="http://HttpNamespace/types"
elementFormDefault="qualified"
xmlns="http://HttpNamespace/types"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:saml ="http://HttpNamespace/saml"
>
<xs:import namespace="http://HttpNamespace/saml" schemaLocation="Saml.xsd" />
<xs:complexType name="ConnectionHeader">
<xs:attribute name="key" fixed="Connection" />
<xs:attribute name="value" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="keep-alive" />
<xs:enumeration value="close" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ContentTypeHeader">
<xs:attribute name="key" fixed="Content-Type" />
<xs:attribute name="value" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="application/json" />
<xs:enumeration value="application/soap+xml" />
<xs:enumeration value="text/xml" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="AuthorizationHeader">
<xs:sequence>
<xs:element name="Saml" minOccurs="0" maxOccurs="1" type="saml:SamlContent"/>
</xs:sequence>
<xs:attribute name="key" fixed="Authorization"/>
</xs:complexType>
<xs:complexType name="HeadersType">
<xs:sequence>
<xs:element name="Header" maxOccurs="unbounded">
<xs:complexType>
<xs:choice>
<xs:element name="Header" minOccurs="0" maxOccurs="1" type="ConnectionHeader" />
<xs:element name="Header" minOccurs="0" maxOccurs="1" type="ContentTypeHeader" />
<xs:element name="Header" minOccurs="0" maxOccurs="1" type="AuthorizationHeader" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
Wie yo sehen kann, in dem komplexen Typ HeadersType Ich versuche, ein zu schaffen Auswahl zwischen 3 komplexen Typen des gleichen Elementnamens "Header". In diesem Code-Snippet sind alle 3 Typen definiert.
Aber der Redakteur halten werfen mir den Fehler:
multiple definitions of element Header causes the content model to become ambiguous
Also meine Frage ist, wie ich eine multiple choice des gleichen Elements mit verschiedenen komplexen Typen definieren?