XML Schema any 요소

정의와 사용법

any 요소는 지정된 이름 공간의 어떤 요소도 sequence 또는 choice 요소 내에 표시될 수 있습니다。

이 요소는创作者가 schema가 정의하지 않은 요소를 통해 XML 문서를 확장할 수 있도록 합니다。

요소 정보

항목 설명
출현 횟수 무제한
부모 요소 choice、sequence
내용 annotation

문법

<any
id=ID
maxOccurs=nonNegativeInteger|unbounded
minOccurs=nonNegativeInteger
namespace=namespace
processContents=lax|skip|strict
any attributes
>
(annotation?)
</any>

(? 기호 선언 요소는 어떤 요소 내에서도 0회 또는 1회 등장할 수 있습니다。)

속성

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>