2009-08-12 26 views
29

Tôi đang sử dụng XDocument để xây dựng một tài liệu Xml trong một cấu trúc đã biết. Cấu trúc tôi đang cố gắng xây dựng như sau:Làm cách nào để thêm nhiều khai báo Không gian tên vào một XDocument?

<request xmlns:ns4="http://www.example.com/a" xmlns:ns3="http://www.example.com/b" xmlns:ns2="http://www.example.com/c" > 
    <requestId>d78d4056-a831-4c7d-a357-d14402f623fc</requestId> 
    .... 
</request> 

Lưu ý thuộc tính "xmlns: nsX".

Tôi đang cố gắng, không thành công, để thêm các thuộc tính này vào phần tử "yêu cầu" của tôi.

XNamespace ns4 = XNamespace.Get("http://www.example.com/a"); 
XNamespace ns3 = XNamespace.Get("http://www.example.com/b"); 
XNamespace ns2 = XNamespace.Get("http://www.example.com/c"); 

XDocument doc = new XDocument(
    new XDeclaration("1.0", "utf-8", "no"), 
    new XElement("request", 
     new XAttribute("ns4", ns4), 
     new XAttribute("ns3", ns3), 
     new XAttribute("ns2", ns2), 
     new XElement("requestId", Guid.NewGuid()) 
    ) 
); 

Tuy nhiên, điều này tạo ra như sau:

<request ns4="http://www.example.com/a" ns3="http://www.example.com/b" ns2="http://www.example.com/c"> 
    <requestId>38b07cfb-5e41-4d9a-97c8-4740c0432f11</requestId> 
</request> 

Làm thế nào để tôi thêm các khai báo không gian tên chính xác?

Trả lời

49

Bạn có nghĩa là:

  new XAttribute(XNamespace.Xmlns + "ns4", ns4), 
      new XAttribute(XNamespace.Xmlns + "ns3", ns3), 
      new XAttribute(XNamespace.Xmlns + "ns2", ns2), 
+0

Hình như nó! Cảm ơn bạn đã trả lời * cực kỳ nhanh chóng *. –

+1

3 phút? Marc là ON nó. – jcollum

Các vấn đề liên quan