System.Xml.Linq.XNamespace sınıfı
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 öğesinin bir XNamespaceiçerir. Bir öğe bir ad alanında olmasa bile, öğesinde XName yine de bir ad alanı (. XNamespace.None) bulunur. XName.Namespace özelliğinin olmaması null
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>
öğesine bir dize XNamespace atamak, 'den Stringörtük dönüştürmeyi 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 atomization
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. GENIŞLETILMIŞ ad içeren bir dizeyi LINQ to XML'ye her geçirdiğinizde, adı ayrıştırması, atomize ad alanını bulması ve atomize edilen adı bulması 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin