SOM (Schema Object Model) XML
Uno schema XML è uno strumento potente e complesso per la creazione e la convalida della struttura in documenti compatibili con il linguaggio XML. Analogamente alla modellazione dei dati in un database relazionale, uno schema consente di definire la struttura di documenti XML specificando gli elementi che è possibile utilizzare nei documenti, oltre alla struttura e ai tipi che tali elementi devono seguire per essere validi per quello specifico schema.
Uno schema è un file XML, generalmente con un'estensione del nome file XSD, che descrive il contenuto dei documenti XML utilizzando del linguaggio XML valido. Gli elementi e gli attributi sono dichiarati mediante gli elementi element e attribute e la struttura viene creata mediante gli elementi simpleType e complexType.
Uno schema è un documento XML che definisce una classe di documenti XML specificando la struttura o il modello dei documenti XML per un determinato schema. Uno schema identifica i vincoli sul contenuto dei documenti XML e descrive il vocabolario (regole o grammatica) che i documenti con compatibilità XML devono seguire per essere considerati validi con quel determinato schema. La convalida di un documento XML è il processo che garantisce che il documento sia conforme alla grammatica specificata dallo schema.
Rispetto ai DTD (document type definition), gli schemi presentano i seguenti vantaggi:
- Rendono disponibili tipi di dati aggiuntivi.
- Consentono di creare tipi di dati predefiniti.
- Utilizzano la sintassi XML.
- Supportano concetti orientati agli oggetti, quali il poliformismo e l'ereditarietà.
Per ulteriori informazioni sugli oggetti utilizzati all'interno di schemi XML, vedere Riferimento agli schemi XML (XSD).
Il modello SOM (Schema Object Model) fornisce un insieme di classi nello spazio dei nomi System.Xml.Schema che consente di leggere uno schema da un file o di creare a livello di codice uno schema in memoria che può essere compilato e convalidato o scritto in un file.
In questa sezione
- Cenni preliminari sul modello SOM (Schema Object Model)
Viene descritto il modello SOM (Schema Object Model) e le funzionalità e le classi fornite. Viene inoltre illustrato un diagramma della gerarchia SOM. - Lettura e scrittura di uno schema XML
Viene fornito un esempio di utilizzo del modello SOM per leggere e scrivere gli schemi del linguaggio XSD (XML Schema Definition). - Convalida e il modello SOM (Schema Object Model)
Vengono descritte le situazioni in cui gli avvisi e gli errori si verificano durante la convalida dello schema con il modello SOM e vengono fornite informazioni sull'utilizzo del delegato ValidationEventHandler. - Creazione e modifica di uno schema XML
Viene fornito un esempio di come passare al modello SOM per modificare uno schema XML. - Post-Schema-Validation Infoset (PSVI)
Vengono descritti gli insiemi di informazioni che è necessario esporre prima e dopo la convalida e il modo in cui il modello SOM li rappresenta. - Schemi deterministici e non deterministici
Viene spiegato in che modo un parser di convalida determina una sequenza per gli elementi in uno schema per determinare la struttura della convalida. - Espressioni regolari e il modello SOM (Schema Object Model)
Viene spiegato come utilizzare espressioni regolari nello schema XML per vincolare uno spazio dei valori ai valori che corrispondono a un'espressione regolare specifica. - Supporto del tipo di dati tra i tipi XSD (XML Schema) e i tipi .NET FrameworkcpconDataTypeSupportBetweenXSDTypesNETFrameworkTypes
Viene illustrata l'associazione tra i tipi di dati dello schema XML e i corrispondenti tipi .NET Framework.
Sezioni correlate
- Riferimento agli schemi XML (XSD)!ALink("xsdrefxmlschemareference")
Viene illustrato il linguaggio XSD (XML Schema Definition), così come viene definito dal World Wide Web Consortium (W3C). - Convalida dell'XML con gli schemi!ALink("cpconValidationOfXMLWithSchemas")
Viene descritta la convalida degli schemi DTD (document type definition), XDR (XML-Data Reduced) e del linguaggio XSD (XML Schema Definition) disponibili in .NET Framework.