Элемент 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>