Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
Bu sınıf, ad alanlarının XML yapısını temsil eder.
Her XName bir XNamespace içerir. Bir öğe bir ad alanında olmasa bile, öğesinde XName yine de bir ad alanı (. XNamespace.None) bulunur.
XName.Namespace özelliğinin null
olmadığı garanti edilir.
XNamespace nesnesi oluşturma
Nesne oluşturmanın XNamespace en yaygın yolu, nesneye yalnızca bir dize atamaktır. Daha sonra ekleme işlecinin geçersiz kılmasını kullanarak ad alanını yerel bir adla birleştirebilirsiniz. Aşağıdaki örnekte bu deyim gösterilmektedir:
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root", "Content");
Console.WriteLine(root);
Dim aw As XNamespace = "http://www.adventure-works.com"
Dim root As XElement = New XElement(aw + "Root", "Content")
Console.WriteLine(root)
Bununla birlikte, Visual Basic'te genellikle aşağıdaki gibi genel bir varsayılan ad alanı bildirirsiniz:
Imports <xmlns='http://www.adventure-works.com'>
Module Module1
Sub Main()
Dim root As XElement = _
<Root>Content</Root>
Console.WriteLine(root)
End Sub
End Module
Bu örnek aşağıdaki çıkışı oluşturur:
<Root xmlns="http://www.adventure-works.com">Content</Root>
Bir dizeyi XNamespace öğesine atamak, String'den örtük dönüşüm kullanır.
Daha fazla bilgi ve örnek için bkz. C# dilinde ad alanlarıyla belge oluşturma (LINQ to XML).
Visual Basic'te ad alanlarını kullanma hakkında daha fazla bilgi için bkz. XML ad alanlarıyla çalışma.
Ad alanı ön eklerini denetleme
Ad alanı bildiren bir öznitelik oluşturursanız, öznitelikte belirtilen ön ek serileştirilmiş XML'de kalıcı hale getirilir. Ön eki olan bir ad alanı bildiren bir öznitelik oluşturmak için, özniteliğin adının ad alanının ve özniteliğin Xmlnsadının ad alanı öneki olduğu bir öznitelik oluşturursunuz. özniteliğinin değeri, ad alanının URI'dir. Aşağıdaki örnekte bu deyim gösterilmektedir:
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),
"Content");
Console.WriteLine(root);
Dim aw As XNamespace = "http://www.adventure-works.com"
Dim root As XElement = New XElement(aw + "Root", _
New XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"), _
"Content")
Console.WriteLine(root)
Visual Basic'te, ad alanı ön eklerini denetlemek için bir ad alanı düğümü oluşturmak yerine genellikle genel ad alanı bildirimi kullanırsınız:
Imports <xmlns:aw='http://www.adventure-works.com'>
Module Module1
Sub Main()
Dim root As XElement = _
<aw:Root>Content</aw:Root>
Console.WriteLine(root)
End Sub
End Module
Bu örnek aşağıdaki çıkışı oluşturur:
<aw:Root xmlns:aw="http://www.adventure-works.com">Content</aw:Root>
Daha fazla bilgi için bkz. Ad alanı ön eklerini denetleme.
Varsayılan ad alanı oluşturma
Ad alanı olacak bir öznitelik oluşturulurken, öznitelik adında "xmlns" özel değeri varsa, XML ağacı seri hale getirildiğinde, ad alanı varsayılan ad alanı olarak bildirilir. Adı "xmlns" olan özel öznitelik herhangi bir ad alanında değildir. özniteliğinin değeri ad alanı URI'dir.
Aşağıdaki örnek, ad alanının varsayılan ad alanı olacağı şekilde bildirilen bir öznitelik içeren bir XML ağacı oluşturur:
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
new XAttribute("xmlns", "http://www.adventure-works.com"),
new XElement(aw + "Child", "content")
);
Console.WriteLine(root);
Dim aw As XNamespace = "http://www.adventure-works.com"
Dim root As XElement = New XElement(aw + "Root", _
New XAttribute("xmlns", "http://www.adventure-works.com"), _
New XElement(aw + "Child", "content") _
)
Console.WriteLine(root)
Visual Basic'te, varsayılan ad alanı oluşturmak için bir ad alanı düğümü oluşturmak yerine genellikle genel bir varsayılan ad alanı bildirimi kullanırsınız:
Imports <xmlns='http://www.adventure-works.com'>
Module Module1
Sub Main()
Dim root As XElement = _
<Root>
<Child>content</Child>
</Root>
Console.WriteLine(root)
End Sub
End Module
Bu örnek aşağıdaki çıkışı oluşturur:
<Root xmlns="http://www.adventure-works.com">
<Child>content</Child>
</Root>
XNamespace atomizasyonu
XNamespace nesnelerin atomize edilmesi garanti edilir; başka bir ifadeyle, iki XNamespace nesne tam olarak aynı URI'ye sahipse aynı örneği paylaşır. Eşitlik ve karşılaştırma işleçleri bu amaçla açıkça sağlanır.
Genişletilmiş adları kullanma
Ad alanı ve yerel ad belirtmenin bir diğer yolu da biçiminde {namespace}name
genişletilmiş bir ad kullanmaktır:
XElement e = new XElement("{http://www.adventure-works.com}Root",
new XAttribute("{http://www.adventure-works.com}Att", "content")
);
Console.WriteLine(e);
Dim e As XElement = New XElement("{http://www.adventure-works.com}Root", _
New XAttribute("{http://www.adventure-works.com}Att", "content") _
)
Console.WriteLine(e)
Bu örnek aşağıdaki çıkışı oluşturur:
<Root p1:Att="content" xmlns:p1="http://www.adventure-works.com" xmlns="http://www.adventure-works.com" />
Bu yaklaşımın performans üzerindeki etkileri vardır. Her genişletilmiş ad içeren bir dizeyi LINQ to XML'ye geçirdiğinizde, adı ayrıştırması, atomize ad alanını bulması ve atomize edilen adı bulunması gerekir. Bu işlem CPU süresini alır. Performans önemliyse farklı bir yaklaşım kullanmak isteyebilirsiniz.
Visual Basic ile önerilen yaklaşım, genişletilmiş adların kullanılmasını içermeyen XML değişmez değerlerini kullanmaktır.