xmlschema两个元素声明同一个属性怎么设置

xmlschema两个元素声明同一个属性怎么设置,第1张

XML Schema 可定义 XML 文件的元素

简易元素指那些只包含文本的元素。它不会包含任何其他的元素或属性

什么是简易元素?

简易元素指那些仅包含文本的元素。它不会包含任何其他的元素或属性。

不过,“仅包含文本”这个限定却很容易造成误解。文本有很多类型。它可以是 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>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/bake/11759507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存