Der Rest Dienstantwort ich arbeite mit Beispiel zu folgenden ähnlich ist, ich habe hier nur drei Felder enthalten, aber es gibt viel mehr:Wie Definitionen in JSON Schema verwenden (draft-04)
{
"results": [
{
"type": "Person",
"name": "Mr Bean",
"dateOfBirth": "14 Dec 1981"
},
{
"type": "Company",
"name": "Pi",
"tradingName": "Pi Engineering Limited"
}
]
}
I will eine JSON-Schemadatei schreiben, für oben (draft-04), die das explizit angeben werden:
if type == Person then list of required properties is ["type", "name", "dateOfBirth", etc]
OR
if type == "Company" then list of required properties is ["type", "name", "tradingName", etc]
aber sind nicht in der Lage, alle Unterlagen oder ein Beispiel dafür, wie es zu tun zu finden.
Derzeit meine JSON Schema sieht wie folgt aus:
{
"$schema": "http://json-schema.org/draft-04/schema",
"type": "object",
"required": ["results" ],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": ["type", "name"],
"properties": {
"type": { "type": "string" },
"name": { "type": "string" },
"dateOfBirth": { "type": "string" },
"tradingName": { "type": "string" }
}
}
}
}
}
Alle Zeiger/Beispiele, wie ich damit umgehen sollte.
Ich glaube, Sie dies mit einer Erbschaft beschreiben sollten: Typ Person erweitert MyObject, Typ Company erweitert MyObject und definiert in Ihrem Hauptschema ein Array mit Elementen vom Typ MyObject –
Ich weiß nicht, wie ähnlich JSONSchema zu XSD ist, aber von dem, was ich über XSD weiß, brauchen Sie keinen Common Oberklasse für Ihr Objekt. Sie möchten Ihre Vererbung in den Schemafiles. ZB ein abstrakter Platzhalter in Ihrem Hauptschema, der es dem Personenschema und dem Firmenschema erlaubt, seinen Platz einzunehmen. – atomman
Ich sehe Abhängigkeiten auch in draf 3. Kann jemand irgendwelche Unterschiede bezüglich Abhängigkeiten zwischen Draft 3 und 4 erklären? – Relequestual