JSON-schema Krav
JSON
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://schemas.infopack.io/100gruppen/rexs.requirement.1.schema.json",
"title": "Requirement",
"description": "A schema representing a requirement, with metadata, purpose, definition type, and goal contribution.",
"type": "object",
"required": ["metadata", "definition_type"],
"properties": {
"metadata": {
"description": "A reference to the metadata schema file, which is mandatory.",
"$ref": "http://schemas.infopack.io/100gruppen/rexs.metadata.1.schema.json"
},
"purpose": {
"description": "An optional string property representing the purpose of the requirement.",
"type": "string",
"minLength": 1
},
"definition_type": {
"description": "A mandatory string property that specifies the definition type, which can be one of the following values: 'requirement document', 'set of requirements', or 'single requirement'.",
"type": "string",
"enum": [
"requirement document",
"set of requirements",
"single requirement"
]
},
"definition": {
"description": "A mandatory reference to another schema file based on the value of 'definition_type'.",
"oneOf": [{
"if": {
"properties": {
"definition_type": {
"const": "requirement document"
}
}
},
"then": {
"$ref": "http://schemas.infopack.io/100gruppen/rexs.requirement-document.1.schema.json"
}
},
{
"if": {
"properties": {
"definition_type": {
"const": "set of requirements"
}
}
},
"then": {
"$ref": "http://schemas.infopack.io/100gruppen/rexs.set-of-requirements.1.schema.json"
}
},
{
"if": {
"properties": {
"definition_type": {
"const": "single requirement"
}
}
},
"then": {
"$ref": "http://schemas.infopack.io/100gruppen/rexs.single-requirement.1.schema.json"
}
}
]
},
"contributesToGoals": {
"description": "A list of goals that this requirement contributes to.",
"type": "array",
"items": {
"$ref": "http://schemas.infopack.io/100gruppen/rexs.reference-designation.1.schema.json#/properties/identifier"
}
}
},
"dependencies": {
"definition": ["definition_type"]
},
"additionalProperties": false
}