2010-05-27 3 views
9

Im пытается создать XML-должен выглядеть следующим образомКак добавить XMLNamespace к 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> 

Ее не проблема, чтобы создать тесты или тестовые элементы, но то, что это лучший способ, чтобы создать " MyTestSet ", включая пространства имен? Im используя C# XMLDocument

ответ

20

Это работает для меня:

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

Если вы хотите создать весь документ, вы в курсе, вы не можете забыть объявление XML:

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

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

В некоторых случаях вам может понадобиться.

+1

Работает отлично .... –

2

Этот вопрос также показывает другой способ сделать это: Creating a specific XML document using namespaces in C#

Вы можете альтернативно использовать класс XmlNamespaceManager

http://msdn.microsoft.com/en-us/library/d6730bwt%28VS.80%29.aspx

Наконец, всегда Linq тоже можно использовать XDocument и XNamespace

http://msdn.microsoft.com/en-us/library/bb387075.aspx

0

Вам не нужны пространства имен xsd и xsi, так как вы их не используете. Любой фрагмент кода, который требует, чтобы он был там, был сильно сломан и должен быть либо исправлен, либо публично высмеян.

+0

Почему downvote? –

+7

Лично вниз, потому что это не конструктивно и не отвечает на вопрос. Вопрос: «Как я могу это сделать», а не «должен ли я это делать». – shortstuffsushi

Смежные вопросы