Rechercher : dans
Par :

Validation xml a l'aide de schema xml en java

Dernière réponse le 14 jui 2008 à 08:05:45 Fred, le 18 avr 2005 à 19:18:49 
 Signaler ce message aux modérateurs

Salut à tous,
j'ai un problème probablement simple, mais il m'est bloquant.
Je voudrais un code (une classe) java qui pemette de valider un document xml à l'aide d'un schema xml.
Merci d'avance pour toute aide

Meilleures réponses pour « validation xml a l'aide de schema xml en java » dans :
Structure d'un document XML VoirQu'est-ce que le XML? La norme XML en tant que telle doit être vue comme un outil permettant de définir un langage (on dit alors qu'il s'agit d'un métalangage), permettant de créer des documents structurés à l'aide de balises. Une balise est une...
PHP - Parser du XML VoirIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...
DOM (Document Object Model) et SAX (Simple API for XML) VoirXML permet de définir la structure du document uniquement, ce qui permet d'une part de pouvoir définir séparément la présentation de ce document, d'autre part d'être capable de récupérer les données présentes dans le document pour les...

1

Fred, le 19 avr 2005 à 09:46:02
  • +1

Rebonjour à tous !
je vous jure que je suis veritablement planté depuis quelques temps. Mais la j'ai quand même obtenu un debut de solution qui utilise JDOM pour parser, sauf que la je ne pas encore situer les sources des erreurs dans le document. Or c'est precisément cela qui m'interesse, car j'aimerais rediriger celles ci vers une sortie (fichier).
Merci pour toute aide.

Répondre à Fred

2

Mayada, le 7 sep 2007 à 15:44:17
  • +1

Bonjour :)
Lire un fichier XML ???
En fait il y a un API qui s'appele JAXB: côté technique je veux dire que JAXB fournit un outil qui analyse un schéma XML
et génère à partir de ce dernier un ensemble de classes qui vont encapsuler les traitements de manipulation du document. Résultat immédiat et miraculeux :)!! est que toutes les manip se font au travers d'objets java.
COMMENT?? ça restera un mystère !!! non je plaisante c'est pratique et très intéressant de percer ce mystère toi seul sans aide.
Bon courage ty arriveras

Répondre à Mayada

3

celcas, le 6 fév 2008 à 09:19:15

Bonjour,

je suis nulle en info et j'ai un fichier XML SCHEMA à ouvrir...Comment faire? Quel logiciel faut-il?
Merci d'avance

Répondre à celcas

6

sandul, le 3 jun 2008 à 12:42:01

Tu peux essayer XMLSpy d'Altova, il est excellent (mais cher)... En tout cas version d'essai dispo.

Répondre à sandul

8

 Lolo, le 14 jui 2008 à 08:05:45

Je trouve personnellement que le plus basique des éditeurs de texte est vraiment très bien pour éditer des xsd

Répondre à Lolo

4

ecor6633, le 3 jun 2008 à 09:55:50

Pour ce qui est de la validation, je sais par expérience que les schémas c'était pas trop bien supporté quand j'ai testé l'année passée mais que Xerces (le parseur opensource) est capable de le faire.
Il faut simplement une fois que tu as ta factory que tu fasse un set... je sais plus quoi pour lui dire explicitement que tu veux qu'il valide le schéma évidemment, il va valider avec le schéma qui est déclaré dans le document XML. Je ne sais pas exactement comment faire pour valider à partir d'un schéma externe différent mais ça doit être faisable.

celcas, j'utilise eclipse avec les webtools, une vraie usine à gaz pour une simple édition de fichier mais avec validation et éditeur graphique, etc...

Répondre à ecor6633

5

sandul, le 3 jun 2008 à 12:39:24

Salut,

Tu pourrais essayer avec ça (code incomplet, copié depuis un projet):

FileInputStream fis = null;
BufferedInputStream bis = null;
try {
if (mode == BI_MODE) {
fis = new FileInputStream(new File(biXmlFile));
} else {
fis = new FileInputStream(new File(cancelXmlFile));
}
bis = new BufferedInputStream(fis);
byte[] bytes = new byte[bis.available()];
bis.read(bytes);
String xmlStr = new String(bytes, "UTF-8");

SAXBuilder builder = new SAXBuilder();

builder.setValidation(true);
builder.setIgnoringElementContentWhitespace(true);
builder.setFeature("http://apache.org/xml/features/validation/schema", true);
builder.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
// if (mode == BI_MODE) {
// builder.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", biXsdFile);
// } else {
// builder
// .setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", cancelXsdFile);
// }
builder.build(new StringReader(xmlStr));

Lors de l'appel builder.build() il y a bel et bien une vérification de l'XML par rapport au schéma et tu peux catcher l'exception et jouer avec.

Suis désolé, mais je dois m'en aller, du coup je n'ai pas eu le temps de poster un code plus clair. En tout cas, tu as les méthodes à utiliser pour faire un enable/desable de la vérification par rapport à l'XML-Schema. J'utilise jdom (le builder est org.jdom.SAXBuilder) et Xerces...

A plucheu

Répondre à sandul

7

cocochanel, le 16 jun 2008 à 08:59:34

Salut,
pour valider un document XML en java voilà:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(true);
salut

Répondre à cocochanel