XmlWriterSettings.ConformanceLevel Egenskap

Definition

Hämtar eller anger den nivå av överensstämmelse som XML-skrivaren kontrollerar XML-utdata för.

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

Egenskapsvärde

Ett av uppräkningsvärdena som anger överensstämmelsenivån (dokument, fragment eller automatisk identifiering). Standardvärdet är Document.

Exempel

I följande exempel skrivs ett XML-fragment till en minnesström.

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.

Kommentarer

Egenskapen XmlWriterSettings.ConformanceLevel konfigurerar XML-skrivaren för att kontrollera och garantera att strömmen som skrivs följer en viss uppsättning regler. XML-data kan kontrolleras för att se att de överensstämmer med reglerna för ett välformat XML 1.0-dokument eller ett dokumentfragment. I följande tabell beskrivs de tre inställningarna. Standardvärdet är överensstämmelse på dokumentnivå.

Inställningen Description
Document Säkerställer att XML-utdata överensstämmer med reglerna för ett välformat XML 1.0-dokument och kan bearbetas av alla processorer som uppfyller kraven.

Kontrollerna för dokumentefterlevnad omfattar de flesta kontroller på fragmentnivå och säkerställer även följande:

– Det översta objektet har inga andra noder än XML-deklaration, DTD, element, kommentar, tomt utrymme eller bearbetningsinstruktioner.
– XML-data har en och endast en elementnod på den översta nivån.

XML-skrivaren parsar inte DTD-information som är skriven. Användaren ansvarar för att se till att DTD:n är välformulerad.
Fragment Säkerställer att XML-utdata överensstämmer med reglerna för ett välformat XML 1.0-dokumentfragment.

Den här inställningen accepterar XML-data som har flera rotelement eller textnoder på den översta nivån. Den här kontrollnivån säkerställer att alla processorer kan använda strömmen som läse som en extern XML 1.0-tolkad entitet.

DTD-information tillåts inte i dokumentfragment.
Auto Anger att XML-skrivaren ska fastställa nivån för överensstämmelsekontroll baserat på inkommande data. Den här inställningen kan vara användbar när du inte vet om den genererade XML-koden är ett välformat XML-dokument eller ett fragment.

Kontroll av dokumentefterlevnad tillämpas i följande fall:

- Om WriteStartDocument metoden anropas.
– Om DTD-information skrivs.

Kontroll av fragmentefterlevnad tillämpas om XML-data innehåller något av följande:

– Text-, CDATA- eller EntityReference-nod på rotnivå.
– Mer än ett element på rotnivå.
– Inget element på rotnivå.

En XmlException utlöses om det finns en konflikt, till exempel när du försöker skriva en textnod och en DTD på rotnivå.

Om du omsluter ett annat XmlWriter objekt gör det yttre objektet ingen ytterligare överensstämmelsekontroll. Detta lämnas till det underliggande objektet.

Om XML-skrivaren identifierar information som skulle strida mot den angivna överensstämmelsenivån utlöser den ett undantag. I vissa fall korrigerar XML-skrivaren automatiskt kompatibilitetsfelet. Skrivaren stänger till exempel ett oskärmat attribut utan att utlösa ett undantag. I följande tabell visas hur olika efterlevnadsöverträdelser hanteras i varje inställning.

