XmlWriterSettings.ConformanceLevel Propriété

Définition

Obtient ou définit le niveau de conformité de vérification de sortie XML du writer 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

Valeur de propriété

ConformanceLevel

Une des valeurs d'énumération qui spécifie le niveau de conformité (document, fragment ou détection automatique). La valeur par défaut est Document.

Exemples

L’exemple suivant écrit un fragment XML dans un flux de mémoire.

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.

Remarques

La XmlWriterSettings.ConformanceLevel propriété configure l’enregistreur XML pour vérifier et garantir que le flux en cours d’écriture est conforme à un certain ensemble de règles. Les données XML peuvent être vérifiées pour voir qu’elles sont conformes aux règles d’un document XML 1.0 bien formé ou d’un fragment de document. Le tableau suivant décrit les trois paramètres. La valeur par défaut est la conformité au niveau du document.

Paramètre Description
Document Garantit que la sortie XML est conforme aux règles d’un document XML 1.0 bien formé et peut être traitée par n’importe quel processeur conforme.

Les vérifications de conformité du document incluent la plupart des vérifications au niveau des fragments et garantissent également les éléments suivants :

- L’élément de niveau supérieur n’a pas de nœuds autres que la déclaration XML, DTD, l’élément, le commentaire, l’espace blanc ou l’instruction de traitement.
- Les données XML ont un seul nœud d’élément de niveau supérieur.

L’enregistreur XML n’analyse pas les informations DTD écrites. L’utilisateur est chargé de s’assurer que le DTD est bien formé.
Fragment Garantit que la sortie XML est conforme aux règles d’un fragment de document XML 1.0 bien formé.

Ce paramètre accepte les données XML qui ont plusieurs éléments racines ou nœuds de texte au niveau supérieur. Ce niveau de vérification assure que tout processeur peut utiliser le flux en lecture comme une entité externe XML 1.0 analysée.

Les informations DTD ne sont pas autorisées dans les fragments de document.
Auto Spécifie que l’enregistreur XML doit déterminer le niveau de vérification de conformité en fonction des données entrantes. Ce paramètre peut être utile lorsque vous ne savez pas si le code XML généré sera un document XML bien formé ou un fragment.

Le contrôle de conformité du document s'applique dans les cas suivants :

- Si la WriteStartDocument méthode est appelée.
- Si les informations DTD sont écrites.

La vérification de la conformité des fragments est appliquée si les données XML contiennent l’une des opérations suivantes :

- Texte, CDATA ou nœud EntityReference au niveau racine.
- Plus d’un élément au niveau racine.
- Aucun élément au niveau racine.

Un objet XmlException est levé en cas de conflit, par exemple vous tentez d'écrire un nœud de texte ou une DTD au niveau de la racine.

Si vous encapsulez un autre XmlWriter objet, l’objet externe n’effectue aucune vérification de conformité supplémentaire ; il est laissé à l’objet sous-jacent.

Si l’enregistreur XML détecte des informations qui ne respectent pas le niveau de conformité spécifié, elle lève une exception. Dans certains cas, l’enregistreur XML corrige automatiquement l’erreur de conformité. Par exemple, l’enregistreur ferme un attribut non fermé sans lever d’exception. Le tableau suivant montre comment diverses violations de conformité sont gérées dans chaque paramètre.

