Je suis en train de développer une application qui manipule du XML. Nous
nous assurons de la cohérence du xml grâce à un xsd. Au final cette
application sera dans un jar et le fichier xsd aussi. La seule
information que l'on dispose est le chemin relatif vers le xsd. Mais
xerces pour l'external location (namespace + file) demande ne prends pas
le chemin relatif (à moins que l'on me dise comment) mais les chemins
abolus.
J'ai essayé différentes façons d'opérer afin d'avoir ce chemin absolu et
j'obtiens finalement quelque chose que de nombreux forums conseils
d'utiliser :
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
cilovie
le plus simple est surement de ne pas déclarer le xsd dans le xml via schemaLocation. Mais de valider ton xml par un schema placé dans ton jar et de le récuperer via un getResourceAsStream.
Regarde le package javax.xml.validation c'est du jaxp 1.3 et xerces à partir de 2.7.1 l'implémente.
SchemaFactory te permet de construire un Schema (c thread safe donc pas besoin de reparser à chaque fois). Apres un objet Validator est voili.
Sinon voir aussi ici http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPSAX9.html#wp90294
-- O
Bonjour,
Je suis en train de développer une application qui manipule du XML. Nous nous assurons de la cohérence du xml grâce à un xsd. Au final cette application sera dans un jar et le fichier xsd aussi. La seule information que l'on dispose est le chemin relatif vers le xsd. Mais xerces pour l'external location (namespace + file) demande ne prends pas le chemin relatif (à moins que l'on me dise comment) mais les chemins abolus.
J'ai essayé différentes façons d'opérer afin d'avoir ce chemin absolu et j'obtiens finalement quelque chose que de nombreux forums conseils d'utiliser :
Mais xerces fait la sourde oreille et continue à me dire que le xml est incorrect.
Note : j'ai déjà testé mon xsd en dehors du jar ça marche, donc le xsd est hors d'état. De même pour mon code.
Merci d'avance.
le plus simple est surement de ne pas déclarer le xsd dans le xml via
schemaLocation.
Mais de valider ton xml par un schema placé dans ton jar et de le
récuperer via un getResourceAsStream.
Regarde le package javax.xml.validation c'est du jaxp 1.3 et xerces à
partir de 2.7.1 l'implémente.
SchemaFactory te permet de construire un Schema (c thread safe donc pas
besoin de reparser à chaque fois).
Apres un objet Validator est voili.
Sinon voir aussi ici
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPSAX9.html#wp90294
--
O
Bonjour,
Je suis en train de développer une application qui manipule du XML. Nous
nous assurons de la cohérence du xml grâce à un xsd. Au final cette
application sera dans un jar et le fichier xsd aussi. La seule
information que l'on dispose est le chemin relatif vers le xsd. Mais
xerces pour l'external location (namespace + file) demande ne prends pas
le chemin relatif (à moins que l'on me dise comment) mais les chemins
abolus.
J'ai essayé différentes façons d'opérer afin d'avoir ce chemin absolu et
j'obtiens finalement quelque chose que de nombreux forums conseils
d'utiliser :
le plus simple est surement de ne pas déclarer le xsd dans le xml via schemaLocation. Mais de valider ton xml par un schema placé dans ton jar et de le récuperer via un getResourceAsStream.
Regarde le package javax.xml.validation c'est du jaxp 1.3 et xerces à partir de 2.7.1 l'implémente.
SchemaFactory te permet de construire un Schema (c thread safe donc pas besoin de reparser à chaque fois). Apres un objet Validator est voili.
Sinon voir aussi ici http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPSAX9.html#wp90294
-- O
Bonjour,
Je suis en train de développer une application qui manipule du XML. Nous nous assurons de la cohérence du xml grâce à un xsd. Au final cette application sera dans un jar et le fichier xsd aussi. La seule information que l'on dispose est le chemin relatif vers le xsd. Mais xerces pour l'external location (namespace + file) demande ne prends pas le chemin relatif (à moins que l'on me dise comment) mais les chemins abolus.
J'ai essayé différentes façons d'opérer afin d'avoir ce chemin absolu et j'obtiens finalement quelque chose que de nombreux forums conseils d'utiliser :
Mais xerces fait la sourde oreille et continue à me dire que le xml est incorrect.
Note : j'ai déjà testé mon xsd en dehors du jar ça marche, donc le xsd est hors d'état. De même pour mon code.
Merci d'avance.
François-Xavier GENDRIN
le plus simple est surement de ne pas déclarer le xsd dans le xml via schemaLocation. Mais de valider ton xml par un schema placé dans ton jar et de le récuperer via un getResourceAsStream.
Regarde le package javax.xml.validation c'est du jaxp 1.3 et xerces à partir de 2.7.1 l'implémente.
SchemaFactory te permet de construire un Schema (c thread safe donc pas besoin de reparser à chaque fois). Apres un objet Validator est voili.
Sinon voir aussi ici http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPSAX9.html#wp90294
le plus simple est surement de ne pas déclarer le xsd dans le xml via
schemaLocation.
Mais de valider ton xml par un schema placé dans ton jar et de le
récuperer via un getResourceAsStream.
Regarde le package javax.xml.validation c'est du jaxp 1.3 et xerces à
partir de 2.7.1 l'implémente.
SchemaFactory te permet de construire un Schema (c thread safe donc
pas besoin de reparser à chaque fois).
Apres un objet Validator est voili.
Sinon voir aussi ici
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPSAX9.html#wp90294
le plus simple est surement de ne pas déclarer le xsd dans le xml via schemaLocation. Mais de valider ton xml par un schema placé dans ton jar et de le récuperer via un getResourceAsStream.
Regarde le package javax.xml.validation c'est du jaxp 1.3 et xerces à partir de 2.7.1 l'implémente.
SchemaFactory te permet de construire un Schema (c thread safe donc pas besoin de reparser à chaque fois). Apres un objet Validator est voili.
Sinon voir aussi ici http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPSAX9.html#wp90294