XSD элемент redefine

Элемент redefine переопределяет простые и сложные типы, группы элементов и атрибутов из внешней схемы.

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

Синтаксис


<redefine
 id=идентификатор
 schemaLocation=anyURI
 любые атрибуты
 >

 (annotation | (simpleType | complexType | group | attributeGroup))*

</redefine>

(Знак * указывает на то, что элемент может появляться ноль, один или больше раз внутри элемента redefine.)

Атрибуты

Атрибут Описание
id Не обязательный. Определяет уникальный идентификатор для элемента
schemaLocation Обязательный. Определяет URI схемы документа
любые атрибуты Не обязательный. Любые другие атрибуты вне пространства имен схемы

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

Следующий пример показывает схему Myschama2.xsd с элементами, определяемыми схемой Myschama1.xsd. Тип "pname" переопределяется. Согласно этой схеме, элементы, имеющие тип "pname", должны заканчиваться элементом "country":

Myschema1.xsd:


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

<xs:complexType name="pname">
   <xs:sequence>
     <xs:element name="firstname"/>
     <xs:element name="lastname"/>
   </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="pname"/>

</xs:schema>

Myschema2.xsd:


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

<xs:redefine schemaLocation="Myschema1.xsd">
   <xs:complexType name="pname">
     <xs:complexContent>
       <xs:extension base="pname">
         <xs:sequence>
           <xs:element name="country"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
</xs:redefine>

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

</xs:schema>