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

Valider XML Discussion :

[DTD] : type biographie


Sujet :

Valider XML

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 84
    Points
    84
    Par défaut [DTD] : type biographie
    Bonjour,

    Voilà je dois développer une sorte d'éditeur de fichier sur un site pour des personnes ne manipulant pas le xhtml. Pour cela j'ai donc voulu me mettre à l'XML que je trouve bien adapté et intéressant à gérer et à parser à l'aide de DOM/PHP.
    Je dois par exemple gérer la mise en forme d'une biographie, j'ai donc établi une DTD et un fichier XML d'exemple.

    Pourriez-vous m'indiquer si j'ai bien compris comment cela fonctionnait et si dans ce cas, je peux continuer sereinement à mettre mon parseur :p

    Voilà la DTD et le fichier XML correspondant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <!ELEMENT biographie (informations, discographie, photo, contenu)+ >
     
    <!ELEMENT contenu (gras, italique, souligne, barre, citation, lien, email,
    		liste)? >
     
    <!ELEMENT liste (element)+ >
    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
     
    <?xml version="1.0" encoding="utf-8"?> 
    <!DOCTYPE biographie SYSTEM "biographie.dtd">
     
    <biographie>
    	<informations>
    		<nom>Fabolous</nom>
    		<prenom></prenom>
    		<artistes_similaires>
    			<liste>
    				<element></element>
    				<element></element>
    				<element></element>
    			</liste>
    		</artistes_similaires>
    		<genre></genre>
    	</informations>
     
    	<discographie>
    		<album></album>
    		<album></album>
    	</discographie>
     
    	<photo></photo>
     
    	<contenu></contenu>
    </biographie>
    Merci pour votre attention.

    @+ casper

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 63
    Points : 74
    Points
    74
    Par défaut
    ta DTD n'est pas complete, il n y a pas la definition de la balise informations par exemple

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 84
    Points
    84
    Par défaut
    Ah donc ce la signifie que je dois déclarer chaque balise grâce à <!ELEMENT > et ensuite je mets en place les différentes liaisons telle que contenir telle ou telle balise au moins une fois etc etc ?

    Et que la DTD deviendrait donc :

    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
     
    <!ELEMENT biographie (informations, discographie, photo, contenu)+ >
     
    <!ELEMENT informations (nom, prenom, artistes_similaires, genre)+ >
     
    <!ELEMENT nom+ (#PCDATA) >
     
    <!ELEMENT prenom+ (#PCDATA) >
     
    <!ELEMENT artistes_similaires+ (#PCDATA) >
     
    <!ELEMENT liste (element)+ >
     
    <!ELEMENT element (#PCDATA) >
     
    <!ELEMENT genre (#PCDATA) >
     
    <!ELEMENT discographie (liste, element)+ >
     
    <!ELEMENT photo >
     
    <!ELEMENT contenu (gras, italique, souligne, barre, citation, lien, email,
    		liste)? >
     
    <!ELEMENT gras (#PCDATA) >
     
    <!ELEMENT italique (#PCDATA) >
     
    <!ELEMENT souligne (#PCDATA) >
     
    <!ELEMENT barre (#PCDATA) >
     
    <!ELEMENT citation (#PCDATA) >
     
    <!ELEMENT lien (#PCDATA) >
     
    <!ELEMENT email (#PCDATA) >
    ma DTD est-elle complète et valide maintenant ?

    De plus je me pose une nouvelle question, vaut-il parser un fichier avec DOM/PHP et obtenir un fichier xhtml qui pourra interagir avec un fichier css ou mieux vaut-il se servir d'une feuille xslt ? Sachant que le xml sera stocké dans une base de données et donc parser à chaque appel.

    merci.

    @+ casper

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 63
    Points : 74
    Points
    74
    Par défaut
    Salut,

    il te manque un truc dans ta DTD dans la balise artistes_similaires:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!ELEMENT artistes_similaires (liste) >
    et le + que tu mets a la fin des balises il sert a rien, par exemple nom+, puisque la cardinalite des elements tu la defini dans les balises parents.

    Pour la parsing je suis pas assez expert pour te conseiller une techno, mais ce que je sais c'est que DOM et XSLT utilisent la meme methode de parsing puisque ils chargent l'arbre XML en memoire donc je pense question performance c'est la meme chose.

    et j'ai oublie un truc, tu dis plutot que c'est ton XML qui est valide par apport a ta DTD et non pas l'inverse, dans ton cas le fichier XML que tu as poste sera valide par rapport a la DTD que tu as faite

    desole pour les accents j'ai un clavier qwerty

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 84
    Points
    84
    Par défaut
    Merci beaucoup.

    Je crois que je vais commencer avec DOM, on en dit pas mal de bonnes choses je verrai en pratiquant

    @+ casper

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/09/2010, 17h55
  2. programmation corba: le type "sequence"
    Par Kali dans le forum CORBA
    Réponses: 4
    Dernier message: 28/08/2005, 16h09
  3. Réponses: 2
    Dernier message: 05/06/2002, 12h29
  4. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36

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