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 :

Liste de valeurs contraintes dans un attribut


Sujet :

Valider XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Liste de valeurs contraintes dans un attribut
    Bonjour,

    Je cherche à écrire le schéma XSD pour contraindre un attribut 'valeurs' a ne pouvoir prendre qu'un ensemble de chaines bien spécifique.

    Je souhaite par exemple avoir ceci au niveau XML :

    valeurs="lundi,mardi,mercredi,jeudi,vendredi"

    La liste peut comporter uniquement les valeurs 'lundi' à 'dimanche' (idéalement, une seule fois).
    La liste peut avoir entre un et sept éléments.

    Actuellement mon code JAVA prend en compte la virgule comme séparateur mais si c'est plus facile avec un espace pour séparer les éléments de la liste, pas de pb.

    Avez-vous une idée sur comme faire ça?

    Merci d'avance,

    Philippe

  2. #2
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Points : 297
    Points
    297
    Par défaut enumerations
    je dirais...

    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
     
    <xs:element name="toto">
    	<xs:complexType>
    		<xs:attribute name="jour" use="required">
    			<xs:simpleType>
    				<xs:restriction base="xs:string">
    					<xs:enumeration value="lundi"/>
    					<xs:enumeration value="mardi"/>
    					<xs:enumeration value="mercredi"/>
                                             etc...
    				</xs:restriction>
    			</xs:simpleType>
    		</xs:attribute>
    	</xs:complexType>
    </xs:element>
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Merci pour la réponse mais elle ne permet que de spécifier UNE seule valeur pour l'attribut 'jour' alors que je souhaite avoir un ENSEMBLE comme
    jour="lundi,mardi,mercredi"
    or, avec le code précédent, je ne peux qu'avoir
    jour="lundi" OU jour="mardi" OU ...

    Philippe

  4. #4
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Points : 297
    Points
    297
    Par défaut
    Utilise alors les patterns, par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	<xs:element name="toto">
    		<xs:complexType>
    			<xs:attribute name="jour" use="required">
    				<xs:simpleType>
    					<xs:restriction base="xs:string">
    						<xs:pattern value="(.*[.di])+,"/>
    					</xs:restriction>
    				</xs:simpleType>
    			</xs:attribute>
    		</xs:complexType>
    	</xs:element>
    reste plus qu'à traiter le cas du dimanche, je te laisse chercher


    Citation Envoyé par juhel philippe Voir le message
    Merci pour la réponse mais elle ne permet que de spécifier UNE seule valeur pour l'attribut 'jour' alors que je souhaite avoir un ENSEMBLE comme
    jour="lundi,mardi,mercredi"
    or, avec le code précédent, je ne peux qu'avoir
    jour="lundi" OU jour="mardi" OU ...

    Philippe
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

  5. #5
    Membre habitué
    Avatar de Alacazam
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 88
    Points : 167
    Points
    167
    Par défaut Utiliser xs:list !
    Hello,

    Un sujet un peu vieux... mais qui mérite tout de même une réponse : il faut utiliser <xs:list> (avec séparateur espace).

    Le XSD donne :
    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
     
        <xs:simpleType name="Jour_de_la_semaine">
            <xs:restriction base="xs:string">
                <xs:enumeration value="lundi"/>
                <xs:enumeration value="mardi"/>
                <xs:enumeration value="mercredi"/>
                <xs:enumeration value="jeudi"/>
                <xs:enumeration value="vendredi"/>
                <xs:enumeration value="samedi"/>
                <xs:enumeration value="dimanche"/>
            </xs:restriction>
        </xs:simpleType>
     
        <xs:simpleType name="Jours_de_la_semaine">
            <xs:list itemType="Jour_de_la_semaine"/>
        </xs:simpleType>
    Et le XML donnera (si on crée un élément avec ce type ; mais ça peut aussi servir pour un attribut puisqu'on a créé des simpleType's).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        <jour>lundi</jour>
     
        <jour>dimanche</jour>
     
        <jours>mardi mercredi jeudi lundi</jours>
    Mathieu
    Développeur confirmé C++, Java, Python, JS.

Discussions similaires

  1. [BO] liste de valeur dynamique dans invite
    Par arnauann dans le forum Designer
    Réponses: 3
    Dernier message: 26/11/2012, 11h34
  2. Liste des valeurs contenue dans une colonne
    Par TimDe dans le forum Excel
    Réponses: 5
    Dernier message: 15/08/2008, 17h11
  3. Réponses: 2
    Dernier message: 08/10/2007, 10h35
  4. Réponses: 2
    Dernier message: 12/07/2007, 09h34
  5. Combo box et liste de valeurs contenues dans ma table
    Par TieumB dans le forum C++Builder
    Réponses: 14
    Dernier message: 05/04/2004, 18h47

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