XSD, das sowohl simpleType- als auch complexType-Inhalte für dasselbe Element zulässt?

Ich habe eine Situation, in der ich verschiedene XML-Dateien habe, die unterschiedliche Arten von Eigenschaften haben. Manchmal ist das ElementHEADER könnte nur einen Knoten haben oder einige XMLs könnten Elemente innerhalb des @ habHEADER Knoten und Werte im Inneren.

Beispiel 1 HEADER mit nur text):

<Details HeaderLabel="DETAILS">
   <HEADER Label="Header">2.5%</HEADER>
</Details>

Beispiel 2 HEADER mit zwei untergeordneten Elementen):

<Details HeaderLabel="DETAILS">
   <HEADER Label="Header">
       <HEAD Label="H1a">2.88%</HEAD>
       <HEAD Label="H2b">3.24%</HEAD>
   </HEADER>
</Details>

Das XSD funktioniert wie folgt: Dies wird für @ validierBeispiel :

<xs:element name="HEADER">
   <xs:complexType>
      <xs:simpleContent>
         <xs:extension base="xs:string">
            <xs:attribute name="Label" type="xs:string" use="required" />
          </xs:extension>
       </xs:simpleContent>
    </xs:complexType>
 </xs:element>

Dies validiert dasbeispiel 2:

<xs:element name="HEADER">
   <xs:complexType>
      <xs:sequence>
         <xs:element maxOccurs="unbounded" name="HEAD">
           <xs:complexType>
             <xs:simpleContent>
               <xs:extension base="xs:string">
                 <xs:attribute name="Label" type="xs:string" use="required" />
               </xs:extension>
             </xs:simpleContent>
           </xs:complexType>
         </xs:element>
       </xs:sequence>
     <xs:attribute name="Label" type="xs:string" use="required" />
   </xs:complexType>
 </xs:element>

Ich habe versucht mitxs:choice aber es schien nicht gut zu funktionieren, oder vielleicht habe ich kein klares Verständnis, wie die Wahl in dieser Situation umgesetzt werden kann.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage