-
Notifications
You must be signed in to change notification settings - Fork 150
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
The generator does not handle allOf/anyOf/oneOf properly if schemas include properties, and are not references. #52
Comments
For the For |
Is there any difference between the three in terms of output? "and", "or" and "xor" examples from https://github.com/adobe/jsonschema2md/blob/master/examples/docs/complex.schema.md seem to follow the same rules visually, with just a different preface and headers. |
The difference is that in One way to express it could be a big preface with multiple property tables – and then a repetition of the property lists. |
I face the same issue, using My schema: {
"$schema": "http://json-schema.org/draft-04/schema#",
"$id": "http://www.axa.ch/schemas/components/Link.json",
"type": "object",
"title": "Link",
"description": "Renders a Link.",
"additionalProperties": false,
"required": [
"name",
"component"
],
"properties": {
"name": {
"$ref": "http://www.axa.ch/schemas/types/bpmid.json#"
},
"component": {
"allOf": [
{
"$ref": "http://www.axa.ch/schemas/types/component.json#"
},
{
"enum": [
"Link"
]
}
]
},
"properties": {
"type": "object",
"title": "Properties",
"description": "Properties of Link.",
"additionalProperties": false,
"properties": {
"value": {
"type": "string",
"title": "Value",
"description": "The value of the Link."
},
"href": {
"type": "string",
"title": "Href",
"description": "URL of the Link."
}
}
},
"style": {
"type": "object",
"title": "Style",
"description": "Styles of Textarea.",
"additionalProperties": false,
"properties": {
"color": {
"type": "string",
"title": "Color",
"description": "Color of Link.",
"enum": [
"red",
"white",
"blue"
],
"default": "blue"
},
"listed": {
"type": "boolean",
"title": "Listed",
"description": "Whether or not to us lested style.",
"default": "false"
},
"arrow": {
"type": "boolean",
"title": "Arrow",
"description": "Whether or not to display an arrow icon or not.",
"default": "false"
},
"motion": {
"type": "boolean",
"title": "Motion",
"description": "Whether or not to use animation upon hovering.",
"default": "false"
}
}
},
"events": {
"type": "array",
"title": "Events",
"description": "Supported events of Link.",
"uniqueItems": true,
"additionalItems": false,
"items": [
{
"$ref": "http://www.axa.ch/schemas/types/event.json#"
}
]
}
}
} And the generated markdown: # Link Schema
http://www.axa.ch/schemas/components/Link.json
name
name Type
propertiesPropertiesProperties of Link.
properties Type
hrefHrefURL of the Link.
href Type
valueValueThe value of the Link.
value Type
styleStyleStyles of Textarea.
style Type
arrowArrowWhether or not to display an arrow icon or not.
arrow Type
colorColorColor of Link.
The value of this property must be equal to one of the known values below. color Known Values
listedListedWhether or not to us lested style.
listed Type
motionMotionWhether or not to use animation upon hovering.
motion Type
|
# [4.0.0](v3.3.1...v4.0.0) (2019-12-16) ### Bug Fixes * **i18n:** use correct file name format ([43a74f4](43a74f4)) * **markdown:** constraint values can be zero now ([2e057fd](2e057fd)) * **markdown:** handle null as a constant value ([e652e11](e652e11)) * **proxy:** remove logging statements ([616a1d9](616a1d9)) * **schemas:** remove references going nowhere ([2186142](2186142)) ### Build System * **dependencies:** remove unused dependencies ([dbc9192](dbc9192)) ### Code Refactoring * **cli:** remove bluebird, lodash, simplify arg parsing ([b6b1822](b6b1822)) ### Continuous Integration * **test:** require node 10 ([ba4a947](ba4a947)) ### Documentation * **changelog:** mention changes for v4 ([4dfe90c](4dfe90c)), closes [#126](#126) [#174](#174) [#72](#72) [#73](#73) [#94](#94) [#52](#52) [#20](#20) [#125](#125) [#177](#177) [#34](#34) [#123](#123) ### Features * **cli:** generate JSON schema output ([dd18f3b](dd18f3b)), closes [#176](#176) * **formats:** add support for formats: json-pointer, relative-json-pointer, regex, and uri-template ([689c158](689c158)) * **i18n:** new internationalization system ([1a664de](1a664de)) * **i18n:** provide complete en_US translation ([5eb0c89](5eb0c89)) * **markdown:** add header surpression ([6225b9f](6225b9f)) * **markdown:** add support for `default` keyword ([72a0fde](72a0fde)) * **markdown:** add support for comments ([07bb52f](07bb52f)) * **markdown:** add YAML frontmatter support ([4df92e6](4df92e6)) * **markdown:** create and write markdown ([e521541](e521541)) * **markdown:** generate additional detail ([cc07df2](cc07df2)) * **markdown:** generate header again ([011427c](011427c)) * **markdown:** generate some property details ([fa34cf1](fa34cf1)) * **markdown:** generate type details ([c9f19e1](c9f19e1)) * **markdown:** highlight keyword usage for documentation ([d35e4ed](d35e4ed)), closes [#100](#100) * **markdown:** list nested schemas in README ([608674b](608674b)) * **markdown:** list nested schemas in README ([87e8489](87e8489)) * **markdown:** show examples ([c8e8dfa](c8e8dfa)) * **markdown:** show extensibility and abstraction in header ([90a9a8e](90a9a8e)) * **markdown:** show id and status in header ([08e1923](08e1923)) * **markdown:** show id and status in header ([b6fcf53](b6fcf53)) * **markdown:** show join types ([12af018](12af018)) * **markdown:** show some info about properties, switch i18n library ([f8a32df](f8a32df)) * **markdown:** show type, link, additional and custom properties in header ([eff129a](eff129a)) * **markdown:** show value constraints ([515969c](515969c)) * **markdown:** support item arrays and additionalItems ([c9fbcdf](c9fbcdf)), closes [#31](#31) * **markdown:** support patternProperties and additionalProperties ([1386ee3](1386ee3)), closes [#95](#95) [#180](#180) * **proxy:** generate meta information ([ac65ac6](ac65ac6)) * **proxy:** generate slugs ([eacbf38](eacbf38)) * **proxy:** resolve references ([4cea068](4cea068)) * **readme:** generate readme again ([d6b9e5e](d6b9e5e)) * **readme:** mention the most common schema version ([fc583d7](fc583d7)) * **schema:** add full support for "A Vocabulary for the Contents of String-Encoded Data" ([96ca3a6](96ca3a6)) * **schema:** add support for keyword `$defs` ([70b63c8](70b63c8)) * **schema:** add support for keyword `deprecated` ([934b856](934b856)) * **schema:** add support for readOnly and writeOnly schemas and properties ([7452882](7452882)) ### BREAKING CHANGES * **changelog:** * **i18n:** The file format for the i18n files has changed You can now specify the language to use using `-l` and `jsonschema2md` will pick up the correct language configuration. * **test:** Node 8 is no longer supported * **dependencies:** Removes the JSON schema validation feature entirely * **cli:** Repaces lodash with ferrum, removed bluebird, changes the meaning of `--schema-out` or `-x` to be no longer relative to output dir The `--schema-out` or `-x` command line option is no longer relative to the output path (specified with `-o` or `--out`)
🎉 This issue has been resolved in version 4.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This schema:
Produces this MarkDown:
# title Schema
id
The "type" property disappears completely. However, this is a valid schema that requires both properties. Additionally, if you change one of the "allOf" elements to "$ref" with the same content, everything works just fine.
The same problem applies to anyOf and oneOf combinations.
The text was updated successfully, but these errors were encountered: