Cenni preliminari sul modello SOM

Il modello SOM (Schema Object Model) fornisce un insieme di classi nello spazio dei nomi System.Xml.Schema che corrisponde ed è completamente compatibile con la raccomandazione XML Schema del World Wide Web Consortium (W3C). Queste classi consentono di leggere uno schema da un file o creare a livello di codice uno schema in memoria che può essere compilato e convalidato o essere scritto in un file.

Il modello SOM offre le seguenti caratteristiche:

  • Carica e salva schemi del linguaggio XSD (XML Schema Definition) validi nei e dai file.
  • Consente di creare con facilità schemi in memoria utilizzando classi a tipizzazione forte.
  • Interagisce con la classe XmlSchemaCollection per inserire nella cache e recuperare schemi.
  • Interagisce con la classe XmlValidatingReader, attraverso la classe XmlSchemaCollection, per convalidare documenti di istanza XML rispetto agli schemi.
  • Consente agli sviluppatori degli strumenti di generare editor per la creazione e il mantenimento degli schemi.
  • Offre la capacità di modificare dinamicamente uno schema che può essere reso conforme e salvato per la convalida di documenti di istanza XML.

Le classi nello spazio dei nomi System.Xml.Schema fanno da complemento alla convalida eseguita in fase di analisi del codice realizzata da XmlValidatingReader.

La classe XmlSchema genera un modello SOM a livello di codice utilizzando le classi nello spazio dei nomi System.Xml.Schema. Il modello SOM è conforme alle regole della scrittura di documenti XML corretti illustrate nella raccomandazione Extensible Markup Language (XML) 1.0 del W3C. Il modello SOM modifica i documenti del linguaggio XSD (XML Schema Definition) in un modo simile alla modifica dei documenti XML da parte del modello DOM (Document Object Model).

La classe XmlSchema convalida gli schemi XML e ricrea le informazioni sulla convalida, l'insieme di informazioni sulla convalida post-schema (PSVI, post-schema-validation infoset) conservato per lo schema.

È possibile convalidare qualsiasi schema creato a livello di codice utilizzando il metodo Compile della classe XmlSchema. Il metodo Compile viene utilizzato per verificare che lo schema sia semanticamente corretto. Esso controlla, ad esempio, che la struttura dello schema XML sia corretta, verifica che i vincoli siano applicati correttamente e che i tipi siano derivati correttamente.

Durante la convalida, una callback di convalida viene utilizzata se il parser produce un avviso o un errore. ValidationEventHandler per il metodo Compile viene utilizzato per il controllo della convalida semantica dello schema XML.

Oltre a generare schemi, è possibile anche caricarli da un file utilizzando il metodo XmlSchema.Read. ValidationEventHandler viene chiamato quando qualsiasi errore di convalida sintattica o semantica si verifica durante una lettura con il metodo XmlSchema.Read. Per ulteriori informazioni, vedere Callback del gestore eventi della convalida XmlValidatingReader.

Gerarchia SOM

Nel diagramma che segue viene illustrata la gerarchia della classe del modello SOM (Schema Object Model).

Gerarchia della classe SOM (Schema Object Model)

Vedere anche

SOM (Schema Object Model) XML | Riferimento agli schemi XML (XSD) | Convalida dell'XML con gli schemi