IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[1.1] Ajout de DTD dans la génération de fichier XML


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [1.1] Ajout de DTD dans la génération de fichier XML
    Bonjour, je vous explique ce qu je cherche à faire.

    Je suis en train de développer un logiciel en VB.NET qui doit me permettre entre autre la génération de fichiers XML.
    La génération de fichier Xml se passe correctement pour le moment, mais je possède aussi un fichier DTD qui définit mon fichier XML.

    Je cherche donc à pour voir ajouter un lien vers le fichier DTD ou dans le cas échéant insérer le contenu de ma DTD dans le fichier XML

    ps : j'ai utiliset xmlDocument pour la génération du fichier xml

    Je vous remercie d'avance de votre aide
    Shad

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    N'ayant pas eu de réponse à ma question j'ai continuer de chercher par moi-même et j'ai trouver deux solutions possibles.

    La première consister à utiliser le StreamWriter permettant d'écrire directement dans le fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Imports System.IO
     
            Dim sw As StreamWriter
            sw = New StreamWriter(Application.StartupPath & "\xml\test4.xml")
     
            Dim contenuXML As String = Nothing
     
            contenuXML = "<?xml version=""1.0"" encoding=""iso-8859-1"" ?>"
     
            contenuXML &= vbCrLf & "<!DOCTYPE theme SYSTEM """ & Application.StartupPath & "\config\definition.dtd"">"
            contenuXML &= vbCrLf & vbCrLf & "<theme"
            contenuXML &= vbCrLf & Chr(9) & "dateCrea = ""12-12-12"""
            contenuXML &= vbCrLf & Chr(9) & "dateModif = ""12-01-13"""
            contenuXML &= vbCrLf & Chr(9) & "iniLang = ""FR"""
            contenuXML &= vbCrLf & Chr(9) & "nomLang = ""France"""
            contenuXML &= vbCrLf & Chr(9) & ">"
            contenuXML &= vbCrLf
            contenuXML &= vbCrLf & Chr(9) & "<expression>"
            contenuXML &= vbCrLf & Chr(9) & Chr(9) & "<nbclic>"
            contenuXML &= vbCrLf & Chr(9) & Chr(9) & Chr(9) & "12541658"
            contenuXML &= vbCrLf & Chr(9) & Chr(9) & "</nbclic>"
            contenuXML &= vbCrLf & Chr(9) & Chr(9) & "<keyword>"
            contenuXML &= vbCrLf & Chr(9) & Chr(9) & Chr(9) & "test"
            contenuXML &= vbCrLf & Chr(9) & Chr(9) & "</keyword>"
     
            contenuXML &= vbCrLf & Chr(9) & "</expression>"
            contenuXML &= vbCrLf & "</theme>"
     
            MsgBox(contenuXML)
     
            sw.WriteLine(contenuXML)
            sw.Close()
     
            sw = Nothing
    vbCrlf correspond au retour chariot et chr(9) aux tabulations (mis en forme que je souhaitais à l'intérieur de mon fichier XML.

    La seconde solution utilise des objets DOM mais je ne la manipule pas encore comme je le souhaite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
          Dim txtDTD As String = Nothing
     
            Dim objDocument As New System.Xml.XmlDocument
     
            Dim objElement, elemExpression, elemNbclic, elemKeyword As System.Xml.XmlElement
     
            Dim objDocumentType As System.Xml.XmlDocumentType
     
            txtDTD = vbCrLf & "<!ELEMENT theme (expression)*>"
            txtDTD &= vbCrLf & Chr(9) & "<!ATTLIST theme "
            txtDTD &= vbCrLf & Chr(9) & Chr(9) & "dateCrea CDATA #REQUIRED"
            txtDTD &= vbCrLf & Chr(9) & Chr(9) & "dateModif CDATA #REQUIRED"
            txtDTD &= vbCrLf & Chr(9) & Chr(9) & "iniLang CDATA #REQUIRED"
            txtDTD &= vbCrLf & Chr(9) & Chr(9) & "nomLang CDATA #REQUIRED"
            txtDTD &= vbCrLf & Chr(9) & Chr(9) & ">"
     
            txtDTD &= vbCrLf & "<!ELEMENT expression (nbclic, keyword)>"
            txtDTD &= vbCrLf & Chr(9) & "<!ELEMENT nbclic (#PCDATA)>"
            txtDTD &= vbCrLf & Chr(9) & "<!ELEMENT keyword (#PCDATA)>" & vbCrLf
     
            objDocumentType = objDocument.CreateDocumentType("theme", Nothing, Nothing, txtDTD)
     
            objDocument.AppendChild(objDocumentType)
     
            objElement = objDocument.CreateElement("theme")
            objElement.SetAttribute("dateCrea", "12-12-06")
            objElement.SetAttribute("dateModif", "18-12-06")
            objElement.SetAttribute("iniLang", "FR")
            objElement.SetAttribute("nomLangue", "france")
     
            objDocument.AppendChild(objElement)
     
            elemExpression = objDocument.CreateElement("expression")
            objElement.AppendChild(elemExpression)
     
            elemNbclic = objDocument.CreateElement("nbclic")
            elemKeyword = objDocument.CreateElement("elemKeyword")
     
            elemNbclic.InnerText = "12121212"
            elemKeyword.InnerText = "commerce itinérant"
     
            elemExpression.AppendChild(elemNbclic)
            elemExpression.AppendChild(elemKeyword)
     
            MsgBox(objDocument.OuterXml)
     
            objDocument.Save(Application.StartupPath & "\xml\" & "test2.xml")
    Je ne dis pas que ces codes sont parfaits loin de là, mais je les met ici car ils fonctionnent et pourrais peut-être aider une autre personne

    Quand on a pas la connaissance on demande, quand on l'a on l'offre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur dans la génération du fichier WSDL sous Netbeans
    Par ebenmous dans le forum Services Web
    Réponses: 11
    Dernier message: 12/05/2011, 19h38
  2. [Xerces][C++][DTD][XSD] Validation d'un fichier XML
    Par xxiemeciel dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 04/08/2010, 20h10
  3. Réponses: 1
    Dernier message: 22/04/2008, 11h24
  4. Réponses: 5
    Dernier message: 30/01/2008, 14h47
  5. [DOM] Génération dynamique fichier xml
    Par Fabouney dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/10/2005, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo