I need to add the following attributes to an 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">
Adding them as an XAttribute doesn't work because of the ":" and I'm sure is not the right way anyways. How do I add these on there?
You can control namespace prefixes when serializing an XML tree in C# and Visual Basic. To do this, insert attributes that declare namespaces.
XML Namespaces - The xmlns Attribute When using prefixes in XML, a namespace for the prefix must be defined. The namespace can be defined by an xmlns attribute in the start tag of an element. The namespace declaration has the following syntax. xmlns:prefix="URI".
Value: If you are getting the value and the attribute might not exist, it is more convenient to use the explicit conversion operators, and assign the attribute to a nullable type such as string or Nullable<T> of Int32 . If the attribute does not exist, then the nullable type is set to null.
The XElement class is one of the fundamental classes in LINQ to XML. It represents an XML element. The following list shows what you can use this class for: Create elements. Change the content of the element.
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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With