XML Schema anyAttribute 元素

  • 定义和使用

    使用 anyAttribute 元素,作者可以使用架构未指定的属性来扩展 XML 文档。
    父元素:complexType,限制(simpleContent和complexContent都),扩展名(simpleContent和complexContent都),attributeGroup
  • 语法

    <anyAttribute
    id=ID
    namespace=namespace
    processContents=lax|skip|strict
    any attributes
    >
    
    (annotation?)
    
    </anyAttribute>
    (?符号声明该元素可以在 anyAttribute 元素内出现零次或一次)
  • 参数

    属性 描述
    id 可选的。 指定元素的唯一ID
    namespace 可选的。 指定包含元素的名称空间;可以设置为以下之一:
    • ## any-允许来自任何命名空间的元素(默认设置)
    • ## other-可以存在来自非父元素名称空间的任何名称空间中的元素
    • ## local-元素不得来自任何名称空间
    • ## targetNamespace-父元素名称空间中的元素可以存在
    • { 名称空间的 URI 引用,## targetNamespace,## local } 的列表-可以存在以空格分隔的名称空间列表中的元素
    processContents 可选的。 指定XML处理器应如何处理,针对此 any 元素指定的元素进行验证。 可以设置为以下之一:
    • strict - XML处理器必须获取所需名称空间的架构并验证元素(这是默认设置)
    • lax - 与严格相同,但是; 如果无法获得架构,则不会发生任何错误
    • skip - XML处理器不尝试验证来自指定名称空间的任何元素
    any attributes 可选的。 用非模式命名空间指定任何其他属性
  • 示例

    下面的示例显示了一个名为 “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>