-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update XML-JSON conversion script production to current Metaschema model #51
Comments
April 30 Update Work is now underway on this: progress is encouraging. The new implementation will a significant improvement over the OSCAL Milestone 2 version. Instead of deriving, from a single metaschema, both XML->JSON and JSON->XML conversion utilities, we are producing scripts that cast either format into a common "supermodel" instance, which contains all information necessary for serialization to any supported notation. From there, common utility stylesheets will re-serialize the supermodel representation into XML, JSON or potentially other formats in future such as YAML. Since this supermodel format consolidates all information needed for clean conversion in one place, it is much easier both to produce from a metaschema, with simpler logic than is required for direct conversion. The supermodel itself is a straight-up abstraction from the Metaschema, with five (5) element types capable of representing, in abstracted and annotated form, the full information set in any schema-valid instance -- kind of a Metaschema-based analog to the XSD PSVI (post-schema-validation infoset). Cf also usnistgov/OSCAL#633 |
…istgov#51; also more worked examples / problem cases
…rator, including XML to supermodel, supermodel to JSON
This is looking good in my feature branch: https://github.com/wendellpiez/metaschema/tree/issue39-pipeline-refactor |
…istgov#51; also more worked examples / problem cases
…rator, including XML to supermodel, supermodel to JSON
… also more worked examples / problem cases
…cluding XML to supermodel, supermodel to JSON
…istgov#51; also more worked examples / problem cases
…rator, including XML to supermodel, supermodel to JSON
… also more worked examples / problem cases
…cluding XML to supermodel, supermodel to JSON
… also more worked examples / problem cases
…cluding XML to supermodel, supermodel to JSON
* Many adjustments toward correct converter generation, though still broken - start with unit test toolchains/xslt-M4/metapath/metapath-jsonizing.xspec - this is a fail-safe commit * Now appears to pass testing scenarios (but more testing is coming) * Committing a version that handles test data correctly (so far) from rebuilt metaschema composition addressing #51 #53 #76
* Rework of docs focusing on JSON docs and model pipeline * Improvements to composition toolchain * Fixed a few small bugs in the metaschema-check. Improved performance of the compose pruning using an accumulator. * Moved edge-case samples into testing directory * Made shadowing warning a warning * Initial commit of an Oxygen Metaschema framework. * Creation of new compose schematron unit tests. * Cross-linking XML and JSON syntax pages and other improvements to links * Now building XML and JSON indexes to reference pages, with links to steps * Reconfigured docs pipeline (XSLT entry points); adding new files including pipeline steps * Migrating schema generation tools to new/improved composition pipeline * Addressing usnistgov/OSCAL#902 thanks for finding this bug * Enhancements to JSON Schema definition (with better performance too) * Adding support for json-base-uri as a metaschema property * Updated JSON schema $id; factoring out common docs XSLT * Fixing IDs in JSON schema per issue usnistgov/OSCAL#933. * Addressing datatype validation issues: whitespace collapsing; non-empty values; ncname-workalike in JSON Schema - see usnistgov/OSCAL#911 usnistgov/OSCAL#805 also #33 #67 #68 * Improvements to XSD production; fully aligning 'token' datatype across XSD and JSON Schema implementations. * Updating bidirectional XML/JSON converter generators (#143) * Committing a version that handles test data correctly (so far) from rebuilt metaschema composition addressing #51 #53 #76 * Now displaying constraints in documentation at point of definition; * Docs generation revamp Reworked reference and other pages to sketch - #128 and others Co-authored-by: Wendell Piez <wendell.piez@nist.gov>
Conversion scripts are currently stable (under M4) so this issue can be closed. |
This should be updated based on the changes summarized in #195. |
User Story:
Prototype Metaschema (OSCAL Milestone 2) supports automatic production of scripts (XSLT stylesheets) capable of converting between equivalent representations of OSCAL data in XML and JSON. We also need this capability going forward, now taking account of new features such as local definitions. Additionally, there are great opportunities for refactoring for traceability and maintainability.
Since Java tooling being developed by @david-waltermire-nist is also capable of this operation (by parsing both JSON and XML to a common model, then re-serializing into either notation), it may not be a requirement for Milestone 3 (tbd).
This Issue should be tracked by usnistgov/OSCAL#633.
Goals:
New better capabilities for producing XML->JSON and JSON->XML conversion scripts based on Metaschema declarations. Must support the new features including local declarations.
Dependencies:
Stable Metaschema design (#39) is a finish-to-finish dependency for this work item, but only with respect to model definitions, not constraints. So it is independent of usnistgov/metaschema-xslt#12.
See also #49, which would simplify the work (slightly) by removing a datatype.
Acceptance Criteria
The text was updated successfully, but these errors were encountered: