Supporto dell'associazione all'elemento extension
Questo argomento è specifico di una tecnologia legacy. Servizi Web XML e client di servizi Web XML devono essere creati attualmente tramite Windows Communication Foundation.
In .NET Framework è incluso un supporto per l'associazione all'elemento <extension>.
Lo strumento Xsd.exe genera una classe base che corrisponde al valore dell'attributo base, solo per il contenuto complesso, non per il contenuto semplice.
Descrizione
Il linguaggio XSD (XML Schema Definition) consente la derivazione di nuovi tipi di dati dai tipi base sia mediante estensione che mediante restrizione. L'estensione viene utilizzata sempre per la derivazione di tipi complessi e si può basare sul contenuto semplice o sul contenuto complesso con le differenze seguenti:
Contenuto semplice: utilizza l'XPath
complexType/simpleContent/extension
. Il tipo complesso derivato non contiene elementi figlio, solo contenuto semplice, ovvero attributi o testo del corpo o entrambi.Contenuto complesso: utilizza l'XPath
complexType/complexContent/extension
. Sia i tipi complessi base che quelli derivati contengono elementi figlio. Possono contenere anche attributi e testo del corpo.
Le estensioni di tipo XML Schema vengono sempre espresse in maniera esplicita mediante le definizioni di classe in .NET Framework. Di seguito vengono illustrate le diverse modalità di generazione di codice sorgente da un documento XML Schema che dipendono dal contenuto sul quale si basa l'estensione, ovvero semplice o complesso.
Contenuto semplice: Xsd.exe produce una nuova classe con un campo pubblico di un tipo corrispondente al tipo di dati base, specificato dall'attributo base dell'elemento <extension>.
Contenuto complesso: Xsd.exe produce una classe che corrisponde al tipo di dati base, specificato dall'attributo base dell'elemento <extension>, e una classe per il tipo di dati derivato. L'ultima classe eredita dalla prima mediante una dichiarazione di classe quale la seguente:
public class DerivedClass : BaseClass
.
In una riconversione dallo schema XML alle classi e viceversa in un nuovo documento XML Schema Xsd.exe conserverebbe entrambi i tipi di estensione.
Per un esempio di estensione di contenuto semplice, vedere l'elemento <simpleContent>.
Attributi possibili | Supporto per l'associazione |
---|---|
base |
L'elemento <extension> richiede un attributo base il cui valore è rappresentato dal nome completo del tipo di dati base. Per l'estensione di contenuto complesso, lo strumento Xsd.exe produce un campo pubblico dal valore dell'attributo base. Per l'estensione di contenuto complesso, Xsd.exe produce una classe base dal valore base. Vedere il testo precedente. |
id |
L'utilità Xsd.exe ignora l'attributo id che fornisce un identificatore univoco. |
Elementi padre possibili: <complexContent>, <simpleContent>
Elementi figlio possibili: <all>, <annotation>, <anyAttribute>, <attribute>, <attributeGroup>, <choice>, <group>, <sequence>
Vedere anche
Riferimento
XmlSchemaComplexContentExtension
XmlSchemaSimpleContentExtension