Created
February 23, 2024 21:07
-
-
Save aj-stein-nist/b676708701902c54770c2bacad8c2ce9 to your computer and use it in GitHub Desktop.
Example model module and document instances for usnistgov/metaschema#328
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<?xml-model href="https://raw.githubusercontent.com/usnistgov/metaschema/develop/schema/xml/metaschema.xsd" type="application/xml" schematypens="http://www.w3.org/2001/XMLSchema"?> | |
<METASCHEMA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xmlns="http://csrc.nist.gov/ns/oscal/metaschema/1.0"> | |
<schema-name>Let Experiment Model</schema-name> | |
<schema-version>0.2.0</schema-version> | |
<short-name>experiment</short-name> | |
<namespace>https://github.com/usnistgov/metaschema/issues/548</namespace> | |
<json-base-uri>https://github.com/usnistgov/metaschema/issues/548</json-base-uri> | |
<define-assembly name="package"> | |
<root-name>outer-package</root-name> | |
<define-flag name="id" as-type="positiveInteger"/> | |
<model> | |
<define-field name="color" as-type="string" min-occurs="1" max-occurs="1"/> | |
<define-field name="height" as-type="positive-integer"/> | |
<define-field name="width" as-type="positive-integer"/> | |
<define-field name="depth" as-type="positive-integer" /> | |
<assembly ref="package" max-occurs="unbounded"> | |
<use-name>inner-package</use-name> | |
<group-as name="inner-packages" in-json="ARRAY"/> | |
</assembly> | |
</model> | |
<!-- | |
Moved to external constraints in let_example-1_external-constraints.xml | |
--> | |
</define-assembly> | |
</METASCHEMA> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<?xml-model href="https://raw.githubusercontent.com/usnistgov/metaschema/develop/schema/xml/metaschema-meta-constraints.xsd" type="application/xml" schematypens="http://www.w3.org/2001/XMLSchema"?> | |
<metaschema-meta-constraints xmlns="http://csrc.nist.gov/ns/oscal/metaschema/1.0"> | |
<import href="let_example-1.xml" /> | |
<context> | |
<metapath target="/outer-package,//inner-package" /> | |
<constraints> | |
<let var="inner-volume" expression="sum(for $package in inner-package return $package/height * $package/width * $package/depth)"/> | |
<let var="volume" expression="depth * width * height"/> | |
<expect target="." test="$volume > $inner-volume"/> | |
<expect target="." test="false()"> | |
<message>volume: {$volume} inner-volume: {$inner-volume}</message> | |
</expect> | |
</constraints> | |
</context> | |
<context> | |
<metapath target="/outer-package" /> | |
<constraints> | |
<let var="all-approved-colors" expression="('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet')"/> | |
<expect target="color" test=".=$all-approved-colors"/> | |
</constraints> | |
<context> | |
<metapath target="inner-package" /> | |
<constraints> | |
<let var="inner-approved-colors" expression="('blue', 'indigo', 'violet')"/> | |
<expect target="color" test=".=$inner-approved-colors"/> | |
</constraints> | |
</context> | |
</context> | |
</metaschema-meta-constraints> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"outer-package": | |
{ | |
"color": "red", | |
"height": 10, | |
"width": 10, | |
"depth": 10, | |
"inner-packages": [ | |
{ | |
"color": "violet", | |
"height": 100, | |
"width": 100, | |
"depth": 100 | |
}, | |
{ | |
"color": "periwinkle", | |
"height": 200, | |
"width": 200, | |
"depth": 200 | |
}, | |
{ | |
"color": "mauve", | |
"height": 500, | |
"width": 500, | |
"depth": 500 | |
} | |
] | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"outer-package": | |
{ | |
"color": "red", | |
"height": 10, | |
"width": 10, | |
"depth": 10, | |
"inner-packages": [ | |
{ | |
"color": "violet", | |
"height": 5, | |
"width": 5, | |
"depth": 5 | |
} | |
] | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ metaschema-cli --version | |
metaschema-java 1.0.0-M2-SNAPSHOT built at 2024-02-23T15:07:06+0000 from branch 325-convert-command (6c65ce7) at git@github.com:usnistgov/metaschema-java.git | |
metaschema v0.10.0 built at 2024-02-23T15:07:06+0000 from branch 16919d512f96110c49fa2edcd3e6ee9a377c0b69 (16919d5) at https://github.com/usnistgov/metaschema.git | |
$ metaschema-cli validate-content -m '/home/me/code/let_example-1.xml' -c '/home/me/code/let_example-1_external-constraints.xml' '/home/me/code/let_example-1_invalid_instance.json' --show-stack-trace | |
Loading module 'file:/home/me/code/let_example-1_external-constraints.xml' | |
Unable to load constraint set '/home/me/code/let_example-1_external-constraints.xml'. | |
java.io.IOException: java.io.IOException: An unexpected error occured during parsing: Expected XML END_ELEMENT for QName '{http://csrc.nist.gov/ns/oscal/metaschema/1.0}metaschema-meta-constraints', instead found START_ELEMENT: {http://csrc.nist.gov/ns/oscal/metaschema/1.0}context at 16:5 at 16:5 | |
at gov.nist.secauto.metaschema.databind.io.AbstractDeserializer.deserializeToNodeItem(AbstractDeserializer.java:100) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.IDeserializer.deserializeToNodeItem(IDeserializer.java:195) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.DefaultBoundLoader.loadAsNodeItem(DefaultBoundLoader.java:246) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.DefaultBoundLoader.loadAsNodeItem(DefaultBoundLoader.java:223) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.DefaultBoundLoader.load(DefaultBoundLoader.java:170) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.DefaultBoundLoader.load(DefaultBoundLoader.java:162) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.model.metaschema.BindingConstraintLoader.parseResource(BindingConstraintLoader.java:110) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.model.metaschema.BindingConstraintLoader.parseResource(BindingConstraintLoader.java:90) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.core.model.AbstractLoader.loadInternal(AbstractLoader.java:160) ~[gov.nist.secauto.metaschema.metaschema-core-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.core.model.AbstractLoader.load(AbstractLoader.java:78) ~[gov.nist.secauto.metaschema.metaschema-core-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.cli.commands.AbstractValidateContentCommand$AbstractValidationCommandExecutor.execute(AbstractValidateContentCommand.java:172) ~[gov.nist.secauto.metaschema.metaschema-cli-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.cli.processor.CLIProcessor$CallingContext.invokeCommand(CLIProcessor.java:406) ~[gov.nist.secauto.metaschema.cli-processor-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.cli.processor.CLIProcessor$CallingContext.processCommand(CLIProcessor.java:377) [gov.nist.secauto.metaschema.cli-processor-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.cli.processor.CLIProcessor.parseCommand(CLIProcessor.java:193) [gov.nist.secauto.metaschema.cli-processor-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.cli.processor.CLIProcessor.process(CLIProcessor.java:176) [gov.nist.secauto.metaschema.cli-processor-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.cli.CLI.runCli(CLI.java:67) [gov.nist.secauto.metaschema.metaschema-cli-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.cli.CLI.main(CLI.java:47) [gov.nist.secauto.metaschema.metaschema-cli-1.0.0-M2-SNAPSHOT.jar:?] | |
Caused by: java.io.IOException: An unexpected error occured during parsing: Expected XML END_ELEMENT for QName '{http://csrc.nist.gov/ns/oscal/metaschema/1.0}metaschema-meta-constraints', instead found START_ELEMENT: {http://csrc.nist.gov/ns/oscal/metaschema/1.0}context at 16:5 at 16:5 | |
at gov.nist.secauto.metaschema.databind.io.xml.DefaultXmlDeserializer.parseXmlInternal(DefaultXmlDeserializer.java:171) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.xml.DefaultXmlDeserializer.deserializeToValue(DefaultXmlDeserializer.java:155) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.xml.DefaultXmlDeserializer.deserializeToNodeItemInternal(DefaultXmlDeserializer.java:146) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.xml.DefaultXmlDeserializer.deserializeToNodeItemInternal(DefaultXmlDeserializer.java:53) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.AbstractDeserializer.deserializeToNodeItem(AbstractDeserializer.java:98) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
... 16 more | |
Caused by: java.io.IOException: Expected XML END_ELEMENT for QName '{http://csrc.nist.gov/ns/oscal/metaschema/1.0}metaschema-meta-constraints', instead found START_ELEMENT: {http://csrc.nist.gov/ns/oscal/metaschema/1.0}context at 16:5 at 16:5 | |
at gov.nist.secauto.metaschema.core.model.util.XmlEventUtil.requireEndElement(XmlEventUtil.java:484) ~[gov.nist.secauto.metaschema.metaschema-core-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.xml.MetaschemaXmlReader$ItemReadHandler.readDefinitionElement(MetaschemaXmlReader.java:460) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.xml.MetaschemaXmlReader$ItemReadHandler.readItemAssembly(MetaschemaXmlReader.java:586) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.model.IBoundDefinitionModelAssembly.readItem(IBoundDefinitionModelAssembly.java:95) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.xml.MetaschemaXmlReader.read(MetaschemaXmlReader.java:163) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.xml.DefaultXmlDeserializer.parseXmlInternal(DefaultXmlDeserializer.java:168) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.xml.DefaultXmlDeserializer.deserializeToValue(DefaultXmlDeserializer.java:155) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.xml.DefaultXmlDeserializer.deserializeToNodeItemInternal(DefaultXmlDeserializer.java:146) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.xml.DefaultXmlDeserializer.deserializeToNodeItemInternal(DefaultXmlDeserializer.java:53) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
at gov.nist.secauto.metaschema.databind.io.AbstractDeserializer.deserializeToNodeItem(AbstractDeserializer.java:98) ~[gov.nist.secauto.metaschema.metaschema-databind-1.0.0-M2-SNAPSHOT.jar:?] | |
... 16 more |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment