XML Schema 'redefine' element

Definition and Usage

The 'redefine' element allows redefining simple and complex types, groups, and attribute groups obtained from external schema files within the current Schema.

Element information

Occurrence Unrestricted
Parent element schema
Content annotation, attributeGroup, complexType, group, simpleType

Syntax

<redefine
id=ID
schemaLocation=anyURI
any attributes
>
(annotation|(simpleType|complexType|group|attributeGroup))*
</redefine>
Attributes Description
id Optional. Specifies a unique ID for the element.
schemaLocation Required. The URI reference to the schema document location.
any attributes Optional. Specifies any other attributes with a non-schema namespace.

Instance

Example 1

The following example demonstrates a schema, Myschama2.xsd, which contains elements defined by Myschama1.xsd. The 'pname' type is redefined. According to this schema, elements constrained by 'pname' must end with the 'country' element:

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>