简易元素指那些只包含文本的元素。它不会包含任何其他的元素或属性。
什么是简易元素?
简易元素指那些仅包含文本的元素。它不会包含任何其他的元素或属性。
不过,“仅包含文本”这个限定却很容易造成误解。文本有很多类型。它可以是 XML Schema 定义中包括的类型中的一种(布尔、字符串、数据等等),或者它也可以是您自行定义的定制类型。
您也可向数据类型添加限定(即 facets),以此来限制它的内容,或者您可以要求数据匹配某种特定的模式。
定义简易元素
定义简易元素的语法:
<xs:element name="xxx" type="yyy"/>此处 xxx 指元素的名称,yyy 指元素的数据类型。XML Schema 拥有很多内建的数据类型。
最常用的类型是:
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time
例子:
这是一些 XML 元素:
<lastname>Refsnes</lastname>
<age>36</age>
<dateborn>1970-03-27</dateborn>这是相应的简易元素定义:
<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="dateborn" type="xs:date"/>简易元素的默认值和固定值
简易元素可拥有指定的默认值或固定值。
当没有其他的值被规定时,默认值就会自动分配给元素。
在下面的例子中,缺省值是 "red":
<xs:element name="color" type="xs:string" default="red"/>固定值同样会自动分配给元素,并且您无法规定另外一个值。
在下面的例子中,固定值是 "red":
<xs:element name="color" type="xs:string" fixed="red"/>
========================================
6.XSD 属性
所有的属性均被作为简易类型来声明。
什么是属性?
简易元素无法拥有属性。假如某个元素拥有属性,它就会被当作某种复合类型。但是属性本身总是作为简易类型被声明的。
如何声明属性?
定义属性的语法是:
<xs:attribute name="xxx" type="yyy"/>在此处,xxx 指属性名称,yyy 则规定属性的数据类型。XML Schema 拥有很多内建的数据类型。
最常用的类型是:
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time
实例
这是带有属性的 XML 元素:
<lastname lang="EN">Smith</lastname>这是对应的属性定义:
<xs:attribute name="lang" type="xs:string"/>属性的默认值和固定值
属性可拥有指定的默认值或固定值。
当没有其他的值被规定时,默认值就会自动分配给元素。
在下面的例子中,缺省值是 "EN":
<xs:attribute name="lang" type="xs:string" default="EN"/>固定值同样会自动分配给元素,并且您无法规定另外的值。
在下面的例子中,固定值是 "EN":
<xs:attribute name="lang" type="xs:string" fixed="EN"/>可选的和必需的属性
在缺省的情况下,属性是可选的。如需规定属性为必选,请使用 "use" 属性:
<xs:attribute name="lang" type="xs:string" use="required"/>对内容的限定
当 XML 元素或属性拥有被定义的数据类型时,就会向元素或属性的内容添加限定。
假如 XML 元素的类型是 "xs:date",而其包含的内容是类似 "Hello World" 的字符串,元素将不会(通过)验证。
通过 XML schema,您也可向您的 XML 元素及属性添加自己的限定。这些限定被称为 facet(编者注:意为(多面体的)面,可译为限定面)。您会在下一节了解到更多有关 facet 的知识。
XML Schema:定义了可以出现在文档里的元素
定义了可以出现在文档里的属性
定义了哪些元素是子元素
定义了子元素的顺序
定义了子元素的数量
定义了一个元素应是否能包含文本,或应该是空的
定义了元素和属性的数据类型
定义了元素和属性的默认值和固定值
应该是可选的,但子元素的顺序是要规定的,any可以来设置任意顺序,不过它只能是数据类型相同的。
<xs:element name="Price"><xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attribute name="Dasy" type="xs:int"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)