2010-07-29 5 views
5

ich einen komplexen Typ definieren möchten, die Elemente enthält, die für zusätzliche undefinierte Elemente können oder nicht vorhanden sind, und ermöglicht es auch, damit ich so etwas wie dieses haben:XML-Schema mit Complext-Typ mit <xs:all> und <xs:any>?

<xs:complexType name="MyType"> 
<xs:sequence> 
    <xs:element name="A" type="xs:float" minOccurs="0" maxOccurs="1" /> 
    <xs:element name="B" type="xs:float" minOccurs="0" maxOccurs="1" /> 
    <xs:element name="C" type="xs:float" minOccurs="0" maxOccurs="1" /> 
    <xs:any minOccurs="0" processContents="skip"/> 
</xs:sequence> 
</xs:complexType> 

Ich will nicht die Kraft Bestellung mit <xs:sequence> so ich möchte die <xs:sequence> zu ändern, aber dann <xs:any> ist nicht erlaubt. Gibt es einen Weg, dies zu erreichen?

+0

Ich habe den Code in meiner Beschreibung nicht markiert, so dass es nicht sichtbar war. Ich weiß über bereits, aber ich möchte und Ken

+0

mögliche Duplikate von [Validieren von XML mit XSDs ... aber immer noch Erweiterbarkeit] (http://stackoverflow.com/questions/3347822/validating-xml-with- xsds-but-still-allow-erweiterbarkeit) – Wrikken

Antwort

0

jede Bestellung zu ermöglichen, verwenden Sie diese:

<xs:complexType name="MyType"> 
<xs:all minOccurs="1" maxOccurs="1"> 
    <xs:element name="A" type="xs:float" minOccurs="0" maxOccurs="1" /> 
    <xs:element name="B" type="xs:float" minOccurs="0" maxOccurs="1" /> 
    <xs:element name="C" type="xs:float" minOccurs="0" maxOccurs="1" /> 
</xs:all> 
</xs:complexType> 

Aber dann kann man nicht eine <any> innerhalb eines <all> haben.
Noch können Sie beide in einem Typ haben, entweder direkt oder als Erweiterung.