Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

From: Benoit Lefevre (benoit.lefevre@effix.fr)
Date: 24/04/2001 - 10:31


Bon, je vais esseiller d'illustrer mon probleme avec un exemple (le plus simple possible mais ce n'est pas gagne :)

D'un cote je doit decrire une structure de donnes de type messages. Voici une instance possible de ce type de donnes XML :

--------------------------------------------------
     <msgHeureLocale>
          <heures>5</heures>
          <minutes>27</minutes>
     </msgHeureLocale>
--------------------------------------------------

Cela me permet de stocker ou de representer (ou quoi que ce soit d'autre) un "message". Entre autre j'ai beaucoup de test de validite a faire sur ces messages, d'ou mon utilisation de XSD.

Si j'utilise XSD pour definir mes propre tag (par exemple msgHeureLocale). Ceux-ci herite d'un type message ayant de base deux attributs, le nom et l'idantifiant.

Voici ce type :

-----------------------------------------------------
     <xsd:complexType name="TMSG">
          <xsd:attribute name="NAME" type="perso:Tstring" use="required"/>
          <xsd:attribute name="ID" type="perso:TID" use="required"/>
     </xsd:complexType>
----------------------------------------------------

C'etait ma premiere idee pour avoir un tag / clef. Mais je ne pense plus que cela fonctionne. J'ai donc oublie pour un temps ces deux attributs mais j'ai garde le type TMSG.

Ce type ainsi que quelques autres sont mes types de base qui me permettent par la suite de creer mes propre tags representant des messages. Ils sont definis dans un premier fichier XSD, appelons le
SD1.

Dans un second fichier XSD (SD2) je souhaite faire la chose suivante : verifier la validite de ce fichier SD2 comme etant conforme par rapport a SD1 ET a la fois definir dans SD2 des elements heritant
du type TMSG vu precedement.

L'exemple suivant montre ce que l'ont pourrais trouver dans SD2 avec une tentative d'utiliser ce que Eric m'a conseille, a ceci pres que je ne suis pas certain de son utilisation :

----------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<XSD="C:\SD1.xsd"/>

<xsd:element name="msgHeureLocale">

<xsd:annotation>
  <xsd:appinfo>
  <knet:Identifiant> 1 </knet:Identifiant>
  <!-- je ne suis pas certain de l'utilite du tag suivant -->
  <knet:Nom> msgHeureLocale </knet:Nom>
  </xsd:appinfo>
</xsd:annotation>

<xsd:complexType name="TmsgHeureLocale">
<xsd:complexContent>
  <xsd:extension base="perso:TMSG">
  <xsd:sequence>
  <xsd:element name="heures" type="perso:Tint"/>
  <xsd:element name="minutes" type="perso:Tint"/>
  </xsd:sequence>
  </xsd:extension>
</xsd:complexContent>
</xsd:complexType>

</xsd:element>
-------------------------------------------------

Comme ont peu le voir ici tout le probleme reside dans le fait que je souhaiterais
me servire du tag <element> de deux facons :

     -d'une part, pour definir un tag sur lequel il y aura par la suite des test de validite effectue automatiquement lors d'une de ses instanciations.

     -d'autre part, pour utiliser <element> comme un tag me premettant de decrire une donne en temps que tel. En effet je souhaite verifier que SD2 est valide par rapport a SD1; ceci avant d'appliquer
un XSL sur SD2 pour generer du code. Ce fichier SD2 est donc dans la deuxieme partie de mon implementation sence etre considere non plus comme un fichier XSD mais comme un fichier XML contenant des
instances, une donne. Si instance il y a je doit etre en mesure (comment je ne sais pas) d'inserer quelque part un <key> permettant de verifier la coherance de cette instance.

L'idee de cet agencement des fichier et surtout de ce double emplois est de pouvoir :

     1) verifier la validite de fichier XML par rapport a SD2
     2) verifier la validite de SD2 par rapport a SD1
     3) verifier la validite de SD2 par rapport a un eventuel
        <key> sur l'identifiant vu dans l'exemple precedent
     4) generer du code C++ a partir de SD2 et d'un .XSL

Je veux peut etre en faire trop d'un coup mais mon cheminement logique (a premiere vue je precise :) m'a ammene a agencer les choses comme ca.

voila pour ce qui est des precisions.

la question est toujour la meme : comment ajouter a cet agencement de fichier et de type un controle sur les tags <identifiant> 3 </identifiant> presente dans l'exemple precedent.

je doit bien avouer au passage que pour ce que j'ai pu en lire (et seulement lire :( ) l'utilisation du tag <key> est assez floue pour moi.

Je vois ca comme ca : lorsqu'on utilise <key>, il doit etre associe a la declaration d'une sorte de tag contenaire. Au cour de cette declaration, grace a <key> on precise qu'au seins du tag
contenaire, sur tel ou tel Xpath, tel ou tel tag doit etre considire comme une clef. Le test d'integrite intervient alors lors de la validation d'un document XML contenant des tag contenaire.

voila.

(ouf ! :) , et desole pour les fautes ... )

benoit lefevre.

--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !

Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).

Cette liste est a votre disposition pour discuter en francais de tout sujet technique lie a XML.

Pour resilier votre abonnement, envoyez un message contenant la commande "unsubscribe" a xml-tech-request@xmlfr.org (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)



Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:05 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement