2013-12-23 3 views
0

Я пытаюсь создать XML-документ для ввода стороннего веб-сервиса (.asmx). Я использую Linq to Xml.XDocument - создать XAttribute Xmlns без префикса

Я генерация XAttributes с пространствами имен, как так:

XNamespace xsiNs = "http://www.w3.org/2001/XMLSchema-instance"; 

new XAttribute(XNamespace.Xmlns + "xsi", xsiNs); 

Это дает мне желаемый выход xmlns:xsi..... с xsi префиксом

Однако, есть атрибут, без префикса, как это: xmlns="urn:.......

Как достичь добавления пространства имен без префикса только для этого атрибута?

ответ

0

атрибут как этот xmlns="urn:..." является пространство имен вашего элемента (и пространства имен по умолчанию для всех элементов-потомков), так что если вы хотите добавить, попробуйте следующее:

XNamespace xsiNs = "http://www.w3.org/2001/XMLSchema-instance"; 
    XNamespace defNs = "urn:dummy"; 
    var element = new XElement(defNs + "root", new XAttribute(XNamespace.Xmlns + "xsi", xsiNs)); 

В результате получается следующее:

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:dummy" /> 
Смежные вопросы