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] Créer une séquence non ordonnée.


Sujet :

Valider XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 61
    Points : 34
    Points
    34
    Par défaut [XSD] Créer une séquence non ordonnée.
    Bonjour,

    XSD me donne pas mal de fil à retordre... J'aimerais simplement créer des "sequences" (si j'ose dire) non ordonnées. Et c'est galère.

    Solution "all":
    C'est ultra limité, vu qu'on ne peut mettre que des elements dedans. Et surtout, seule une cardinalité de 0 ou 1 est acceptée, il est donc impossible de mettre maxOccurs="unbounded".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <xs:complexType name="AllComplexType">
      <xs:all>
        <xs:element name="UniqueElement" type="MyfirstType" minOccurs="1" maxOccurs="1" />
        <xs:element name="MultipleElement" type="MysecondType" minOccurs="0" maxOccurs="unbounded" /> 
        </xs:all>
    </xs:complexType>
    Ceci est invalide, à cause de "unbounded".

    Solution "choice":
    Choice me semble donc (pour l'instant) être la seule solution pour pouvoir créer une séquence non ordonnée, si certains éléments peuvent apparaitre plusieurs fois. Cependant, ça présente une énorme problématique. Vu que c'est le choix en lui-même que l'on doit mettre "unbounded", tous les éléments peuvent apparaitre à plusieurs reprises: il n'est alors plus possible de garantir que certains éléments soient uniques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <xs:complexType name="ChoiceComplextype">
      <xs:choice maxOccurs="unbounded" >
        <xs:element name="UniqueElement" type="UniqueElement" minOccurs="1" maxOccurs="1"  />
        <xs:element name="MultipleElement" type="MysecondType" minOccurs="0" maxOccurs="unbounded" /> 
        </xs:all>
    </xs:complexType>
    Si je ne me trompe pas, le schema validera un XML où "UniqueElement" apparait plusieurs fois... (De même si il n'apparait pas du tout...)

    Bref, est-il vraiment si difficile de déclarer une séquence non-ordonnée, avec certains éléments qui apparaissent une seule fois, et d'autres qui peuvent apparaitre plusieurs fois?

    Merci d'avance.

  2. #2
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    j'ai les mêmes problèmes, et l'utilisation des séquences est la meilleure solution et la plus souple, l'inconvénient est que l'ordre est imposé, mais c'est sans doute volontaire afin de limiter les schémas ou on pourrait mettre tout et n'importe quoi dans n'importe quel ordre.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/03/2007, 10h03
  2. Réponses: 2
    Dernier message: 07/03/2007, 20h27
  3. [MFC] Créer une CDialog non modale dans un thread
    Par fleur_de_rose dans le forum MFC
    Réponses: 3
    Dernier message: 29/09/2006, 11h43
  4. [C# 2.0] Créer une fenêtre non redimensionnable
    Par sqlnoob dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/06/2006, 11h22
  5. Réponses: 7
    Dernier message: 19/04/2006, 17h35

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