XML Schema attribute 元素

  • 定义和使用

    attribute 元素定义一个属性。
    父元素:attributeGroup,schema,complexType,限制(simpleContent和complexContent),扩展(simpleContent和complexContent)
  • 语法

    <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>
  • 参数

    属性 描述
    default 可选的。 指定属性的默认值。 默认属性和固定属性不能同时存在
    fixed 可选的。 指定属性的固定值。 默认属性和固定属性不能同时存在
    form 可选的。 指定属性的形式。 默认值为包含该属性的元素的 attributeFormDefault 属性的值。 可以设置为以下之一:
    • "qualified" -表示此属性必须使用名称空间前缀和属性的非冒号(NCName)进行限定
    • unqualified -表示此属性不需要使用名称空间前缀进行限定,并且与该属性的(NCName)匹配
    id 可选的。 指定元素的唯一ID
    name 可选的。 指定属性的名称。 名称和引用属性不能同时存在
    ref 可选的。 指定对命名属性的引用。 名称和引用属性不能同时存在。 如果存在ref,则不能显示simpleType元素,形式和类型
    type 可选的。 指定对命名属性的引用。 名称和引用属性不能同时存在。 如果存在ref,则不能显示simpleType元素,形式和类型
    use 可选的。 指定如何使用属性。 可以是以下值之一:
    • optional -属性是可选的(默认)
    • prohibited -无法使用该属性
    • required -属性为必填
    any attributes 可选的。 用非模式命名空间指定任何其他属性
  • 示例

    <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” 属性具有限制。 唯一可接受的值是从 a 到 z 的两个大写字母。
    要使用复杂类型中的现有属性定义来声明属性,请使用 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>
    属性可以具有默认值或指定的固定值。 如果未指定其他值,则会自动为属性分配默认值。 在以下示例中,默认值为 “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="optional"/>
    要使属性为必需:
    <xs:attribute name="lang" type="xs:string" use="required"/>