2010-05-27 12 views
9

Im Versuch, eine XML hinzufügen erstellen die ähnlichenWie XMLnamespace zu einem XmlDocument

<?xml version="1.0" encoding="iso-8859-1"?> 
<MyTestSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <Tests> 
    <Test> 
     <messaure>1</messaure> 
     <height>4</height> 
    </Test> 
    <Test> 
     <messaure>4</messaure> 
     <height>53</height> 
    </Test> 
    </Tests> 
</MyTestSet> 

Es ist nicht ein Problem aussehen soll die Tests oder Testelemente zu schaffen, aber was ist der beste Weg, um die "Create MyTestSet "einschließlich der Namespaces? Im mit C# XMLDocument

Antwort

20

Dies funktioniert für mich:

XmlDocument.DocumentElement.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); 
XmlDocument.DocumentElement.SetAttribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema"); 

Wenn Sie das gesamte Dokument erstellen möchten Sie gepostet haben, könnten Sie nicht die XML-Deklaration vergessen wollen:

 XmlDeclaration xml_declaration; 
     xml_declaration = XmlDocument.CreateXmlDeclaration("1.0", "ISO-8859-1", "yes"); 

     XmlElement document_element = XmlDocument.DocumentElement; 
     XmlDocument.InsertBefore(xml_declaration, document_element); 

In bestimmten Fällen benötigen Sie es möglicherweise.

+1

Funktioniert perfekt .... –

0

Sie benötigen die Namensbereiche xsd und xsi nicht, da Sie sie nicht verwenden. Irgendein Code, der sie dazu bringt, dort zu sein, ist schlimm kaputt und sollte entweder repariert oder öffentlich ausgelacht werden.

+0

Warum der Downvote? –

+7

Persönlich abgelehnt, weil dies nicht konstruktiv ist und die Frage nicht beantwortet. Die Frage lautete: "Wie kann ich das machen" und nicht "sollte ich das tun?" – shortstuffsushi

Verwandte Themen