Bonjour,
voilà j'aimerai générer un document xml que je pourrai afficher sous forme de string ensuite pour permettre d'ajouter des valeurs.
Mais j'aimerai le générer automatiquement à la base à partir du XSD. Est-ce possible?
Merci
Bonjour,
voilà j'aimerai générer un document xml que je pourrai afficher sous forme de string ensuite pour permettre d'ajouter des valeurs.
Mais j'aimerai le générer automatiquement à la base à partir du XSD. Est-ce possible?
Merci
J'ai exactement le même besoin.
Merci pour votre aide.
EDIT:
Pour être plus précis, j'ai besoins de générer des documents XML à partir d'un XSD.
Je commence à répondre moi même ... apparament faut regarder du côté de JAXB.
(et non pas JAXP comme je le croyais au début).
Bonjour,
Ca fait depuis le debut de la semaine que j'etudie le sujet car j'ai besoin de cette fonctionnalite dan smon projet TK-UI pour gerer les XForms.
Et je n'ai rien trouve de tres concret et je me suis mis donc a la tache.
Tout d'abor j'ai trouve que Xerces avait un parser de Schema, je l'ai etudie et j'ai cree une petite API qui utilise Xerces que j'ai appele EntityGenParser qui a partir d'un XSD ou d'une DTD (ca j'ai pas encore gere) genere un flux XML du document ou d'un fragment d'un element.
En fait un EntityGenParser est uen interface (implemente par un schema XMl ou une DTD) qui se comporte comme un Parser SAX qui declenche la methode startElement. Et donc avec un ContentHandler SAX on recupere les infos des elements a creer.
Voici un petit exemple avec el Scheam XML :
Voici le code Java de l'API EntityGenParser :
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
123456789101112 <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.eclipse.org/tptp/symptom/action" xmlns:acsea="http://www.eclipse.org/tptp/symptom/action"> <element name="action" type="acsea:Action" /> <complexType name="Action"> <attribute name="language" type="date" use="required" /> <attribute name="directive" type="string" default="DIRECTIVE" /> <attribute name="type" type="string" use="optional" /> </complexType> </schema>
qui affiche en sortie :
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 EntityGenParser parser = new XSEntityGenParserImpl(); // Load XML Schema into XS Parser InputStream inputStream = TestXSActionEntityGenParser.class .getResourceAsStream("action.xsd"); parser.parse(inputStream); // XML String content Writer xml = new StringWriter(); // SAX ContentHandler org.xml.sax.ContentHandler handler = new XMLSerializer(xml, new OutputFormat((String) null, null, true)); // generate action Entity parser.generate("action", "http://www.eclipse.org/tptp/symptom/action", handler, true); // Display XML content generated System.out.println(xml.toString());
J'ai des examples plus complexes et je dois gerer encore certaisn point comme les minOccurs, mais si vous etes interesses, nous pourriosn reflechir ensemble a l'API et je mettrai mon travail sur SVN.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <?xml version="1.0"?> <action language="" directive="DIRECTIVE" type=""/>
Angelo
Bon soir je suis une stagiaire j'ai presque la meme tache a faire : generation XML et formulaire Xforms a partir d'un XSD mais je l'ai fait moins simple que ça parceque mon boss ma demandé de ne pas s'appronfondir mais le probleme que j'arrive pas à ajouter les contraintes de type à partir de l'xsd dans le code du formulaire voulez vous me donnez une idée
Merci
Bonsoir,
Je suis désolé, mais je découvre tout doucement XForms et de plus je ne sais pas ce que vous utilisez comme processor XForms (Chiba, AjaxForms, le plugin Mozilla?).
Mais les specs XForms sont plutôt bien documentées, je suis en train de les lire pour developper ensuite (dans un futur tres lointain) mon propre processor XForms.
Bon courage.
Angelo
Ok pas de probleme merci en tout cas
Bon courage
bonjour,
j'ai le même problème que vous j'ai essayé votre code mais il me donne un erreur sur EntityGenParser et ses fonctions
je crois qu'il me manque une librairie
si vous connaissez le lien j'espère me le donner
merci d'avance.
Bonjour nesrinebm,
Il faut xerces pour que ca fonctionne. C'est quoi ton erreur?
Angelo
salut,
j'ai inclut la librairie xerce dans mon projet
l'erreur existe dans le code avant runnig dans cette instruction :
et une autre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part EntityGenParser parser = new XSEntityGenParserImpl();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 InputStream inputStream = TestXSActionEntityGenParser.class .getResourceAsStream("action.xsd");
SALUT angelo,
l'erreur qui me donne c'est:
merci beaucoup de votre aide.Exception in thread "main" java.lang.Error: Unresolved compilation problems:
EntityGenParser cannot be resolved to a type
XSEntityGenParserImpl cannot be resolved to a type
TestXSActionEntityGenParser cannot be resolved to a type
at nesrine.main(nesrine.java:13)
Salut nesrinebm,
Je m'excuse si c'est pas ca, mais j'ai l'impression que tu as fair un copier-coller de mon example et que tu tentes de lancer l'ex. Tu n'as pas recupere les sources?
Il faut que tu les recupere a l'aide de SVN les sources sur http://tk-ui.svn.sourceforge.net/svn.../proper/trunk/.
Il faut recuperer les 2 projets Eclipse org.akrogen.core et org.akrogen.core.xml.
Si tu es un debutant, je suis desole je ne vais pas pouvoir t'expliquer comment faire tout ca (utiliser SVN, compiler les projets....) car je n'ai pas beaucoup de temps.
Angelo
salut angelo,
en tout cas c'est pas grave, j'ai essayé d'autre chose merci beaucoup de votre aide.
Partager