Balise XML

dorras7 Messages postés 63 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 23 décembre 2010 - 14 avril 2009 à 10:21
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 14 avril 2009 à 14:00
Bonjour,
je veux savoir comment écrire un document XML qui accepte comme nom du balise le caractère ":"
Exemple:
<NS1:connector>
</NS1:connector>
Le problème que XML n'accepte pas le caractère ":" sachant que je développe sous c#
Merci

7 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
14 avril 2009 à 11:48
Salut.

C'est normal que le XML "n'accepte pas" le caractère ":". Il s'agit d'un caractère spécial correspondant à un namespace.
En gros, tu es censé avoir :

<?xml version="1.0" encoding="utf-8" ?>

    <NSl:connector>
        ...
    </NSl:connector>

D'ailleurs, "XMLNS" signifie "Extensible Markup Language NameSpace".

Krimog :
while (!(succeed = try())) ;
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
14 avril 2009 à 11:49
Bonjour,

Essaies avec la classe XmlTextWriter: http://msdn.microsoft.com/fr-fr/library/system.xml.xmltextwriter(VS.80).aspx

Un petit exemple:
XmlTextWriter writer = new XmlTextWriter("test.xml", Encoding.GetEncoding(0));
writer.Formatting = Formatting.Indented;//Fichier indenté
writer.WriteStartElement("prefix", "localName", "ns");
writer.WriteString("value");
writer.WriteEndElement();
writer.Close();

Ce qui te donne le fichier XML suivant:
value

Voila tout,

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
dorras7 Messages postés 63 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 23 décembre 2010
14 avril 2009 à 12:03
Merci pour vos réponse,
j'ai deja ajouté dans la balise principale XMLNS
et ça pas marché voici le code, le problème quand je modifie le fichier XML manuelement ça marche mais lorsque je veux que le c# le génére le fichier ça marche pas.
voici le code:
           XDocument doc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"));
           string soap= "http://schemas.xmlsoap.org/soap/envelope/";         
           string ns1 = "CATIA/V5/Electrical/1.0";    
         
           XElement name = new XElement("SOAP_ENV:Envelopp", new XAttribute(XNamespace.Xmlns + "SOAP_ENV", soap));
       
           XElement DocumentType = new XElement("SOAP_ENV:Body");
         
           name.Add(DocumentType);
           doc.Add(name);
           doc.Save("C:exemple.xml");

-->génére erreur lors de l'exécution car ":" ne le comprend pas
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
14 avril 2009 à 12:05
As-tu essayé le code que je t'ai fourni. Car il est testé et validé de mes propres petites mains de développeur ^^

Bon test,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dorras7 Messages postés 63 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 23 décembre 2010
14 avril 2009 à 12:25
Oui,
j'ai le testé mais le pb que je veux pas afficher xmlns:prefix="ns" dans le deuxième balise
c'est à dire j'ai besoin par exemple:

<NS1:connector>aaa</NS1:connector>

-->deuxieme balise j'ai pas besoin xmlns:prefix="ns" ton exmeple intégree xmlns:...
dans le deuxieme balise
0
dorras7 Messages postés 63 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 23 décembre 2010
14 avril 2009 à 12:40
Salut,
Tu m'a compris ce que je veux moi
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
14 avril 2009 à 14:00
Oui, j'ai bien compris mais comme l'a dit Krimog, il te faut définir le namespace et donc avoir la balise xmlns:NSl="Chemin D'Acces Au Schema Correspondant A NSl"

Je ne vois pas comment faire sinon (à moins de créer le fichier à la main ).

Bonne après midi,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
Rejoignez-nous