From c29dd78b48860568a47f0f2e54036d7b96393597 Mon Sep 17 00:00:00 2001 From: Philip Helger Date: Tue, 27 Jan 2026 15:58:10 +0100 Subject: [PATCH 01/11] Resolve "Maven Central pom.xml is dependency-reduced" --- .gitignore | 6 ++++++ CHANGELOG.md | 5 +++++ pom.xml | 17 ++++++++--------- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index a70a722..1f05b8f 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ src/generated .factorypath .idea/ .settings/ +.externalToolBuilders/ .vscode *.code-workspace *.xpr @@ -46,3 +47,8 @@ xrechnung .DS_Store andre*-simple.xml somePrefix*.xml + +# 2.0 stuff +api/ +cli/ +core/ diff --git a/CHANGELOG.md b/CHANGELOG.md index ef56bf3..fd16e98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +## 1.6.1 - work in progress + +### Changed + +- (BUILD) [#176] The Maven Central deployed pom.xml properly includes runtime dependencies ## 1.6.0 - 2025-11-07 diff --git a/pom.xml b/pom.xml index 5d04818..01ac3b6 100644 --- a/pom.xml +++ b/pom.xml @@ -80,17 +80,16 @@ ${version.lombok} provided - - net.sf.saxon - Saxon-HE - ${version.saxon-he} - compile - org.slf4j slf4j-api ${version.slf4j} + + net.sf.saxon + Saxon-HE + ${version.saxon-he} + info.picocli picocli @@ -180,7 +179,7 @@ org.sonatype.central central-publishing-maven-plugin - 0.8.0 + 0.10.0 true central @@ -275,15 +274,15 @@ org.apache.maven.plugins maven-shade-plugin - 3.6.0 + 3.6.1 - jdk11+ package shade + false true standalone From f43f0d32ac99d8a11c0717eca3835accf89d7df1 Mon Sep 17 00:00:00 2001 From: Philip Helger Date: Tue, 27 Jan 2026 16:26:46 +0100 Subject: [PATCH 02/11] Resolve "Question: does the "standalone" JAR need to be in the assembly ZIP?" --- CHANGELOG.md | 3 ++- src/assembly/assembly-dist.xml | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd16e98..94488f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- (BUILD) [#176] The Maven Central deployed pom.xml properly includes runtime dependencies +- (BUILD) [#176] The Maven Central deployed `pom.xml` properly includes runtime dependencies +- (BUILD) [#175] The `.zip` file created from `maven-assembly-plugin` no longer contains the standalone validator, which reduces its size to 50% ## 1.6.0 - 2025-11-07 diff --git a/src/assembly/assembly-dist.xml b/src/assembly/assembly-dist.xml index 597eec6..d091b08 100644 --- a/src/assembly/assembly-dist.xml +++ b/src/assembly/assembly-dist.xml @@ -20,6 +20,10 @@ validator-*.jar + + + *standalone.jar + From 53f16f5199637da1dcbd6a1184f3cf9df09a3503 Mon Sep 17 00:00:00 2001 From: Philip Helger Date: Tue, 3 Feb 2026 15:46:26 +0100 Subject: [PATCH 03/11] Fix/owasp oom --- .gitlab-ci.yml | 69 +++++++++++++++++++++++++++++++------------------- pom.xml | 3 ++- 2 files changed, 45 insertions(+), 27 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 686bdd9..38f9d3e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,8 +1,8 @@ image: maven:latest - + variables: BUILD_PROPS: "-Dbuild.revision=$CI_COMMIT_SHA -Dbuild.branch=$CI_COMMIT_REF_NAME -Dbuild.number=$CI_PIPELINE_IID -Dfile.encoding=UTF-8 -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false" - MAVEN_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true" + MAVEN_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true -Xmx6g" MAVEN_CLI_OPTS: " --batch-mode --update-snapshots --errors --fail-at-end --show-version -s .mvn/settings.xml" MAVEN_CLI_OPTS_CENTRAL: " --batch-mode --show-version -s .mvn/settings-maven-central.xml" @@ -15,6 +15,7 @@ cache: paths: - .m2/repository +# Basic Java build steps .java: stage: build needs: @@ -32,11 +33,6 @@ cache: - target/surefire-reports/*.xml - target/failsafe-reports/*.xml -.java_extended: - extends: .java - rules: - - if: $CI_PIPELINE_SOURCE == "schedule" - java-11: extends: .java image: maven:3-eclipse-temurin-11-alpine @@ -54,10 +50,6 @@ java-11: - target/surefire-reports/*.xml - target/failsafe-reports/*.xml -java-11-openj9: - extends: .java_extended - image: maven:3-jdk-11-openj9 - java-17: extends: .java image: maven:3-eclipse-temurin-17-alpine @@ -66,14 +58,29 @@ java-21: extends: .java image: maven:3-eclipse-temurin-21-alpine -java-24: - extends: .java_extended - image: maven:3-eclipse-temurin-24-alpine - java-25: extends: .java image: maven:3-eclipse-temurin-25-alpine - + +# Rare Java stuff +.java_extended: + extends: .java + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" + +# Note: the openj9 images don't exist for Java 17, 21 or 25 +# Removed because the latest public image is 11.0.11 which is not comaptible to the Lombok requirement of 11.0.23 +#java-11-openj9: +# extends: .java_extended +# image: maven:3-jdk-11-openj9 + +# Deploy Java 11 build on Maven Central +deploy-java-11-snapshot: + extends: java-11 + script: + - mvn $MAVEN_CLI_OPTS_CENTRAL -P release-snapshot deploy + +# Deploy Java 11 build to KoSIT repository (manually) deploy: stage: deploy image: maven:3-eclipse-temurin-11-alpine @@ -81,18 +88,14 @@ deploy: - job: java-11 script: - export PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) - - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validator-${PROJECT_VERSION}.zip -DgroupId=kosit -DartifactId=validator -Dclassifier="distribution" -Dversion=${PROJECT_VERSION} -Dpackaging=zip -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven - - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validator-${PROJECT_VERSION}.jar -DgroupId=kosit -DartifactId=validator -Dversion=${PROJECT_VERSION} -Dpackaging=jar -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven - - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validator-${PROJECT_VERSION}-javadoc.jar -DgroupId=kosit -DartifactId=validator -Dclassifier="javadoc" -Dversion=${PROJECT_VERSION} -Dpackaging=zip -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven - - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validator-${PROJECT_VERSION}-standalone.jar -DgroupId=kosit -DartifactId=validator -Dclassifier="standalone" -Dversion=${PROJECT_VERSION} -Dpackaging=jar -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven - - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validator-${PROJECT_VERSION}-sources.jar -DgroupId=kosit -DartifactId=validator -Dclassifier="sources" -Dversion=${PROJECT_VERSION} -Dpackaging=jar -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven + - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validator-${PROJECT_VERSION}.zip -DgroupId=kosit -DartifactId=validator -Dversion=${PROJECT_VERSION} -Dclassifier="distribution" -Dpackaging=zip -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven + - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validator-${PROJECT_VERSION}.jar -DgroupId=kosit -DartifactId=validator -Dversion=${PROJECT_VERSION} -Dpackaging=jar -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven + - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validator-${PROJECT_VERSION}-javadoc.jar -DgroupId=kosit -DartifactId=validator -Dversion=${PROJECT_VERSION} -Dclassifier="javadoc" -Dpackaging=zip -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven + - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validator-${PROJECT_VERSION}-standalone.jar -DgroupId=kosit -DartifactId=validator -Dversion=${PROJECT_VERSION} -Dclassifier="standalone" -Dpackaging=jar -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven + - mvn $MAVEN_CLI_OPTS deploy:deploy-file -Dfile=target/validator-${PROJECT_VERSION}-sources.jar -DgroupId=kosit -DartifactId=validator -Dversion=${PROJECT_VERSION} -Dclassifier="sources" -Dpackaging=jar -DrepositoryId="gitlab-maven" -Durl=https://projekte.kosit.org/api/v4/projects/7/packages/maven when: manual -deploy-snapshot: - extends: java-11 - script: - - mvn $MAVEN_CLI_OPTS_CENTRAL -P release-snapshot deploy - +# Build Docker images and upload to KoSIT registry create-build-image: stage: deploy image: docker:latest @@ -108,12 +111,26 @@ create-build-image: changes: - .mvn/createBuildImages.sh +# Run OWASP checks - expensive so only on main branch owasp-check: +<<<<<<< Upstream, based on origin/main extends: .java +======= + stage: test +>>>>>>> bad4cab Fix/owasp oom image: maven:3-eclipse-temurin-21-alpine needs: [ ] + # set job timeout to 1 hour - it's required when new rules are downloaded + timeout: 1h + variables: + RUNNER_SCRIPT_TIMEOUT: 1h script: - mvn $MAVEN_CLI_OPTS $BUILD_PROPS $CI_JOB_TIMESTAMP validate -Powasp-check + artifacts: + name: artifacts + reports: + codequality: + - target/dependency-check-report.html rules: - if: $CI_PIPELINE_SOURCE == "schedule" - if: $CI_COMMIT_REF_NAME == "main" diff --git a/pom.xml b/pom.xml index 01ac3b6..e1ca6a8 100644 --- a/pom.xml +++ b/pom.xml @@ -625,7 +625,8 @@ ${project.basedir}/owasp-suppressions.xml - + + ${NVD_API_KEY} From e2c3f5eea38db7ea2b51c437cf38e194679c276c Mon Sep 17 00:00:00 2001 From: Philip Helger Date: Tue, 3 Feb 2026 17:17:08 +0100 Subject: [PATCH 04/11] Resolve "scenario.xsd: Match Element darf nicht leer sein" --- src/main/model/xsd/scenarios.xsd | 40 ++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/main/model/xsd/scenarios.xsd b/src/main/model/xsd/scenarios.xsd index fd6d9e3..9521ceb 100644 --- a/src/main/model/xsd/scenarios.xsd +++ b/src/main/model/xsd/scenarios.xsd @@ -1,21 +1,4 @@ - - - @@ -72,13 +55,19 @@ + + + + + + - + @@ -138,3 +127,18 @@ + From 155d3dc692880f845de8af566cc9786ac3609e34 Mon Sep 17 00:00:00 2001 From: Philip Helger Date: Tue, 3 Feb 2026 17:25:01 +0100 Subject: [PATCH 05/11] Added changelog for #106 --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94488f2..10a6989 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,8 +12,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- (BUILD) [#176] The Maven Central deployed `pom.xml` properly includes runtime dependencies -- (BUILD) [#175] The `.zip` file created from `maven-assembly-plugin` no longer contains the standalone validator, which reduces its size to 50% +- (CORE) [#106](https://projekte.kosit.org/kosit/validator/-/issues/106) The `match` element in `scenarios.xml` is required to have at least one character (per XSD change) +- (BUILD) [#176](https://projekte.kosit.org/kosit/validator/-/issues/176) The Maven Central deployed `pom.xml` properly includes runtime dependencies +- (BUILD) [#175](https://projekte.kosit.org/kosit/validator/-/issues/175) The `.zip` file created from `maven-assembly-plugin` no longer contains the standalone validator, which reduces its size to 50% ## 1.6.0 - 2025-11-07 From 7bd423c4588d8c52f9c8a250d8c5d771ffbed18d Mon Sep 17 00:00:00 2001 From: Philip Helger Date: Tue, 3 Feb 2026 17:30:09 +0100 Subject: [PATCH 06/11] Resolve "Wrong Schematron/XSLTs lead to positive validation result (GitHub 165)" --- .../impl/CollectingErrorEventHandler.java | 2 +- .../tasks/SchematronValidationAction.java | 11 +- .../cmd/CommandlineApplicationTest.java | 11 +- .../de/kosit/validationtool/impl/Helper.java | 13 +- .../input/simple-xslt-runtime-error.xml | 23 ++ .../xslt-runtime-error/repository/report.xsl | 44 ++++ .../repository/simple-xslt-runtime-error.xsl | 231 ++++++++++++++++++ .../xslt-runtime-error/repository/simple.xsd | 30 +++ .../scenarios-with-xslt-runtime-error.xml | 61 +++++ 9 files changed, 417 insertions(+), 9 deletions(-) create mode 100644 src/test/resources/examples/invalid/xslt-runtime-error/input/simple-xslt-runtime-error.xml create mode 100644 src/test/resources/examples/invalid/xslt-runtime-error/repository/report.xsl create mode 100644 src/test/resources/examples/invalid/xslt-runtime-error/repository/simple-xslt-runtime-error.xsl create mode 100644 src/test/resources/examples/invalid/xslt-runtime-error/repository/simple.xsd create mode 100644 src/test/resources/examples/invalid/xslt-runtime-error/scenarios-with-xslt-runtime-error.xml diff --git a/src/main/java/de/kosit/validationtool/impl/CollectingErrorEventHandler.java b/src/main/java/de/kosit/validationtool/impl/CollectingErrorEventHandler.java index be10111..042dd95 100644 --- a/src/main/java/de/kosit/validationtool/impl/CollectingErrorEventHandler.java +++ b/src/main/java/de/kosit/validationtool/impl/CollectingErrorEventHandler.java @@ -47,7 +47,7 @@ public class CollectingErrorEventHandler implements ValidationEventHandler, Erro private static final int DEFAULT_ABORT_COUNT = 50; - private static final int stopProcessCount = DEFAULT_ABORT_COUNT; + private final int stopProcessCount = DEFAULT_ABORT_COUNT; private final List errors = new ArrayList<>(); diff --git a/src/main/java/de/kosit/validationtool/impl/tasks/SchematronValidationAction.java b/src/main/java/de/kosit/validationtool/impl/tasks/SchematronValidationAction.java index ae85023..90ad899 100644 --- a/src/main/java/de/kosit/validationtool/impl/tasks/SchematronValidationAction.java +++ b/src/main/java/de/kosit/validationtool/impl/tasks/SchematronValidationAction.java @@ -23,9 +23,6 @@ import javax.xml.transform.dom.DOMSource; import org.oclc.purl.dsdl.svrl.SchematronOutput; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; - import de.kosit.validationtool.impl.CollectingErrorEventHandler; import de.kosit.validationtool.impl.ConversionService; import de.kosit.validationtool.impl.Scenario; @@ -33,7 +30,8 @@ import de.kosit.validationtool.impl.Scenario.Transformation; import de.kosit.validationtool.model.reportInput.CreateReportInput; import de.kosit.validationtool.model.reportInput.ValidationResultsSchematron; import de.kosit.validationtool.model.reportInput.ValidationResultsSchematron.Results; - +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import net.sf.saxon.dom.NodeOverNodeInfo; import net.sf.saxon.s9api.SaxonApiException; import net.sf.saxon.s9api.XdmDestination; @@ -71,6 +69,11 @@ public class SchematronValidationAction implements CheckAction { transformer.setInitialContextNode(document); transformer.transform(); + // If we reach this line, it means no Exception was thrown :-) + if (e.hasErrors()) { + log.error("XSLT errors found: " + e.getErrorDescription()); + } + final ValidationResultsSchematron.Results r = new ValidationResultsSchematron.Results(); r.setSchematronOutput(this.conversionService.readDocument( new DOMSource(NodeOverNodeInfo.wrap(result.getXdmNode().getUnderlyingNode()).getOwnerDocument()), diff --git a/src/test/java/de/kosit/validationtool/cmd/CommandlineApplicationTest.java b/src/test/java/de/kosit/validationtool/cmd/CommandlineApplicationTest.java index b9b2ed8..dce14d4 100644 --- a/src/test/java/de/kosit/validationtool/cmd/CommandlineApplicationTest.java +++ b/src/test/java/de/kosit/validationtool/cmd/CommandlineApplicationTest.java @@ -139,6 +139,15 @@ public class CommandlineApplicationTest { assertThat(CommandLine.getErrorOutput()).contains(RESULT_OUTPUT); } + @Test + public void testValidMinimalConfigurationXSLTRuntimeError() { + final String[] args = { "-s", Paths.get(Simple.SCENARIOS_XSLT_RUNTIME_ERROR).toString(), "-h", "-o", + this.output.toAbsolutePath().toString(), "--serialize-report-input", + Paths.get(Simple.SIMPLE_XSLT_RUNTIME_ERROR).toString() }; + CommandLineApplication.mainProgram(args); + assertThat(CommandLine.getErrorOutput()).contains(RESULT_OUTPUT); + } + @Test public void testValidNamingConfiguration() { final String[] args = { "-s", Paths.get(Simple.SCENARIOS).toString(), "-r", Paths.get(Simple.REPOSITORY_URI).toString(), @@ -159,7 +168,7 @@ public class CommandlineApplicationTest { @Test public void testValidDirectoryInput() { final String[] args = { "-s", Paths.get(Simple.SCENARIOS).toString(), "-o", this.output.toString(), "-r", - Paths.get(Simple.REPOSITORY_URI).toString(), Paths.get(Simple.EXAMPLES).toString() }; + Paths.get(Simple.REPOSITORY_URI).toString(), Paths.get(Simple.INPUT).toString() }; CommandLineApplication.mainProgram(args); assertThat(CommandLine.getErrorOutput()).contains("Processing 9 object(s) completed"); } diff --git a/src/test/java/de/kosit/validationtool/impl/Helper.java b/src/test/java/de/kosit/validationtool/impl/Helper.java index 00da5a3..25d6158 100644 --- a/src/test/java/de/kosit/validationtool/impl/Helper.java +++ b/src/test/java/de/kosit/validationtool/impl/Helper.java @@ -49,15 +49,18 @@ public class Helper { public static final URI ROOT = EXAMPLES_DIR.resolve("simple/"); - public static final URI EXAMPLES = ROOT.resolve("input/"); + public static final URI INPUT = ROOT.resolve("input/"); public static final URI SIMPLE_VALID = ROOT.resolve("input/simple.xml"); + public static final URI SIMPLE_XSLT_RUNTIME_ERROR = EXAMPLES_DIR + .resolve("invalid/xslt-runtime-error/input/simple-xslt-runtime-error.xml"); + public static final URI FOO = ROOT.resolve("input/foo.xml"); - public static final URI FOO_SCHEMATRON_INVALID = EXAMPLES.resolve("foo-schematron-invalid.xml"); + public static final URI FOO_SCHEMATRON_INVALID = INPUT.resolve("foo-schematron-invalid.xml"); - public static final URI FOO_CUSTOM_LEVEL_ERROR = EXAMPLES.resolve("foo-custom-level-error.xml"); + public static final URI FOO_CUSTOM_LEVEL_ERROR = INPUT.resolve("foo-custom-level-error.xml"); public static final URI REJECTED = ROOT.resolve("input/withManualReject.xml"); @@ -65,6 +68,9 @@ public class Helper { public static final URI SCENARIOS_WITH_RELATIVE_PATHS = ROOT.resolve("scenarios-with-relative-paths.xml"); + public static final URI SCENARIOS_XSLT_RUNTIME_ERROR = EXAMPLES_DIR + .resolve("invalid/xslt-runtime-error/scenarios-with-xslt-runtime-error.xml"); + public static final URI OTHER_SCENARIOS = ROOT.resolve("otherScenarios.xml"); public static final URI ERROR_SCENARIOS = ROOT.resolve("scenarios-with-errors.xml"); @@ -101,6 +107,7 @@ public class Helper { public static class Invalid { + // Is the typo in the name on purpose??? public static final URI ROOT = EXAMPLES_DIR.resolve("invaid/"); public static final URI SCENARIOS = ROOT.resolve("scenarios.xml"); diff --git a/src/test/resources/examples/invalid/xslt-runtime-error/input/simple-xslt-runtime-error.xml b/src/test/resources/examples/invalid/xslt-runtime-error/input/simple-xslt-runtime-error.xml new file mode 100644 index 0000000..cdbd1cf --- /dev/null +++ b/src/test/resources/examples/invalid/xslt-runtime-error/input/simple-xslt-runtime-error.xml @@ -0,0 +1,23 @@ + + + abc + def + + + + + diff --git a/src/test/resources/examples/invalid/xslt-runtime-error/repository/report.xsl b/src/test/resources/examples/invalid/xslt-runtime-error/repository/report.xsl new file mode 100644 index 0000000..6eb7471 --- /dev/null +++ b/src/test/resources/examples/invalid/xslt-runtime-error/repository/report.xsl @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/examples/invalid/xslt-runtime-error/repository/simple-xslt-runtime-error.xsl b/src/test/resources/examples/invalid/xslt-runtime-error/repository/simple-xslt-runtime-error.xsl new file mode 100644 index 0000000..8a8f0de --- /dev/null +++ b/src/test/resources/examples/invalid/xslt-runtime-error/repository/simple-xslt-runtime-error.xsl @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + *: + + [namespace-uri()=' + + '] + + + + [ + + ] + + + + / + + @ + + + @*[local-name()=' + + ' and namespace-uri()=' + + '] + + + + + + + + + / + + + [ + + ] + + + + /@ + + + + + + + / + + + [ + + ] + + + + /@ + + + + + + + + + + + + + + + + + + + + + + + + . + + + + + U + + U + + + + U. + + n + + + + U. + + _ + + _ + + + + + + + + + +   +   +   + + + + + + + + + + + + + + + + Schematron Simple + + + + + + + + + + + + + + content-2 + + + + The decimal value of s:inner should be 1. + + + + + + + + + + + + diff --git a/src/test/resources/examples/invalid/xslt-runtime-error/repository/simple.xsd b/src/test/resources/examples/invalid/xslt-runtime-error/repository/simple.xsd new file mode 100644 index 0000000..04d5923 --- /dev/null +++ b/src/test/resources/examples/invalid/xslt-runtime-error/repository/simple.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/examples/invalid/xslt-runtime-error/scenarios-with-xslt-runtime-error.xml b/src/test/resources/examples/invalid/xslt-runtime-error/scenarios-with-xslt-runtime-error.xml new file mode 100644 index 0000000..f1c13a6 --- /dev/null +++ b/src/test/resources/examples/invalid/xslt-runtime-error/scenarios-with-xslt-runtime-error.xml @@ -0,0 +1,61 @@ + + + XSLT-Runtime-Error-TestSuite + QA + 2026-03-02 + +

