je ne suis pas sous .Net mais du vieux asp....
enfin je vais garder la 1er solution de toute façon.
Donc générer ma xsl de saisie à partir d'un schéma en xml.
je n'avais jusqu'alors fait de transformation xml==>xsl mais c'est
l'occasion !
cette phase supplémentaire n'est pas problèmatique au final car elle
n'arrivera qu'une seule fois (pour chaque nouvelle interface d'édition d'un
nouveau type de fichier xml).
Par contre c'est au niveau du développement et du debbugage que ça risque
d'être un peu lourd... pour tester il va falloir à chaque fois que je génère
la xsl ? je devrais pouvoir automatiser cela dans un script, enfin je verrai
Ensuite quant au choix du schema, je découvre relax ng à la lecture de ton
livre et je suis assez convaincu :)... comment ne pas l'être !
tiens au passage un coquille dans la page
http://books.xmlschemata.org/relaxng/ch04s02.html : "id and this attribute's
content must must match this specific rule...". (2 fois must)
by the way, I would be pleased to translate a part of your book, but not the
whole, and even i m not sure i'm good enough technically speaking...
enfin pour l'instant je vais lire et tacher d'appliquer ce schema à mon
projet.
Ah oui il y a une chose que je n'avais pas mentionnée dans mon premier post
:
dans mon schema maison j'avais aussi l'intention de faire de regroupement de
plusieurs noeuds : c'est à dire les englober dans un noeud
<groupeAediterEn1fois> qui permettrait d'éditer un groupe de noeud dans un
même formulaire avec des bouton javascript pour ajouter/supprimer des neouds
(visuellement) et après effectuer en 1 fois les modif dans le fichier xml
plutot que d'éditer noeud par noeud et d'actualiser le fichier xml à chaque
manip.
Au dela des attribut "perso" peut-on avec relax ng englober un groupe de
neouds dans un noeud perso ?
merci de tes réponses !
matt
-----Message d'origine-----
De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
part de Eric van der Vlist
Envoyé : jeudi 7 avril 2005 16:08
À : xml-tech@xmlfr.org
Objet : [xml-tech] Re: Correspondance entre noeuds de 2 xml
Bonjour Matthieu,
On jeu, 2005-04-07 at 15:49 +0200, Matthieu Ricaud wrote:
> Bonjour,
>
> Merci pour ta réponse Eric. impossible de répondre plus tôt j'étais pris
sur
> autre chose...
>
> Je tavail en asp avec msxml comme parser.
> Et j'avoue ne pas trop connaître les autres environnnements...
>
> Apparement Xerces est un parser sous java, je ne connais pas vraiment ce
> langage ni ne l'utilise dans mon projet actuel, donc
> c'est plutôt vers ta 1ere solution que je m'orienterai.
Il doit y avoir des solutions similaires en environnement .Net, mais je
ne les connais pas...
> "La première est de générer à partir de votre schéma la transformation
> XSLT qui traitera la saisie du document.
>
> Cela rajoute une phase mais cela simplifie également beaucoup votre
> problème puisque vous pouvez générer les expressions XPath qui seront
> utilisés dans votre transformation."
>
> "votre schéma", tu parles de mon schéma maison ?
Oui.
> "schéma RELAX NG annoté", je vais me renseigné sur RELAX NG (has your book
> online a french version ?)
Nope... there is no French translation so far, but volunteers are
welcome to write one :-) ...
> Mais en tout cas je suis à 100% pour utiliser des formats de schéma
existant
> plutôt que ma recette maison...
> je pensais ne pas avoir le choix compte tenu de ce que je voulais faire
mais
> d'après ce que je comprend on peut ajouter des paramètre "perso" au schéma
> via des annotation ?
Exactement.
C'est possible à la fois sous RELAX NG et sous W3C XML Schema.
En ce qui concerne RELAX NG, j'ai consacré le chapitre 13 aux
annotations :
http://books.xmlschemata.org/relaxng/RngBookAnnotations.html
Pour rajouter un "label", tu pourrais utiliser des attributs
"étrangers" (utilisant un autre espace de noms et écrire :
<element name="BIBLIO" an:label="Bibliothèque">
.../...
</element>
(syntaxe XML)
ou bien :
[ an:label = "Bibliothèque" ] element BIBLIO { text }
(syntaxe compacte)
A moins que tu ne préfères des éléments "étrangers" :
<element name="BIBLIO">
<an:label>Bibliothèque</an:label>
.../...
</element>
(syntaxe XML)
ou :
[ an:label [ "Bibliothèque" ] ] element BIBLIO { text }
(syntaxe compacte)
> Sinon (de manière un peu dogmatique peut-être?) j'aurais préféré utiliser
> les schema w3c (le plus stantard qu'il soit je pensais)
W3V XML Schema est une recommandation W3C et RELAX NG une norme ISO...
Je laisse chacun libre de décider lequel est le plus "standard" :-) ...
> mais j'imagine qu'il
> y a des équivalence (existe-t-il un outil pour passer d'un schema w3c à un
> relaxNG et réciproquement?)
Oui, il y a "trang" de James Clark :
http://www.thaiopensource.com/relaxng/trang.html
Ceci dit, c'est également possible directement avec W3C XML Schema et
c'est le sujet du chapitre 14 de mon livre disponible sous format PDF
(le chapitre 14, pas le livre entier) :
http://www.oreilly.com/catalog/xmlschema/chapter/ch14.pdf
Là encore, tu peux utiliser des attributs étrangers :
<xs:element name="BIBLIO" an:label="Bibliothèque">
.../...
</xs:element>
Ou des éléments qui doivent alors être rangés dans xs:annotation et
xs:appinfo :
<xs:element name="BIBLIO">
<xs:annotation>
<xs:appinfo>
<an:label>Bibliothèque</an:label>
</xs:appinfo>
</xs:annotation>
.../...
</xs:element>
Enfin, dans tous les cas (RNG ou encore plus WXS), tu auras intérêt à ne
pas chercher à supporter toutes les possibilité du langage de schéma
(sinon tu vas te retrouver obliger à écrire une implémentation complête
de RNG ou WXS en XSLT) mais à un sous ensemble bien défini de ses
fonctionnalités.
> enfin je vais me documenter ...
J'espère avoir donné quelques points de départ...
Cordialement,
Eric
--
Carnet web :
http://eric.van-der-vlist.com/blog?t=category&a=Fran%C3%A7ais
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
--
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)
--
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)
Received on Thu Apr 7 18:37:37 2005