2016-06-15 9 views
0

は、私はこのように作成したXmlNodeを持っている:C#で別の接頭辞を持つXmlNodeに新しいXML名前空間を定義する方法は?

XmlNode nodeSecurity = xmlDoc.CreateNode(XmlNodeType.Element, "wsse", "Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"); 

結果は次のようになります。WSSE-名前空間がすでに親ノードによって宣言された

<wsse:Security /> 

ので、このノード"xmlns:wsse = '...'"属性を含んでいません(未知の名前空間は自動xmlns属性で宣言されています)。

今私の問題:

<wsse:Security wsu:xmlns='....' /> 

私はこのような属性を追加しようとしました::

XmlNode attr = xmlDoc.CreateNode(XmlNodeType.Attribute, "wsu", "blabla"); 
nodeSecurity.Attributes.SetNamedItem(attr); 

そして結果は次のようになりますので、私は、ここに新しい名前空間を宣言する必要があります 結果は次のとおりです。

<wsse:Security p4:wsu="" xmlns:p4="blabla" /> 

代わりに、

<wsse:Security wsu:xmlns="blabla" /> 

私はここで間違っていますか?

答えて

1

は、この場合、この

XmlAttribute attr = xmlDoc.CreateAttribute("wsu", "xmlns", "namespace"); 
attr.Value = "blabla"; 
nodeSecurity.Attributes.Append(attr); 

結果

<wsse:Security wsu:xmlns="blabla" xmlns:wsu="namespace" /> 

を試してみて、wsu:xmlnsは名前xmlnsと接頭wsuを持つ属性です。プレフィックスに属する名前空間は、xmlns:wsuの形式で設定されます。

+0

はい、それが助けになりました。ありがとうございました :) –

関連する問題