Condividi tramite


XmlWriterSettings.ConformanceLevel Proprietà

Definizione

Ottiene o imposta il livello di conformità per cui il writer XML controlla l'output XML.

public:
 property System::Xml::ConformanceLevel ConformanceLevel { System::Xml::ConformanceLevel get(); void set(System::Xml::ConformanceLevel value); };
public System.Xml.ConformanceLevel ConformanceLevel { get; set; }
member this.ConformanceLevel : System.Xml.ConformanceLevel with get, set
Public Property ConformanceLevel As ConformanceLevel

Valore della proprietà

Uno dei valori di enumerazione che specifica il livello di conformità (documento, frammento o rilevamento automatico). Il valore predefinito è Document.

Esempio

Nell'esempio seguente viene scritto un frammento XML in un flusso di memoria.

XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.CloseOutput = false;

// Create the XmlWriter object and write some content.
MemoryStream strm = new MemoryStream();
XmlWriter writer = XmlWriter.Create(strm, settings);
writer.WriteElementString("orderID", "1-456-ab");
writer.WriteElementString("orderID", "2-36-00a");
writer.Flush();
writer.Close();

// Do additional processing on the stream.
Dim settings As XmlWriterSettings = New XmlWriterSettings()
settings.OmitXmlDeclaration = true
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.CloseOutput = false

' Create the XmlWriter object and write some content.
Dim strm as MemoryStream = new MemoryStream()
Dim writer As XmlWriter = XmlWriter.Create(strm, settings)
writer.WriteElementString("orderID", "1-456-ab")
writer.WriteElementString("orderID", "2-36-00a")
writer.Flush()
writer.Close()

' Do additional processing on the stream.

Commenti

La XmlWriterSettings.ConformanceLevel proprietà configura il writer XML per verificare e garantire che il flusso scritto sia conforme a un determinato set di regole. È possibile controllare i dati XML per verificare che siano conformi alle regole per un documento XML 1.0 ben formato o un frammento di documento. Nella tabella seguente vengono descritte le tre impostazioni. Il valore predefinito è la conformità a livello di documento.

Impostazione Descrizione
Document Assicura che l'output XML sia conforme alle regole per un documento XML 1.0 ben formato e possa essere elaborato da qualsiasi processore conforme.

I controlli di conformità del documento includono la maggior parte dei controlli a livello di frammento e assicurarsi anche quanto segue:

- L'elemento di primo livello non include nodi diversi da Dichiarazione XML, DTD, elemento, commento, spazio vuoto o istruzione di elaborazione.
- I dati XML hanno un solo nodo elemento di primo livello.

Il writer XML non analizza le informazioni DTD scritte. L'utente è responsabile di garantire che il DTD sia ben formato.
Fragment Assicura che l'output XML sia conforme alle regole per un frammento di documento XML 1.0 ben formato.

Questa impostazione accetta dati XML con più elementi radice o nodi di testo al livello superiore. Questo livello di controllo garantisce che qualsiasi processore possa utilizzare il flusso letto come entità analizzata esterna XML 1.0.

Le informazioni DTD non sono consentite nei frammenti di documento.
Auto Specifica che il writer XML deve determinare il livello di controllo della conformità in base ai dati in ingresso. Questa impostazione può essere utile quando non si sa se il codice XML generato sarà un documento XML ben formato o un frammento.

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

- Se viene chiamato il WriteStartDocument metodo .
- Se vengono scritte informazioni DTD.

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

- Nodo Text, CDATA o EntityReference a livello radice.
- Più di un elemento a livello radice.
- Nessun elemento a livello radice.

Viene XmlException generata un'eccezione se si verifica un conflitto, ad esempio quando si tenta di scrivere un nodo di testo e un DTD a livello radice.

Se si esegue il wrapping di un altro XmlWriter oggetto, l'oggetto esterno non esegue alcun controllo di conformità aggiuntivo. Questa operazione viene lasciata all'oggetto sottostante.

Se il writer XML rileva eventuali informazioni che violano il livello di conformità specificato, genera un'eccezione. In alcuni casi, il writer XML corregge automaticamente l'errore di conformità. Ad esempio, il writer chiude un attributo non chiuso senza generare un'eccezione. Nella tabella seguente viene illustrato come vengono gestite varie violazioni di conformità in ogni impostazione.

