OO-LD/oold-schema: v1.0.0-rc.3
Authors/Creators
- 1. Fraunhofer & Freelancer
- 2. Fraunhofer ISC
Description
Third release candidate for v1.0. Mostly a normativity pass: several requirements turned out to be stated in places the specification disclaims, so nothing could cite them.
Requirements rescued from non-normative prose
Four requirements existed only inside a :::example, a :::note, or a section marked .informative. A reader could follow them, but they bound nobody and the rule catalogue could not see them.
OOLD-SCH-2d05(MUST NOT) - an implementation must not treat an unmapped term as a conformance failure, though it may report one or reject it under an opt-in strict mode. The permission behind this was in the introduction, which is informative.OOLD-SCH-21d7(SHOULD) - a schema should offer at least one complete mapping, a target profile under which every declared property carries a term. Pairs with the above: leaving a term unmapped is a deferral, not a destination.OOLD-VER-46b9(SHOULD) - a schema carryingx-oold-uuidshould also use that UUID in its$id. Previously only "It is recommended to..." inside an example.OOLD-CMP-...(MUST) - a composed object is closed withunevaluatedProperties: false, notadditionalProperties: false.#closing-composed-objectswas marked informative despite being the only place the mechanism is stated.
#ui-generation is now normative. Its keywords live in oold-ui-meta-schema.json, which the dialect base $refs, so every OO-LD schema is already validated against them - a schema writing "x-oold-ui-widget": 42 is rejected today. Disclaiming the section defining them meant the specification disowned a constraint it enforces. The subtree carried no RFC 2119 keyword, so nothing became binding by accident; #validator-vs-widget keeps its own .informative.
Enum names and descriptions
x-enum-varnames and x-enum-descriptions were emitted by tooling and present in the meta-schemas, but described only in informative prose. Now specified in a normative #enum-names section, and moved into oold-meta-schema-base.json beside the other keywords.
OOLD-EXT-b249(SHOULD) - declarex-enum-varnameswhere anyenumvalue is not a valid identifier, since each generator otherwise applies its own mangling.OOLD-EXT-b23b(SHOULD) - a form generator labels an option withx-oold-ui-enum-titleswhere given, and may presentx-enum-descriptionsas further explanation.OOLD-EXT-1e3c(MUST) - a widget hint that is not a registered format is carried inx-oold-ui-widget, notformat.
Both keep their unprefixed names deliberately: the OpenAPI Specification defines no enum-naming keyword, so these are conventions of generator tooling, and an x-oold--prefixed spelling would be read by nothing.
Catalogue integrity
- A
:rule[...]inside a.informativesection is now rejected at extraction. Only:::note/:::examplewere guarded, so a rule written in an informative section was rendered without RFC 2119 markup and catalogued as normative anyway. NOT RECOMMENDEDis admitted as a level, andcheck_specfails when the extractor's vocabulary and the catalogue schema's enum disagree in either direction. A rule stated with it previously wrote a catalogue that failed its own schema.OOLD-CMP-a05areclassifiedmachine_checkable=no: its trigger is authorial intent, which no validator can see.
73 rules, up from 66.
Documentation
The site is restructured into five tabs - Introduction, Guide, Use Cases, Rule Catalogue, Specification - with Get Started folded into the Introduction, the mappings split one page per format, and reference renamed related-work. Content moved verbatim.
/get-started/ and /reference/ no longer resolve. Versioned URLs are unaffected: https://oo-ld.org/1.0.0-rc.2/ keeps both.
Feedback
Comments welcome in https://github.com/OO-LD/oold-schema/issues/116.
Files
OO-LD/oold-schema-v1.0.0-rc.3.zip
Files
(809.4 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:3b989e61e726ee244ae03d9ab8edd482
|
809.4 kB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/OO-LD/oold-schema/tree/v1.0.0-rc.3 (URL)
Software
- Repository URL
- https://github.com/OO-LD/oold-schema