XML Schema中mixed =“true”和xs:extension的区别

时间:2011-05-21 21:02:33

标签: xsd

这两者之间的实际区别是什么:

<xs:element name="A">
 <xs:complexType mixed="true">
  <xs:attribute name="att" type="xs:boolean"/>
 </xs:complexType>
</xs:element>

<xs:element name="B">
 <xs:complexType>
  <xs:simpleContent>
   <xs:extension base="xs:string">
    <xs:attribute name="att" type="xs:boolean"/>
   </xs:extension>
  </xs:simpleContent>
 </xs:complexType>
</xs:element>

1 个答案:

答案 0 :(得分:12)

两者不同。您的第一个示例使用mixed="true"表示混合内容,即与子元素混合的字符数据。而您的第二个示例将元素内容限制为xs:string类型。两者都表明存在属性。

以你的例子,两者几乎是一样的。但是,如果您不打算使用混合内容,即您不打算添加子元素,则第二个版本会更清晰。