2014-07-22 3 views
0

Comment peut-on construire un xsd déclarant tous les éléments de ce XML:schéma XSD pour xml avec le même nom, mais différents types

<a> 
    <myElement type="type1"> 
    <idElement>1</idElement> 
    <TypeOneContent>my content</TypeOneContent> 
    </myElement> 
    <myElement type="type2"> 
    <idElement>2</idElement> 
    <qteElemetType2>3</qteElemetType2> 
    </myElement> 
    <myElement type="type3"> 
    <idElement>3</idElement> 
    </myElement> 
</a> 

Répondre

0

Cela pourrait être le XSD pour votre XML

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="a"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="myElement" maxOccurs="unbounded" minOccurs="0"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element type="xs:byte" name="idElement"/> 
       <xs:element type="xs:string" name="TypeOneContent" minOccurs="0"/> 
       <xs:element type="xs:byte" name="qteElemetType2" minOccurs="0"/> 
      </xs:sequence> 
      <xs:attribute type="xs:string" name="type" use="optional"/> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 
+0

Thak vous. Orignially mon xml est un énorme fichier avec beaucoup de différents types. Donc, y a-t-il un moyen d'avoir un complexType pour chaque type et de ne pas tout déclarer dans le même? – leinconnu

0

La contrainte Les "déclarations d'éléments cohérentes" qui sont présentes dans XSD 1.0 et XSD 1.1 indiquent que si deux éléments frères ont le même nom, ils doivent avoir le même type. Donc, la réponse à votre question est que cela ne peut pas être fait.

Questions connexes