Bonjour,
J'aimerai savori comment faire pour charger un fichier XML qui doit être validé par un schéma XML.
Voici mes sources.
vente.xsd
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:include schemaLocation="personne.xsd"/> <xs:element name="vente"> <xs:complexType> <xs:sequence> <xs:element name="objet"> <xs:complexType> <xs:sequence> <xs:any/> </xs:sequence> </xs:complexType> </xs:element> <xs:element ref="idpublic"/> </xs:sequence> <xs:attribute name="date-fin" type="xs:dateTime"/> </xs:complexType> </xs:element> <xs:element name="voiture"> <xs:complexType> <xs:sequence> <xs:element ref="couleur"/> </xs:sequence> <xs:attribute name="marque" type="xs:string"/> <xs:attribute name="modele" type="xs:string"/> <xs:attribute name="carburant" default="essence"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="essence"/> <xs:enumeration value="diesel"/> <xs:enumeration value="GPL"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="km" type="xs:positiveInteger"/> <xs:attribute name="annee" type="xs:gYear"/> </xs:complexType> </xs:element> <xs:element name="couleur"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="metallisee" type="xs:boolean" default="true"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:schema>
vente.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE voiture SYSTEM "C:/Users/Delphine/workspace/XMLEncheres/src/vente.xsd"> <voiture marque="peugeot" modele="206" annee="2005" kms="60000" carburant="essence"> <couleur metalisee="oui">bleue</couleur> </voiture>
et fichier JAVA :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SAXBuilder sxb = new SAXBuilder(); Document doc = new Document(); sxb.setValidation(true); try { doc = sxb.build(new File("vente.xml")); } catch (JDOMException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
Or quand j'éxécute le programme, j'ai l'erreur suivante :
org.jdom.input.JDOMParseException: Error on line 2 of document file:///C:/Users/Delphine/workspace/XMLEncheres/src/vente.xsd: The markup declarations contained or pointed to by the document type declaration must be well-formed.
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:501)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:807)
at TP.JDOM.recupereInfosVente(JDOM.java:207)
at TP.JDOM.creerVente(JDOM.java:61)
at TP.JDOM.main(JDOM.java:250)
Caused by: org.xml.sax.SAXParseException: The markup declarations contained or pointed to by the document type declaration must be well-formed.
J'arrive vraiment pas à comprendre...
Merci de votre aide
Partager