commit fd23fea563a0bf63c40c8ab4563eb319030e2ffc parent d28fa7e89b7ac1e3c2dc7652ced1da1c44cf003f Author: Marcello Stanisci <stanisci.m@gmail.com> Date: Sun, 15 Sep 2019 18:40:45 +0200 load xsd from resources Diffstat:
| M | src/main/java/tech/libeufin/XMLManagement.java | | | 19 | ++++++++++++++----- |
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/src/main/java/tech/libeufin/XMLManagement.java b/src/main/java/tech/libeufin/XMLManagement.java @@ -25,13 +25,22 @@ public class XMLManagement { * Load all the XSDs from disk. */ public XMLManagement(){ + ClassLoader classLoader = ClassLoader.getSystemClassLoader(); - Source ebics_hev_file = new StreamSource(new File("resources/ebics_hev.xsd")); - Source xsds[] = {ebics_hev_file}; - SchemaFactory sf = new SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI); + File ebics_hev_file = new File(classLoader.getResource("ebics_hev.xsd").getFile()); + // other schemas in other similar lines .. + + /* Ideally, there will be a method that return some "iterable" + * object for all the files in the resources directory. */ + + Source schemas[] = { + new StreamSource(ebics_hev_file) + // other StreamSources for other schemas here .. + }; + SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI); try{ - this.bundle = sf.newSchema(xsds); + this.bundle = sf.newSchema(schemas; this.validator = this.bundle.newValidator(); } catch (IOException e){ System.out.println("Could not import all XSDs from disk" + "(" + e + ")"); @@ -47,6 +56,6 @@ public class XMLManagement { System.out.println("Could not pass XML to validator."); return false; } - + return true; } }; \ No newline at end of file