Je travaille contre une api xml tierce partie. Ils ont défini une structure xml requise similaire à la suivante.xml nom d'élément avec deux-points
<ns1:E xmlns:ns1="schema">
<ns1:B>
<ns2:S>
<ns2:V>
<ns2:Bl />
</ns2:V>
</ns2:S>
</ns1:B>
</ns1:E>
Il existe une table SQL avec les informations que je dois mettre dans ce format xml. J'ai un adaptateur LINQ to SQL pour obtenir les données et j'utilise un System.Xml
pour créer un document XML.
XmlDocument.CreateElement("ns1:E"); etc
Cela fonctionne très bien tant que je supprime les deux-points des noms d'éléments. Avec les deux points, seul le côté droit du colon est dans le nom de l'élément. Je sais que les deux-points sont un non-non mais je n'ai aucun contrôle sur ce que l'api de 3ème partie dicte.
Quelles sont mes options pour contourner ce problème? Existe-t-il des moyens utiles de forcer les deux-points dans les noms des éléments? Je n'ai pas besoin d'utiliser XMLDocument
mais je ne suis pas sûr de savoir quelle autre méthode m'apportera. MISE À JOUR: Je me rends compte que <ns1:
fait référence à un espace de noms. Et oui, il y a 2. Lors de l'écriture sur le XML, je peux le faire fonctionner si je dis -
XmlDocument.CreateElement(ns1:E", "http://schema);
Cependant, la sortie XML de c'est
<ns1:E xmlns:ns1="http://schema">
Si je dis simplement XmlDocument.CreateElement("ns1:E");
avec pas d'uri, alors la sortie est juste <E>
. Je ne veux pas que la sortie ait la référence de schéma mais j'ai besoin d'avoir le préfixe. Le résultat que je veux atteindre est simplement <ns1:E>
. Les deux namspaces sont déclarés en haut, ce qui signifierait que je devrais les déclarer à chaque nœud.
J'ai le même problème, même cette méthode ne fonctionne pas pour moi. Comment avez-vous simplement atteint? –