This major release incorporates a bunch of bug fixes, new features, and code refactoring that will improve the stability of runtimes, and the maintainability of the code and use of the APIs.
What's New
In #189, the metaschema-cli convert command was added which allows for the conversion between supported formats for any content that conforms to a Metaschema module.
usage: metaschema-cli convert --to=FORMAT -m=FILE_OR_URL [<options>] <source-file-or-URL> [<destination-file>]
-h,--help display this help message
-m <FILE_OR_URL> metaschema resource
--no-color do not colorize output
--overwrite overwrite the destination if it exists
-q,--quiet minimize output to include only errors
--show-stack-trace display the stack trace associated with an error
--to=<FORMAT> convert to format: xml, json, or yaml
--version display the application version
In #181, the logging produced by validation commands has been enhanced to also output the constraint id that the log message pertains to.
let statements now fully support exposing the remark. Previously, this support was lacking for the pre-generated class bindings
for the Metaschema.
The flag, following, following-sibling, preceding, and preceding-siblingaxes are now implemented. See #229.
In allowed-values constraints, deprecated versions are now properly exposed in the related APIs.
All constraint types, except for allowed-values now support custom messages similar to how expect previously worked. See #218.
Runtime errors that occur while validation content using constraints sometimes caused the validation to exit prematurely before reporting validation errors. PR #232 now ensures that validation continues and these runtime issues are reported as validation errors.
Definition and instance properties are now fully supported in the class binding APIs.
The metaschema-cli eval command now outputs the value for flag and field nodes in addition to the path to the node. See #228.
Due to the differences between how null values are handled in XML and JSON/YAML, the parser will now report warnings when a null value is found. See #227 for more information on this behavior.
Bug Fixes
PR #188 addressed #184 by ensuring that only one copy of a constraint is added at a given location within a model. This issues was caused when an external constraint applied to multiple locations within a model and that model construct was reused in one or more of those locations. A copy of the constraint was added for each time the constraint target matches one of those locations.
PR #187 addressed the case where a search path (//somenode). In such cases, the matched nodes were returned multiple times. This fix ensure that the nodes returned are unique.
PR #214 fixes the case where if the fn:doc-available Metapath function is called with an absolute URI, the function was trying to still resolve it. This would cause an error when the static context doesn't have a baseUri set. The behavior has been changed to only try resolution when the URI is not absolute.
Breaking Changes
Some implementation classes and interfaces haven been moved or renamed. The following is a summary of the changes.
This major release incorporates a bunch of bug fixes, new features, and code refactoring that will improve the stability of runtimes, and the maintainability of the code and use of the APIs.
What's New
In #189, the metaschema-cli convert command was added which allows for the conversion between supported formats for any content that conforms to a Metaschema module.
usage: metaschema-cli convert --to=FORMAT -m=FILE_OR_URL [<options>] <source-file-or-URL> [<destination-file>]
-h,--help display this help message
-m <FILE_OR_URL> metaschema resource
--no-color do not colorize output
--overwrite overwrite the destination if it exists
-q,--quiet minimize output to include only errors
--show-stack-trace display the stack trace associated with an error
--to=<FORMAT> convert to format: xml, json, or yaml
--version display the application version
In #181, the logging produced by validation commands has been enhanced to also output the constraint id that the log message pertains to.
let statements now fully support exposing the remark. Previously, this support was lacking for the pre-generated class bindings
for the Metaschema.
The flag, following, following-sibling, preceding, and preceding-siblingaxes are now implemented. See #229.
In allowed-values constraints, deprecated versions are now properly exposed in the related APIs.
All constraint types, except for allowed-values now support custom messages similar to how expect previously worked. See #218.
Runtime errors that occur while validation content using constraints sometimes caused the validation to exit prematurely before reporting validation errors. PR #232 now ensures that validation continues and these runtime issues are reported as validation errors.
Definition and instance properties are now fully supported in the class binding APIs.
The metaschema-cli eval command now outputs the value for flag and field nodes in addition to the path to the node. See #228.
Due to the differences between how null values are handled in XML and JSON/YAML, the parser will now report warnings when a null value is found. See #227 for more information on this behavior.
Bug Fixes
PR #188 addressed #184 by ensuring that only one copy of a constraint is added at a given location within a model. This issues was caused when an external constraint applied to multiple locations within a model and that model construct was reused in one or more of those locations. A copy of the constraint was added for each time the constraint target matches one of those locations.
PR #187 addressed the case where a search path (//somenode). In such cases, the matched nodes were returned multiple times. This fix ensure that the nodes returned are unique.
PR #214 fixes the case where if the fn:doc-available Metapath function is called with an absolute URI, the function was trying to still resolve it. This would cause an error when the static context doesn't have a baseUri set. The behavior has been changed to only try resolution when the URI is not absolute.
Breaking Changes
Some implementation classes and interfaces haven been moved or renamed. The following is a summary of the changes.
Updates dev.metaschema.java:metaschema-schema-generator from 1.1.0 to 2.0.0
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps
metaschema-framework.version
from 1.1.0 to 2.0.0. Updatesdev.metaschema.java:cli-processor
from 1.1.0 to 2.0.0Release notes
Sourced from dev.metaschema.java:cli-processor's releases.
... (truncated)
Commits
0859d4a
[maven-release-plugin] prepare release v2.0.040220a8
Ensuring runtime exceptions are caught that occur during validation. Fixes me...d85e17b
Custom constraint messages (#218)5114dc5
Bump org.xmlresolver:xmlresolver from 6.0.10 to 6.0.11 (#222)039670e
Code cleanup (#230)5b73932
Bump dependency.pmd.version from 7.6.0 to 7.7.036dea3a
Bump org.apache.maven.plugins:maven-jxr-plugin from 3.5.0 to 3.6.052b9a18
Bump org.apache.maven.plugins:maven-pmd-plugin from 3.25.0 to 3.26.0ea226d4
Bump org.apache.maven.plugins:maven-plugin-report-pluginb65f6a2
Added preceding, preceding-sibling, following, and following-sibling axes sup...Updates
dev.metaschema.java:metaschema-cli
from 1.1.0 to 2.0.0Release notes
Sourced from dev.metaschema.java:metaschema-cli's releases.
... (truncated)
Commits
0859d4a
[maven-release-plugin] prepare release v2.0.040220a8
Ensuring runtime exceptions are caught that occur during validation. Fixes me...d85e17b
Custom constraint messages (#218)5114dc5
Bump org.xmlresolver:xmlresolver from 6.0.10 to 6.0.11 (#222)039670e
Code cleanup (#230)5b73932
Bump dependency.pmd.version from 7.6.0 to 7.7.036dea3a
Bump org.apache.maven.plugins:maven-jxr-plugin from 3.5.0 to 3.6.052b9a18
Bump org.apache.maven.plugins:maven-pmd-plugin from 3.25.0 to 3.26.0ea226d4
Bump org.apache.maven.plugins:maven-plugin-report-pluginb65f6a2
Added preceding, preceding-sibling, following, and following-sibling axes sup...Updates
dev.metaschema.java:metaschema-schema-generator
from 1.1.0 to 2.0.0Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show