Tillstånd Document Fragment Auto
DTD-information hittas. Inte ett brott för den här inställningen. XML-skrivaren kontrollerar dock inte DTD. användaren måste se till att DTD är välformulerad. XmlException kastas. Kontroll av dokumentefterlevnad tillämpas.
WriteStartDocument kallas. Anses inte vara en överträdelse för den här inställningen. XmlException kastas. Kontroll av dokumentefterlevnad tillämpas.
WriteStartDocument anropas flera gånger. XmlException kastas. XmlException kastas. XmlException kastas.
Ett textvärde visas på den översta nivån (inte under ett element eller en attributnod). XmlException kastas. Anses inte vara en överträdelse. Kontroll av fragmentefterlevnad tillämpas.
Flera element eller inga element visas på den översta nivån. XmlException kastas. Anses inte vara en överträdelse. Kontroll av fragmentefterlevnad tillämpas.
Objektet på den översta nivån är tomt utrymme. Anses inte vara en överträdelse. Anses inte vara en överträdelse. Anses inte vara en överträdelse.
WriteEndAttribute anropas inte för att avsluta en attributnod. Åtgärdat av XML-skrivare. Åtgärdat av XML-skrivare. Åtgärdat av XML-skrivare.
XML-skrivaren är i ett felaktigt kapslat tillstånd (till exempel följs ett WriteStartElement anrop av ).WriteEndAttribute XmlException kastas. XmlException kastas. XmlException kastas.
Objektet på den översta nivån är ett attribut. XmlException kastas. XmlException kastas. XmlException kastas.
Flera sammanhängande textnoder hittas. Betraktas inte som en överträdelse, men det är användarens ansvar att sammanfoga textnoderna. Betraktas inte som en överträdelse, men det är användarens ansvar att sammanfoga textnoderna. Betraktas inte som en överträdelse, men det är användarens ansvar att sammanfoga textnoderna.
Samma namnområdesprefix deklareras två gånger i ett element. XML-skrivaren genererar ett nytt prefix för det andra namnområdet. XML-skrivaren genererar ett nytt prefix för det andra namnområdet. XML-skrivaren genererar ett nytt prefix för det andra namnområdet.
WriteStartElement anger ett prefix och ett namnområde som inte deklareras inom det omfånget, eller så är prefixet associerat med ett annat namnområde. XML-skrivaren skriver den nödvändiga namnområdesnoden. XML-skrivaren skriver den nödvändiga namnområdesnoden. XML-skrivaren skriver den nödvändiga namnområdesnoden.
WriteStartAttribute anger ett prefix och ett namnområde som inte deklareras inom det omfånget. XML-skrivaren skriver den nödvändiga namnområdesnoden. XML-skrivaren skriver den nödvändiga namnområdesnoden. XML-skrivaren skriver den nödvändiga namnområdesnoden.
WriteStartAttribute anger ett prefix och ett namnområde, men prefixet är associerat med ett annat namnområde i omfånget. XML-skrivaren ignorerar det angivna prefixet och söker antingen upp rätt prefix eller genererar ett nytt prefix. XML-skrivaren ignorerar det angivna prefixet och söker antingen upp rätt prefix eller genererar ett nytt prefix. XML-skrivaren ignorerar det angivna prefixet och söker antingen upp rätt prefix eller genererar ett nytt prefix.
WriteQualifiedName används för att skriva elementinnehåll med hjälp av ett namnområde som inte finns inom omfånget. XmlException kastas. XmlException kastas. XmlException kastas.
WriteQualifiedName används för att skriva attributinnehåll med hjälp av ett namnområde som inte finns inom omfånget. XML-skrivaren skriver den nödvändiga namnområdesdeklarationen. XML-skrivaren skriver den nödvändiga namnområdesdeklarationen. XML-skrivaren skriver den nödvändiga namnområdesdeklarationen.
Attributet xml:space innehåller inget giltigt värde. XmlException kastas. XmlException kastas. XmlException kastas.
Ett ogiltigt namn påträffas. XmlException kastas. XmlException kastas. XmlException kastas.
Prefixet xml matchas inte med en URI. XML-skrivaren söker inte efter den här typen av överträdelse. XML-skrivaren söker inte efter den här typen av överträdelse. XML-skrivaren söker inte efter den här typen av överträdelse.
Prefixet xml matchas inte med URI: http://www.w3.org/XML/1998/namespace n. XmlException kastas. XmlException kastas. XmlException kastas.
Prefixet xmlns eller det lokala namnet matchas inte med en URI. XML-skrivaren söker inte efter den här typen av överträdelse. XML-skrivaren söker inte efter den här typen av överträdelse. XML-skrivaren söker inte efter den här typen av överträdelse.
Prefixet xmlns eller det lokala namnet matchas inte med URI: http://www.w3.org/2000/xmlns n. XmlException kastas. XmlException kastas. XmlException kastas.

Gäller för