Model DOM (Document Object Model) dokumentu XML

Třída MODELU DOM (Document Object Model) XML je reprezentace dokumentu XML v paměti. DoM umožňuje programově číst, manipulovat a upravovat dokument XML. XmlReader třída také čte XML, ale poskytuje přístup jen pro čtení, který není uložen v mezipaměti, jen pro čtení. To znamená, že neexistují žádné možnosti pro úpravu hodnot atributu nebo obsahu elementu nebo schopnost vložit a odebrat uzly pomocí XmlReader. Úpravy jsou primární funkcí DOM. Jedná se o běžný a strukturovaný způsob, jakým jsou data XML reprezentována v paměti, i když skutečná data XML jsou uložena lineárním způsobem, když jsou v souboru nebo pocházejí z jiného objektu. Následuje data XML.

Vstup

<?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>

Následující obrázek ukazuje, jak je paměť strukturovaná, když se tato data XML čtou do struktury DOM.

XML document structure Struktura dokumentu XML

V rámci struktury dokumentu XML představuje každý kruh v tomto obrázku uzel, který se nazývá XmlNode objekt. XmlNode objekt je základní objekt ve stromu DOM. XmlDocument třída, která rozšiřuje XmlNode, podporuje metody pro provádění operací s dokument jako celek (například načtení do paměti nebo uložení XML do souboru. XmlDocument navíc poskytuje způsob zobrazení a manipulace s uzly v celém dokumentu XML. XmlNode i XmlDocument mají vylepšení výkonu a použitelnosti a mají metody a vlastnosti pro:

  • Přístup k uzlům, které jsou specifické pro objekt DOM, jako jsou uzly prvků, referenční uzly entity atd.

  • Načtěte celé uzly, kromě informací, které uzel obsahuje, například text v uzlu elementu.

    Poznámka:

    Pokud aplikace nevyžaduje funkce struktury nebo úpravy poskytované DOM, Třídy XmlReader a XmlWriter poskytují přístup k XML pouze mimo mezipaměť, předávání-pouze přístup k XML. Další informace najdete v tématech XmlReader a XmlWriter.

Objekty uzlu mají sadu metod a vlastností, stejně jako základní a dobře definované charakteristiky. Mezi tyto vlastnosti patří:

  • Uzly mají jeden nadřazený uzel, nadřazený uzel je uzel přímo nad nimi. Jedinými uzly, které nemají nadřazený objekt, je kořen dokumentu, protože se jedná o uzel nejvyšší úrovně a obsahuje samotný dokument a fragmenty dokumentů.

  • Většina uzlů může mít více podřízených uzlů, což jsou uzly přímo pod nimi. Následuje seznam typů uzlů, které mohou mít podřízené uzly.

    • Dokument

    • Documentfragment

    • Entityreference

    • Element

    • Atribut

    Uzly XmlDeclaration, Notation, Entity, CDATASection, Text, Comment, ProcessingInstruction a DocumentType nemají podřízené uzly.

  • Uzly, které jsou na stejné úrovni reprezentované v diagramu uzly knihy a pubinfo , jsou na stejné úrovni.

Jednou z charakteristik dom je způsob, jakým zpracovává atributy. Atributy nejsou uzly, které jsou součástí nadřazených, podřízených vztahů a vztahů na stejné úrovni. Atributy jsou považovány za vlastnost uzlu elementu a jsou tvořeny názvem a párem hodnot. Pokud máte například data XML, která se skládají z format="dollar" přidruženého k prvku price, slovo format je název a hodnota atributu format je dollar. Chcete-li načíst format="dollar" atribut uzlu ceny , volání GetAttribute metoda, když kurzor je umístěn v price uzlu prvku. Další informace naleznete v tématu Přístup k atributům v systému DOM.

Vzhledem k tomu, že se XML čte do paměti, vytvoří se uzly. Ne všechny uzly jsou ale stejného typu. Element v jazyce XML má jiná pravidla a syntaxi než instrukce pro zpracování. Vzhledem k tomu, že se čtou různá data, je k jednotlivým uzlům přiřazen typ uzlu. Tento typ uzlu určuje vlastnosti a funkce uzlu.

Další informace o typech uzlů generovaných v paměti naleznete v tématu Typy uzlů XML. Další informace o objektech vytvořených ve stromu uzlu naleznete v tématu Mapování hierarchie objektů na data XML.

Společnost Microsoft rozšířila rozhraní API, která jsou k dispozici v konsorciu W3C (World Wide Web Consortium) DOM Level 1 a Level 2, aby se usnadnila práce s dokumentem XML. Zatímco plně podporuje standardy W3C, další třídy, metody a vlastnosti přidávají funkce nad rámec toho, co lze provést pomocí W3C XML DOM. Nové třídy umožňují přístup k relačním datům a umožňují vám metody pro synchronizaci s ADO.NET daty, které současně zveřejňují data jako XML. Další informace naleznete v tématu Synchronizace datové sady s XmlDataDocument.

DoM je nejužitečnější pro čtení dat XML do paměti, aby se změnila jeho struktura, přidání nebo odebrání uzlů nebo úprava dat uložených uzlem jako v textu obsaženém elementem. V jiných scénářích jsou ale k dispozici i jiné třídy, které jsou rychlejší než dom. Pro rychlý, non-cached, forward-only stream přístup k XML, použijte XmlReader a XmlWriter. Pokud potřebujete náhodný přístup s kurzorovým modelem a XPathem, použijte třídu XPathNavigator .

Viz také