From: Jean-Marc Vanel (jmvanel@free.fr)
Date: 07/06/2003 - 15:34
Fabrice Castellon wrote:
>Bonjour,
>
>J'aimerais savoir s'il existe des projets open source qui permettent de créer a partir d'un XSD, un document XML valide en lui proposant les balises adaptées. (genre ce que fait XML Spy)
>
Il y a pollo et gendoc. Comme par hasard ce sont deux projets Français
-:)) . Voir les URL ici:
http://jmvanel.free.fr/Principales_sources_technologiques.htm
gendoc je ne sais pas encore, mais pollo n'utilise pas toute
l'information du XSD, en gros il prend l'info. de type DTD.
>Mieux, sous vous aviez des astuces à me donner pour réaliser un tel produit je suis tout ouie. J'aimerais mettre en memoire ce XSD et l'utiliser efficacement. J'hesite a passer par des objets ou par un document xml qui permettrait d'exploiter ce XSD.
>
Il y a un endroit dans le document XML Schema où mettre des infos à
destination d'un programme c'est la balise appinfo; par exemple pour y
mettre un libellé de formulaire, le nom d'une classe qui va valider la
saisie, ou bien des contraintes en XPath, etc ... On peut mettre des
appinfo à tous les niveaux d'un document XML Schema.
Une autre piste que je peux donner, c'est ceci:
Document Object Model (DOM) Level 3 Validation Specification
Version 1.0
W3C Working Draft 05 February 2003
http://www.w3.org/TR/2003/WD-DOM-Level-3-Val-20030205/validation.html
Pour donner le parfum de cette spec., voici l'interface principale :
interface NodeEditVAL <http://www.w3.org/TR/2003/WD-DOM-Level-3-Val-20030205/validation.html#VAL-Interfaces-NodeEditVAL> {
// CheckTypeVAL
const unsigned short WF_CHECK = 1;
const unsigned short NS_WF_CHECK = 2;
const unsigned short PARTIAL_VALIDITY_CHECK = 3;
const unsigned short STRICT_VALIDITY_CHECK = 4;
readonly attribute DOMString defaultValue <http://www.w3.org/TR/2003/WD-DOM-Level-3-Val-20030205/validation.html#NodeEditVAL-defaultValue>;
readonly attribute DOMStringList enumeratedValues <http://www.w3.org/TR/2003/WD-DOM-Level-3-Val-20030205/validation.html#NodeEditVAL-enumeratedValues>;
boolean canInsertBefore <http://www.w3.org/TR/2003/WD-DOM-Level-3-Val-20030205/validation.html#VAL-Interfaces-NodeEditVAL-canInsertBefore>(in Node newChild,
in Node refChild);
boolean canRemoveChild <http://www.w3.org/TR/2003/WD-DOM-Level-3-Val-20030205/validation.html#VAL-Interfaces-NodeEditVAL-canRemoveChild>(in Node oldChild);
boolean canReplaceChild <http://www.w3.org/TR/2003/WD-DOM-Level-3-Val-20030205/validation.html#VAL-Interfaces-NodeEditVAL-canReplaceChild>(in Node newChild,
in Node oldChild);
boolean canAppendChild <http://www.w3.org/TR/2003/WD-DOM-Level-3-Val-20030205/validation.html#VAL-Interfaces-NodeEditVAL-canAppendChild>(in Node newChild);
boolean isNodeValid <http://www.w3.org/TR/2003/WD-DOM-Level-3-Val-20030205/validation.html#NodeEditVAL-isNodeValid>(in boolean deep,
in unsigned short wFValidityCheckLevel)
raises(ExceptionVAL <http://www.w3.org/TR/2003/WD-DOM-Level-3-Val-20030205/validation.html#ExceptionVAL>);
};
Ce n'est encore qu'un document de travail, mais c'est exactement ce dont
les éditeurs XML ont besoin. Il y a une valeur ajoutée par rapport à
l'accès "brut" à l'élément du Schema correspondant au noeud courant (ce
que fait la Post Validation Schema Information de Xerces). Il n'y a
encore aucune implémentation, mais certainement Xerces (et les autres)
vont s'y mettre quand ce sera une recommandation. En attendant, il est
bon de s'y conformer, même si on en fait une implémentation très
partielle et spécifique. Ainsi le moment venu, on pourra brancher une
implémentation conforme.
Ce que DOM3 ne précise pas c'est comment instancer ces interfaces. Si
c'est comme PSVI avec Xerces, on transtypera (cast) un noeud ordinaire
vers l'interface NodeEditVAL. Si on veut utiliser tout de suite ces
interfaces, sans présager de la façon d'instancier, on peut par exemple
faire une fabrique avec une méthode :
NodeEditVAL createNodeEditVAL(Node n);
--
Jean-Marc Vanel
NOSPAM@free.fr
(remplacez NOSPAM par jmvanel ci-dessus)
(replace NOSPAM by jmvanel above)
http://jmvanel.free.fr/ ===) CV, software resources
Worldwide Botanical Knowledge Base
http://wwbota.free.fr/
Demo.: 8500 species of the Flora of China with Cocoon and eXist:
http://jmvanel.free.fr/protea.html
--
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:06 UTC
webmaster@xmlfr.org
|