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 :

[XSD] Contraintes sur les composants de schéma d'un groupe


Sujet :

Valider XML

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 9
    Points
    9
    Par défaut [XSD] Contraintes sur les composants de schéma d'un groupe
    Bonjour, je me permet de poster ce message car je ne prend pas la signification du paragraphe 3.8.6 intitulé "Contraintes sur les composants de schéma d'un groupe modèle" de la spécification française de la norme XML Schema http://xmlfr.org/w3c/TR/xmlschema-1/

    En effet, j'ai réalisé un exemple de schéma XML qui ne valide pas a car il n'est pas conforme à cette partie de la spécification du W3C. Malheuresement je ne comprend vraiment pas ce que paragraphe décrit.

    Pourriez-vous m'expliquer pourquoi mon exemple n'est pas correct.

    Merci beaucoup.


    Voici mon exemple de schéma XML

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:ns="http://xml.netbeans.org/examples/targetNS"
                targetNamespace="http://xml.netbeans.org/examples/targetNS"
                xmlns="http://xml.netbeans.org/examples/targetNS"
                elementFormDefault="qualified">
     
        <xsd:attributeGroup  name="objectAttributes">
            <xsd:attribute name="id"   use="required" type="xsd:ID"/>
            <xsd:attribute name="etat" use="required" type="xsd:string"/>
        </xsd:attributeGroup>
     
        <xsd:group name="objectElements">
            <xsd:all>
                <xsd:element name="needSecure"    type="xsd:boolean"/>
                <xsd:element name="publishedDate" type="xsd:date"/>
                <xsd:element name="notBefore"     type="xsd:date"/>
                <xsd:element name="notAfter"      type="xsd:date"/>
                <xsd:element name="auteur"        type="xsd:string"/>
            </xsd:all>
        </xsd:group>
     
        <xsd:complexType name="objectType">
            <xsd:group          ref="objectElements"/>
            <xsd:attributeGroup ref="objectAttributes"/>
        </xsd:complexType>
     
        <xsd:group name="linkElements">
            <xsd:all>
                <xsd:element name="target" type="xsd:anyURI"/>
                <xsd:element name="text"   type="xsd:string"/>
                <xsd:element name="title"  type="xsd:string"/>
            </xsd:all>
        </xsd:group> 
     
        <xsd:complexType name="linkType">
            <xsd:complexContent>
                <xsd:extension  base="objectType">
                    <xsd:group ref="linkElements"/>
                </xsd:extension>
            </xsd:complexContent>
        </xsd:complexType>  
     
    </xsd:schema>

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    à mon avis, le problème qui se pose est à peu de choses près le même que dans ce post.

    L'emploi de <all> est rendu limité par de fortes contraintes liées à son utilisation. Dans ton cas, par le jeu des dérivations, on arrive à des <all> imbriqués dans des <sequence>, ce que la spécification interdit. En remplaçant tes <all> par des <sequence>, tu devrais parvenir à un schéma valide.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Merci de votre réponse.

    J'avais effectivement vu ce post mais je ne comprend pas pourquoi il existe une telle limitation au niveau de l'analyse car cela veux dire qu'il existe une distinction entre les élements du type de base et ceux rajoutés. De ce fait il devient impossible de mélanger les élements originaux et nouveaux.

    Enfin le principal c'est que cela fonctionne maintenant.



    Cordialement.



    Eric Déchaux

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par edechaux
    J'avais effectivement vu ce post mais je ne comprend pas pourquoi il existe une telle limitation au niveau de l'analyse car cela veux dire qu'il existe une distinction entre les élements du type de base et ceux rajoutés. De ce fait il devient impossible de mélanger les élements originaux et nouveaux.
    Ce problème ne se pose qu'avec <all>. Cela pour garantir une des caractérisques fondamentales du fonctionnement des validateurs de schema, le déterminisme (automates finis). A tout moment, le validateur doit savoir dans quelle branche précise du XML Schema il se trouve. Le côté "aléatoire" de <all> pouvant mettre en échec ce fonctionnement, de fortes contraintes ont été liées à son utilisation.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

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

Discussions similaires

  1. Déplacer le curseur sur les Composants
    Par aliwassem dans le forum Delphi
    Réponses: 5
    Dernier message: 29/01/2007, 14h34
  2. effectuer des operations sur les composants graphiques
    Par Zorgz dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 19/10/2006, 14h34
  3. une question sur les composants
    Par m14w dans le forum Delphi
    Réponses: 2
    Dernier message: 17/05/2006, 19h26
  4. Documentation sur les composants réseaux
    Par OverCat dans le forum Hardware
    Réponses: 5
    Dernier message: 27/01/2005, 10h49
  5. aide sur les composants de la RxLib 2.75
    Par mariustrezor dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/10/2004, 14h35

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