Note that there are some explanatory texts on larger screens.

plurals
  1. POAdd XML Namespace attribute to 3rd party xml?
    primarykey
    data
    text
    <p>I'm using VB 2008 and I'm trying to add a xmlns="mynamespace" attribute to an XDocument's root element.</p> <p>The XML document is created by a 3rd party, and I have loaded it into a VB XDocument object. As it comes, it has no namespaces. I have been working on a local copy and I added in a namespace in a text editor, so that I can use the XMLToSchema in VB to enable intellisense etc, as per the instructions in the Beth Massi vids at <a href="http://msdn.microsoft.com/en-us/vbasic/bb887653.aspx" rel="nofollow noreferrer">MSDN</a>. Now the rest of the code works I want to open the live documents again. Without the namespace, my XML literals don't resolve.</p> <p>I've tried unsuccessfully to add in the XMLNS property to the root tag using a few methods, and the nearest I got was the following three code samples.</p> <pre><code>Dim myNS As XNamespace = "urn:nbf:namespacename" myXML.Element("nameofrootelement").Add(myNS) </code></pre> <p>^^^^ The namespace was added as the value of the root element, not as an attribute.</p> <pre><code>XML.Root.Add(New XAttribute("xmlns", "name")) </code></pre> <p>^^^^ Generated the error: Run-time exception thrown : System.Xml.XmlException - The prefix '' cannot be redefined from '' to 'name' within the same start element tag.</p> <p>but </p> <pre><code>XML.Root.Add(New XAttribute("test", "name")) </code></pre> <p>^^^^ works correctly. Presumably it doesn't like me manually trying to set a reserved attribute? This namespacing seems way too over complex from some of the Googling I've done.</p> <p>How do I get around this problem? :D</p> <p>Thanks!</p> <hr> <p><strong>Update</strong></p> <p>Thanks Anthony.</p> <p>I think I need to get a better understanding of the namespaces. </p> <p>I thought to .<code>ToString</code> it, then modify, then .<code>Parse</code> it also, but I wanted a better solution so that it would help me understand it a little better! I did try this though, and as you rightly point out, it affects all the descendants too, so thus it still breaks.</p> <p>I will be working with multiple XML feeds all produced by different third parties, and I think for simplicity I will be leaving out the namespacing entirely!</p> <p>My own custom parsing function rewrites the third party feeds into one uniformed document, which then gets processed by another routine. I'll be able to add a ns to that intermediate piece of XML which will help when coding the secondary function.</p> <p>Thanks!</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload