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] champ obligatoire ou pas selon l'action


Sujet :

Valider XML

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut [XSD] champ obligatoire ou pas selon l'action
    Bonjour,

    Je débute en XML, et j'ai du mal a construire mon schema. Voici ma problématique.
    J'ai un fichier XML me permettant de gérer les champs des user de ma base de donnée des user. Sans ce fichier, je détermine en premier le type d'action a effetuer (INSERT, UPDATE, REMOVE), vienne ensuite les définition des champs et de leurs valeur.
    J'aimerai que certaines soient obliatoire quand on est en insertion, mais reste optionnel quand on est en modification. Je ne sais pas traduire cela dans mon fichier. Ci -dessous un le code que j'ai mis en place pour le moment

    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
    47
    48
    49
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    	<xs:element name="Data">
    		<xs:complexType>
    			<xs:sequence>
      			<xs:element name="ActionType">
      				<xs:annotation>
      					<xs:documentation>Type d'action: insertion, suppression ou mise à jour.</xs:documentation>
      				</xs:annotation>
      				<xs:simpleType>
      					<xs:restriction base="xs:NMTOKEN">
      						<xs:enumeration value="INSERT">
      							<xs:annotation>
      								<xs:documentation>Indique que le fichier xml contient une nouvelle liste d'usagers à créer.</xs:documentation>
      							</xs:annotation>
      						</xs:enumeration>
      						<xs:enumeration value="UPDATE">
      							<xs:annotation>
      								<xs:documentation>Indique que le fichier xml contient une liste d'usagers à mettre à jour.</xs:documentation>
      							</xs:annotation>
      						</xs:enumeration>
      						<xs:enumeration value="REMOVE">
      							<xs:annotation>
      								<xs:documentation>Indique que le fichier xml contient une liste d'usagers à supprimer.</xs:documentation>
      							</xs:annotation>
      						</xs:enumeration>
      					</xs:restriction>
      				</xs:simpleType>
      			</xs:element>
    <xs:element name="User" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
    <xs:element name="FirstName" type="xs:string" >
            				<xs:annotation>
            					<xs:documentation>Prénom de l'utilisateur.</xs:documentation>
            				</xs:annotation>
            			</xs:element>
            			<xs:element name="LastName" type="xs:string" >
            				<xs:annotation>
            					<xs:documentation>Nom de l'utilisateur.</xs:documentation>
            				</xs:annotation>
            			</xs:element>
    ....
        </xs:sequence>
    </xs:complexType>
                </xs:element>
    ...
    </xs:schema>
    par exemple, le nom et prénom sont obligatoire lors l'insertion mais seul le nom de famille est obligatoire pour la modifacation et la suppressions.
    Merci de votre aide

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 24
    Points
    24
    Par défaut
    xml schema ne peut avoir de contrainte lié à la valeur d'une balise ou d'un attribut.
    Pour pouvoir faire ce type d'action il ne faut pas utiliser de balise ActionType mais des balises INSERT,UPDATE,DELETE etc.... en fonction de l'action

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut
    bonjour

    Merci pour votre réponse
    Si je comprend bien il faut faire un élément de type complexe par action dans laquelle on redéclare les balises commune en les adaptant aux besoins.

    Mais comment fait on pour que l'on est qu'une la Balise I soit INSERT soit la Balise UPDATE soit la balise DELETE et non les les 2 ou 3 types dans le même fichier?

  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
    bonjour,
    Citation Envoyé par epeichette Voir le message
    Mais comment fait on pour que l'on est qu'une la Balise I soit INSERT soit la Balise UPDATE soit la balise DELETE et non les les 2 ou 3 types dans le même fichier?
    En utilisant un xs:choice
    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

  5. #5
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut
    ok merci bien

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

Discussions similaires

  1. [AC-2007] Rendre champ obligatoire ou non selon une case à cocher
    Par m6riil dans le forum IHM
    Réponses: 2
    Dernier message: 25/04/2013, 15h07
  2. Champs obligatoire validé ou pas
    Par miami75 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/09/2009, 17h35
  3. Réponses: 4
    Dernier message: 31/08/2009, 19h08
  4. Réponses: 8
    Dernier message: 23/01/2008, 22h59
  5. [XSD][Débutant] champs obligatoires ?
    Par cvacavant dans le forum Valider
    Réponses: 7
    Dernier message: 02/02/2006, 14h51

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