Külső erőforrások megoldása

Az XmlDocument osztály az XmlDocument XmlResolver tulajdonságát használja az XML-adatokba nem beágyazott erőforrások, például külső dokumentumtípus-definíciók (DTD-k), entitások és sémák megkeresésére. Ezek az elemek egy hálózaton vagy egy helyi meghajtón találhatók, és egy egységes erőforrás-azonosító (URI) alapján azonosíthatók. Ez lehetővé teszi, hogy az XmlDocument feloldja a dokumentumban található EntityReference csomópontokat, és a külső DTD vagy séma szerint ellenőrizze a dokumentumot.

Teljes mértékben megbízható XmlDocument

Az XmlResolver tulajdonság hatással van az XmlDocument.Load metódus működésére. Az alábbi táblázat bemutatja, hogyan működik az XmlDocument.XmlResolver tulajdonság, ha az XmlDocument objektum teljes mértékben megbízható. Az alábbi táblázat az XmlDocument.Load metódusokat mutatja be, ha a Betöltés bemenete TextReader, String, Stream vagy URI. Ez a táblázat nem vonatkozik a Load metódusra, ha az XmlDocument xmlReaderből van betöltve.

XmlResolver tulajdonság Függvény Jegyzetek
A tulajdonság egy korábban létrehozott XmlResolver-osztályra van állítva, és a felhasználó már beállította rajta a tulajdonságokat. Az XmlDocument a fájlnevek feloldásához megadott XmlResolver használatával oldja fel a külső erőforrásokra, például DTD-re, entitásokra és sémákra mutató hivatkozásokat.

Az XmlResolver a csomópontok XmlDocumentben való hozzáadásakor vagy szerkesztésekor szükséges külső erőforrások feloldásakor is használható.
Az XmlResolver, amelyet az XmlDocument-nek adtak meg, az a feloldó, amelyet akkor használnak, amikor külső erőforrásokat kell elhelyezni és feloldani.
A tulajdonság értéke null (a Microsoft Visual Basic .NET-ben semmi). A külső erőforrást igénylő funkciók nem támogatottak, például külső séma vagy DTD keresése. A külső entitások sem lesznek feloldva, és a szerkesztési funkciók, például a feloldást igénylő entitáscsomópontok beszúrása nem támogatottak. Az XmlDocument névtelenként tölti be a fájlokat, és nem kísérli meg más erőforrások feloldását.
A tulajdonság nincs beállítva, de az alapértelmezett állapotában marad. Az XmlUrlResolver, amely NULL hitelesítő adatokkal rendelkezik, az XmlDocument által lesz létrehozva és használva a fájlnevek feloldásakor, külső DTD-k, entitások és sémák keresésekor, valamint null hitelesítő adatokkal a csomópontok szerkesztésekor.

Az alábbi táblázat az XmlDocument.Load metódust mutatja be, ha a Betöltés bemenete XmlReader, és az XmlDocument teljes mértékben megbízható.

XmlResolver tulajdonság Függvény Jegyzetek
Az XmlDocument által használt XmlResolver osztály ugyanaz az osztály, amelyet az XmlReader használ. Az XmlDocument az XmlReaderhez rendelt XmlResolvert használja.

Az XmlDocument.Resolver tulajdonság az XmlDocument megbízhatósági szinttől függetlenül nem állítható be, mert xmlResolvert kap az XmlReaderből. Nem próbálkozhat a XmlReadersXmlResolver beállításainak felülbírálatával azáltal, hogy beállítja az XmlDocumentXmlResolver tulajdonságát.
Az XmlReader lehet XmlTextReader, XmlValidatingReader vagy egyéni írású olvasó. Ha a használt olvasó támogatja az entitásfeloldást, a külső entitások feloldódnak. Ha az átadott olvasó nem támogatja az entitáshivatkozásokat, a rendszer nem oldja fel az entitáshivatkozásokat.

Félig megbízható XmlDocument

