Aracılığıyla paylaş


Ad alanı ön eklerini denetleme (LINQ to XML)

Bu makalede, C# ve Visual Basic'te xml ağacı seri hale getirildiğinde ad alanı ön eklerinin nasıl denetlendiği açıklanır.

Çoğu durumda, ad alanı ön eklerini denetlemek gerekli değildir. Ancak, bazı XML programlama araçları bunu gerektirir. Örneğin, belirli ad alanı ön eklerine başvuran katıştırılmış XPath ifadeleri içeren bir XSLT stil sayfasını veya XAML belgesini işliyo olabilirsiniz. Böyle bir durumda, belgenin bu ön eklerle seri hale getirilmesi önemlidir. Bu, ad alanı ön eklerini denetlemenin yaygın bir nedenidir.

Bir diğer neden de kullanıcıların XML belgesini el ile düzenlemesini ve kullanıcının yazacağı ad alanı ön ekleri oluşturmak istemenizdir. Örneğin, bir XSD belgesi oluşturuyor olabilirsiniz. Şema kuralları, şema ad alanı için ön ek olarak veya xsd kullanmanızı xs önerir.

Ad alanı ön eklerini denetlemek için ad alanlarını bildiren öznitelikler eklersiniz. Ad alanlarını belirli ön eklerle bildirirseniz, LINQ to XML serileştirilirken ad alanı ön eklerine uymaya çalışır.

Ö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.

Örnek: Ön ekleri olan iki ad alanı oluşturma

Bu örnekte iki ad alanı bildirmektedir. Ad alanının ön ekini awhttp://www.adventure-works.com ve ad alanının ön ekini fcwww.fourthcoffee.com belirtir.

XNamespace aw = "http://www.adventure-works.com";
XNamespace fc = "www.fourthcoffee.com";
XElement root = new XElement(aw + "Root",
    new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),
    new XAttribute(XNamespace.Xmlns + "fc", "www.fourthcoffee.com"),
    new XElement(fc + "Child",
        new XElement(aw + "DifferentChild", "other content")
    ),
    new XElement(aw + "Child2", "c2 content"),
    new XElement(fc + "Child3", "c3 content")
);
Console.WriteLine(root);
Imports <xmlns:aw="http://www.adventure-works.com">
Imports <xmlns:fc="www.fourthcoffee.com">

Module Module1

    Sub Main()
        Dim root As XElement = _
            <aw:Root>
                <fc:Child>
                    <aw:DifferentChild>other content</aw:DifferentChild>
                </fc:Child>
                <aw:Child2>c2 content</aw:Child2>
                <fc:Child3>c3 content</fc:Child3>
            </aw:Root>
        Console.WriteLine(root)
    End Sub

This example produces the following output:

```xml
<aw:Root xmlns:aw="http://www.adventure-works.com" xmlns:fc="www.fourthcoffee.com">
  <fc:Child>
    <aw:DifferentChild>other content</aw:DifferentChild>
  </fc:Child>
  <aw:Child2>c2 content</aw:Child2>
  <fc:Child3>c3 content</fc:Child3>
</aw:Root>

Ayrıca bkz.