Элемент any позволяет расширять XML документ элементами, не определенными схемой.
- Родительские элементы: choice, sequence
Синтаксис элемента
<any
id=идентификатор
maxOccurs=целоеЧисло | unbounded
minOccurs=целоеЧисло
namespace=пространствоИмен
processContents=lax | skip | strict
любые атрибуты
>
(annotation?)
</any>
(Знак ? указывает на то, что элемент может появляться ноль или один раз внутри элемента any.)
Атрибуты элемента
Атрибут | Описание |
---|---|
id | Не обязательный. Определяет уникальный идентификатор для элемента |
maxOccurs | Не обязательный. Определяет, сколько раз максимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0, если же нужно снять лимит на использование, то следует указать ключевое слово "unbounded". Значение по умолчанию 1 |
minOccurs | Не обязательный. Определяет, сколько раз минимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0. Значение по умолчанию 1 |
namespace | Не обязательный. Определяет пространство имен, содержащее элементы, которые можно использовать. Может принимать следующие значения:
|
processContents | Не обязательный. Определяет, как XML процессор должен обрабатывать валидацию по отношению к элементам, определенным данным элементом any. Может принимать следующие значения:
|
любые атрибуты | Не обязательный. Любые другие атрибуты вне пространства имен схемы |
Пример использования
Следующий пример демонстрирует декларацию элемента "person". Благодаря использованию элемента <any>, можно расширять (после <lastname>) содержимое элемента "person" любыми элементам:
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>