2014-07-22 32 views
0

XML如何构建一个XSD声明此XML的所有元素:XSD架构与同名但不同类型

<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> 

回答

0

这可能是XSD为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 you。 Orignially我的XML是一个有很多不同类型的巨大文件。那么是否有一种方法可以为每种类型设置一个complexType,而不是全部声明为相同的? – leinconnu

0

约束在XSD 1.0和XSD 1.1中存在的“元素声明一致”表示如果两个兄弟元素具有相同的名称,则它们必须具有相同的类型。所以你的问题的答案是它不能完成。

相关问题