linq.xmlからxelementを使用してxmlを作成しています。 私hirerachyは、私がここにこのスキーマ STR Cのルートxelement要素に名前空間を追加/作成する
は、スキーマ生成
XNamespace ns = XNamespace.Get("urn:APISchema.xsd");
root = new XElement(ns + "Foo");
root.Add(new XElement("version", "2"));
root.Add(new XElement("foochild", "str"));
ための私のコードですが、結果として得られるスキーマが
<Foo xlmns="urn:APISchema.xsd">
<version xlmns="">2</version>
<foochild xlmns="">str</foochild>
</Foo>
ある場合は、この
のようないくつかのことです
なぜこのような問題があるのかルートチャイルドにxlmnを追加する...?
"Namespace"は悪い変数名です。 –
@ root.Add(新しいXElement(名前空間+ "foo"、 "str")) 私のxmlは必須ではありません。はるかに長い.. 名前空間に関してyep!私はその悪い変数名に同意します:)しかし、上のコードサンプルのためのちょうどタイプミスです。 –
すべての要素には名前空間があります。したがって、要素名の前にXNamespaceを使用しないと、XElementコンストラクタは親の名前空間を ""で上書きすることを意味します。要するに、すべてに名前空間を追加する必要があります...右のSO関連ボックスを見ると、このリンクが役立ちます。 http://stackoverflow.com/questions/477962/how-to-create-xelement-with-default-namespace-for-children-without-using-xnamespa –