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] comment traduire ATTLIST Item optional


Sujet :

Valider XML

  1. #1
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut [DTD] comment traduire ATTLIST Item optional
    je dois réaliser le xml et le xsl. on m'a donné le dtd suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <!ELEMENT Recipe (Name, Description?, Ingredients?, Instructions?)>
    <!ELEMENT Name (#PCDATA)>
    <!ELEMENT Description (#PCDATA)>
    <!ELEMENT Ingredients (Ingredient)*>
    <!ELEMENT Ingredient (Qty, Item)>
    <!ELEMENT Qty (#PCDATA)>
    <!ATTLIST Qty unit CDATA #REQUIRED>
    <!ELEMENT Item (#PCDATA)>
    <!ATTLIST Item optional CDATA "0"isVegetarianCDATA "true">
    <!ELEMENT Instructions (Step)+>
    j'aimerai savoir à quoi correspond la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!ATTLIST Item optional CDATA "0"isVegetarianCDATA "true">
    car je ne l'a comprend pas bien.
    j'ai fais le xml suivant:
    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
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE Recipe SYSTEM "recipe.dtd">
    <?xml-stylesheet type="text/xsl" href="recipe.xsl"?>
    <Recipe>
    <Name>ma recette surprise</Name>
    <Description>Celle que ma grand-mere adore.</Description>
    <Ingredients>
    <Ingredient>
    <Qty unite="box">1</Qty>
    <item>lime gelatin</item>
    </Ingredient>
    <Ingredient>
    <Qty unite="g">500</Qty>
    <item>multicoloredmarshmallows</item>
    </Ingredient>
    <Ingredient>
    <Qty unite="ml">500</Qty>
    <item>cottage cheese</item>
    </Ingredient>
    <Ingredient>
    <Qty unite="dash"></Qty>
    <item>Tabasco sauce (optional)</item>
    </Ingredient>
    </Ingredients>
    <Instructions>
    <step>Preparer gelatine selon les instructions donnees...</step>
    </Instructions>
    </Recipe>
    mon raisonnement est il bon ?
    car mon prof veut que je réalise la page web suivante:
    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
    <HTML>
    <HEAD>
    <TITLE>Ma recette Surprise</TITLE>
    </HEAD>
    <BODY>
    <H3>Ma recette Surprise</H3>
    Celle que ma grand-mere adore.
    <H4>Ingredients</H4>
    <TABLE BORDER="1">
    <TR BGCOLOR="#308030"><TH>Qty</TH><TH>Units</TH><TH>Item</TH></TR>
    <TR><TD>1</TD><TD>box</TD><TD>lime gelatin</TD></TR>
     
    <TR><TD>500</TD><TD>g</TD><TD>multicoloredmarshmallows</TD></TR>
    <TR><TD>500</TD><TD>ml</TD><TD>cottage cheese</TD></TR>
    <TR><TD></TD><TD>dash</TD><TD>Tabasco sauce (optional)</TD></TR>
    </TABLE>
    <P>
    <H4>Instructions</H4>
    <OL>
    <LI>Preparer gelatine selon les instructions donnees...</LI>
     
    <!--etc etc -->
    </BODY>
    </HTML>
    je me demandais donc si la ligne que je ne comprend pas fais afficher l'expression (optional).
    merci de votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par djedje37et28
    j'aimerai savoir à quoi correspond la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!ATTLIST Item optional CDATA "0"isVegetarian CDATA "true">
    car je ne l'a comprend pas bien.
    <item>lime gelatin</item>
    <item>cottage cheese</item>
    <item>Tabasco sauce (optional)</item>
    En fait tu dois avoir sur ton xml un truc comme ça si tu choisis l'option:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <item optional="0" isvegetarian="true">Tabasco sauce </item>
    Ensuite, c'est sur ton xsl que tu diras que si ton attribut optional="0" afffiche le contenu de cet item ou le contraire c'est à dire (n'affiche pas le contenu)...

  3. #3
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    merci de ta réponse mais un truc m'échappe:
    dans le cas ou c est optionnel, je dois faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <item optional="0" isvegetarian="true">Tabasco sauce</item>
    dans mon xml
    mais si c est pas optionnel je fais quoi ? je le met pas ?
    moi j avais fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <item>cottage cheese</item>
    <item>Tabasco sauce (optional)</item>
    j'avais aussi une autre question concernant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!ELEMENT Instructions (Step)+>
    ca se décortique comme ca dans le xml ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <Instructions>
    <step>Preparer gelatine selon les instructions donnees...</step>
    </Instructions>
    c'est pas si évident que ca !!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par djedje37et28
    mais si c est pas optionnel je fais quoi ? je le met pas ?
    moi j avais fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <item>cottage cheese</item>
    <item>Tabasco sauce (optional)</item>
    Si c'est optionnel t'a rien à faire tu laisses comme ça puisque l'attribut est optionnel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <item>cottage cheese</item>
    <item>Tabasco sauce<item>
    Citation Envoyé par djedje37et28
    j'avais aussi une autre question concernant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!ELEMENT Instructions (Step)+>
    ca se décortique comme ca dans le xml ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <Instructions>
    <step>Preparer gelatine selon les instructions donnees...</step>
    </Instructions>
    c'est pas si évident que ca !!
    le + dans la dtd veut dire que tu dois le mettre au moins une fois donc tu peux le mettre autant de fois que tu veux. Dans ton cas tu pourrais obtenir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Instructions>
    <step>Preparer gelatine selon les instructions donnees...</step>
    <step>Preparer gelatine selon les instructions donnees...</step>
    <step>Preparer gelatine selon les instructions donnees...</step>
    etc.
    </Instructions>
    rappel:
    le ? = 0fois ou 1fois c'est tout
    le * = 0fois ou plusieurs fois ou 1 fois comme tu veux
    le | = ou
    le + = 1 ou plusieur fois

  5. #5
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    merci de ta réponse.
    c est très sympa de ta part!
    notre cours a été assez rapide, on a vu que des exemples très simple.
    dis moi pour tester tu utilises tjs un butineur particulier ?
    car j'ai des xml qui marchent avec ie et d'autres avec mozilla.
    pour mon fichier j'ai pas de pb, il marche avec aucun des deux! c'est vite réglé

    ya un truc qui m'intrigue aussi :
    il me sort un problème avec mon li:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La balise de fin xsl:for-each ne correspond pas à la balise de début LI. Erreur de traitement de la ressource file:///C:/Do...
    mon xsl
    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
    <table border="1">
    <tr BGCOLOR="#308030"><th>Qty</th><th>Units</th><th>Item</th></tr>
    <xsl:for-each select="ingredients/ingredient">
    <tr>
    <td><xsl:value-of select="Qty"/></td>
    <td> <xsl:value-of select="Qty/@unite"/> </td>
    <td><xsl:value-of select="Item"/></td>
    </tr>
    </xsl:for-each>
    </table>
     
    <h4>instructions</h4>
    <OL>
    <xsl:for-each select="Instructions">
    <LI><xsl:value-of select="step"/>
    </xsl:for-each>
    </ol>
    cela veut t il dire que je peux pas mettre deux boucles dans un même programme xml ?
    car mon raisonnement est le suivant:
    j'appelel les instructions par ol et par la suite je fais une boucle sur les li.
    apres je refereme ma boucle et en dernier mon ol.
    Pour moi c'était pourtant clair comme ca.

  6. #6
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    deux erreurs XML dans ce morceau

    <OL>
    <xsl:for-each select="Instructions">
    <LI><xsl:value-of select="step"/>
    </xsl:for-each>
    </ol>
    1) il n'y a pas de balise fermante pour <LI>

    2) xml est sensible à la casse <OL>....</ol> Il ne va pas aimer non plus

  7. #7
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    salut erwy mais pourtant j'ai pas mis de </li> , je suis tout a fais d'accord qu'il faut que je respecte le <ol> ...</ol> ou <OL>...<OL>
    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
    <?xml version="1.0"?>
    <!-- fichier XSL : style de presentation HTML -->
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40" result-ns="">
    <!-- default rule -->
    <xsl:template>
    <xsl:apply-templates/>
    </xsl:template>
    <!-- root rule -->
    <xsl:template match="/Recipe">
    <!-- Build the HTML page -->
    <HTML>
    <HEAD>
    <TITLE>Ma recette surprise</TITLE>
    </HEAD>
    <BODY>
     
    <h3>
    <xsl:value-of select="Name"/>
    </h3>
     
    <xsl:value-of select="Description"/>
     
    <h4>Ingredients</h4>
     
    <table border="1">
    <tr BGCOLOR="#308030"><th>Qty</th><th>Units</th><th>Item</th></tr>
    <xsl:for-each select="ingredients/ingredient">
    <tr>
    <td><xsl:value-of select="Qty"/></td>
    <td> <xsl:value-of select="Qty/@unite"/> </td>
    <td><xsl:value-of select="Item"/></td>
    </tr>
    </xsl:for-each>
    </table>
     
    <h4>instructions</h4>
    <ol>
    <li><xsl:value-of select="step">
    </ol>
    </BODY>
    </HTML>
    </xsl:template>
    </xsl:stylesheet>
    ca voudrait dire que je ne peux pas faire de boucle avec li ??

  8. #8
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    salut erwy mais pourtant j'ai pas mis de </li>
    justement il faut en mettre
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  9. #9
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    ca me dépasse, je fais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ol>
    <xsl:for-each select="instructions">
    <li><xsl:value-of select="step"></li>
    </xsl:for-each>
    </ol>

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par djedje37et28
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La balise de fin xsl:for-each ne correspond pas à la balise de début LI. Erreur de traitement de la ressource file:///C:/Do...
    mon xsl
    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
    <table border="1">
    <tr BGCOLOR="#308030"><th>Qty</th><th>Units</th><th>Item</th></tr>
    <xsl:for-each select="ingredients/ingredient">
    <tr>
    <td><xsl:value-of select="Qty"/></td>
    <td> <xsl:value-of select="Qty/@unite"/> </td>
    <td><xsl:value-of select="Item"/></td>
    </tr>
    </xsl:for-each>
    </table>
     
    <h4>instructions</h4>
    <OL>
    <xsl:for-each select="Instructions">
    <LI><xsl:value-of select="step"/>
    </xsl:for-each>
    </ol>
    Tu sais que si tu fermes ta balise <LI> aussi ça aide?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <LI><xsl:value-of select="step"/></LI>

  11. #11
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    j'ai pourtant corrigé:
    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
    <?xml version="1.0"?>
    <!-- fichier XSL : style de presentation HTML -->
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40" result-ns="">
    <!-- default rule -->
    <xsl:template>
    <xsl:apply-templates/>
    </xsl:template>
    <!-- root rule -->
    <xsl:template match="/Recipe">
    <!-- Build the HTML page -->
    <HTML>
    <HEAD>
    <TITLE>Ma recette surprise</TITLE>
    </HEAD>
    <BODY>
     
    <h3>
    <xsl:value-of select="Name"/>
    </h3>
     
    <xsl:value-of select="Description"/>
     
    <h4>Ingredients</h4>
     
    <table border="1">
    <tr BGCOLOR="#308030"><th>Qty</th><th>Units</th><th>Item</th></tr>
    <xsl:for-each select="ingredients/ingredient">
    <tr>
    <td><xsl:value-of select="Qty"/></td>
    <td> <xsl:value-of select="Qty/@unite"/></td>
    <td><xsl:value-of select="Item"/></td>
    </tr>
    </xsl:for-each>
    </table>
     
    <h4>instructions</h4>
    <ol>
    <xsl:for-each select="Instructions">
    <li><xsl:value-of select="step"></li>
    </xsl:for-each>
    </ol>
    </BODY>
    </HTML>
    </xsl:template>
    </xsl:stylesheet>
    il me renvoye:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    La balise de fin li ne correspond pas à la balise de début xsl:value-of. Erreur de traitement de la ressource file:///C:/Do...
     
    <li><xsl:value-of select="Step"></li>
    ----------------------------------^

  12. #12
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    tu as oublié de fermer ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="step">
    il fo faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="step"/>
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  13. #13
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    merci bcp ca marche!
    par contre ca ne marche qu'avec ie, c est un peu bizarre.

  14. #14
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par djedje37et28
    merci bcp ca marche!
    par contre ca ne marche qu'avec ie, c est un peu bizarre.
    Pb connu
    renomme ton
    recipe.xsl en recipe.xml

    et reecris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml-stylesheet type="text/xsl" href="recipe.xml"?>

Discussions similaires

  1. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 18h03
  2. Comment acceder à un item d'un menu
    Par Flash31186 dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2005, 18h40
  3. Comment espacer les Items d'un TMainMenu ?
    Par JojoLaFripouille dans le forum Composants VCL
    Réponses: 3
    Dernier message: 27/08/2003, 16h57
  4. Comment effacer des Items d'un TListView ?
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/11/2002, 11h19

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