Problème de validation XML, XSD avec JDOM
Bonjour à tous,
Je souhaite valider mon fichier XML avec un fichier XSD, j'ai développé une classe en JDOM.Je n'arrive pas à faire valider.ça serait cooool:ccool: de votre part de me proposer une solution.
Je vous remercie à l'avance
voici mon fichier XML:
Person.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?xml version="1.0" encoding="UTF-8"?>
<personnes xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="Person.xsd">
<personne >
<nom>dupon</nom>
<prenom>pierre</prenom>
</personne>
<personne>
<nom>durant</nom>
<prenom>jean</prenom>
</personne>
<personne>
<nom>martin</nom>
<prenom>gilles</prenom>
</personne>
</personnes> |
voici mon fichier xsd:
Person.xsd
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0">
<xsd:element name="personnes">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="personne" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="nom" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="prenom" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema> |
le code java:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| package xml_and_xsd_validation;
import java.io.File;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
public class Test
{
public static void main( String[] args ){
try
{
XMLFile();
}
catch (JDOMException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
public static void XMLFile() throws JDOMException, IOException{
SAXBuilder builder = new SAXBuilder(true);
builder.setValidation(true);
builder.setFeature("http://xml.org/sax/features/validation", true);
builder.setFeature("http://apache.org/xml/features/validation/schema",true);
builder.setFeature("http://apache.org/xml/features/validation/schema-full-checking",true);
builder.setFeature("http://apache.org/xml/features/nonvalidating/load-external-xsd", true);
Document doc = builder.build(new File("C:\\Project_XML_&_XSD_JDom\\ressources\\Person.xml"));
}
} |
voila le message de console:
Code:
1 2 3 4 5 6 7 8 9
| org.jdom.JDOMException: http://apache.org/xml/features/nonvalidating/load-external-xsd feature not recognized for SAX driver com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser
at org.jdom.input.SAXBuilder.internalSetFeature(SAXBuilder.java:827)
at org.jdom.input.SAXBuilder.setFeaturesAndProperties(SAXBuilder.java:766)
at org.jdom.input.SAXBuilder.createParser(SAXBuilder.java:621)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:905)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:884)
at xml_and_xsd_validation.Test.XMLFile(Test.java:45)
at xml_and_xsd_validation.Test.main(Test.java:16) |