Az alábbi táblázat bemutatja, hogyan működik az XmlDocument.XmlResolver tulajdonság az objektum félmegbízhatósága esetén. Ez a táblázat az XmlDocument.Load metódusokra vonatkozik, ha a betöltés bemenete TextReader, String, Stream, vagy URI. Ez a táblázat nem vonatkozik a Load metódusra, ha az XmlDocument xmlReaderből van betöltve.

XmlResolver tulajdonság Függvény Jegyzetek
A félig megbízható forgatókönyvben az XmlResolver tulajdonság nem állítható be a null értéken kívül másra. Az XmlUrlResolver-t, amely null hitelesítő adatokkal rendelkezik, az XmlDocument fogja létrehozni és használni, amikor fájlnevek feloldására, külső DTD-k, entitások és sémák keresésére kerül sor, és null hitelesítő adatok használatosak csomópontok szerkesztésekor. Ez a viselkedés megegyezik a viselkedésével, ha az XmlResolver tulajdonság nincs beállítva, de az alapértelmezett állapotában marad.

Az XmlDocument névtelen engedélyeket használ az összes művelethez.
A tulajdonság értéke null (a Microsoft Visual Basic .NET-ben semmi). Külső erőforrást igénylő funkciók nem támogatottak, például külső séma vagy DTD keresése. A külső entitások sem lesznek feloldva, és nem támogatottak a szerkesztési funkciók, például a feloldást igénylő entitáscsomópontok beszúrása. Ha a tulajdonság null értékű, a viselkedés ugyanaz, függetlenül attól, hogy az XmlDocument teljes mértékben megbízható vagy félig megbízható.
A tulajdonság nincs beállítva, de az alapértelmezett állapotában marad. Az XmlUrlResolver-t, amely null hitelesítő adatokkal rendelkezik, az XmlDocument fogja létrehozni és használni, amikor fájlnevek feloldására, külső DTD-k, entitások és sémák keresésére kerül sor, és null hitelesítő adatok használatosak csomópontok szerkesztésekor. Az XmlDocument névtelen engedélyeket használ az összes művelethez.

Ez a táblázat az XmlDocument.Load metódusra vonatkozik, ha a Load bemenete egy XmlReader, az XmlDocument pedig félig megbízható.

XmlResolver tulajdonság Függvény Jegyzetek
Az XmlDocument által használt XmlResolver osztály ugyanaz, amelyet az XmlReader használ. Az XmlDocument az XmlReaderhez rendelt XmlResolvert használja.

Az XmlDocument.Resolver tulajdonság az XmlDocument megbízhatósági szinttől függetlenül nem állítható be, mert xmlResolvert kap az XmlReaderből. Az XmlReadersXmlResolver beállításait nem lehet felülbírálni az XmlDocument XmlResolver tulajdonságának beállításával.
Az XmlReader lehet XmlTextReader, XmlReaderérvényesítő vagy egyéni írású olvasó. Ha a használt olvasó támogatja az entitásfeloldást, a külső entitások feloldódnak. Ha a megadott olvasó nem támogatja az entitáshivatkozásokat, akkor az entitáshivatkozások nem oldódnak fel.

Ha úgy állítja be az XmlResolvert, hogy a megfelelő hitelesítő adatokat tartalmazza, az lehetővé teszi a külső erőforrásokhoz való hozzáférést.

Megjegyzés

Az XmlResolver tulajdonságot nem lehet lekérni. Ez segít megakadályozni, hogy a felhasználó újrahasználja az XmlResolvert , amelyen a hitelesítő adatok be lettek állítva. Ha az XmlTextReader vagy egy validáló olvasó használatával tölt be egy XmlDocumentet, és az XmlDocument rendelkezik beállított feloldóval, akkor ezekből az olvasókból származó feloldókat nem gyorsítótárazza az XmlDocument a Load fázis után, mivel ez biztonsági kockázatot jelent.

További információt a referenciaoldal Megjegyzések szakaszában XmlResolver talál.

Lásd még