XML Belgesinde Ad Alanlarını Yönetme

XML ad alanları, xml belgesindeki öğe ve öznitelik adlarını özel ve önceden tanımlanmış URI'lerle ilişkilendirir. Bu ilişkilendirmeleri oluşturmak için, ad alanı URI'leri için ön ekler tanımlarsınız ve bu ön ekleri kullanarak XML verilerindeki öğe ve öznitelik adlarını nitelersiniz. Ad alanları, öğe ve öznitelik adı çakışmalarını önler ve aynı ada sahip öğelerin ve özniteliklerin farklı şekilde işlenip doğrulanmasını sağlar.

Ad alanlarını bildirme

Bir öğede ad alanı bildirmek için özniteliğini xmlns: kullanırsınız:

xmlns:<name>=<"uri">

burada <name> ad alanı ön ekidir ve <"uri"> ad alanını tanımlayan URI'dir. Ön eki bildirdikten sonra, bir XML belgesindeki öğeleri ve öznitelikleri niteleyip ad alanı URI'si ile ilişkilendirmek için kullanabilirsiniz. Bir belgenin tamamında ad alanı ön eki kullanıldığından, kısa uzunlukta olmalıdır.

Bu örnek iki BOOK öğe tanımlar. İlk öğe önekiyle mybooknitelenmiş, ikinci öğe ise önekiyle bbnitelenmiş. Her ön ek farklı bir ad alanı URI'siyle ilişkilendirilir:

<mybook:BOOK xmlns:mybook="http://www.contoso.com/books.dtd">  
    <bb:BOOK xmlns:bb="urn:blueyonderairlines" />
</mybook:BOOK>

Bir öğenin belirli bir ad alanının parçası olduğunu göstermek için ad alanı ön ekini ekleyin. Örneğin, bir Author öğe ad alanına aitse mybook olarak <mybook:Author>bildirilir.

Bildirim kapsamı

Ad alanı, bildirim noktasından bildirildiği öğenin sonuna kadar etkilidir. Bu örnekte, öğesinde BOOK tanımlanan ad alanı öğesi dışındaki BOOK öğeler için geçerli değildir; örneğin Publisher , öğesi:

<Author>Joe Smith</Author>  
<BOOK xmlns:book="http://www.contoso.com">  
    <title>My Wonderful Day</title>  
      <price>$3.95</price>  
</BOOK>  
<Publisher>  
    <Name>MSPress</Name>  
</Publisher>  

Ad alanının kullanılabilmesi için önce bildirilmesi gerekir, ancak XML belgesinin en üstünde görünmesi gerekmez.

Xml belgesinde birden çok ad alanı kullandığınızda, daha temiz görünümlü bir belge oluşturmak için bir ad alanını varsayılan ad alanı olarak tanımlayabilirsiniz. Varsayılan ad alanı kök öğesinde bildirilir ve belgedeki tüm nitelenmemiş öğelere uygulanır. Varsayılan ad alanları özniteliklere değil yalnızca öğelere uygulanır.

Varsayılan ad alanını kullanmak için öğesindeki bildirimden ön ekini ve iki nokta üst üsteyi atlayarak:

<BOOK xmlns="http://www.contoso.com/books.dtd">  
...
</BOOK>

Ad alanlarını yönetme

XmlNamespaceManager sınıfı bir ad alanı URI'leri koleksiyonunu ve bunların ön eklerini depolar ve bu koleksiyondaki ad alanlarını aramanıza, eklemenize ve kaldırmanıza olanak tanır. Belirli bağlamlarda, bu sınıf daha iyi XML işleme performansı için gereklidir. Örneğin, XsltContext sınıfı XPath desteği için kullanır XmlNamespaceManager .

Ad alanı yöneticisi ad alanları üzerinde herhangi bir doğrulama gerçekleştirmez, ancak ön eklerin ve ad alanlarının zaten doğrulandığını ve W3C Ad Alanları belirtimine uygun olduğunu varsayar.

Not

C# ve Visual Basic'teLINQ TO XML, ad alanlarını yönetmek için kullanmaz XmlNamespaceManager. LINQ to XML kullanırken ad alanlarını yönetme hakkında bilgi için LINQ belgelerinde XML Ad Alanlarıyla Çalışma (C#) ve XML Ad Alanlarıyla Çalışma (Visual Basic) konularına bakın.

Sınıfıyla gerçekleştirebileceğiniz yönetim ve arama görevlerinden bazıları aşağıdadır XmlNamespaceManager . Daha fazla bilgi ve örnek için, her yöntem veya özelliğin başvuru sayfasının bağlantılarını izleyin.

Amaç Kullanma
Ad alanı ekleme AddNamespace Yöntem
Ad alanını kaldırma RemoveNamespace Yöntem
Varsayılan ad alanının URI'sini bulma DefaultNamespace Özellik
Ad alanı ön ekinin URI'sini bulma LookupNamespace Yöntem
Ad alanı URI'sinin ön ekini bulma LookupPrefix Yöntem
Geçerli düğümdeki ad alanlarının listesini alma GetNamespacesInScope Yöntem
Ad alanı kapsamı PushScope ve PopScope yöntemleri
Bir ön ekin geçerli kapsamda tanımlanıp tanımlanmadığını denetleyin HasNamespace Yöntem
Ön ekleri ve URI'leri aramak için kullanılan ad tablosunu alma NameTable Özellik

Ayrıca bkz.