How do I set namespace attributes on an XElement
It took scouring a lot of blogs but I finally came up with what I think is the "right" way to do this:
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")
);
I think what you want is described here: How to: Create a Document with Namespaces (C#) (LINQ to XML)
To take an example from it:
// 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);
would produce:
<Root xmlns="http://www.adventure-works.com">
<Child>child content</Child>
</Root>