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 :

XSD - attribut sur un élément simple avec restriction


Sujet :

XML/XSL et SOAP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Points : 218
    Points
    218
    Par défaut XSD - attribut sur un élément simple avec restriction
    Bonjour,

    je débute avec les XSD et me voilà face à une colle...

    J'ai défini l'élément suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xs:element> name="toto" minOccurs="7" maxOccurs="14">
      <xs:simpleType>
        <xs:restriction base:"xs:double">
          <xs:minInclusive value="0">
          <xs:maxInclusive value="100">
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    Et j'aurais voulu lui ajouter un attribut de type int

    Je ne sais pas si c'est possible, en tout cas je ne vois pas comment faire...

    J'ai essayé en utilisant complexType
    mais dans ce cas, je ne peux pas utiliser les min/maxInclusive en restriction ...


    Des idées??
    Merci

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Cela se fait en deux étapes.

    [1] D'abord vous définissez un type simple nommé (donc global, à top niveau) comme totobase pour l'instance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xs:simpleType name="totobase">
        <xs:restriction base="xs:double">
            <xs:minInclusive value="0" />
            <xs:maxInclusive value="100" />
        </xs:restriction>
    </xs:simpleType>
    [2] Et puis, à l'endroit où se trouve xs:element montré (qui n'est probablement pas au top niveau), écrivez pourtant comme ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <xs:element name="toto" minOccurs="7" maxOccurs="14">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="totobase">
                    <xs:attribute name="att" type="xs:string" />
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    Comme ça, l'élément toto acquiert un attribute att. Si le targetNamespace n'est pas null, il faut bien-entendu qualifier le totobase dans l'attribut base avec un préfixe du targetNamespace si ce n'est pas une espace de noms du type défaut aussi.

    ps: attention! les minOccurs et maxOccurs de ce genre de valeur peuvent consommer pas mal de mémoires dans certains cas. Faites-les seulement si c'est bien nécessaire.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Points : 218
    Points
    218
    Par défaut
    Ok, merci pour la réponse!

    J'avais pensé à cette solution également.

    Mais si c'était possible, j'aurais préféré éviter car j'ai de nombreux types de ce genre, et ça m'oblige donc à faire une double déclaration à chaque fois (car ce n'est pas toujours le même type de base entre int/double ou pas les mêmes bornes...)

    bref, je crois que je n'ai pas le choix...

    Merci encore!

Discussions similaires

  1. xsd:all sur des éléments de type différents
    Par Steph0 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 12/08/2012, 18h04
  2. Centrer sur un élément actif avec un HGroup
    Par black is beautiful dans le forum Flex
    Réponses: 0
    Dernier message: 27/02/2010, 14h21
  3. [XSD] Element avec restriction et attribut
    Par Jacques Deyrieux dans le forum Valider
    Réponses: 1
    Dernier message: 05/11/2009, 08h48
  4. Réponses: 2
    Dernier message: 07/12/2008, 13h10
  5. [XSLT] Récupérer un attribut sur un élément pointé par un IDREF
    Par Folken Laëneck dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/05/2007, 07h31

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