XML Schema 复合元素 – 仅含文本

最后更新于:2022-03-26 23:00:13

XSD 仅含文本


仅含文本的复合元素可包含文本和属性。


仅含文本的复合元素

此类型仅包含简易的内容(文本和属性),因此我们要向此内容添加 simpleContent 元素。当使用简易内容时,我们就必须在 simpleContent 元素内定义扩展或限定,就像这样:

<xs:element name=”somename”>
 
<xs:complexType>
   
<xs:simpleContent>
     
<xs:extension base=”basetype”>
       
….
       
….
     
</xs:extension>
   
</xs:simpleContent>
 
</xs:complexType>
</xs:element>

或者:

<xs:element name=”somename”>
 
<xs:complexType>
   
<xs:simpleContent>
     
<xs:restriction base=”basetype”>
       
….
       
….
     
</xs:restriction>
   
</xs:simpleContent>
 
</xs:complexType>
</xs:element>

提示: 请使用 extension 或 restriction 元素来扩展或限制元素的基本简易类型。
这里有一个 XML 元素的例子,”shoesize”,其中仅包含文本:

<shoesize country=”france”>35</shoesize>

下面这个例子声明了一个复合类型,其内容被定义为整数值,并且 “shoesize” 元素含有名为 “country” 的属性:

<xs:element name=”shoesize”>
 
<xs:complexType>
   
<xs:simpleContent>
     
<xs:extension base=”xs:integer”>
       
<xs:attribute name=”country” type=”xs:string” />
     
</xs:extension>
   
</xs:simpleContent>
 
</xs:complexType>
</xs:element>

我们也可为 complexType 元素设定一个名称,并让 “shoesize” 元素的 type 属性来引用此名称(通过使用此方法,若干元素均可引用相同的复合类型):

<xs:element name=”shoesize” type=”shoetype”/>

<xs:complexType name=”shoetype”>
 
<xs:simpleContent>
   
<xs:extension base=”xs:integer”>
     
<xs:attribute name=”country” type=”xs:string” />
   
</xs:extension>
 
</xs:simpleContent>
</xs:complexType>