[C# 2.0] Comment créer un fichier Xml avec gestion des espaces de noms ?
Bonjour,
Je travaille actuellement sur un logiciel qui échange des documents (fichiers Xml) via une connexion SSL. Plutôt que d'utiliser des fichiers Xml en dur, les charger dans une chaine pour modifier les valeurs nécessaires, je voudrais les générer via le code.
Je sais le faire sauf quand les espaces de noms sont de la partie à priori :mouarf:
J'ai des problèmes pour assigner plusieurs espaces de nom sur un même élément ainsi que pour assigner les préfixes.
Voici à quoi ressemble le fichier Xml que je souhaite générer
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?xml version="1.0" encoding="UTF-8"?>
<ns2:Enveloppe xmlns:ns1="..." xmlns:ns2="..." xmlns:ns3="..." Id="...">
<ns1:Emetteur>
<ns1:IDCL ns1:Arrondissement="..." ns1:Departement="..." ns1:Nature="..." ns3:SIREN="..."/>
<ns1:Referent>
<ns1:Nom>...</ns1:Nom>
<ns1:Telephone>...</ns1:Telephone>
<ns1:Email>...</ns1:Email>
</ns1:Referent>
</ns1:Emetteur>
<ns1:AdressesRetour>
<ns1:Email>...</ns1:Email>
</ns1:AdressesRetour>
<ns1:FormulairesEnvoyes>
<ns1:Formulaire>
<ns1:NomFichier>...</ns1:NomFichier>
</ns1:Formulaire>
</ns1:FormulairesEnvoyes>
<ns2:Documents>
<ns2:Document xmlns:ns1="..." xmlns:ns2="..." Id="...">
<ns1:DemandeClassification xmlns:ns1="..." xmlns:ns3="..." xmlns:ns4="...">
<ns1:DateClassification>...</ns1:DateClassification>
</ns1:DemandeClassification>
</ns2:Document>
</ns2:Documents>
</ns2:Enveloppe> |
Un exemple du code utiliser pour le générer
Code:
1 2 3 4 5 6 7 8 9 10
| XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "utf-8", null);
XmlElement rootNode = doc.CreateElement("ns2", "Enveloppe", "...");
rootNode.SetAttribute("Id", "ID");
doc.InsertBefore(xmlDeclaration, doc.DocumentElement);
doc.AppendChild(rootNode);
XmlElement emetteur = doc.CreateElement("ns1", "Emetteur", null);
rootNode.AppendChild(emetteur);
... |
Mais bien évidemment, je ne peux assigner qu'un seul espace de nom sur mon élément racine et mon élément emetteur se retrouve sans préfixe.
Code:
1 2 3 4 5 6 7
| <?xml version="1.0" encoding="utf-8"?>
<ns2:Enveloppe Id="ID" xmlns:ns2="...">
<Emetteur>
...
<Emetteur/>
...
</ns2:Enveloppe> |
Je n'ai pas trouvé comment gérer les espaces de noms, en espérant que quelqu'un puisse m'aider :)