XSD элемент schema

Элемент schema определяет корневой элемент XML схемы.

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

Синтаксис элемента


<schema
 id=идентификатор
 attributeFormDefault=qualified | unqualified
 elementFormDefault=qualified | unqualified
 blockDefault=(#all | список из (extension | restriction | substitution))
 finalDefault=(#all | список из (extension | restriction | list | union))
 targetNamespace=anyURI
 version=token
 xmlns=anyURI
 любые атрибуты
 >

 ((include | import | redefine | annotation)*, (((simpleType | complexType |
 group | attributeGroup) | element | attribute | notation), annotation*)*)

</schema>

Атрибуты элемента

АтрибутОписание
idНе обязательный. Определяет уникальный идентификатор для элемента
attributeFormDefaultНе обязательный. Определяет форму атрибутов, декларированных в целевом пространстве имен данной схемы. Может принимать значение "qualified" или "unqualified". Значение по умолчанию "unqualified". Значение "unqualified" указывает на то, что атрибуты из целевого пространства имен не требуют уточнения префиксом пространства имен. Значение "qualified" указывает на то, что атрибуты из целевого пространства имен должны уточняться префиксом пространства имен
elementFormDefaultНе обязательный. Определяет форму элементов, декларированных в целевом пространстве имен данной схемы. Может принимать значение "qualified" или "unqualified". Значение по умолчанию "unqualified". Значение "unqualified" указывает на то, что элементы из целевого пространства имен не требуют уточнения префиксом пространства имен. Значение "qualified" указывает на то, что элементы из целевого пространства имен должны уточняться префиксом пространства имен
blockDefault

Не обязательный. Определяет значение по умолчанию для атрибута block для элементов element и complexType в целевом пространстве имен. Запрещает использование сложного типа или элемента с определенным типом наследования на месте данного сложного типа или элемента. Может принимать значение #all или список из расширений/ограничений/замещений:

  • extension — запрещает расширять элементы при помощи расширений
  • restriction — запрещает расширять элементы при помощи ограничений
  • substitution — запрещает замещение элементов
  • #all — запрещает расширят элементы всеми методами
finalDefault

Не обязательный. Устанавливает значение по умолчанию атрибута final для элементов element, simpleType и complexType в целевом пространстве имен. Атрибут final запрещает расширять элементы по определенному методу. Для элементов element и complexType может принимать значение #all или список из расширений/ограничений. Для элементов simpleType сюда также добавляются списки и объединения:

  • extension — запрещает расширение при помощи расширений
  • restriction — запрещает расширение при помощи ограничений
  • list — запрещает расширение при помощи списка
  • union — запрещает расширение при помощи объединения
  • #all — запрещает расширение любым методом
targetNamespaceНе обязательный. URI пространства имен данной схемы
versionНе обязательный. Версия схемы
xmlnsURI, определяющая одно или больше пространств имен для использования в данной схеме. Если префикс не указан, то компоненты пространства имен схемы могут использоваться без уточнения
любые атрибутыНе обязательный. Любые другие атрибуты вне пространства имен схемы

Пример использования

Пример №1


<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="values" type="xs:string">

</xs:schema>

Пример №2
В следующем примере компоненты схемы (имя элемента, тип) в пространстве имен "http://www.w3.org/2001/XMLSchema" не уточняются, а для пространства имен "https://www.example.com/sschema" (mystring) уточняются при помощи префикса wsc:


<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
 xmlns:wsc="https://www.example.com/sschema">

<element name="fname" type="wsc:mystring"/>

</schema>