{ "jsd:ns": "http://www.jsonx.org/schema-0.2.jsd", "jsd:schemaLocation": "http://www.jsonx.org/schema-0.2.jsd http://www.jsonx.org/schema-0.2.jsd", "schema": { "jsd:class": "object", "jsd:properties": { "jsd:ns": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "http://www.jsonx.org/schema-0.2.jsd" }, "jsd:schemaLocation": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "http://www.jsonx.org/schema-0.2.jsd [^ ]+", "jsd:use": "optional" }, "[a-zA-Z_$][-a-zA-Z\\d_$]*": { "jsd:class": "any", "jsd:nullable": false, "jsd:types": "array boolean number objectType string" } } }, "min": { "jsd:class": "string", "jsd:pattern": "[\\d]+" }, "max": { "jsd:class": "string", "jsd:pattern": "([\\d]+|unbounded)" }, "use": { "jsd:class": "string", "jsd:pattern": "(required|optional)" }, "member": { "jsd:class": "object", "jsd:abstract": true }, "any": { "jsd:class": "object", "jsd:extends": "member", "jsd:properties": { "jsd:class": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "any" }, "jsd:types": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "\\S+( \\S+)*", "jsd:use": "optional" } } }, "array": { "jsd:class": "object", "jsd:extends": "member", "jsd:properties": { "jsd:class": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "array" }, "jsd:minIterate": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "min", "jsd:use": "optional" }, "jsd:maxIterate": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "max", "jsd:use": "optional" }, "jsd:elements": { "jsd:class": "array", "jsd:maxIterate": "unbounded", "jsd:nullable": false, "jsd:elements": [{ "jsd:class": "reference", "jsd:minOccurs": "0", "jsd:nullable": false, "jsd:type": "anyElement" }, { "jsd:class": "reference", "jsd:minOccurs": "0", "jsd:nullable": false, "jsd:type": "arrayElement" }, { "jsd:class": "reference", "jsd:minOccurs": "0", "jsd:nullable": false, "jsd:type": "booleanElement" }, { "jsd:class": "reference", "jsd:minOccurs": "0", "jsd:nullable": false, "jsd:type": "numberElement" }, { "jsd:class": "reference", "jsd:minOccurs": "0", "jsd:nullable": false, "jsd:type": "referenceElement" }, { "jsd:class": "reference", "jsd:minOccurs": "0", "jsd:nullable": false, "jsd:type": "stringElement" }, { "jsd:class": "reference", "jsd:minOccurs": "0", "jsd:nullable": false, "jsd:type": "objectElement" }] } } }, "boolean": { "jsd:class": "object", "jsd:extends": "member", "jsd:properties": { "jsd:class": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "boolean" } } }, "number": { "jsd:class": "object", "jsd:extends": "member", "jsd:properties": { "jsd:class": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "number" }, "jsd:form": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "(integer|real)", "jsd:use": "optional" }, "jsd:range": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "[\\(\\[](-?\\d+(\\.\\d+)?)?,(-?\\d+(\\.\\d+)?)?[\\)\\]]", "jsd:use": "optional" } } }, "object": { "jsd:class": "object", "jsd:abstract": true, "jsd:extends": "member", "jsd:properties": { "jsd:class": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "object" }, "jsd:extends": { "jsd:class": "string", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:properties": { "jsd:class": "object", "jsd:nullable": false, "jsd:use": "optional", "jsd:properties": { ".*": { "jsd:class": "any", "jsd:nullable": false, "jsd:types": "anyProperty arrayProperty booleanProperty numberProperty objectProperty referenceProperty stringProperty" } } } } }, "reference": { "jsd:class": "object", "jsd:abstract": true, "jsd:extends": "member", "jsd:properties": { "jsd:class": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "reference" }, "jsd:type": { "jsd:class": "string", "jsd:nullable": false } } }, "string": { "jsd:class": "object", "jsd:extends": "member", "jsd:properties": { "jsd:class": { "jsd:class": "string", "jsd:nullable": false, "jsd:pattern": "string" }, "jsd:pattern": { "jsd:class": "string", "jsd:nullable": false, "jsd:use": "optional" } } }, "objectType": { "jsd:class": "object", "jsd:extends": "object", "jsd:properties": { "jsd:abstract": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" } } }, "anyProperty": { "jsd:class": "object", "jsd:extends": "any", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:use": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "use", "jsd:use": "optional" } } }, "arrayProperty": { "jsd:class": "object", "jsd:extends": "array", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:use": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "use", "jsd:use": "optional" } } }, "booleanProperty": { "jsd:class": "object", "jsd:extends": "boolean", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:use": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "use", "jsd:use": "optional" } } }, "numberProperty": { "jsd:class": "object", "jsd:extends": "number", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:use": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "use", "jsd:use": "optional" } } }, "objectProperty": { "jsd:class": "object", "jsd:extends": "object", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:use": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "use", "jsd:use": "optional" } } }, "referenceProperty": { "jsd:class": "object", "jsd:extends": "reference", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:use": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "use", "jsd:use": "optional" } } }, "stringProperty": { "jsd:class": "object", "jsd:extends": "string", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:use": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "use", "jsd:use": "optional" } } }, "anyElement": { "jsd:class": "object", "jsd:extends": "any", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:minOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "min", "jsd:use": "optional" }, "jsd:maxOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "max", "jsd:use": "optional" } } }, "arrayElement": { "jsd:class": "object", "jsd:extends": "array", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:minOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "min", "jsd:use": "optional" }, "jsd:maxOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "max", "jsd:use": "optional" } } }, "booleanElement": { "jsd:class": "object", "jsd:extends": "boolean", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:minOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "min", "jsd:use": "optional" }, "jsd:maxOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "max", "jsd:use": "optional" } } }, "numberElement": { "jsd:class": "object", "jsd:extends": "number", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:minOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "min", "jsd:use": "optional" }, "jsd:maxOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "max", "jsd:use": "optional" } } }, "objectElement": { "jsd:class": "object", "jsd:extends": "object", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:minOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "min", "jsd:use": "optional" }, "jsd:maxOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "max", "jsd:use": "optional" } } }, "referenceElement": { "jsd:class": "object", "jsd:extends": "reference", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:minOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "min", "jsd:use": "optional" }, "jsd:maxOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "max", "jsd:use": "optional" } } }, "stringElement": { "jsd:class": "object", "jsd:extends": "string", "jsd:properties": { "jsd:nullable": { "jsd:class": "boolean", "jsd:nullable": false, "jsd:use": "optional" }, "jsd:minOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "min", "jsd:use": "optional" }, "jsd:maxOccurs": { "jsd:class": "reference", "jsd:nullable": false, "jsd:type": "max", "jsd:use": "optional" } } } }