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


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

Позволяет переопределить в текущей схеме простые и сложные типы, группы и группы атрибутов, полученные из внешних файлов схем.

<redefine
  id = ID
  schemaLocation = anyURI
  {any attributes with non-schema Namespace}...>
Content: (annotation | (simpleType | complexType | group | 
attributeGroup))*
</redefine>

Атрибуты

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

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

  • schemaLocation
    URI-ссылка на расположение схемы документа.

    Обязательный.

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

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

Без ограничений

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

схема

Описание

annotation, attributeGroup, complexType, group, simpleType

Примечания

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

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

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

Пример

В следующем примере приведена схема v2.xsd и элементы, указанные схемой v1.xsd. Тип personName переопределен. В соответствии с этой схемой элементы, ограниченные типом personName, могут завершиться элементом generation.

<xs:complexType name="personName">
 <xs:sequence>
  <xs:element name="title" minOccurs="0"/>
  <xs:element name="forename" minOccurs="0" maxOccurs="unbounded"/>
 </xs:sequence>
</xs:complexType>

<xs:element name="addressee" type="personName"/>
<xs:redefine schemaLocation="v1.xsd">
 <xs:complexType name="personName">
  <xs:complexContent>
   <xs:extension base="personName">
    <xs:sequence>
     <xs:element name="generation" minOccurs="0"/>
    </xs:sequence>
   </xs:extension>
  </xs:complexContent>
 </xs:complexType>
</xs:redefine>

<xs:element name="author" type="personName"/>

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

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

См. также

Ссылки

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

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