Элемент attribute в XML Schema

Определение и использование

Элемент attribute определяет атрибут.

Информация о элементе

Число出现的 Определяется один раз в элементе schema. Указывается несколько раз в сложных типах или группах атрибутов.
Родительский элемент attributeGroup, schema, complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent)
Содержимое annotation, simpleType

Грамматика

<attribute
default=string
fixed=string
form=qualified|unqualified
id=ID
name=NCName
ref=QName
type=QName
use=optional|prohibited|required
любые атрибуты
>
(annotation?,(simpleType?))
</attribute>

(? символ указывает, что элемент может出现在 атрибуте 0 или 1 раз.)

Атрибут

default

Опционально. Определяет значение по умолчанию для атрибута. Атрибуты default и fixed не могут использоваться одновременно.

fixed

Опционально. Определяет фиксированное значение атрибута. Атрибуты default и fixed не могут использоваться одновременно.

form

Опционально. Определяет формат атрибута. Значением по умолчанию является значение атрибута attributeFormDefault элемента schema.

  • "qualified" - указывает, что этот атрибут необходимо ограничить именем пространства имен и безкавычным именем (NCName) атрибута.
  • "unqualified" - указывает, что этот атрибут не требует префикса пространства имен и не требует соответствия этому атрибуту без кавычек (NCName), то есть местному имени.

id

Опционально. Укажите уникальный ID элемента.

name

Опционально. Укажите имя атрибута. Атрибуты name и ref не могут использоваться одновременно.

ref

Опционально. Укажите ссылку на указанный атрибут. Атрибуты name и ref не могут использоваться одновременно. Если используется ref, то элемент simpleType, form и type не могут использоваться.

type

Опционально. Укажите встроенный тип данных или простого типа. Атрибут type может出现 только если content не содержит элемент simpleType.

use

Опционально. Укажите, как использовать этот атрибут. Возможные значения:

  • опциональный - атрибут является опциональным и может иметь любое значение (по умолчанию).
  • запрещен - атрибут не может быть использован.
  • необязательный - атрибут является обязательным.

любые атрибуты

Опционально. Укажите любые другие атрибуты с 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" есть ограничение. Единственно приемлемые значения - две буквы латинского алфавита от A до Z.

Пример 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"/>