XML Schema帮助文档2

XML Schema annotation 元素

定义和用法

annotation 元素是一个顶层元素,规定 schema 的注释。

注释:可以包含 appinfo 元素(由应用程序使用的信息)和 documentation 元素(由用户读取或使用的注释或文本)。

元素信息

项目

说明

出现次数

在父元素中一次。

父元素

任何元素

内容

appinfodocumentation

语法

<annotation

id=ID

any attributes

>

(appinfo|documentation)*

</annotation>

符号声明该元素可在 annotation 元素中出现零次或多次。)

属性

描述

id

可选。该元素的唯一标识符。

any attributes

可选。规定带有 non-schema 命名空间的任何其他属性。

例子 1

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:annotation>

  <xs:appInfo>W3School Note</xs:appInfo>

  <xs:documentation xml:lang="en">

  This Schema defines a W3School note!

  </xs:documentation>

</xs:annotation>

.

.

.

</xs:schema>

XML Schema any 元素

定义和用法

any 元素使来自指定命名空间的任何元素可以显示在包含 sequence 或 choice 元素中。

该元素使创作者可以通过未被 schema 规定的元素来扩展 XML 文档。

元素信息

项目

说明

出现次数

无限制

父元素

choicesequence

内容

annotation

语法

<any

id=ID

maxOccurs=nonNegativeInteger|unbounded

minOccurs=nonNegativeInteger

namespace=namespace

processContents=lax|skip|strict

any attributes

>

(annotation?)

</any>

符号声明元素可在任何元素内出现零次或一次。)

属性

id

可选。规定该元素的唯一的 ID

maxOccurs

可选。规定 any 元素在父元素中可出现的最大次数。该值可以是大于或等于零的整数。若不想对最大次数设置任何限制,请使用字符串 "unbounded"。 默认值为 1

minOccurs

可选。规定 any 元素在父元素中可出现的最小次数。该值可以是大于或等于零的整数。若要指定该 any 组是可选的,请将此属性设置为零。 默认值为 1

namespace

可选。规定包含可以使用的元素的命名空间。如果没有指定命名空间,则 ##any 为默认值。 如果指定命名空间,则必须是以下值之一:

· ##any - 来自任何命名空间的元素都可以出现(默认)。

· ##other - 来自该元素的父元素的目标命名空间之外的任何命名空间的元素都可以出现。

· ##local - 未由命名空间限定的元素可以出现。

· ##targetNamespace - 来自包含该元素的父元素的目标命名空间的元素可以出现。

· {URI references of namespaces, ##targetNamespace, ##local} 的列表 来自通过空格分隔的命名空间列表的元素可以出现。 该列表可以包含以下内容: 命名空间 ##targetNamespace 和 ##local 的 URI 引用。

processContents

可选。一个指示符,指示应用程序或 XML 处理器应如何根据由该 any 元素指定的元素处理 XML 文档的验证。 如果没有指定 processContents 属性,则默认为 strict。 如果指定了 processContents,必须是以下值之一:

· strict - XML 处理器必须获得所需命名空间的架构,并且必须验证来自这些命名空间的所有元素。(默认)

· lax - 与 strict 相同;但是,即使不能获取该架构,也不会发生任何错误。

· skip - XML 处理器不尝试验证来自指定命名空间的所有元素。

any attributes

可选。规定带有 non-schema 命名空间的任何其他属性。

例子

下面的例子展示了 "person" 元素的一个声明。通过使用 <any> 元素,创作者可以用任何元素扩展 "person" 的内容(在 <lastname> 之后):

<xs:element name="person">

  <xs:complexType>

    <xs:sequence>

      <xs:element name="firstname" type="xs:string"/>

      <xs:element name="lastname" type="xs:string"/>

      <xs:any minOccurs="0"/>

    </xs:sequence>

  </xs:complexType>

</xs:element>

XML Schema anyAttribute 元素

定义和用法

anyAttribute 元素使创作者可以通过未被 schema 规定的属性来扩展 XML 文档。

元素信息

项目

说明

出现次数

无限制

父元素

complexTyperestriction (simpleContent)extension (simpleContent)restriction (complexContent)extension (complexContent)attributeGroup

内容

annotation

语法

<anyAttribute

id=ID

namespace=namespace

processContents=lax|skip|strict

any attributes

>

(annotation?)

</anyAttribute>

符号声明该元素可在 anyAttribute 元素内出现零次或一次。)

属性

id

可选。规定该元素的唯一的 ID

namespace

可选。规定包含可以使用的元素的命名空间。如果没有指定命名空间,则 ##any 为默认值。如果指定命名空间,则必须是以下值之一。

· ##any - 来自任何命名空间的元素都可以出现(默认)。

· ##other - 来自该元素的父元素的目标命名空间之外的任何命名空间的元素都可以出现。

· ##local - 未由命名空间限定的元素可以出现。

· ##targetNamespace - 来自包含该元素的父元素的目标命名空间的元素可以出现。

