Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az XML-dokumentumobjektum-modell (DOM) osztály egy XML-dokumentum memóriabeli ábrázolása. A DOM lehetővé teszi egy XML-dokumentum programozott olvasását, módosítását és módosítását. Az XmlReader osztály is beolvassa az XML-t; azonban nem gyorsítótárazott, csak továbbítható, írásvédett hozzáférést biztosít. Ez azt jelenti, hogy nem lehet szerkeszteni egy elem attribútumának vagy tartalmának értékeit, illetve nem lehet csomópontokat beszúrni és eltávolítani az XmlReaderrel. A dom elsődleges funkciója a szerkesztés. Az XML-adatok a memóriában való ábrázolásának gyakori és strukturált módja, bár a tényleges XML-adatok lineáris módon lesznek tárolva, amikor egy fájlban vagy egy másik objektumból érkeznek be. Az alábbi XML-adatok.
Bemenet
<?xml version="1.0"?>
<books>
<book>
<author>Carson</author>
<price format="dollar">31.95</price>
<pubdate>05/01/2001</pubdate>
</book>
<pubinfo>
<publisher>MSPress</publisher>
<state>WA</state>
</pubinfo>
</books>
Az alábbi ábra bemutatja, hogyan strukturálódik a memória, amikor az XML-adatok beolvashatók a DOM-struktúrába.
XML-dokumentumstruktúra
Az XML-dokumentum struktúrájában az ábrán szereplő körök egy csomópontot jelölnek, amelyet XmlNode-objektumnak neveznek. Az XmlNode objektum a DOM-fa alapobjektuma. Az XmlNode-t kiterjesztő XmlDocument osztály támogatja a dokumentum egészén végzett műveletek végrehajtásának módszereit (például a memóriába való betöltése vagy az XML fájlba való mentése). Az XmlDocument emellett lehetővé teszi a csomópontok megtekintését és manipulálását a teljes XML-dokumentumban. Mind az XmlNode , mind az XmlDocument teljesítmény- és használhatósági fejlesztésekkel rendelkezik, és a következő módszereket és tulajdonságokat tartalmazza:
Hozzáférés a DOM-hez tartozó csomópontokhoz, például elemcsomópontokhoz, entitáshivatkozási csomópontokhoz stb.
Kérje le a teljes csomópontokat a csomópont által tartalmazott információkon kívül, például egy elemcsomópont szövegét.
A csomópontobjektumok számos metódussal és tulajdonsággal, valamint alapvető és jól definiált jellemzőkkel rendelkeznek. Néhány ilyen jellemző:
A csomópontok egyetlen szülőcsomópontot alkotnak, a szülőcsomópont pedig közvetlenül felettük lévő csomópont. Az egyetlen csomópont, amely nem rendelkezik szülővel, a Dokumentumgyökér, mivel ez a legfelső szintű csomópont, amely magában a dokumentumot és a dokumentumtöredékeket tartalmazza.
A legtöbb csomópont több gyermekcsomópontot is tartalmazhat, amelyek közvetlenül alattuk lévő csomópontok. Az alábbiakban felsoroljuk azokat a csomóponttípusokat, amelyek gyermekcsomópontokkal rendelkezhetnek.
Dokumentum
DocumentFragment
Entitás hivatkozása
Elem
Attribútum
Az XmlDeclaration, Notation, Entity, CDATASection, Text, Comment, ProcessingInstruction és DocumentType csomópontok nem rendelkeznek gyermekcsomópontokkal.
Az azonos szintű csomópontok, amelyeket a könyv és a pubinfo csomópontok ábrázolnak a diagramon, testvérek.
A DOM egyik jellemzője, hogy hogyan kezeli az attribútumokat. Az attribútumok nem olyan csomópontok, amelyek a szülő-, gyermek- és testvérkapcsolatok részét képezik. Az attribútumok az elemcsomópont tulajdonságának minősülnek, és névből és értékpárból állnak. Ha például olyan XML-adatokkal rendelkezik, amelyek a format="dollar elemmel price kapcsolatban állnak, a szó format a név, és az attribútum format értéke dollar. Az format="dollar" attribútumának lekéréséhez meghívja a GetAttribute metódust, amikor a kurzor az található. További információ: Attribútumok elérése a DOM-ban.
Az XML memóriába való beolvasásakor a csomópontok létrejönnek. Azonban nem minden csomópont azonos típusú. Az XML-elemeknek más szabályai és szintaxisa van, mint a feldolgozási utasításnak. Ezért a különböző adatok olvasásakor minden csomóponthoz csomóponttípus van hozzárendelve. Ez a csomóponttípus határozza meg a csomópont jellemzőit és funkcióit.
A memóriában létrehozott csomóponttípusokról további információt az XML-csomópontok típusai című témakörben talál. A csomópontfán létrehozott objektumokról további információt az Objektumhierarchia XML-adatokkal való leképezése című témakörben talál.
A Microsoft kiterjesztette a World Wide Web Consortium (W3C) DOM Level 1 és Level 2 szolgáltatásban elérhető API-kat, hogy megkönnyítse az XML-dokumentumok használatát. A W3C-szabványok teljes körű támogatása mellett a további osztályok, metódusok és tulajdonságok a W3C XML DOM használatával elvégezhető műveleteken túl további funkciókat is biztosítanak. Az új osztályok lehetővé teszik a relációs adatok elérését, lehetővé téve a ADO.NET adatokkal való szinkronizálást, valamint az adatok XML-ként való megjelenítését. További információ: DataSet szinkronizálása XmlDataDocument használatával.
A DOM leginkább akkor hasznos, ha XML-adatokat olvas a memóriába a szerkezetének módosításához, csomópontok hozzáadásához vagy eltávolításához, illetve a csomópontok által tárolt adatok módosításához, mint az elem által tartalmazott szövegben. Azonban más osztályok is elérhetők, amelyek gyorsabbak, mint a DOM más forgatókönyvekben. Az XML-hez való gyors, nem gyorsítótárazott, csak továbbítható streamhez való hozzáféréshez használja az XmlReadert és az XmlWritert. Ha véletlenszerű hozzáférésre van szüksége egy kurzormodell és az XPath használatával, használja az XPathNavigator osztályt .