From f62dc41e99f7d65e74696eb66af108d718883c41 Mon Sep 17 00:00:00 2001
From: Andreas Romeyke <andreas.romeyke@slub-dresden.de>
Date: Thu, 20 Jul 2023 11:57:50 +0200
Subject: [PATCH] - enhanced with nonvalidating

---
 .../dps/repository/plugin/ValidationSchemaType.java      | 2 +-
 .../dps/repository/plugin/XmlFormatValidationPlugin.java | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/java/org/slub/rosetta/dps/repository/plugin/ValidationSchemaType.java b/java/org/slub/rosetta/dps/repository/plugin/ValidationSchemaType.java
index d6e2f9b..1f324b3 100644
--- a/java/org/slub/rosetta/dps/repository/plugin/ValidationSchemaType.java
+++ b/java/org/slub/rosetta/dps/repository/plugin/ValidationSchemaType.java
@@ -16,5 +16,5 @@ limitations under the License.
 package org.slub.rosetta.dps.repository.plugin;
 
 public enum ValidationSchemaType {
-    schema, dtd, relaxng, schematron, nothing
+    schema, dtd, relaxng, schematron, nonvalidating, nothing,
 }
diff --git a/java/org/slub/rosetta/dps/repository/plugin/XmlFormatValidationPlugin.java b/java/org/slub/rosetta/dps/repository/plugin/XmlFormatValidationPlugin.java
index 8fd9c28..c2b2578 100644
--- a/java/org/slub/rosetta/dps/repository/plugin/XmlFormatValidationPlugin.java
+++ b/java/org/slub/rosetta/dps/repository/plugin/XmlFormatValidationPlugin.java
@@ -98,6 +98,7 @@ public class XmlFormatValidationPlugin implements FormatValidationPlugin {
                 case "schema" -> schematype = ValidationSchemaType.schema;
                 case "schematron" -> schematype = ValidationSchemaType.schematron;
                 case "relaxng" -> schematype = ValidationSchemaType.relaxng;
+                case "nonvalidating" -> schematype = ValidationSchemaType.nonvalidating;
                 default -> validationLogger.error("attribute schematype needs to be type of schema, schematron or relaxng, but is " + attr_type);
             }
             URI uri;
@@ -261,24 +262,32 @@ public class XmlFormatValidationPlugin implements FormatValidationPlugin {
             case dtd -> {
                 ValidateDTD validator = new ValidateDTD(validationCatalogResolver, validationErrorHandler, validationLogger);
                 valid = validator.validateAgainst(filePath);
+                break;
             }
             case schema -> {
                 ValidateSchema validator = new ValidateSchema(validationResourceResolver, validationLogger);
                 valid = validator.validateFormatAgainstSchemaRecursively(doc, validationSchema);
             }
+            case nonvalidating -> {
+                ValidateSchema validator = new ValidateSchema(validationResourceResolver, validationLogger);
+                valid = validator.validateFormatAgainstSchemaRecursively(doc, validationSchema);
+            }
             case relaxng -> {
                 ValidateRelaxNG validator = new ValidateRelaxNG(validationErrorHandler, validationLogger);
                 valid = validator.validateAgainst(doc, validationSchema.schemaURI);
+                break;
             }
             case schematron -> {
                 ValidateSchematron validator = new ValidateSchematron();
                 valid = validator.validateAgainst(doc, validationSchema.schemaURI);
                 validationLogger.error("unsupported schematron schema uri=" + validationSchema.schemaURI + " of type: " + validationSchema.schemaType);
                 valid = false;
+                break;
             }
             default -> {
                 validationLogger.error("unsupported schema uri=" + validationSchema.schemaURI + " of type: " + validationSchema.schemaType);
                 valid = false;
+                break;
             }
         }
     }
-- 
GitLab