20

次の属性を XElement に追加する必要があります。

<xmlns="http://www.mysite.com/myresource" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mysite.com/myresource TheResource.xsd">

それらを XAttribute として追加しても、「:」が原因で機能しません。とにかく正しい方法ではないと確信しています。そこにこれらを追加するにはどうすればよいですか?

4

2 に答える 2

24

多くのブログを精査する必要がありましたが、最終的にこれを行うための「正しい」方法だと思うものを思いつきました:

XNamespace ns = @"http://www.myapp.com/resource";
XNamespace xsi = @"http://www.w3.org/2001/XMLSchema-instance";

var root = new XElement(ns + "root", 
  new XAttribute(XNamespace.Xmlns+"xsi", xsi.NamespaceName),
  new XAttribute(xsi + "schemaLocation", @"http://www.myapp/resource TheResource.xsd")
);
于 2012-06-13T23:10:00.767 に答える
9

必要なものはここに記載されていると思います:方法: 名前空間を使用してドキュメントを作成する (C#) (LINQ to XML)

それから例を挙げると:

// Create an XML tree in a namespace.
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
    new XElement(aw + "Child", "child content")
);
Console.WriteLine(root);

生成されます:

<Root xmlns="http://www.adventure-works.com">
  <Child>child content</Child>
</Root>
于 2012-06-13T20:48:44.230 に答える