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

XML/XSL et SOAP Discussion :

DTD externe et attribut par défaut


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Par défaut DTD externe et attribut par défaut
    Bonjour,

    J'ai un petit problème avec ma déclaration de DTD. Je vous explique,


    j'ai un fichier spaghetti.dtd

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <!ELEMENT liste (liste_a_puce)+>
    <!ELEMENT liste_a_puce ANY> 
    <!ATTLIST liste type (alpha|num) "num">
    Un fichier spaghetti.css qui me permet de faire un formatage conditionnel en fonction de l'assignation d'un certain attribut type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    liste_a_puce{    
        display:block;
        margin-left:1em;
        counter-increment:listNum
    }
     
    liste{
        display:block;
        counter-reset:listNum;
    }
     
    liste[type=num] liste_a_puce:before{content: counter(listNum) ".";}
    liste[type=alpha] liste_a_puce:before{content: counter(listNum,upper-latin) ".";}
    Lorsque j'affiche dans mon navigateur le résultat de spaghetti.xml contenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet href="spaghetti.css" type="text/css"?>
    <!DOCTYPE liste [
              <!ELEMENT liste (liste_a_puce)+>
              <!ELEMENT liste_a_puce ANY> 
              <!ATTLIST liste type (alpha|num) "num"> 
              ]>
     
    <!-- SYSTEM "spaghetti.dtd"> -->
     
    <liste>
      <liste_a_puce> un element </liste_a_puce>          
      <liste_a_puce> deux element </liste_a_puce>
    </liste>
    ....... j'ai bien :
    1.un element
    2.deux element


    A présent si je modifie mon fichier spaghetti.xml tel que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet href="spaghetti.css" type="text/css"?>
    <!DOCTYPE liste SYSTEM "spaghetti.dtd"> 
     
    <liste>
      <liste_a_puce> un element </liste_a_puce>          
      <liste_a_puce> deux element </liste_a_puce>
    </liste>
    j'obtient :
    un element
    deux element

    En fait j'ai l'impression qu'utiliser une DTD externe ne me permet pas d'avoir un attribut par défaut, ce qui je pense n'est pas normal. Je ne comprend pas trop pourquoi. Alors si quelqu'un a un peu de temps à me consacrer pour m'expliquer, je l'en remercie d'avance.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Citation Envoyé par jm62300 Voir le message
    En fait j'ai l'impression qu'utiliser une DTD externe ne me permet pas d'avoir un attribut par défaut, ce qui je pense n'est pas normal.
    Oui et non. Ça le permettrait (et l'obligerait) avec un processeur XML validant. Or, par choix, les navigateurs utilisent un processeur XML non-validant.

    Tu peux essayer : si tu ne respectes pas la DTD que tu as déclarée, le navigateur n'en a rien à cirer. Il ne signale aucune erreur, rien. C'est normal : son processeur XML n'étant pas validant, il ne vérifie pas la conformité à la DTD, et aucune erreur n'est signalée.
    Si la DTD est externe, elle n'est même pas lue, le navigateur ne vérifie même pas si elle existe. Du coup, toute déclaration d'attribut par défaut est ignorée.

    Si la DTD est interne, par contre, un processeur non validant ne s'en servira pas pour valider, mais il doit la lire, ne serait-ce que pour vérifier que le document est bien formé. Or, la norme XML impose que toute déclaration d'attribut par défaut lue de cette façon soit appliquée. Raison pour laquelle les navigateurs les honorent, dans ce cas et dans ce cas seulement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Par défaut
    Merci beaucoup pour ces éclaircissements.

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

Discussions similaires

  1. XSLT : récupération de la valeur d'attribut par défaut
    Par el_francky dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 23/10/2011, 00h16
  2. valeur par défaut d'une attribut date
    Par didi dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 10/08/2007, 16h11
  3. Réponses: 3
    Dernier message: 13/12/2006, 09h19
  4. [PEAR][HTML_QuickForm] Attribution d'une valeur par défaut à un select
    Par mohican13 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 24/02/2006, 08h08
  5. Réponses: 3
    Dernier message: 20/09/2005, 08h59

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