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] Les attributs


Sujet :

Valider XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Par défaut [XSD] Les attributs
    Bonjours,

    Je suis en train de me créer un standard générale qui a pour objectif finale de faire la gestion d'utilisateur d'un système. Pour débuter tranquillement, j'ai créer un petit schéma ultra-simple qui garde des informations sur des utilisateurs. En voici un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?xml version="1.0" encoding="utf-8?>
     
    <users>
      <user>
        <firstname>André</firstname>
        <lastname>Jacques</lastname>
        <username>Drew</username>
        <password type="md5">0398ejf098j9f8ja9w8jf2</password>
      </user>
    </users>
    J'ai donc crée mon schéma comme suit :

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <xsd:schema xmlns:xsi="blabla">
      <xsd:element name="users">
        <xsd:complexType>
          <xsd:element name="user">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="firstname" type="xsd:string" />
                <xsd:element name="lastname" type="xsd:string" />
                <xsd:element name="username" type="xsd:string" />
                <xsd:element name="password" type="xsd:string" />
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
    Mais voilà, je ne sais pas comment déclarer comme il se doit l'attribut "type" de ma balise "password". J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
              <xsd:element name="password" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
    J'ai une erreur dans le validateur (http://tools.decisionsoft.com/schemaValidate/). J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
              <xsd:element name="password" type="xsd:string">
                <xsd:attribute name="type" type="xsd:string" />
              </xsd:element>
    Encore une erreur. Ensuite j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
              <xsd:element name="password" type="xsd:string">
                <xsd:complexType>
                  <xsd:attribute name="type" type="xsd:string" />
                </xsd:completType>
              </xsd:element>
    Encore une erreur. Je suis désespérer : je peux le faire avec une DTD, mais j'aime mieux les possibilités d'XML Schema car j'ai bien l'intention d'ajouter des éléments dans mon standard : j'aimerais y ajouter des éléments lié au communication et au droit d'accès du système.

    Merci

    Drew

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Par défaut
    Salut à tous,

    Finalement j'ai réussi à trouver la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                  <xs:element name="password">
                    <xs:complexType mixed="true">
                      <xs:attribute name="type" type="xs:string" use="optional" />
                    </xs:complexType>
                  </xs:element>
    Mais voilà j'ai une question : si je veux que password soit un string d'au maximum 256 caractères, comment je peux y parvenir ?

  3. #3
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    1) Votre code n'est pas bon , même s'il marche ici.
    un type mixe est un type qui mélange texte et balise (type texte html par exemple
    c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <xs:element name="password">
    		<xs:complexType >
    			<xs:simpleContent >
    				<xs:extension base="xs:string">
    					<xs:attribute name="type" type="xs:string" >
    				</xs:extension>
    			</xs:simpleContent>
    		</xs:complexType>
    	</xs:element>
    2)Pour un type plus restreint
    mot de passe entre 8 et 256 caractères
    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:simpleType name="NB256">
    		<xs:restriction base="xs:string">
    			<xs:minLength value="8"/>
    			<xs:maxLength value="256"/>
    		</xs:restriction>
    	</xs:simpleType>
    	<xs:element name="password">
    		<xs:complexType>
    			<xs:simpleContent>
    				<xs:extension base="NB256">
    					<xs:attribute name="type" type="xs:string"/>
    				</xs:extension>
    			</xs:simpleContent>
    		</xs:complexType>
    	</xs:element>

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/03/2014, 13h37
  2. [XSD] Equivalent du <choice> pour les attribut
    Par BigOne55 dans le forum Valider
    Réponses: 6
    Dernier message: 14/03/2014, 19h24
  3. [XSD][Débutant] Lister les attributs
    Par jerzy59 dans le forum Valider
    Réponses: 3
    Dernier message: 28/08/2009, 23h00
  4. [xsd] Contrainte entre les attributs
    Par XtoX dans le forum Valider
    Réponses: 3
    Dernier message: 03/04/2009, 11h00
  5. Retrouver les attributs d'un noeud...
    Par LLaurent dans le forum XMLRAD
    Réponses: 2
    Dernier message: 18/12/2003, 09h20

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