Balise XML

Signaler
Messages postés
63
Date d'inscription
dimanche 15 mars 2009
Statut
Membre
Dernière intervention
23 décembre 2010
-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
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

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
49
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())) ;
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
25
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
---------------------
Messages postés
63
Date d'inscription
dimanche 15 mars 2009
Statut
Membre
Dernière intervention
23 décembre 2010

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
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
25
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
---------------------
Messages postés
63
Date d'inscription
dimanche 15 mars 2009
Statut
Membre
Dernière intervention
23 décembre 2010

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
Messages postés
63
Date d'inscription
dimanche 15 mars 2009
Statut
Membre
Dernière intervention
23 décembre 2010

Salut,
Tu m'a compris ce que je veux moi
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
25
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
---------------------