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>