All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- (CLI) #93 Remove usage information, when validation failed
- (CLI) #95 NPE when using empty repository definition (-r "")
- (CORE) #101 Role is null in FailedAssert
- (CLI) Support for multiple configurations and multiple repositories. See cli documentation for details
- (API) Possibility to use preconfigured Saxon
Processor
instance for validation
-
(CORE) #100 Make createReport optional
-
(DAEMON) UI rewrite based on Docusaurs
-
( API) ResolvingConfigurationStrategy.java#getProcessor() is removed.
-
(CORE) Bump Saxon HE to 11.4
-
(CORE) Bump jaxb-ri to 2.3.7
-
(CORE) Various other dependency updates. See pom.xml
-
(CORE) CLI parsing based on pico-cli, commons-cli is removed
- (CLI) #74 fix ansi output of the cli version
- #80 using classloader to initialize jaxb context (to support usage in OSGi environments)
- [#75] (#75) Improve logging on invalid documents
- Allow more than 3 customLevel elements in scenarios (see xrechnung configuration issue 49)
- Remove saxon signature from java8 uber-jar (see 67)
- date conversion when using ConfigurationBuilder#date(Date)
- (CLI) #51 Suffix of report xml is missing
- #53 Fix copyright and licensing information
- #56
namespace
element content needs trimming - [DAEMON] #57 Reading large inputs correctly
- read saxon XdmNode with InputFactory
- (CLI) custom output without the various log messages
- (CLI) options to set the log level (
-X
= full debug output,-l <level>
set a specific level) - (CLI) return code is not 0 on rejected results
- (CLI) read (single) test target from stdin
- [DAEMON] name inputs via request URI
- InputFactory has methods to read any java.xml.transform.Source as Input not only StreamSources
- InputFactory uses a generated UUID as name for SourceInput, if no "real" name can be derived
- saxon dependency update (minor, 9.9.1-7)
- [DAEMON] proper status codes when returning results (see daemon documentation)
getFailedAsserts()
andisSchematronValid()
in DefaultResult.java do not reflect actual schematron validation result- processing aborts on schematron execution errors (e.g. errors within schematron logic). The validator now generates a report in such cases.
- exception while resolving when using XSLT's
unparsed-text()
function within report generation
- (CLI) summary report
- engine info contains version number of the validator (configurations can output this in the report for maintainance puposes)
- options to customize serialized report file names (cmdline only) via
--report-prefix
and--report-postfix
- remove unused dependency Apache Commons HTTP
- Added a builder style configuration API to configure scenarios
- Added an option to configure xml security e.g. to load from http sources or not from a specific repository (so loading is configurable less restrictive, default strategy is to only load from a local repository)
- Support java.xml.transform.Source as Input
- Inputs are NOT read into memory (e.g. Byte-Array) prior processing within the validator. This reduces memory consumption.
- Overall processing of xml files is based on Saxon s9api. No JAXP or SAX classes are used by the validator (this further improves performance and memory consumption)
- CheckConfiguration is deprecated now. Use Configuration.load(...) or Configuration.build(...)
- Validator is creating invalid createReportInput xml in case of no scenario match
- Provide access to schematron result
through Result.java
- Result#getFailedAsserts() returns a list of failed asserts found by schematron
- Result#isSchematronValid() convinience access to evaluate whether schematron was processed without any * FailedAsserts*
- Result#getAcceptRecommendation() does not only work when acceptMatch is configured in the scenario
- schema correctness is a precondition, if the checked instance is not valid, this evaluates to REJECTED
- if acceptMatch is configured, the result is based on the boolean result of the xpath expression evaluated against the generated report
- if no acceptMatch is configured, the result is based on evaluation of schema and schematron correctness
- UNDEFINED is only returned, when processing is stopped somehow
- Result#isAcceptable() can now evaluate to true, when no acceptMatch is configured (see above)
- XXE vulnerability when reading xml documents with Saxon #44
- validator unintentionally stopped when schematron processing has errors. See #41.
- NPE in Result.getReportDocument for malformed xml input
- Convenience method for accessing information about well-formedness in Result
- Convenience method for accessing information about schema validation result in Result
- NPE when validating non-XML files
- Enhanced API-Usage e.g. return Result object with processing information
- Support loading scenarios and content from a JAR-File
- Simple Daemon-Mode exposing validation functionality via http
- cli option to serialize the 'report input' xml document to cwd (current working directory)
- Documentation in
docs
folder
- Use s9api (e.g. XdmNode) internally for loading and holding xml objects (further memory optimization)
- Builds with java 8 and >= 11
- Packages for java8 and java >= 11 (with jaxb included)
- Translated README.md
- Memory issues when validating multiple targets
- Removed XRechnung configuration from release artifacts and source (moved to own repository )
- Initial Release