Condition Document Fragment Auto
Les informations DTD sont trouvées. Pas une violation pour ce paramètre. Toutefois, l’enregistreur XML ne vérifie pas la DTD ; l’utilisateur doit s’assurer que le DTD est bien formé. XmlException est levée. La vérification de la conformité des documents est appliquée.
WriteStartDocument est appelée. Non considéré comme une violation pour ce paramètre. XmlException est levée. La vérification de la conformité des documents est appliquée.
WriteStartDocument est appelé plusieurs fois. XmlException est levée. XmlException est levée. XmlException est levée.
Une valeur de texte apparaît au niveau supérieur (pas sous un nœud d’élément ou d’attribut). XmlException est levée. Non considéré comme une violation. La vérification de conformité de fragment est appliquée.
Plusieurs éléments ou aucun élément n’apparaissent au niveau supérieur. XmlException est levée. Non considéré comme une violation. La vérification de conformité de fragment est appliquée.
L’élément de niveau supérieur est un espace blanc. Non considéré comme une violation. Non considéré comme une violation. Non considéré comme une violation.
WriteEndAttribute n’est pas appelé pour mettre fin à un nœud d’attribut. Correction par l’enregistreur XML. Correction par l’enregistreur XML. Correction par l’enregistreur XML.
L’enregistreur XML est dans un état imbriqué de manière incorrecte (par exemple, un WriteStartElement appel est suivi d’un WriteEndAttribute). XmlException est levée. XmlException est levée. XmlException est levée.
L’élément de niveau supérieur est un attribut. XmlException est levée. XmlException est levée. XmlException est levée.
Plusieurs nœuds de texte contigus sont détectés. Non considéré comme une violation, mais il incombe à l’utilisateur de concaténer les nœuds de texte. Non considéré comme une violation, mais il incombe à l’utilisateur de concaténer les nœuds de texte. Non considéré comme une violation, mais il incombe à l’utilisateur de concaténer les nœuds de texte.
Le même préfixe d'espace de noms est déclaré deux fois dans un élément. L’enregistreur XML génère un nouveau préfixe pour le deuxième espace de noms. L’enregistreur XML génère un nouveau préfixe pour le deuxième espace de noms. L’enregistreur XML génère un nouveau préfixe pour le deuxième espace de noms.
WriteStartElement spécifie un préfixe et un espace de noms qui n’est pas déclaré dans cette étendue, ou le préfixe est associé à un autre espace de noms. L’enregistreur XML écrit le nœud d’espace de noms nécessaire. L’enregistreur XML écrit le nœud d’espace de noms nécessaire. L’enregistreur XML écrit le nœud d’espace de noms nécessaire.
WriteStartAttribute spécifie un préfixe et un espace de noms qui n’est pas déclaré dans cette étendue. L’enregistreur XML écrit le nœud d’espace de noms nécessaire. L’enregistreur XML écrit le nœud d’espace de noms nécessaire. L’enregistreur XML écrit le nœud d’espace de noms nécessaire.
WriteStartAttribute spécifie un préfixe et un espace de noms, mais le préfixe est associé à un autre espace de noms dans l’étendue. L’enregistreur XML ignore le préfixe spécifié et recherche le préfixe correct ou génère un nouveau préfixe. L’enregistreur XML ignore le préfixe spécifié et recherche le préfixe correct ou génère un nouveau préfixe. L’enregistreur XML ignore le préfixe spécifié et recherche le préfixe correct ou génère un nouveau préfixe.
WriteQualifiedName est utilisé pour écrire du contenu d’élément à l’aide d’un espace de noms qui n’existe pas dans l’étendue. XmlException est levée. XmlException est levée. XmlException est levée.
WriteQualifiedName est utilisé pour écrire du contenu d’attribut à l’aide d’un espace de noms qui n’existe pas dans l’étendue. L’enregistreur XML écrit la déclaration d’espace de noms nécessaire. L’enregistreur XML écrit la déclaration d’espace de noms nécessaire. L’enregistreur XML écrit la déclaration d’espace de noms nécessaire.
L’attribut xml:space ne contient pas de valeur valide. XmlException est levée. XmlException est levée. XmlException est levée.
Un nom non valide est détecté. XmlException est levée. XmlException est levée. XmlException est levée.
Le xml préfixe n’est pas mis en correspondance avec un URI. L’enregistreur XML ne vérifie pas ce type de violation. L’enregistreur XML ne vérifie pas ce type de violation. L’enregistreur XML ne vérifie pas ce type de violation.
Le xml préfixe n’est pas mis en correspondance avec l’URI http://www.w3.org/XML/1998/namespace . XmlException est levée. XmlException est levée. XmlException est levée.
Le préfixe ou le xmlns nom local n’est pas mis en correspondance avec un URI. L’enregistreur XML ne vérifie pas ce type de violation. L’enregistreur XML ne vérifie pas ce type de violation. L’enregistreur XML ne vérifie pas ce type de violation.
Le xmlns préfixe ou le nom local n’est pas mis en correspondance avec l’URI http://www.w3.org/2000/xmlns . XmlException est levée. XmlException est levée. XmlException est levée.

S’applique à