элемент anyAttribute XML Schema

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

элемент anyAttribute позволяет создателю расширять документ XML через атрибуты, не определенные схемой.

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

элемент объяснение
количество出现 без ограничений
родительский элемент complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent), attributeGroup
содержание annotation

грамматика

<anyAttribute
id=ID
namespace=namespace
processContents=lax|skip|strict
любые атрибуты
>
(аннотация?)
</anyAttribute>

(? знаком указывается, что элемент может появляться в элементе anyAttribute ноль или один раз.)

Свойства

id

Опционально. Определяет уникальный ID этого элемента.

namespace

Опционально. Определяет пространство имен, содержащее элементы, которые можно использовать. Если пространство имен не указано, по умолчанию используется ##any. Если указано пространство имен, оно должно быть одним из следующих значений.

  • ##any - элементы из любого пространства имен могут出现 (по умолчанию).
  • ##other - элементы из любого другого пространства имен, кроме пространства имен, содержащего этот элемент, могут出现.
  • ##local - элементы, не ограниченные пространством имен, могут出现.
  • ##targetNamespace - элементы из пространства имен, содержащего этот элемент, могут出现.
  • Список URI-ссылок на пространства имен, ##targetNamespace, ##local - элементы из списка пространств имен, разделенных пробелами, могут出现. Список может содержать следующее: URI-ссылки на пространства имен ##targetNamespace и ##local.

processContents

Опционально. Показатель, указывающий приложению или XML-претрactor, как обрабатывать валидацию XML-документа на основе элементов, указанных этим any-элементом. Если свойство processContents не указано, по умолчанию используется strict. Если указано processContents, оно должно быть одним из следующих значений.

  • strict - XML-претрactor должен получить схему необходимого пространства имен и должен проверить все элементы из этих пространств имен. (по умолчанию)
  • lax - как strict; но, даже если не можно получить схему, не будет никакой ошибки.
  • skip - XML-претрactor не проверяет все элементы из указанного пространства имен.

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

Опционально. Определяет любые другие свойства с non-schema именем пространства имен.

Пример

Ниже приведен пример объявления для элемента "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>