XmlWriterSettings.ConformanceLevel Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállítja az XML-író által az XML-kimenetet ellenőrző megfelelőségi szintet.
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
Tulajdonság értéke
A megfelelőség szintjét (dokumentum, töredék vagy automatikus észlelés) meghatározó számbavételi értékek egyike. Az alapértelmezett érték a Document.
Példák
Az alábbi példa egy XML-töredéket ír egy memóriastreambe.
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.
Megjegyzések
A XmlWriterSettings.ConformanceLevel tulajdonság úgy konfigurálja az XML-írót, hogy ellenőrizze és garantálja, hogy a megírt stream megfelel-e bizonyos szabályoknak. Az XML-adatok ellenőrizhetők, hogy megfelelnek-e egy jól formázott XML 1.0-dokumentum vagy dokumentumtöredék szabályainak. Az alábbi táblázat a három beállítást ismerteti. Az alapértelmezett dokumentumszintű megfelelőség.
| Setting | Leírás |
|---|---|
| Document | Biztosítja, hogy az XML-kimenet megfeleljen egy jól formázott XML 1.0-dokumentum szabályainak , és bármely megfelelő processzor feldolgozható legyen. A dokumentummegfelelőségi ellenőrzések a töredékszintű ellenőrzések többségét tartalmazzák, és a következőket is biztosítják: – A legfelső szintű elem nem rendelkezik más csomópontokkal, mint az XML-deklaráció, a DTD, az elem, a megjegyzés, a szabad terület vagy a feldolgozási utasítás. – Az XML-adatok egy és csak egy legfelső szintű elemcsomópontot tartalmazhatnak. Az XML-író nem elemzi az írott DTD-adatokat. A felhasználó feladata annak biztosítása, hogy a DTD megfelelően legyen formázva. |
| Fragment | Biztosítja, hogy az XML-kimenet megfeleljen egy jól formázott XML 1.0-dokumentumtöredék szabályainak. Ez a beállítás olyan XML-adatokat fogad el, amelyek legfelső szintjén több gyökérelem vagy szövegcsomópont található. Ez az ellenőrzési szint biztosítja, hogy bármely processzor xml 1.0-s külső elemzési entitásként használja az olvasandó adatfolyamot. A DTD-információk nem engedélyezettek a dokumentumtöredékekben. |
| Auto | Megadja, hogy az XML-írónak a bejövő adatok alapján kell meghatároznia a megfelelőség-ellenőrzés szintjét. Ez a beállítás akkor lehet hasznos, ha nem tudja, hogy a létrehozott XML-dokumentum jól formázott XML-dokumentum vagy töredék lesz-e. A dokumentum-megfelelőség ellenőrzése a következő esetekben történik: - Ha a WriteStartDocument metódust meghívják. - Ha A DTD-információ meg van írva. A töredékmegóvást a rendszer akkor alkalmazza, ha az XML-adatok a következők valamelyikét tartalmazzák: - Szöveg, CDATA vagy EntityReference csomópont a gyökérszinten. - Több elem a gyökérszinten. - Nincs elem a gyökérszinten. Ütközés XmlException esetén a program egy hibát jelez, például amikor egy szöveges csomópontot és egy DTD-t próbál meg írni a gyökérszinten. Ha egy másik XmlWriter objektumot burkol, a külső objektum nem végez további megfelelőség-ellenőrzést, ez a mögöttes objektumra marad. |
Ha az XML-író észlel minden olyan információt, amely megsértené a megadott megfelelőségi szintet, kivételt okoz. Bizonyos esetekben az XML-író automatikusan kijavítja a megfelelőségi hibát. Az író például kivétel nélkül bezár egy ismeretlen attribútumot. Az alábbi táblázat bemutatja, hogyan kezeli a különböző megfelelőségi szabálysértéseket az egyes beállításokban.
| Condition | Document | Fragment | Auto |
|---|---|---|---|
| DTD-információk találhatók. | Nem sérti ezt a beállítást. Az XML-író azonban nem ellenőrzi a DTD-t; a felhasználónak gondoskodnia kell arról, hogy a DTD megfelelően legyen formázva. | XmlException van dobva. | A dokumentum-megfelelőség ellenőrzése történik. |
| Így nevezik: WriteStartDocument. | Ez a beállítás nem minősül szabálysértésnek. | XmlException van dobva. | A dokumentum-megfelelőség ellenőrzése történik. |
| WriteStartDocument többször is meghívjuk. | XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |
| A szövegérték a legfelső szinten jelenik meg (nem elem vagy attribútumcsomópont alatt). | XmlException van dobva. | Nem minősül szabálysértésnek. | A rendszer a töredezettség-megfelelőség ellenőrzését alkalmazza. |
| Több elem vagy egyetlen elem sem jelenik meg a legfelső szinten. | XmlException van dobva. | Nem minősül szabálysértésnek. | A rendszer a töredezettség-megfelelőség ellenőrzését alkalmazza. |
| A legfelső szintű elem üres terület. | Nem minősül szabálysértésnek. | Nem minősül szabálysértésnek. | Nem minősül szabálysértésnek. |
| WriteEndAttribute nincs meghívva attribútumcsomópont befejezéséhez. | Xml-író által javítva. | Xml-író által javítva. | Xml-író által javítva. |
| Az XML-író nem megfelelően beágyazott állapotban van (például a WriteStartElement hívást egy WriteEndAttributehívás követi). | XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |
| A legfelső szintű elem egy attribútum. | XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |
| Több, egybefüggő szövegcsomópont található. | Nem minősül szabálysértésnek, de a felhasználó felelőssége a szövegcsomópontok összefűzése. | Nem minősül szabálysértésnek, de a felhasználó felelőssége a szövegcsomópontok összefűzése. | Nem minősül szabálysértésnek, de a felhasználó felelőssége a szövegcsomópontok összefűzése. |
| Ugyanazt a névtérelőtagot kétszer deklarálja egy elem. | Az XML-író létrehoz egy új előtagot a második névtérhez. | Az XML-író létrehoz egy új előtagot a második névtérhez. | Az XML-író létrehoz egy új előtagot a második névtérhez. |
| WriteStartElement egy előtagot és egy névteret határoz meg, amely nincs deklarálva az adott hatókörben, vagy az előtag egy másik névtérhez van társítva. | Az XML-író megírja a szükséges névtércsomópontot. | Az XML-író megírja a szükséges névtércsomópontot. | Az XML-író megírja a szükséges névtércsomópontot. |
| WriteStartAttribute egy előtagot és egy névteret határoz meg, amely nincs deklarálva az adott hatókörben. | Az XML-író megírja a szükséges névtércsomópontot. | Az XML-író megírja a szükséges névtércsomópontot. | Az XML-író megírja a szükséges névtércsomópontot. |
| WriteStartAttribute előtagot és névteret ad meg, de az előtag egy másik hatókörön belüli névtérhez van társítva. | Az XML-író figyelmen kívül hagyja a megadott előtagot, és vagy megkeresi a megfelelő előtagot, vagy létrehoz egy új előtagot. | Az XML-író figyelmen kívül hagyja a megadott előtagot, és vagy megkeresi a megfelelő előtagot, vagy létrehoz egy új előtagot. | Az XML-író figyelmen kívül hagyja a megadott előtagot, és vagy megkeresi a megfelelő előtagot, vagy létrehoz egy új előtagot. |
| WriteQualifiedName elemtartalmak írására szolgál olyan névtér használatával, amely nem létezik a hatókörön belül. | XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |
| WriteQualifiedName attribútumtartalmak írására szolgál olyan névtér használatával, amely nem létezik a hatókörön belül. | Az XML-író megírja a szükséges névtér-deklarációt. | Az XML-író megírja a szükséges névtér-deklarációt. | Az XML-író megírja a szükséges névtér-deklarációt. |
Az xml:space attribútum nem tartalmaz érvényes értéket. |
XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |
| A rendszer érvénytelen nevet észlelt. | XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |
Az xml előtag nem egyezik URI-val. |
Az XML-író nem ellenőrzi az ilyen típusú szabálysértéseket. | Az XML-író nem ellenőrzi az ilyen típusú szabálysértéseket. | Az XML-író nem ellenőrzi az ilyen típusú szabálysértéseket. |
Az xml előtag nem egyezik az http://www.w3.org/XML/1998/namespace URI-val. |
XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |
Az xmlns előtag vagy a helyi név nem egyezik URI-val. |
Az XML-író nem ellenőrzi az ilyen típusú szabálysértéseket. | Az XML-író nem ellenőrzi az ilyen típusú szabálysértéseket. | Az XML-író nem ellenőrzi az ilyen típusú szabálysértéseket. |
Az xmlns előtag vagy a helyi név nem egyezik az http://www.w3.org/2000/xmlns URI-val. |
XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |