2010-05-27 5 views
9

Im essayant de créer un xml le devrait ressembler à ceciComment ajouter XMLNamespace à un 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> 

ne est pas un problème pour créer des tests ou des éléments de test, mais quelle est la meilleure façon de créer le " MyTestSet "y compris les espaces de noms? Im en utilisant C# XMLDocument

Répondre

20

Cela fonctionne pour moi:

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

Si vous voulez créer tout le document que vous avez posté, vous voudrez peut-être de ne pas oublier la déclaration 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); 

Dans certains cas, vous pourriez en avoir besoin.

+1

Fonctionne parfaitement .... –

0

Vous n'avez pas besoin des espaces de noms xsd et xsi puisque vous ne les utilisez pas. Tout morceau de code qui les oblige à être là est gravement brisé et devrait soit être réparé, soit être publiquement ridiculisé.

+0

Pourquoi le downvote? –

+7

Personnellement downvoted parce que ce n'est pas constructif et ne répond pas à la question. La question était «comment puis-je faire ceci», et non «devrais-je faire ceci». – shortstuffsushi

Questions connexes