Sdílet prostřednictvím


XmlReaderSettings.ConformanceLevel Vlastnost

Definice

Získá nebo nastaví úroveň shody, kterou XmlReader bude dodržovat.

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

Hodnota vlastnosti

ConformanceLevel

Jedna z hodnot výčtu, která určuje úroveň shody, kterou bude čtenář XML vynucovat. Výchozí formát je Document.

Příklady

Následující příklad vytvoří XmlReader objekt, který načte fragment XML.

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)

Poznámky

Čtečky XML vytvořené metodou Create splňují následující požadavky na dodržování předpisů ve výchozím nastavení:

  • Nové řádky a hodnota atributu jsou normalizovány podle doporučení W3C XML 1.0.

  • Všechny entity se automaticky rozbalí.

  • Výchozí atributy deklarované v definici typu dokumentu se vždy přidají, i když čtenář neověří.

  • Deklarace předpony XML namapované na správný identifikátor URI oboru názvů XML je povolená.

  • Názvy zápisu v deklaraci jednoho NotationType atributu a NmTokens v deklaraci jednoho Enumeration atributu jsou odlišné.

Pomocí vlastnosti můžete ConformanceLevel zkontrolovat a zaručit, že datový proud, který se čte, splňuje pravidla pro dobře formátovaný dokument XML 1.0 nebo fragment dokumentu. Pokud data nevyhovují, vyvolá XmlException se výjimka. Výchozí hodnota je ConformanceLevel.Document (shoda na úrovni dokumentu).

Tři úrovně shody jsou:

Nastavení Popis
Document Zajišťuje, aby data XML odpovídala pravidlům pro dokument XML 1.0 ve správném formátu. Tato úroveň kontroly zajišťuje, že libovolný procesor může stream číst jako dobře formátovaný dokument XML 1.0.

Čtenář zkontroluje následující:

- Položka nejvyšší úrovně nesmí obsahovat žádné uzly kromě deklarace XML, definice typu dokumentu (DTD), element, komentář, prázdné znaky nebo instrukce pro zpracování.
– Data XML musí mít přesně jeden uzel elementu nejvyšší úrovně.
Fragment Zajišťuje, aby data XML odpovídala pravidlům pro dobře formátovaný fragment dokumentu XML 1.0.

Toto nastavení přijímá data XML s více kořenovými prvky nebo textovými uzly na nejvyšší úrovni. Tato úroveň kontroly zajišťuje, že libovolný procesor může stream číst jako externí analyzovanou entitu.
Auto Určuje, že čtenář by měl určit úroveň kontroly shody na základě příchozích dat.

Kontrola shody dokumentu se použije, pokud data XML obsahují informace DTD.

Kontrola shody fragmentů se použije, pokud data XML obsahují jednu z následujících možností:

– Textový, CDATA nebo referenční uzel entity na kořenové úrovni.
- Více než jeden prvek na kořenové úrovni.
- Žádný prvek na kořenové úrovni.

Vyvolá XmlException se, pokud dojde ke konfliktu, například když existuje textový uzel a DTD na kořenové úrovni.

Toto nastavení lze použít ve scénářích obtékání, když Create se metoda používá k přidání dalších funkcí do existujícího XmlReader. V tomto případě ConformanceLevel.Document nepřidá žádnou novou kontrolu shody. Kontrola shody je ponechána na XmlReader zabalené.

Poznámka

Doporučení XML 1.0 vyžaduje shodu na úrovni dokumentu, pokud je k dispozici DTD. Proto pokud je čtečka nakonfigurovaná tak, aby podporovala ConformanceLevel.Fragment, ale data XML obsahují definici typu dokumentu (DTD), vyvolá XmlException se.

Tady je postup, jak čtenář zpracovává konkrétní porušení shody v závislosti na nastavení ConformanceLevel vlastnosti:

Podmínka Document Fragment Auto
Text nebo zadaná hodnota se zobrazí na nejvyšší úrovni. XmlException je vyvolán. Toto nastavení se nepovažuje za porušení. Toto nastavení se nepovažuje za porušení.
Na nejvyšší úrovni se zobrazí více prvků nebo žádný prvek. XmlException je vyvolán. Toto nastavení se nepovažuje za porušení. Toto nastavení se nepovažuje za porušení.
Položka nejvyšší úrovně je prázdné místo. Toto nastavení se nepovažuje za porušení. Toto nastavení se nepovažuje za porušení. Toto nastavení se nepovažuje za porušení.
Položka nejvyšší úrovně je atribut (rozpoznaný jako textový uzel). XmlException je vyvolán. Toto nastavení se nepovažuje za porušení. Toto nastavení se nepovažuje za porušení.
Najde se několik souvislých textových uzlů. Toto nastavení se nepovažuje za porušení. Toto nastavení se nepovažuje za porušení. Toto nastavení se nepovažuje za porušení.
Stejná předpona oboru názvů je deklarována dvakrát ve stejném místním oboru. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
Obor názvů v elementu nebo atributu v místním oboru neexistuje. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
Data obsahují neshodu oboru názvů předpony. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
xml:space atribut obsahuje neplatnou hodnotu. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
Byl zjištěn neplatný název. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
Předpona xml neodpovídá identifikátoru http://www.w3.org/XML/1998/namespace URI. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.

Platí pro

Viz také