From 36c030558bb731ba7d9a561d93882ad79cd36274 Mon Sep 17 00:00:00 2001
From: Andreas Romeyke <andreas.romeyke@slub-dresden.de>
Date: Thu, 23 Feb 2023 14:42:47 +0100
Subject: [PATCH] - performance fix, load only schemaInst if needed

---
 .../dps/repository/plugin/SLUBXmlFormatValidationPlugin.java  | 4 +++-
 .../slub/rosetta/dps/repository/plugin/ValidationSchema.java  | 4 ----
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/java/org/slub/rosetta/dps/repository/plugin/SLUBXmlFormatValidationPlugin.java b/java/org/slub/rosetta/dps/repository/plugin/SLUBXmlFormatValidationPlugin.java
index bcf7805..b39af51 100644
--- a/java/org/slub/rosetta/dps/repository/plugin/SLUBXmlFormatValidationPlugin.java
+++ b/java/org/slub/rosetta/dps/repository/plugin/SLUBXmlFormatValidationPlugin.java
@@ -31,6 +31,7 @@ import javax.xml.XMLConstants;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.validation.SchemaFactory;
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -242,7 +243,8 @@ public class SLUBXmlFormatValidationPlugin implements FormatValidationPlugin {
                         if (debug) {
                             System.out.println("-> set schema to " + schema.get().schemaURL);
                         }
-                        dbf.setSchema(schema.get().schemaInst);
+                        var schemaInst = SchemaFactory.newDefaultInstance().newSchema( schema.get().schemaURL );
+                        dbf.setSchema(schemaInst);
                         assert(dbf.getSchema() != null);
                     }
                     valid = validateAgainstSchema(filePath);
diff --git a/java/org/slub/rosetta/dps/repository/plugin/ValidationSchema.java b/java/org/slub/rosetta/dps/repository/plugin/ValidationSchema.java
index 5d7c71d..6806a17 100644
--- a/java/org/slub/rosetta/dps/repository/plugin/ValidationSchema.java
+++ b/java/org/slub/rosetta/dps/repository/plugin/ValidationSchema.java
@@ -2,20 +2,16 @@ package org.slub.rosetta.dps.repository.plugin;
 
 import org.xml.sax.SAXException;
 
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
 import java.net.URL;
 
 class ValidationSchema {
     public final String nameSpace;
     public final ValidationSchemaType schemaType;
     public final URL schemaURL;
-    public Schema schemaInst;
 
     public ValidationSchema(String nameSpace, ValidationSchemaType schemaType, URL schemaURL) throws SAXException {
         this.nameSpace = nameSpace;
         this.schemaURL = schemaURL;
         this.schemaType = schemaType;
-        this.schemaInst = SchemaFactory.newDefaultInstance().newSchema( schemaURL );
     }
 }
-- 
GitLab