Compartilhar via


<xsd:redefine> Element

Allows simple and complex types, groups, and attribute groups that are obtained from external schema files to be redefined in the current schema.

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

Attributes

  • id
    The ID of this element. The id value must be of type ID and be unique within the document containing this element.

    Optional.

  • schemaLocation
    A URI reference to the location of a schema document.

    Required.

Element Information

Number of occurrences

Unlimited

Parent elements

schema

Contents

annotation, attributeGroup, complexType, group, simpleType

Remarks

The redefine element requires that the external elements exist in the same target namespace as the redefining schema. Schemas without a namespace can also be redefined using the redefine element and the redefined components become part of the schema's target namespace.

The definitions within the redefine element itself must use their current definitions as the base type definition. Attribute group definitions and model group definitions must include exactly one reference to themselves. Not all of the definitions of the redefined schema document must be redefined.

Redefining elements can cause unexpected results, such as ill-formed definitions, on other type definitions that are based on the redefined definitions.

Example

The following example shows a schema, v2.xsd, with elements specified by the v1.xsd. The personName type is redefined. According to this schema, elements constrained by the personName type may end with a generation element.

<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"/>

Other Resources

For more information see the W3C XML Schema Part 1: Structures Recommendation at www.w3.org/TR/2001/REC-xmlschema-1-20010502/\#element-all.

See Also

Reference

XML Schemas (XSD) Reference
XML Schema Elements