Ad alanlarına genel bakış (LINQ to XML)

Bu makalede XML adları, XML ad alanları, XML ad alanı ön ekleri ve ve XNamespace sınıfları tanıtmaktadırXName.

XML adları genellikle XML programlamada karmaşıklık kaynağıdır. XML adı bir XML ad alanı (XML ad alanı URI'si olarak da adlandırılır) ve yerel bir addan oluşur. XML ad alanı, .NET programındaki ad alanına benzer. Xml belgesinin çeşitli bölümleri arasında ad çakışmalarını önlemek için öğelerin ve özniteliklerin adlarını benzersiz olarak nitelemenizi sağlar. BIR XML ad alanı bildirdiğinizde, yalnızca bu ad alanında benzersiz olması gereken yerel bir ad seçebilirsiniz.

XML adlarının bir diğer yönü de XML ad alanı ön ekleridir ve bu da XML adlarının karmaşıklığının çoğuna neden olur. Bu ön ekler, XML ad alanı için bir kısayol oluşturmanıza olanak tanır ve bu da XML belgesini daha kısa ve anlaşılır hale getirir. Ancak, XML ön ekinin anlamı bağlama bağlıdır ve bu da karmaşıklık ekler. Örneğin, XML ön eki aw xml ağacının bir bölümündeki bir XML ad alanıyla ve başka bir bölümde farklı bir ad alanıyla ilişkilendirilebilir.

LINQ to XML'yi C# ile kullanmanın avantajlarından biri, XML ön eklerini kullanmanız gerekmemiş olmasıdır. LINQ to XML bir XML belgesini yüklediğinde veya ayrıştırdığında, her XML ön eki ilgili XML ad alanına çözümlenir. Bundan sonra, ad alanlarını kullanan bir belgeyle çalışırken, ad alanına ad alanı ön eki üzerinden değil, ad alanı URI'siyle neredeyse her zaman erişirsiniz. Geliştiriciler LINQ to XML'de XML adlarıyla çalıştığında, her zaman tam xml adıyla (xml ad alanı ve yerel ad) çalışır. Ancak LINQ to XML, gerektiğinde ad alanı ön ekleriyle çalışmanıza ve bunları denetlemenize olanak sağlar.

Visual Basic ve XML değişmez değerleriyle LINQ to XML kullanırken, ad alanları içindeki belgelerle çalışırken ad alanı ön eklerini kullanmanız gerekir.

LINQ to XML'de, XML adlarını temsil eden sınıf şeklindedir XName. XML adları LINQ to XML API'sinin tamamında sık sık görünür ve xml adı gerektiğinde bir XName parametre bulursunuz. Ancak, nadiren doğrudan bir XNameile çalışırsınız. XName dizeden örtük bir dönüştürme içerir.

Daha fazla bilgi için bkz. XNamespace ve XName.