Conformità dei dati e XmlWriter

La classe XmlWriter include due impostazioni per il controllo della conformità. È possibile impostare il tipo XmlWriter per controllare la conformità dei dati scritti.

Impostazione di CheckCharacters

La proprietà XmlWriterSettings.CheckCharacters indica al writer di controllare i caratteri e generare un tipo XmlException se i caratteri non sono compresi nell'intervallo dei caratteri XML validi. Se il controllo dei caratteri è abilitato, tutti i caratteri nel documento saranno compresi nell'intervallo dei caratteri XML validi definito dalla raccomandazione W3C XML 1.0 (informazioni in lingua inglese).

NotaNota

Il controllo dei caratteri non include il controllo dei caratteri non validi nei nomi XML né il controllo che tali nomi siano validi.Il controllo dei nomi è una parte standard del controllo della conformità.Per ulteriori informazioni, vedere all'indirizzo http://www.w3.org/TR/REC-xml#NT-Name (informazioni in lingua inglese).

Per impostazione predefinita, il controllo dei caratteri è abilitato.

Impostazione di ConformanceLevel

La proprietà XmlWriterSettings.ConformanceLevel consente di configurare il tipo XmlWriter per controllare e garantire che il flusso di dati letti sia conforme a uno specifico set di regole. In base al livello di conformità specificato, è possibile controllare i dati XML per verificare che siano conformi alle regole per un documento o un frammento di documento XML 1.0 in formato corretto. Se i dati non sono conformi, verrà generato un tipo XmlException o ArgumentException. L'impostazione predefinita è ConformanceLevel.Document.

NotaNota

Se il writer è configurato per supportare ConformanceLevel.Fragment, ma i dati XML contengono una definizione del tipo di documento (DTD), viene generata un'eccezione.La raccomandazione XML 1.0 richiede la conformità a livello di documento in presenza di una DTD.Pertanto, anche se viene chiamato il metodo WriteStartDocument su un writer configurato per supportare ConformanceLevel.Fragment, verrà generata un'eccezione.

Livello di conformità

Descrizione

Document

Questa impostazione garantisce che l'output sia conforme alle regole per un documento XML 1.0 in formato corretto e che possa essere elaborato da qualsiasi processore conforme.

NotaNota
Il writer non esegue l'analisi delle informazioni sulla DTD che vengono scritte.È responsabilità dell'utente garantire che la DTD sia in formato corretto.

Fragment

I dati XML sono conformi alle regole per un frammento di documento XML 1.0 in formato corretto.

Con questa impostazione vengono accettati i dati XML con più elementi radice o i nodi di tipo text al livello principale. Questo livello di controllo assicura che qualunque processore possa utilizzare il flusso di dati letto come un'entità analizzata esterna XML 1.0.

NotaNota
La DTD non è consentita nei frammenti.

Auto

Il writer stabilisce il livello di controllo della conformità da applicare in base ai dati in arrivo. Questa impostazione può essere utile quando non si può stabilire se l'XML generato sarà un documento o un frammento XML in formato corretto.

Il controllo della conformità del documento viene applicato nei seguenti casi:

Il controllo di conformità del frammento viene applicato se i dati XML contengono uno degli elementi seguenti:

  • Nodo di tipo text, CDATA o EntityReference a livello radice.

  • Più di un elemento a livello radice.

  • Nessun elemento a livello radice.

Viene generato un tipo XmlException se si verifica un conflitto, ad esempio quando si tenta di scrivere un nodo di tipo text e una DTD a livello radice.

È possibile utilizzare questa impostazione in scenari di ritorno a capo quando viene utilizzato il metodo Create per aggiungere ulteriori funzionalità a un writer esistente. In questo caso il livello ConformanceLevel.Auto non aggiunge nuovi controlli di conformità. Il controllo di conformità è affidato al writer che esegue il ritorno a capo.

Vedere anche

Altre risorse

Scrittura di XML con XmlWriter