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).