XSD Frage: choice-Element == alles erlaubt?
Bio
- xml
0 Bio
Sup!
Ich habe das große Vergnügen, mich quasi ohne Vorkenntnisse durch ein total durchgedrehtes XML-Schema arbeiten zu müssen.
Nun gibt es in diesem Schema offensichtlich Elemente, die irgendwelchen Text enthalten können. Ich konnte nur noch nicht herausfinden, wo das wie erlaubt wird.
Diese Elemente sind ungefähr so definiert (ich hab'da was gekürzt):
<xsd:complexType name="LangX" abstract="false" mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
<xsd:attributeGroup ref="ANS:AS-OBJECT"/>
<xsd:attributeGroup ref="ANS:LangX"/>
</xsd:complexType>
Dazu gibt's dann auch noch die passenden attributeGroups und so, falls die jemand vermisst, ist alles da.
Nun ist meine Vermutung, dass dieses leere xsd:choice Element erlaubt, dass in so einem "LangX" Element sonstwas drinstehen darf, insbesondere auch beliebiger Text.
Ist das korrekt? Wenn jua. Ist das ein Hack? Ist das nicht irgendwie verboten?
Gruesse,
Bio
Sup!
<xsd:complexType name="LangX" abstract="false" mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
<xsd:attributeGroup ref="ANS:AS-OBJECT"/>
<xsd:attributeGroup ref="ANS:LangX"/>
</xsd:complexType>
Es wäre auch denkbar, dass in einem LangX-Element Text vorkommen darf, weil mixed="true" ist; das leere Choice-Element ist vielleicht einfach überflüssig bzw. ein umständlicher Weg, in einem LangX-Element keine weiteren Kind-Elemente zu erlauben.
Gruesse,
Bio