Hallo
Ik ben bezig een Java programma te schrijven voor het maken van betalingsbestanden (XML) volgens internationale standaarden. Nu wilde ik in dit programma validatie inbouwen voor XML bestanden en deze controleren volgens het XSD schema gemaakt door -- hmmm -- die dat het betaalverkeer regelen
Op de site van Oracle heb ik gevonden dat Java deze validatie ingebouwd heeft in javax.xml.validation (http://java.sun.com/devel...cles/xml/validationxpath/). Ik heb dus een beetje copy/paste werk verricht om uiteindelijk een eenvoudige versie van de validator te bekomen om zo te testen of het degelijk werkt.
Probleem is dat ik telkens bij het uitvoeren op eenzelfde fout terecht kom nl:
cvc-elt.1: Cannot find the declaration of element 'Document'.
Dit terwijl:
1. XMLSpy geen enkel probleem aangeeft met het bestand
2. Het XSD schema niet fout is (het bevat weldegelijk de declaratie van het element Document)
3. Wat ik tot nu gebruik zijn voorbeelden zijn van Febelfin - beheerder van betalingsverkeer in België - zelf (en die dus hopelijk wel weten hoe zo'n XML bestand eruit moet zien)
Ik heb verder nog een ander voorbeeld gebruikt (nl de het XML bestand en XSD schema op link: http://java.sun.com/devel...cles/xml/validationxpath/) om te zien of er iets niet klopt aan die validator en daar gaat alles perfect.
Ik sta dus nu voor een vreemde vraag: wie of wat is hier fout?
https://www.box.com/s/9a00e761b440946f92b4 (link naar het XSD schema)
https://www.box.com/s/a8e45eb88589a6c18b34 (link naar het te valideren XML document)
Ik hoop dat iemand mij wat verder kan helpen want ik zit muurvast. Ik kan geen wijzigingen doorvoeren aan het XSD schema en het XML bestand is correct (bevestigd door XMLSpy ahv het XSD schema en wordt zelf als voorbeeld aangereikt door Febelfin).
Enige verklaring is dat Java niet correct zijn werk doet
Alvast bedankt voor de input
Ik ben bezig een Java programma te schrijven voor het maken van betalingsbestanden (XML) volgens internationale standaarden. Nu wilde ik in dit programma validatie inbouwen voor XML bestanden en deze controleren volgens het XSD schema gemaakt door -- hmmm -- die dat het betaalverkeer regelen
Op de site van Oracle heb ik gevonden dat Java deze validatie ingebouwd heeft in javax.xml.validation (http://java.sun.com/devel...cles/xml/validationxpath/). Ik heb dus een beetje copy/paste werk verricht om uiteindelijk een eenvoudige versie van de validator te bekomen om zo te testen of het degelijk werkt.
Java:
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
| public class MyValidator { public static void main(String[] args) { try { // Parse an XML document into a DOM tree. DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document document = parser.parse(new File("D://Steven//Documenten//Java//Betalingen//simple.xml")); // Create a SchemaFactory capable of understanding WXS schemas. SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); // Load a WXS schema, represented by a Schema instance. Source schemaFile = new StreamSource(new File("D://Steven//Documenten//Java//Betalingen//simple.xsd")); Schema schema = factory.newSchema(schemaFile); // Create a Validator object, which can be used to validate // an instance document. Validator validator = schema.newValidator(); // Validate the DOM tree. validator.validate(new DOMSource(document)); } catch (ParserConfigurationException e) { System.out.println("Parser Config"); } catch (SAXException e) { System.out.println(e.getMessage()); System.out.println("SAX ex"); } catch (IOException e) { System.out.println("IO ex"); } } } |
Probleem is dat ik telkens bij het uitvoeren op eenzelfde fout terecht kom nl:
cvc-elt.1: Cannot find the declaration of element 'Document'.
Dit terwijl:
1. XMLSpy geen enkel probleem aangeeft met het bestand
2. Het XSD schema niet fout is (het bevat weldegelijk de declaratie van het element Document)
3. Wat ik tot nu gebruik zijn voorbeelden zijn van Febelfin - beheerder van betalingsverkeer in België - zelf (en die dus hopelijk wel weten hoe zo'n XML bestand eruit moet zien)
Ik heb verder nog een ander voorbeeld gebruikt (nl de het XML bestand en XSD schema op link: http://java.sun.com/devel...cles/xml/validationxpath/) om te zien of er iets niet klopt aan die validator en daar gaat alles perfect.
Ik sta dus nu voor een vreemde vraag: wie of wat is hier fout?
https://www.box.com/s/9a00e761b440946f92b4 (link naar het XSD schema)
https://www.box.com/s/a8e45eb88589a6c18b34 (link naar het te valideren XML document)
Ik hoop dat iemand mij wat verder kan helpen want ik zit muurvast. Ik kan geen wijzigingen doorvoeren aan het XSD schema en het XML bestand is correct (bevestigd door XMLSpy ahv het XSD schema en wordt zelf als voorbeeld aangereikt door Febelfin).
Enige verklaring is dat Java niet correct zijn werk doet
Alvast bedankt voor de input