XmlReaderSettings.ConformanceLevel Eigenschap

Definitie

Hiermee haalt u het nalevingsniveau op waarmee het XmlReader voldoet.

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

Waarde van eigenschap

Een van de opsommingswaarden die het nalevingsniveau aangeeft dat door de XML-lezer wordt afgedwongen. De standaardwaarde is Document.

Voorbeelden

In het volgende voorbeeld wordt een XmlReader object gemaakt waarmee een XML-fragment wordt gelezen.

string xmlFrag ="<item rk:ID='abc-23'>hammer</item> " +
                        "<item rk:ID='r2-435'>paint</item>" +
                        "<item rk:ID='abc-39'>saw</item>";

// Create the XmlNamespaceManager.
NameTable nt = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
nsmgr.AddNamespace("rk", "urn:store-items");

// Create the XmlParserContext.
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);

// Create the reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
XmlReader reader = XmlReader.Create(new StringReader(xmlFrag), settings, context);
Dim xmlFrag As String = "<item rk:ID='abc-23'>hammer</item> " & _
                                     "<item rk:ID='r2-435'>paint</item>" & _
                                     "<item rk:ID='abc-39'>saw</item>"

' Create the XmlNamespaceManager.
Dim nt As New NameTable()
Dim nsmgr As New XmlNamespaceManager(nt)
nsmgr.AddNamespace("rk", "urn:store-items")

' Create the XmlParserContext.
Dim context As New XmlParserContext(Nothing, nsmgr, Nothing, XmlSpace.None)

' Create the reader. 
Dim settings As New XmlReaderSettings()
settings.ConformanceLevel = ConformanceLevel.Fragment
Dim reader As XmlReader = XmlReader.Create(New StringReader(xmlFrag), settings, context)

Opmerkingen

XML-lezers die door de Create methode worden gemaakt, voldoen standaard aan de volgende nalevingsvereisten:

  • Nieuwe regels en kenmerkwaarden worden genormaliseerd volgens de W3C XML 1.0-aanbeveling.

  • Alle entiteiten worden automatisch uitgebreid.

  • Standaardkenmerken die zijn gedeclareerd in de definitie van het documenttype, worden altijd toegevoegd, zelfs wanneer de lezer niet valideert.

  • Declaratie van XML-voorvoegsel dat is toegewezen aan de juiste XML-naamruimte-URI is toegestaan.

  • De notatienamen in één NotationType kenmerkdeclaratie en NmTokens in één Enumeration kenmerkdeclaratie zijn verschillend.

U kunt de ConformanceLevel eigenschap gebruiken om te controleren of de stroom wordt gelezen voldoet aan de regels voor een goed opgemaakt XML 1.0-document of documentfragment. Als de gegevens niet voldoen, wordt er een XmlException uitzondering gegenereerd. De standaardwaarde is ConformanceLevel.Document (conformiteit op documentniveau).

De drie nalevingsniveaus zijn:

Setting Description
Document Zorgt ervoor dat de XML-gegevens voldoen aan de regels voor een goed opgemaakt XML 1.0-document. Dit controleniveau zorgt ervoor dat elke processor de stroom kan gebruiken die wordt gelezen als een goed opgemaakt XML 1.0-document.

De lezer controleert op het volgende:

- Het item op het hoogste niveau mag geen andere knooppunten hebben dan XML-declaratie, documenttypedefinitie (DTD), element, opmerking, witruimte of verwerkingsinstructie.
- De XML-gegevens moeten precies één elementknooppunt op het hoogste niveau hebben.
Fragment Zorgt ervoor dat de XML-gegevens voldoen aan de regels voor een goed opgemaakt XML 1.0-documentfragment.

Deze instelling accepteert XML-gegevens met meerdere hoofdelementen of tekstknooppunten op het hoogste niveau. Dit controleniveau zorgt ervoor dat elke processor de stroom kan gebruiken die wordt gelezen als een externe geparseerde entiteit.
Auto Hiermee geeft u op dat de lezer het nalevingsniveau moet bepalen op basis van de binnenkomende gegevens.

Controle van documentconformance wordt toegepast als de XML-gegevens DTD-informatie bevatten.

Controle van fragmentconformantie wordt toegepast als de XML-gegevens een van de volgende items bevatten:

- Tekst-, CDATA- of entiteitsverwijzingsknooppunt op hoofdniveau.
- Meer dan één element op hoofdniveau.
- Geen element op hoofdniveau.

Er XmlException wordt een gegenereerd als er een conflict is, zoals wanneer er een tekstknooppunt en een DTD op het hoofdniveau zijn.

Deze instelling kan worden gebruikt in wrappingscenario's wanneer de Create methode wordt gebruikt om extra functies toe te voegen aan een bestaande XmlReader. In dit geval ConformanceLevel.Document voegt u geen nieuwe nalevingscontrole toe. Nalevingscontrole wordt overgelaten aan het XmlReader dat wordt verpakt.

Note

Voor de XML 1.0-aanbeveling is overeenstemming op documentniveau vereist wanneer er een DTD aanwezig is. Als de lezer is geconfigureerd voor de ondersteuning van ConformanceLevel.Fragment, maar de XML-gegevens een documenttype definitie (DTD) bevatten, wordt er een XmlException gegenereerd.

Dit is hoe de lezer specifieke nalevingsschendingen afhandelt, afhankelijk van de instelling van de ConformanceLevel eigenschap:

Condition Document Fragment Auto
Tekst of een getypte waarde wordt weergegeven op het hoogste niveau. XmlException wordt gegooid. Wordt niet beschouwd als een schending voor deze instelling. Wordt niet beschouwd als een schending voor deze instelling.
Meerdere elementen of geen element worden weergegeven op het hoogste niveau. XmlException wordt gegooid. Wordt niet beschouwd als een schending voor deze instelling. Wordt niet beschouwd als een schending voor deze instelling.
Item op het hoogste niveau is witruimte. Wordt niet beschouwd als een schending voor deze instelling. Wordt niet beschouwd als een schending voor deze instelling. Wordt niet beschouwd als een schending voor deze instelling.
Item op het hoogste niveau is een kenmerk (herkend als een tekstknooppunt). XmlException wordt gegooid. Wordt niet beschouwd als een schending voor deze instelling. Wordt niet beschouwd als een schending voor deze instelling.
Er zijn meerdere aaneengesloten tekstknooppunten gevonden. Wordt niet beschouwd als een schending voor deze instelling. Wordt niet beschouwd als een schending voor deze instelling. Wordt niet beschouwd als een schending voor deze instelling.
Hetzelfde voorvoegsel voor de naamruimte wordt twee keer gedeclareerd in hetzelfde lokale bereik. XmlException wordt gegooid. XmlException wordt gegooid. XmlException wordt gegooid.
De naamruimte in een element of kenmerk bestaat niet in het lokale bereik. XmlException wordt gegooid. XmlException wordt gegooid. XmlException wordt gegooid.
Gegevens bevatten een niet-overeenkomende voorvoegselnaamruimte. XmlException wordt gegooid. XmlException wordt gegooid. XmlException wordt gegooid.
xml:space kenmerk bevat een ongeldige waarde. XmlException wordt gegooid. XmlException wordt gegooid. XmlException wordt gegooid.
Er is een ongeldige naam aangetroffen. XmlException wordt gegooid. XmlException wordt gegooid. XmlException wordt gegooid.
Het xml voorvoegsel komt niet overeen met de http://www.w3.org/XML/1998/namespace URI. XmlException wordt gegooid. XmlException wordt gegooid. XmlException wordt gegooid.

Van toepassing op

Zie ook