Condition Document Fragment Auto
Vengono trovate informazioni DTD. Non una violazione per questa impostazione. Tuttavia, il writer XML non controlla il DTD; l'utente deve assicurarsi che il DTD sia ben formato. XmlException viene generata. Viene applicato il controllo della conformità del documento.
Si chiama WriteStartDocument. Non considerata una violazione per questa impostazione. XmlException viene generata. Viene applicato il controllo della conformità del documento.
WriteStartDocument viene chiamato più volte. XmlException viene generata. XmlException viene generata. XmlException viene generata.
Un valore di testo viene visualizzato al livello superiore (non al di sotto di un nodo di elemento o attributo). XmlException viene generata. Non considerata una violazione. Viene applicato il controllo della conformità del frammento.
Più elementi o nessun elemento viene visualizzato al livello superiore. XmlException viene generata. Non considerata una violazione. Viene applicato il controllo della conformità del frammento.
L'elemento di primo livello è uno spazio vuoto. Non considerata una violazione. Non considerata una violazione. Non considerata una violazione.
WriteEndAttribute non viene chiamato per terminare un nodo di attributo. Corretto dal writer XML. Corretto dal writer XML. Corretto dal writer XML.
Il writer XML si trova in uno stato annidato in modo non corretto, ad esempio una WriteStartElement chiamata è seguita da un oggetto WriteEndAttribute. XmlException viene generata. XmlException viene generata. XmlException viene generata.
L'elemento di primo livello è un attributo. XmlException viene generata. XmlException viene generata. XmlException viene generata.
Vengono trovati più nodi di testo contigui. Non considerata una violazione, ma è responsabilità dell'utente concatenare i nodi di testo. Non considerata una violazione, ma è responsabilità dell'utente concatenare i nodi di testo. Non considerata una violazione, ma è responsabilità dell'utente concatenare i nodi di testo.
Lo stesso prefisso dello spazio dei nomi viene dichiarato due volte in un elemento. Il writer XML genera un nuovo prefisso per il secondo spazio dei nomi. Il writer XML genera un nuovo prefisso per il secondo spazio dei nomi. Il writer XML genera un nuovo prefisso per il secondo spazio dei nomi.
WriteStartElement specifica un prefisso e uno spazio dei nomi che non viene dichiarato all'interno di tale ambito oppure il prefisso è associato a uno spazio dei nomi diverso. Il writer XML scrive il nodo dello spazio dei nomi necessario. Il writer XML scrive il nodo dello spazio dei nomi necessario. Il writer XML scrive il nodo dello spazio dei nomi necessario.
WriteStartAttribute specifica un prefisso e uno spazio dei nomi che non è dichiarato all'interno di tale ambito. Il writer XML scrive il nodo dello spazio dei nomi necessario. Il writer XML scrive il nodo dello spazio dei nomi necessario. Il writer XML scrive il nodo dello spazio dei nomi necessario.
WriteStartAttribute specifica un prefisso e uno spazio dei nomi, ma il prefisso è associato a uno spazio dei nomi in ambito diverso. Il writer XML ignora il prefisso specificato e cerca il prefisso corretto o genera un nuovo prefisso. Il writer XML ignora il prefisso specificato e cerca il prefisso corretto o genera un nuovo prefisso. Il writer XML ignora il prefisso specificato e cerca il prefisso corretto o genera un nuovo prefisso.
WriteQualifiedName viene usato per scrivere contenuto di elementi usando uno spazio dei nomi che non esiste all'interno dell'ambito. XmlException viene generata. XmlException viene generata. XmlException viene generata.
WriteQualifiedName viene usato per scrivere contenuto di attributi usando uno spazio dei nomi che non esiste all'interno dell'ambito. Il writer XML scrive la dichiarazione dello spazio dei nomi necessaria. Il writer XML scrive la dichiarazione dello spazio dei nomi necessaria. Il writer XML scrive la dichiarazione dello spazio dei nomi necessaria.
L'attributo xml:space non contiene un valore valido. XmlException viene generata. XmlException viene generata. XmlException viene generata.
Viene rilevato un nome non valido. XmlException viene generata. XmlException viene generata. XmlException viene generata.
Il xml prefisso non corrisponde a un URI. Il writer XML non verifica la presenza di questo tipo di violazione. Il writer XML non verifica la presenza di questo tipo di violazione. Il writer XML non verifica la presenza di questo tipo di violazione.
Il xml prefisso non corrisponde all'URI http://www.w3.org/XML/1998/namespace . XmlException viene generata. XmlException viene generata. XmlException viene generata.
Il prefisso o il xmlns nome locale non corrisponde a un URI. Il writer XML non verifica la presenza di questo tipo di violazione. Il writer XML non verifica la presenza di questo tipo di violazione. Il writer XML non verifica la presenza di questo tipo di violazione.
Il xmlns prefisso o il nome locale non corrisponde all'URI http://www.w3.org/2000/xmlns . XmlException viene generata. XmlException viene generata. XmlException viene generata.

Si applica a