XmlReaderSettings.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 azoknak a megfelelési szinteknek a szintjét, amelyeknek a megfelelési XmlReader szintnek meg kell felelnie.
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 számbavételi értékek egyike, amely meghatározza az XML-olvasó által megkövetelt megfelelési szintet. Az alapértelmezett érték a Document.
Példák
Az alábbi példa egy XmlReader XML-töredék olvasására szolgáló objektumot hoz létre.
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)
Megjegyzések
A metódus által Create létrehozott XML-olvasók alapértelmezés szerint megfelelnek a következő megfelelőségi követelményeknek:
Az új sorok és attribútumértékek normalizálása a W3C XML 1.0 javaslatnak megfelelően zajlik.
A rendszer automatikusan kibontja az összes entitást.
A dokumentumtípus-definícióban deklarált alapértelmezett attribútumok mindig akkor is hozzáadódnak, ha az olvasó nem ellenőrzi.
A megfelelő XML-névtér URI-jára leképezett XML-előtag deklarációja engedélyezett.
Az egyetlen
NotationTypeattribútum deklarációban ésNmTokensegyetlenEnumerationattribútumdeklarációban szereplő jelölésnevek eltérőek.
A tulajdonsággal ConformanceLevel ellenőrizheti és garantálhatja, hogy az olvasás alatt álló stream megfelel-e egy jól formázott XML 1.0-dokumentum vagy dokumentumtöredék szabályainak. Ha az adatok nem felelnek meg, kivétel XmlException történik. Az alapértelmezett érték ConformanceLevel.Document (dokumentumszintű megfelelőség).
A három megfelelési szint a következő:
| Beállítás | Leírás |
|---|---|
| Document | Biztosítja, hogy az XML-adatok megfeleljenek egy jól formázott XML 1.0-dokumentum szabályainak. Ez az ellenőrzési szint biztosítja, hogy bármely processzor jól formázott XML 1.0-dokumentumként használja fel az olvasandó adatfolyamot. Az olvasó a következőket ellenőrzi: – A legfelső szintű elem nem rendelkezhet más csomópontokkal, mint az XML-deklaráció, a dokumentumtípus-definíció (DTD), az elem, a megjegyzés, a szabad terület vagy a feldolgozási utasítás. – Az XML-adatoknak pontosan egy legfelső szintű elemcsomópontot kell tartalmazniuk. |
| Fragment | Biztosítja, hogy az XML-adatok megfeleljenek egy jól formázott XML 1.0-dokumentumtöredék szabályainak. Ez a beállítás a legfelső szinten több gyökérelemet vagy szövegcsomópontot tartalmazó XML-adatokat fogad el. Ez az ellenőrzési szint biztosítja, hogy bármely processzor külső elemzési entitásként használja az olvasandó streamet. |
| Auto | Meghatározza, hogy az olvasónak a bejövő adatok alapján kell meghatároznia a megfelelőség-ellenőrzés szintjét. A dokumentummegbővülés ellenőrzése akkor történik, ha az XML-adatok DTD-adatokat tartalmaznak. A töredékmegelőség-ellenőrzést akkor alkalmazza a rendszer, ha az XML-adatok a következők valamelyikét tartalmazzák: - Szöveges, CDATA- vagy entitás-referenciacsomó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övegcsomópont és egy DTD van a gyökérszinten. Ez a beállítás akkor használható a körbefuttatási forgatókönyvekben, ha a Create metódussal további funkciókat ad hozzá egy meglévőhöz XmlReader. Ebben az esetben ConformanceLevel.Document nem ad hozzá új megfelelőségi ellenőrzést. A megfelelőség ellenőrzése a burkoltra marad XmlReader . |
Note
Az XML 1.0-javaslat dokumentumszintű megfelelőséget igényel, ha DTD van jelen. Ezért ha az olvasó úgy van konfigurálva, hogy támogassa ConformanceLevel.Fragment, de az XML-adatok tartalmaznak egy dokumentumtípus-definíciót (DTD), a program egy XmlException hibát ad ki.
Az olvasó a tulajdonság beállításától függően az alábbi módon kezeli az ConformanceLevel adott megfelelőségi szabálysértéseket:
| Condition | Document | Fragment | Auto |
|---|---|---|---|
| A felső szinten szöveg vagy beírt érték jelenik meg. | XmlException van dobva. | Ez a beállítás nem minősül szabálysértésnek. | Ez a beállítás nem minősül szabálysértésnek. |
| A legfelső szinten több elem vagy elem sem jelenik meg. | XmlException van dobva. | Ez a beállítás nem minősül szabálysértésnek. | Ez a beállítás nem minősül szabálysértésnek. |
| A legfelső szintű elem üres terület. | Ez a beállítás nem minősül szabálysértésnek. | Ez a beállítás nem minősül szabálysértésnek. | Ez a beállítás nem minősül szabálysértésnek. |
| A legfelső szintű elem egy attribútum (amely szövegcsomópontként van felismerve). | XmlException van dobva. | Ez a beállítás nem minősül szabálysértésnek. | Ez a beállítás nem minősül szabálysértésnek. |
| Több, egybefüggő szövegcsomópont található. | Ez a beállítás nem minősül szabálysértésnek. | Ez a beállítás nem minősül szabálysértésnek. | Ez a beállítás nem minősül szabálysértésnek. |
| Ugyanaz a névtérelőtag kétszer lesz deklarálva ugyanabban a helyi hatókörben. | XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |
| Az elem vagy attribútum névtere nem létezik a helyi hatókörben. | XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |
| Az adatok előtag-névtér eltérést tartalmaznak. | XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |
xml:space az attribútum érvénytelen értéket tartalmaz. |
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 az http://www.w3.org/XML/1998/namespace URI-val. |
XmlException van dobva. | XmlException van dobva. | XmlException van dobva. |