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