Bonjour,
J'ai un programme pour créer des fichiers XML et l'envoyer à une autre application.
J'ai une méthode pour valider les documents XML envoyés et elle marche bien. Cependant, l'autre application me renvoie un fichier XML et je n'arrive pas à le faire valider par ma méthode et ce malgré que le document est valide.
voici l'erreur qu'elle m'est affichée.
J'ai passé beaucoup de temps sur ce problème et j'aimerais bien que quelqu'un m'aide.
Voici le code de ma méthode de validation
Code : Sélectionner tout - Visualiser dans une fenêtre à part org.xml.sax.SAXParseException: cvc-elt.1: Impossible de trouver la dclaration de l'lment 'notification'.
Merci d'avance
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 public static void validerXML(String xml,InputStream xsd) throws SAXException, IOException, ParserConfigurationException, SAXParseException { logger.debug("Validation du PLI xml"); String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage"; String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema"; String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource"; // Suppression du BOM UTF8 s'il existe if ((xml.charAt(0) == 0x00EF) && (xml.charAt(1) == 0x00BB) && (xml.charAt(2) == 0x00BF) ) { xml = xml.substring(3, xml.length()); } InputSource inputSource = new InputSource(); StringReader strread = new StringReader(xml); inputSource.setCharacterStream(strread); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setIgnoringComments(true); dbf.setNamespaceAware(true); dbf.setValidating(true); dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); dbf.setAttribute(JAXP_SCHEMA_SOURCE, xsd); // Parsage du fichier XML avec DOM DocumentBuilder db = dbf.newDocumentBuilder(); db.setErrorHandler(new ErrorHandler() { public void fatalError(SAXParseException e) throws SAXParseException { logger.error(e); throw e; } public void error(SAXParseException e) throws SAXParseException { logger.error(e); throw e; } public void warning(SAXParseException e){ logger.error(e); } }); Document doc = db.parse(inputSource); }
Partager