XmlWriterSettings.ConformanceLevel Vlastnost

Definice

Získá nebo nastaví úroveň shody, pro kterou zapisovač XML kontroluje výstup 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

Hodnota vlastnosti

ConformanceLevel

Jedna z hodnot výčtu, která určuje úroveň shody (dokument, fragment nebo automatická detekce). Výchozí formát je Document.

Příklady

Následující příklad zapíše fragment XML do datového proudu paměti.

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.

Poznámky

Vlastnost XmlWriterSettings.ConformanceLevel konfiguruje zapisovač XML tak, aby kontrolovat a zaručit, že datový proud, který se zapisuje, splňuje určitou sadu pravidel. Data XML je možné zkontrolovat a zjistit, zda jsou v souladu s pravidly pro dokument XML 1.0 ve správném formátu nebo fragment dokumentu. Následující tabulka popisuje tři nastavení. Výchozí hodnota je shoda na úrovni dokumentu.

Nastavení Popis
Document Zajišťuje, že výstup XML odpovídá pravidlům pro dokument XML 1.0 ve správném formátu a může ho zpracovat libovolný odpovídající procesor.

Kontroly shody dokumentů zahrnují většinu kontrol na úrovni fragmentů a také zajišťují následující:

– Položka nejvyšší úrovně neobsahuje žádné uzly kromě deklarace XML, DTD, elementu, komentáře, prázdného místa nebo instrukce pro zpracování.
– Data XML mají jeden a pouze jeden uzel elementu nejvyšší úrovně.

Zapisovač XML ne parsuje informace DTD, které jsou napsané. Uživatel zodpovídá za zajištění dobrého formátu DTD.
Fragment Zajišťuje, aby výstup XML odpovídal pravidlům pro dobře formátovaný fragment dokumentu XML 1.0.

Toto nastavení přijímá data XML, která mají více kořenových prvků nebo textových uzlů na nejvyšší úrovni. Tato úroveň kontroly zajišťuje, že jakýkoli procesor může využívat stream, který se čte jako externí analyzovaná entita XML 1.0.

Informace DTD nejsou v fragmentech dokumentů povolené.
Auto Určuje, že zapisovač XML by měl určit úroveň kontroly shody na základě příchozích dat. Toto nastavení může být užitečné, když nevíte, jestli vygenerovaný XML bude dobře vytvořený dokument XML nebo fragment.

Kontrola shody dokumentu se používá v následujících případech:

- Pokud je volána WriteStartDocument metoda.
- Pokud jsou informace DTD napsané.

Kontrola shody fragmentů se použije, pokud data XML obsahují jednu z těchto možností:

– Text, CDATA nebo Uzel EntityReference na kořenové úrovni.
- Více než jeden prvek na kořenové úrovni.
- Žádný prvek na kořenové úrovni.

Vyvolá se XmlException , pokud dojde ke konfliktu, například při pokusu o zápis textového uzlu a DTD na kořenové úrovni.

Pokud zabalíte jiný XmlWriter objekt, vnější objekt neprovádí žádnou další kontrolu shody, což je ponecháno na podkladovém objektu.

Pokud zapisovač XML zjistí jakékoli informace, které by porušily zadanou úroveň shody, vyvolá výjimku. V některých případech zapisovač XML automaticky opraví chybu shody. Zapisovač například zavře nezařazený atribut bez vyvolání výjimky. Následující tabulka ukazuje, jak se v jednotlivých nastaveních zpracovávají různá porušení shody.