· {URI references of namespaces, ##targetNamespace, ##local} 的列表 来自通过空格分隔的命名空间列表的元素可以出现。 该列表可以包含以下内容: 命名空间 ##targetNamespace 和 ##local 的 URI 引用。

processContents

可选。一个指示符,指示应用程序或 XML 处理器应如何根据由该 any 元素指定的元素处理 XML 文档的验证。 如果没有指定 processContents 属性,则默认为 strict。 如果指定了 processContents,必须是以下值之一。

· strict - XML 处理器必须获得所需命名空间的架构,并且必须验证来自这些命名空间的所有元素。(默认)

· lax - 与 strict 相同;但是,即使不能获取该架构,也不会发生任何错误。

· skip - XML 处理器不尝试验证来自指定命名空间的所有元素。

any attributes

可选。规定带有 non-schema 命名空间的任何其他属性。

实例

下面的例子展示了针对 "person" 元素的一个声明。通过使用 <anyAttribute> 元素,创作者能够向 "person" 元素添加任意数量的属性:

<xs:element name="person">

  <xs:complexType>

    <xs:sequence>

      <xs:element name="firstname" type="xs:string"/>

      <xs:element name="lastname" type="xs:string"/>

    </xs:sequence>

    <xs:anyAttribute/>

  </xs:complexType>

</xs:element>

XML Schema appInfo 元素

定义和用法

appInfo 元素规定 annotation 元素中应用程序要使用的信息。该元素必须位于 annotation 中。

注释:应用程序使用在 appinfo 元素内提供的信息处理指令。

元素信息

出现次数

无限制。

父元素

annotation

内容

任何格式正确的 XML 内容。

语法

<appInfo

source=anyURL

>

Any well-formed XML content

</appInfo>

属性

描述

source

可选。一个 URI 引用,规定应用程序信息的来源。

例子 1

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:annotation>

  <xs:appInfo>W3School Note</xs:appInfo>

  <xs:documentation xml:lang="en">

  This Schema defines a W3School note!

  </xs:documentation>

</xs:annotation>

.

.

.

</xs:schema>

XML Schema attribute 元素

定义和用法

attribute 元素定义一个属性。

元素信息

出现次数

在 schema 元素中定义一次。 在复杂类型或属性组中引用多次。

父元素

attributeGroupschemacomplexTyperestriction (simpleContent)extension (simpleContent)restriction (complexContent)extension (complexContent)

内容

annotationsimpleType

语法

<attribute

default=string

fixed=string

form=qualified|unqualified

id=ID

name=NCName

ref=QName

type=QName

use=optional|prohibited|required

any attributes

>

(annotation?,(simpleType?))

</attribute>

符号声明该元素可在 attribute 元素中出现零次或一次。)

属性

default

可选。规定属性的默认值。default 和 fixed 属性不能同时出现。

fixed

可选。规定属性的固定值。default 和 fixed 属性不能同时出现。

form

可选。规定属性的格式。默认值是包含该属性的 schema 元素的 attributeFormDefault 属性的值。可以设置为下列值:

· "qualified" - 指示必须通过命名空间前缀和该属性的无冒号名称 (NCName) 来限定此属性。

· "unqualified" - 指示此属性无须由命名空间前缀限定,且无须匹配此属性的无冒号名称 (NCName),即本地名称。

id

可选。规定该元素的唯一的 ID

name

可选。规定属性的名称。name 和 ref 属性不能同时出现。

ref

可选。规定对指定的属性的引用。name 和 ref 属性不能同时出现。如果 ref 出现,则 simpleType 元素、form 和 type 不能出现。

type

可选。规定内建的数据类型或简单类型。type 属性只能在内容不包含 simpleType 元素时出现。

use

可选。规定如何使用该属性。可设置下面的值:

· optional - 属性是可选的并且可以具有任何值(默认)。

· prohibited - 不能使用属性。

· required - 属性的必需的。

any attributes

可选。规定带有 non-schema 命名空间的任何其他属性。

实例

例子 1

<xs:attribute name="code">

<xs:simpleType>

  <xs:restriction base="xs:string">

    <xs:pattern value="[A-Z][A-Z]"/>

  </xs:restriction>

</xs:simpleType>

</xs:attribute>

上面的例子指示 "code" 属性有一个限定。唯一可接受的值是大写字母 到 中的两个字母。

例子 2

如需使用在复杂类型中一个已有的属性定义来声明一个属性,请使用 ref 属性:

<xs:attribute name="code">

  <xs:simpleType>

    <xs:restriction base="xs:string">

      <xs:pattern value="[A-Z][A-Z]"/>

    </xs:restriction>

  </xs:simpleType>

</xs:attribute>

<xs:complexType name="someComplexType">

  <xs:attribute ref="code"/>

</xs:complexType>

例子 3

属性既可以拥有默认值,也可以拥有指定的固定值。在没有其他的值被指定时,会自动向属性赋予默认值。在下面的例子中,默认值是 "EN"

<xs:attribute name="lang" type="xs:string" default="EN"/>

在没有其他的值被指定时,会自动向属性赋予固定值。但是与默认值不同,如果您为属性规定了固定值以外的其他值,文档会验证为无效。在下面的例子中,固定值是 "EN"

<xs:attribute name="lang" type="xs:string" fixed="EN"/>

例子 4

所有属性默认都是可选的。如需明确地规定属性为可选,请使用 "use" 属性:

<xs:attribute name="lang" type="xs:string" use="optional"/>

使属性成为必需的属性:

<xs:attribute name="lang" type="xs:string" use="required"/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值