Szenario für Tests

+
+ + + Simple + +

Teste Fehlerfall.

+
+ http://www.xoev.de/de/validator/framework/1/createreportinput + http://validator.kosit.de/test-sample + http://validator.kosit.de/test-report + / + + + + Sample Schema + repository/simple.xsd + + + + + Sample Schematron + repository/simple-xslt-runtime-error.xsl + + + + + Report für eRechnung + repository/report.xsl + + +
+ + + + default + repository/report.xsl + + +
+ From a3fd64c946e2cf8d76b8c9973376465e5c12d73b Mon Sep 17 00:00:00 2001 From: Philip Helger Date: Thu, 5 Feb 2026 11:46:03 +0100 Subject: [PATCH 07/11] Prepared for release --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10a6989..6b726fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased -## 1.6.1 - work in progress +## 1.6.1 - 2026-02-05 ### Changed From cd1494747a6e842c58f63dbc7bab4b971349b3bb Mon Sep 17 00:00:00 2001 From: Philip Helger Date: Thu, 5 Feb 2026 11:51:12 +0100 Subject: [PATCH 08/11] Removed "Unreleased" --- CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b726fb..79f360f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased - ## 1.6.1 - 2026-02-05 ### Changed From 06f6a77648cb3033330d098ef669e00d9906d556 Mon Sep 17 00:00:00 2001 From: Philip Helger Date: Thu, 5 Feb 2026 11:57:42 +0100 Subject: [PATCH 09/11] Merged --- .gitlab-ci.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 38f9d3e..75032c2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -113,11 +113,7 @@ create-build-image: # Run OWASP checks - expensive so only on main branch owasp-check: -<<<<<<< Upstream, based on origin/main - extends: .java -======= stage: test ->>>>>>> bad4cab Fix/owasp oom image: maven:3-eclipse-temurin-21-alpine needs: [ ] # set job timeout to 1 hour - it's required when new rules are downloaded From 3b4765e9c1415b950fefce73b4b7aa6fbc98cf62 Mon Sep 17 00:00:00 2001 From: Renzo Kottmann Date: Thu, 5 Feb 2026 12:25:11 +0100 Subject: [PATCH 10/11] [maven-release-plugin] prepare release v1.6.1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e1ca6a8..b1ea07c 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.kosit validator - 1.6.1-SNAPSHOT + 1.6.1 KoSIT XML Validator against XSD and Schematron based on defined scenarios. @@ -691,7 +691,7 @@ scm:git:https://github.com/itplr-kosit/validator.git scm:git:https://projekte.kosit.org/kosit/validator.git - release/1.6.x + v1.6.1 https://github.com/itplr-kosit/validator From 03e5be34b825130eeb522032221bd8034f7530d0 Mon Sep 17 00:00:00 2001 From: Renzo Kottmann Date: Thu, 5 Feb 2026 12:25:33 +0100 Subject: [PATCH 11/11] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index b1ea07c..0d95a32 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.kosit validator - 1.6.1 + 1.6.2-SNAPSHOT KoSIT XML Validator against XSD and Schematron based on defined scenarios. @@ -691,7 +691,7 @@ scm:git:https://github.com/itplr-kosit/validator.git scm:git:https://projekte.kosit.org/kosit/validator.git - v1.6.1 + release/1.6.x https://github.com/itplr-kosit/validator