Поделиться через


Элемент <xsd:attribute>

Объявляет атрибут.

<attribute
  default = string
  fixed = string
  form = (qualified | unqualified) 
  id = ID
  name = NCName
  ref = QName
  type = QName
  use = (optional | prohibited | required): optional
  {any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleType?))
</attribute>

Атрибуты

  • default
    Атрибут со значением по умолчанию. Если атрибут не указан в экземпляре внутри XML-документа, атрибуту присваивается заданное значение. Если атрибут не присутствует в экземпляре документа, то он должен отобразиться в модуле проверки после обработки схемы. Обработчики схемы должны действовать таким образом, будто атрибуту задано значение по умолчанию и он фактически не находится в документе экземпляра. Атрибуты Default и fixed не могут присутствовать одновременно.

    Необязательно.

  • fixed
    Атрибут с фиксированным значением. Если атрибут присутствует в экземпляре документа, его значение должно быть равным заданному фиксированному значению. Если атрибут не присутствует, то атрибут получает указанное значение. Атрибуты Default и fixed не могут присутствовать одновременно.

    Необязательно.

  • form
    Форма для атрибута. Значением по умолчанию является значение атрибута attributeFormDefault элемента schema, содержащего атрибут. Значение должно быть одной из следующих строк: «qualified» или «unqualified».

    Если значение равно «unqualified», то этот атрибут не требует уточнения с префиксом пространства имен и сопоставляется с не содержащим двоеточий именем (NCName) атрибута (локальное имя).

    Если значение равно «qualified», то этот атрибут должен быть уточнен путем совмещения его имени NCName и атрибута targetNamespace.

    Необязательно.

  • id
    Идентификатор данного элемента. Значение id должно иметь тип ID и быть уникальным в пределах документа, содержащего этот элемент.

    Необязательно.

  • имя
    Имя атрибута. Имя не должно содержать двоеточий (NCName), как определено в спецификации пространств имен XML. Обязательный атрибут, если содержащим является элемент schema. Атрибуты Name и ref не могут присутствовать одновременно.

    Если XML-документ проверяется по схеме, то каждый атрибут в документе проверяется по элементу attribute в схеме.

    Необязательно.

  • ref
    Имя атрибута, объявленного в этой схеме (или другой схеме, указанной конкретным пространством имен). Значение ref должно быть полным именем (QName). Этот тип может включать префикс пространства имен. Атрибуты Name и ref не могут присутствовать одновременно. Если присутствует атрибут ref, то элементы simpleType, form и type не могут присутствовать одновременно.

    Чтобы объявить атрибут с помощью существующего определения атрибута внутри сложного типа, используйте атрибут ref для указания существующего определения атрибута.

    <xs:attribute name="mybaseattribute">
      <xs:simpleType>
       <xs:restriction base="xs:integer">
          <xs:maxInclusive value="1000"/>
       </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:complexType name="myComplexType">
      <xs:attribute ref="mybaseattribute"/>
    </xs:complexType>
    

    Необязательно.

  • тип
    Имя встроенного типа данных или простого типа данных, определенного в этой схеме (или другой схеме, указанной конкретным пространством имен). Тип должен быть именем QName. Этот тип может включать префикс пространства имен. Атрибут type может присутствовать, только если в содержимом не содержится элемент simpleType.

    Необязательно.

  • use
    Указывает, как используется атрибут.

    Если этот атрибут указан, то он должен принять одно из следующих значений.

    необязательные

    Атрибут является необязательным и может принимать любое значение. Это значение по умолчанию. Следующие примеры эквивалентны.

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

    prohibited

    Атрибут нельзя использовать. Этот атрибут используется в ограничении другого сложного типа, чтобы запретить использование существующих атрибутов.

    <xs:complexType name="A">
      <xs:attribute name="x" type="xs:NCName"/>
      <xs:attribute name="y" type="xs:QName"/>
     </xs:complexType>
    

    <xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType>

    required

    Атрибут должен отобразиться один раз.

    Атрибут необходим и может принимать любое значение, допускаемое определением типа этого атрибута.

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

    Атрибут используется в ограничении или расширении другого сложного типа, он требует существования конкретного атрибута или атрибутов.

    <xs:complexType name="A">
      <xs:attribute name="x" type="xs:NCName"/>
      <xs:attribute name="y" type="xs:QName"/>
     </xs:complexType>
    

    <xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType>

    Если атрибут объявлен как глобальный (его родителем является элемент schema), то он необходим во всех элементах схемы.

    Необязательно.

Сведения об элементе

Количество вхождений

Определяется один раз в элементе schema. На него несколько раз ссылаются в сложных типах или группах атрибутов.

Родительские элементы

attributeGroup, schema, complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent)

Описание

annotation, simpleType

Заметки

Объявление атрибута связывает имя с типом определения, которое может быть встроенным типом данных или простым типом.

Объявления атрибутов могут присутствовать в качестве элементов, дочерних по отношению к элементам schema, complexType и attributeGroup (имеющих глобальную область), или внутри определений сложных типов. Для сложных типов объявления атрибутов могут присутствовать в качестве локальных объявлений или ссылок на атрибуты с глобальной областью.

Кроме того, атрибуты могут отображаться с помощью ссылки внутри элементов attributeGroup и complexType.

Примеры

В следующем примере атрибут объявляется с помощью ссылки на встроенный тип со значением по умолчанию test и используется в элементе complexType.

<xs:attribute name="mybaseattribute" type="xs:string" default="test" />
<xs:complexType name="myComplexType">
  <xs:attribute ref="mybaseattribute"/>
</xs:complexType>

В следующем примере атрибут required объявляется напрямую внутри элемента complexType.

<xs:complexType name="myComplexType">
  <xs:attribute name="mybaseattribute" type="xs:string" use="required"/>
</xs:complexType>

В следующем примере атрибут объявляется путем создания производной от встроенного целочисленного типа (в соответствии с ограничением). Значения атрибута ограничены диапазоном между "60" и "95" включительно.

<xs:attribute name="myHolidayLocationTemperature">
  <xs:simpleType>
   <xs:restriction base="xs:integer">
    <xs:minInclusive value="60"/>
    <xs:maxInclusive value="95"/>
   </xs:restriction>
  </xs:simpleType>
</xs:attribute>

В следующем примере атрибут объявляется в качестве списка, содержащего десятичные значения. (Таким образом, допускается атрибут shoeSizes="10.5 9 8 11", содержащий список значений 10.5, 9, 8 и 11.)

<xs:simpleType name="Sizes">
      <xs:restriction base="xs:decimal">
         <xs:enumeration value="10.5"/>
         <xs:enumeration value="9"/>
         <xs:enumeration value="8"/>
         <xs:enumeration value="11"/>
      </xs:restriction>
   </xs:simpleType>   

   <xs:attribute name="shoeSizes">
      <xs:simpleType>
         <xs:list itemType="Sizes"/>
      </xs:simpleType>
   </xs:attribute>

Другие ресурсы

Дополнительные сведения см. в документе «Рекомендация W3C по схемам XML, часть 1: структуры» по адресу www.w3.org/TR/2001/REC-xmlschema-1-20010502/\#element-all.

См. также

Ссылки

Справочник по XML-схемам (XSD)

Элементы XML-схемы