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 :

[XML Schema] Problème utilisation <xs:unique>


Sujet :

Valider XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Novembre 2002
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 2
    Par défaut [XML Schema] Problème utilisation <xs:unique>
    Bonjour,

    J'ai une séquence d'éléments "Description" avec un attribut "Lang" et j'aimerais ne jamais avoir 2 descriptions avec la même valeur de "Lang". J'ai essayé ça :

    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
     
    <!-- LicenseDescription -->
    <xs:element name="LicenseDescription">
    	<xs:complexType>
    		<xs:sequence>
    			<xs:element name="Licence" type="LicenseDef" minOccurs="1" maxOccurs="1"/>
    		</xs:sequence>
    	</xs:complexType>
    	<!-- To prevent 2 occurrences of the description with the same language (KO)-->
    	<xs:unique name="descLang">
    		<xs:selector xpath="Description"/>
    		<xs:field xpath="@Lang"/>
    	</xs:unique>
    </xs:element>
     
    <xs:complexType name="LicenseDef">
    	<xs:sequence>
    		<xs:element name="LicenseNumber" type="LicenseType" minOccurs="1" maxOccurs="1"/>
    		<!-- Description in several languages -->
    		<xs:element name="Description" minOccurs="1" maxOccurs="4">
    			<xs:complexType>
    			    <xs:simpleContent>
    			    	<xs:extension base="xs:string">
    					<xs:attribute name="Lang" type="descLangType"/>
    				</xs:extension>
    			    </xs:simpleContent>
    			</xs:complexType>
    		</xs:element>
    	</xs:sequence>
    </xs:complexType>
     
    <xs:simpleType name="descLangType">
    	<xs:restriction base="xs:string">
        	  <xs:enumeration value="ENG"/>
        	  <xs:enumeration value="FRA"/>
              <!-- ................. -->
    	</xs:restriction>
    </xs:simpleType>
    Mais ça ne fonctionne pas (j'ai un xml avec plusieurs <Description Lang="FRA" > par exemple et pourtant aucune erreur de validation! Quelqu'un peut-il me dire où est l'erreur?

    Merci!

    Cécile

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    Selon le validateur de schéma utilisé, les contraintes d'unicité et d'intégrité référentielle ne sont pas toujours activées par défaut ; pour Xerces par exemple, il faut activer la fonction http://apache.org/xml/features/valid...-full-checking (voir http://xerces.apache.org/xerces-j/features.html)
    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

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Novembre 2002
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 2
    Par défaut
    Citation Envoyé par GrandFather Voir le message
    Bonjour,

    Selon le validateur de schéma utilisé, les contraintes d'unicité et d'intégrité référentielle ne sont pas toujours activées par défaut ; pour Xerces par exemple, il faut activer la fonction http://apache.org/xml/features/valid...-full-checking (voir http://xerces.apache.org/xerces-j/features.html)
    ok je vois, par contre je ne sais pas trop où modifier ça (je suis dans eclipse 3.2 avec xmleditor)

  4. #4
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Citation Envoyé par motus Voir le message
    ok je vois, par contre je ne sais pas trop où modifier ça (je suis dans eclipse 3.2 avec xmleditor)
    Il y a un exemple de code en haut de la page dont je t'ai donnée le lien.
    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 averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Par défaut
    Si ca ne marche toujours pas, essaye de rajouter un
    xmlns:tag www.tonnamespace.com dans la déclaration de ton schema
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.tonnamespace.com" 
    xmlns="http://www.tonnamespace.com"
    xmlns:tag="http://www.tonnamespace.com" 
    elementFormDefault="qualified" 
    attributeFormDefault="unqualified">
    et de faire ton unique de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xs:unique name="descLang">
    		<xs:selector xpath="tag:Description"/>
    		<xs:field xpath="@Lang"/>
    	</xs:unique>

Discussions similaires

  1. problème clé etrangère xml schema
    Par patouz dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 18/05/2011, 10h44
  2. Problème validation xml schema
    Par k3nsou dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 22/01/2010, 14h30
  3. Problème utilisation Source de données XML
    Par Virtual78 dans le forum iReport
    Réponses: 1
    Dernier message: 19/09/2007, 14h59
  4. Réponses: 4
    Dernier message: 16/07/2006, 14h00
  5. validation d'un XML schema
    Par nicolas_jf dans le forum Valider
    Réponses: 2
    Dernier message: 05/05/2003, 11h25

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