我需要将以下属性添加到 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 不起作用,而且我确信这不是正确的方法。我如何在那里添加这些?
我需要将以下属性添加到 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 不起作用,而且我确信这不是正确的方法。我如何在那里添加这些?
它花了很多博客,但我终于想出了我认为是“正确”的方法来做到这一点:
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")
);
我认为这里描述了您想要的内容:如何:使用命名空间创建文档 (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>