Podmínka Document Fragment Auto
Byly nalezeny informace DTD. Toto nastavení není porušením. Zapisovač XML ale nekontroluje DTD; uživatel musí zajistit, aby byl DTD správně vytvořený. XmlException je vyvolán. Použije se kontrola shody dokumentů.
WriteStartDocument je volána. Toto nastavení se nepovažuje za porušení. XmlException je vyvolán. Použije se kontrola shody dokumentů.
WriteStartDocument se volá vícekrát. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
Textová hodnota se zobrazí na nejvyšší úrovni (ne pod prvkem nebo uzlem atributu). XmlException je vyvolán. Nepovažované za porušení předpisů. Použije se kontrola shody fragmentů.
Na nejvyšší úrovni se zobrazí více prvků nebo žádné prvky. XmlException je vyvolán. Nepovažované za porušení předpisů. Použije se kontrola shody fragmentů.
Položka nejvyšší úrovně je prázdné místo. Nepovažované za porušení předpisů. Nepovažované za porušení předpisů. Nepovažované za porušení předpisů.
WriteEndAttribute není volána k ukončení uzlu atributu. Opraveno zápisem XML. Opraveno zápisem XML. Opraveno zápisem XML.
Zapisovač XML je nesprávně vnořený stav (například WriteStartElement volání následuje WriteEndAttribute). XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
Položka nejvyšší úrovně je atribut. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
Najde se více souvislých textových uzlů. Nepovažované za porušení, ale je zodpovědností uživatele zřetězení textových uzlů. Nepovažované za porušení, ale je zodpovědností uživatele zřetězení textových uzlů. Nepovažované za porušení, ale je zodpovědností uživatele zřetězení textových uzlů.
Stejná předpona oboru názvů je deklarována dvakrát v elementu. Zapisovač XML vygeneruje novou předponu druhého oboru názvů. Zapisovač XML vygeneruje novou předponu druhého oboru názvů. Zapisovač XML vygeneruje novou předponu druhého oboru názvů.
WriteStartElement určuje předponu a obor názvů, který není deklarován v daném oboru nebo je předpona přidružená k jinému oboru názvů. Zapisovač XML zapíše potřebný uzel oboru názvů. Zapisovač XML zapíše potřebný uzel oboru názvů. Zapisovač XML zapíše potřebný uzel oboru názvů.
WriteStartAttribute určuje předponu a obor názvů, který není deklarován v daném oboru. Zapisovač XML zapíše potřebný uzel oboru názvů. Zapisovač XML zapíše potřebný uzel oboru názvů. Zapisovač XML zapíše potřebný uzel oboru názvů.
WriteStartAttribute určuje předponu a obor názvů, ale předpona je přidružená k jinému oboru názvů v oboru. Zapisovač XML ignoruje zadanou předponu a buď vyhledá správnou předponu, nebo vygeneruje novou předponu. Zapisovač XML ignoruje zadanou předponu a buď vyhledá správnou předponu, nebo vygeneruje novou předponu. Zapisovač XML ignoruje zadanou předponu a buď vyhledá správnou předponu, nebo vygeneruje novou předponu.
WriteQualifiedName se používá k zápisu obsahu elementu pomocí oboru názvů, který v oboru neexistuje. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
WriteQualifiedName slouží k zápisu obsahu atributu pomocí oboru názvů, který v oboru neexistuje. Zapisovač XML zapíše potřebnou deklaraci oboru názvů. Zapisovač XML zapíše potřebnou deklaraci oboru názvů. Zapisovač XML zapíše potřebnou deklaraci oboru názvů.
Atribut xml:space neobsahuje platnou hodnotu. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
Došlo k neplatnému názvu. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
Předpona xml se neshoduje s identifikátorem URI. Zapisovač XML nekontroluje tento typ porušení. Zapisovač XML nekontroluje tento typ porušení. Zapisovač XML nekontroluje tento typ porušení.
Předpona xml se neshoduje s identifikátorem http://www.w3.org/XML/1998/namespace URI. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.
Předpona xmlns nebo místní název se neshoduje s identifikátorem URI. Zapisovač XML nekontroluje tento typ porušení. Zapisovač XML nekontroluje tento typ porušení. Zapisovač XML nekontroluje tento typ porušení.
Předpona xmlns nebo místní název se neshoduje s identifikátorem http://www.w3.org/2000/xmlns URI. XmlException je vyvolán. XmlException je vyvolán. XmlException je vyvolán.

Platí pro