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 :

utilisation de keyref et key


Sujet :

Valider XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Par défaut utilisation de keyref et key
    Bonjour
    J'aimerai que mon xsd vérifie que les valeurs mises dans "condition" soient dans une "key" d'une property.

    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
     
    <xs:element name="configuration">
    <xs:complexType>
    	<xs:sequence>
    		<xs:element name="category" minOccurs="1" maxOccurs="unbounded">
    			<xs:complexType>
    				<xs:sequence>
    					<xs:element name="documentation" minOccurs="1" maxOccurs="1">
    						<xs:complexType>
    							<xs:simpleContent>
    								<xs:extension base="xs:string">											<xs:attribute name="lang" default="fr"/>
    								</xs:extension>
    							</xs:simpleContent>
    						</xs:complexType>
    					</xs:element>
    					<xs:element name="property" minOccurs="1" maxOccurs="unbounded">
    						<xs:complexType>
    							<xs:sequence>
    								<xs:element name="documentation" minOccurs="1" maxOccurs="1"><xs:complexType>			                                         <xs:simpleContent>
    <xs:extension base="xs:string">
    	<xs:attribute name="lang" default="fr"/>
    </xs:extension>
    </xs:simpleContent>
    </xs:complexType>
    										</xs:element>										
    									</xs:sequence>
    									<xs:attribute name="key" use="required"/>
    									<xs:attribute name="hosting" use="optional" type="BooleanString"/>									
    								</xs:complexType>
    							</xs:element>
    						</xs:sequence>
    						<xs:attribute name="name" use="required"/>
    						<xs:attribute name="condition" use="optional"/>
    					</xs:complexType>
    					<xs:key name="keyRef">
    						<xs:selector xpath="property"/>
    						<xs:field xpath="@key"/>
    					</xs:key>
     
    					<xs:keyref name="conditionRef" refer="keyRef">
    						<xs:selector xpath="."/>
    						<xs:field xpath="@condition"/>
    					</xs:keyref>					
    				</xs:element>
    			</xs:sequence>
    		</xs:complexType>
    	</xs:element>
    avec ce xml ca ne marche pas. J'ai l'erreur
    Key 'conditionRef' with value 'conditions.baddebt.enabled' not found for identity constraint of element 'category'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <category name="conditions">
    		<documentation lang="fr">Toutes les conditions des catégories
    		</documentation>
    		<property key="conditions.toto.enabled">
    			<documentation lang="fr">Condition d'utilisation de toto			</documentation>
    		</property>
    	</category>
     
    	<category name="toto" condition="conditions.toto.enabled">
    		<documentation lang="fr">Catégorie toto</documentation>
    Merci

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Ce qui est manqué, c'est d'avoir conscience la périmétrie ou la limite d'applicabilité pour les éléments xs: key et xs: keyref. Il faut les bien placer sous la définition de Configuration. Comme ç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
     
    <xs:element name="configuration">
      <xs:complexType>
        <!-- etc etc... -->
                     <!-- enlevé ce bloque     
                     <xs:key name="keyRef">
                       <xs:selector xpath="property"/>
                       <xs:field xpath="@key"/>
                     </xs:key>
                     <xs:keyref name="conditionRef" refer="keyRef">
                       <xs:selector xpath="."/>
                       <xs:field xpath="@condition"/>
                     </xs:keyref>
                     -->
        <!-- ... etc etc -->
      </xs:complexType>
      <!-- replacer ici avec modifications correspondantes -->
      <xs:key name="keyRef">
        <xs:selector xpath="category/property"/>
        <xs:field xpath="@key"/>
      </xs:key>
      <xs:keyref name="conditionRef" refer="keyRef">
        <xs:selector xpath="category"/>
          <xs:field xpath="@condition"/>
        </xs:keyref>
      </xs:keyref>
    </xs:element>

Discussions similaires

  1. Utilisation de la webpart Key Performance Indicators
    Par Lilou974 dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 21/03/2011, 17h24
  2. utilisation de "global-set-key" sur emacs
    Par raphz dans le forum Apple
    Réponses: 1
    Dernier message: 28/04/2009, 10h33
  3. [XSD] utilisation de key et keyref
    Par DoubleU dans le forum Valider
    Réponses: 2
    Dernier message: 07/03/2008, 11h15
  4. Réponses: 2
    Dernier message: 12/07/2007, 10h30
  5. utilisation des angel keys
    Par zidenne dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 13/01/2006, 14h11

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