XML Belge Nesne Modeli (DOM)

XML Belgesi Nesne Modeli (DOM) sınıfı, bir XML belgesinin bellek içi gösterimidir. DOM, bir XML belgesini program aracılığıyla okumanıza, işlemenize ve değiştirmenize olanak tanır. XmlReader sınıfı da XML okur; ancak önbelleğe alınmamış, salt iletilen, salt okunur erişim sağlar. Başka bir deyişle, bir öğenin özniteliğinin veya içeriğinin değerlerini düzenleme ya da XmlReader ile düğüm ekleme ve kaldırma özelliği yoktur. Düzenleme, DOM'un birincil işlevidir. Gerçek XML verileri bir dosyada veya başka bir nesneden geldiğinde doğrusal bir şekilde depolansa da, XML verilerinin bellekte temsil edilen yaygın ve yapılandırılmış yoludur. Xml verileri aşağıdadır.

Giriş

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

Aşağıdaki çizimde, bu XML verileri DOM yapısına okunduğunda belleğin nasıl yapılandırıldığı gösterilmektedir.

XML document structure XML belge yapısı

XML belge yapısı içinde, bu çizimdeki her daire XmlNode nesnesi olarak adlandırılan bir düğümü temsil eder. XmlNode nesnesi, DOM ağacındaki temel nesnedir. XmlNode'un kapsamını genişleten XmlDocument sınıfı, belge üzerinde bir bütün olarak işlem gerçekleştirme yöntemlerini (örneğin, belleğe yükleme veya XML'yi bir dosyaya kaydetme) destekler. Ayrıca XmlDocument, XML belgesinin tamamında düğümleri görüntülemek ve işlemek için bir araç sağlar. Hem XmlNode hem de XmlDocument'ın performans ve kullanılabilirlik geliştirmeleri vardır ve şu yöntemlere ve özelliklere sahiptir:

  • Öğe düğümleri, varlık başvuru düğümleri gibi DOM'a özgü düğümlere erişin ve bunları değiştirin.

  • Bir öğe düğümündeki metin gibi düğümün içerdiği bilgilere ek olarak düğümlerin tamamını alın.

    Not

    Bir uygulama DOM tarafından sağlanan yapı veya düzenleme özelliklerini gerektirmezse, XmlReader ve XmlWriter sınıfları XML'e önbelleğe alınmamış, yalnızca iletme akışı erişimi sağlar. Daha fazla bilgi için bkz. XmlReader ve XmlWriter.

Düğüm nesneleri, temel ve iyi tanımlanmış özelliklerin yanı sıra bir dizi yöntem ve özelliğe sahiptir. Bu özelliklerden bazıları şunlardır:

  • Düğümler tek bir üst düğüme sahiptir ve üst düğüm doğrudan bunların üzerinde bir düğüm olur. Üst öğe içermeyen tek düğüm, belge köküdür, en üst düzey düğümdür ve belgenin kendisini ve belge parçalarını içerir.

  • Çoğu düğümün hemen altındaki düğümler olan birden çok alt düğümü olabilir. Alt düğümleri olabilecek düğüm türlerinin listesi aşağıdadır.

    • Belge

    • Documentfragment

    • Entityreference

    • Öğe

    • Öznitelik

    XmlDeclaration, Notation, Entity, CDATASection, Text, Comment, ProcessingInstruction ve DocumentType düğümlerinin alt düğümleri yoktur.

  • Kitap ve pubinfo düğümleri tarafından diyagramda temsil edilen aynı düzeydeki düğümler eşdüzeydir.

DOM'un özelliklerinden biri öznitelikleri işleme şeklidir. Öznitelikler üst, alt ve eşdüzey ilişkilerin parçası olan düğümler değildir. Öznitelikler, öğe düğümünün bir özelliği olarak kabul edilir ve bir ad ve değer çiftlerinden oluşur. Örneğin, öğesiyle priceilişkilendirilmiş " öğesini içeren format="dollarXML verileriniz varsa, sözcük format adıdır ve özniteliğin format değeri olurdollar. Fiyat düğümünün özniteliğini almak format="dollar" için, imleç öğe düğümünde bulunduğunda price GetAttribute yöntemini çağırırsınız. Daha fazla bilgi için bkz . DOM'da Özniteliklere Erişme.

XML belleğe okundukça düğümler oluşturulur. Ancak, tüm düğümler aynı türde değildir. XML'deki bir öğenin işleme yönergesinden farklı kuralları ve söz dizimi vardır. Bu nedenle, çeşitli veriler okundukça her düğüme bir düğüm türü atanır. Bu düğüm türü, düğümün özelliklerini ve işlevselliğini belirler.

Bellekte oluşturulan düğüm türleri hakkında daha fazla bilgi için bkz . XML Düğümleri Türleri. Düğüm ağacında oluşturulan nesneler hakkında daha fazla bilgi için bkz . Nesne Hiyerarşisini XML Verilerine Eşleme.

Microsoft, XML belgesiyle çalışmayı kolaylaştırmak için World Wide Web Consortium (W3C) DOM Düzey 1 ve Düzey 2'de bulunan API'leri genişletmiştir. W3C standartlarını tam olarak desteklerken, ek sınıflar, yöntemler ve özellikler W3C XML DOM kullanılarak yapılabileceklerin ötesine işlevsellik ekler. Yeni sınıflar ilişkisel verilere erişmenizi sağlayarak ADO.NET verilerle eşitleme yöntemleri sağlar ve verileri aynı anda XML olarak gösterir. Daha fazla bilgi için bkz . DataSet'i XmlDataDocument ile Eşitleme.

DOM, XML verilerini belleğe okuyarak yapısını değiştirmek, düğüm eklemek veya kaldırmak ya da bir öğenin içerdiği metinde olduğu gibi bir düğüm tarafından tutulan verileri değiştirmek için kullanışlıdır. Ancak, diğer senaryolarda DOM'dan daha hızlı olan diğer sınıflar kullanılabilir. XML'ye hızlı, önbelleğe alınmamış, yalnızca ileri akış erişimi için XmlReader ve XmlWriter kullanın. İmleç modeli ve XPath ile rastgele erişime ihtiyacınız varsa XPathNavigator sınıfını kullanın.

Ayrıca bkz.