redefine

Consente di ridefinire nello schema corrente i tipi semplici e complessi, i gruppi e i gruppi di attributi ottenuti da file di schemi esterni.

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

Attributi

  • id
    ID dell'elemento. Il valore di id deve essere di tipo ID ed essere univoco all'interno del documento che contiene l'elemento.

    Facoltativo.

  • schemaLocation
    Riferimento URI alla posizione di un documento di schema.

    Obbligatorio.

Informazioni sull'elemento

Numero di occorrenze Illimitato
Elementi padre schema
Contenuto annotation, attributeGroup, complexType, group, simpleType

Osservazioni

L'elemento redefine richiede che gli elementi esterni esistano nello stesso spazio dei nomi di destinazione dello schema che li ridefinisce. Gli schemi privi di spazio dei nomi possono essere ridefiniti anche tramite l'elemento redefine e i componenti ridefiniti diventano parte dello spazio dei nomi di destinazione dello schema.

Le definizioni contenute nell'elemento redefine devono utilizzare le definizioni correnti come definizione del tipo di base. Le definizioni di gruppi di attributi e quelle di gruppi di modelli devono includere esattamente un riferimento a se stesse. Non è necessario ridefinire tutte le definizioni del documento di schema ridefinito.

La ridefinizione di elementi può provocare risultati imprevisti, come la generazione di definizioni con formato non valido in altre definizioni di tipi basate sulle definizioni ridefinite.

Esempio

Nell'esempio che segue viene illustrato lo schema v2.xsd, che contiene elementi specificati da v1.xsd. Il tipo personName è ridefinito. In base a questo schema, gli elementi vincolati dal tipo personName possono terminare con un elemento generation.

v1.xsd:
 <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"/>

v2.xsd:
 <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"/>

Vedere anche

Informazioni di riferimento sullo schema XML (XSD) | Elementi di uno schema XML

Per ulteriori informazioni, vedere il documento del W3C dal titolo XML Schema Part 1: Structures Recommendation all'indirizzo http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/\#element-redefine/ (informazioni in lingua inglese).