You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
4.7 KiB
129 lines
4.7 KiB
{ |
|
"$schema": "http://json-schema.org/draft-04/schema#", |
|
"$id": "https://example.com/product.schema.json", |
|
"title": "Form", |
|
"description": "A form", |
|
"type": "object", |
|
"required": ["form_type", "start_year", "end_year", "sections"], |
|
"properties": { |
|
"form_type": { |
|
"description": "", |
|
"type": "string" |
|
}, |
|
"start_year": { |
|
"description": "", |
|
"type": "integer" |
|
}, |
|
"end_year": { |
|
"description": "", |
|
"type": "integer" |
|
}, |
|
"sections": { |
|
"type": "object", |
|
"patternProperties": { |
|
"[a-z_]+": { |
|
"description": "Section Name", |
|
"type": "object", |
|
"properties": { |
|
"label": { |
|
"description": "", |
|
"type": "string" |
|
}, |
|
"subsections": { |
|
"type": "object", |
|
"patternProperties": { |
|
"[a-z_]+": { |
|
"description": "SubSection Name", |
|
"type": "object", |
|
"required": ["label"], |
|
"properties": { |
|
"label": { |
|
"description": "", |
|
"type": "string" |
|
}, |
|
"pages": { |
|
"type": "object", |
|
"patternProperties": { |
|
"^(?!(depends_on))[a-z_]+$": { |
|
"description": "Page Name", |
|
"type": "object", |
|
"required": ["header", "questions"], |
|
"properties": { |
|
"header": { |
|
"description": "", |
|
"type": "string" |
|
}, |
|
"description": { |
|
"description": "", |
|
"type": "string" |
|
}, |
|
"questions": { |
|
"type": "object", |
|
"patternProperties": { |
|
"[a-z_]+": { |
|
"description": "Question Name", |
|
"type": "object", |
|
"required": ["header", "type"], |
|
"properties": { |
|
"header": { |
|
"description": "", |
|
"type": "string" |
|
}, |
|
"type": { |
|
"description": "", |
|
"type": "string" |
|
}, |
|
"check_answer_label": { |
|
"description": "", |
|
"type": "string", |
|
"optional": "true" |
|
} |
|
}, |
|
"additionalProperties": { |
|
"hint_text": { |
|
"optional": "true", |
|
"description": "", |
|
"type": "string" |
|
}, |
|
"answer_options": { |
|
"optional": "true", |
|
"description": "", |
|
"type": "object" |
|
}, |
|
"check_answer_label": { |
|
"description": "", |
|
"type": "string" |
|
}, |
|
"conditional_for": { |
|
"description": "", |
|
"type": "object" |
|
} |
|
}, |
|
"minProperties": 1 |
|
} |
|
} |
|
} |
|
}, |
|
"additionalProperties": { |
|
"depends_on": { |
|
"description": "", |
|
"type": "object" |
|
} |
|
}, |
|
"minProperties": 1 |
|
} |
|
} |
|
} |
|
}, |
|
"minProperties": 1 |
|
} |
|
} |
|
} |
|
}, |
|
"minProperties": 2 |
|
} |
|
}, |
|
"minProperties": 1 |
|
} |
|
} |
|
}
|
|
|