Changes for page Technical details
Last modified by lzehl on 2021/07/05 18:57
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -38,13 +38,13 @@ 38 38 {{code language="json"}} 39 39 { 40 40 "properties": { 41 - 42 - 43 - 41 + "propertyNameA": {}, 42 + "propertyNameB": {}, 43 + "propertyNameC": {} 44 44 }, 45 45 "required": [ 46 - 47 - 46 + "propertyNameA", 47 + "propertyNameC" 48 48 ] 49 49 } 50 50 {{/code}} ... ... @@ -73,8 +73,8 @@ 73 73 74 74 {{code language="json"}} 75 75 { 76 - 77 - 76 + "_type": "https:~/~/openminds.ebrains.eu/core/Dataset", 77 + "_extends": "products/researchProduct.schema.tpl.json" 78 78 } 79 79 {{/code}} 80 80 ... ... @@ -90,70 +90,24 @@ 90 90 How to define the expected value of a property will be explained for the different property types in the following sections. 91 91 92 92 (% style="text-align: justify;" %) 93 -===== Propertiesexpectinga stringvalue =====93 +===== Defining expected values ===== 94 94 95 95 (% style="text-align: justify;" %) 96 - Propertiesthatexpect valuesoftypestringcan be defined in large parts in the same way as in JSON-Schema.Withoutany furtherformattingrequirementsthedefinitionofsuchaproperty looks likethis:96 +The expected value of a property can be defined in large parts in the same way as in JSON-Schema, with some openMINDS syntax specific simplifications and modifications. 97 97 98 -{{code language="json"}} 99 -{ 100 - "properties": { 101 - "freeStringProperty": { 102 - "type": "string" 103 - } 104 - } 105 -} 106 -{{/code}} 107 - 108 108 (% style="text-align: justify;" %) 109 -In accordance with JSON-Schema, it is possible, though, to further define a selected list of built-in formats that are accepted for the expected string. Supported are all [[built-in formats of JSON-Schema Draft 7.0>>https://json-schema.org/understanding-json-schema/reference/string.html#built-in-formats||rel="noopener noreferrer" target="_blank"]]. Assuming that my string property only accepts a value of format "email", the openMINDS syntax is the following: 99 +On the first level, the **##"type"##** of the expected property value needs to be defined. In principle, the openMINDS template syntax supports the same value types as JSON-Schema Draft 7.0, meaning: 100 ++ **##"string"##** 101 ++ **##"number"##** 102 ++ **##"integer"##** 103 ++ **##"array"##** 104 ++ **##"boolean"##** 105 ++ **##"null"##** 106 ++ **##"object"##** 110 110 111 -{{code language="json"}} 112 -{ 113 - "properties": { 114 - "emailProperty": { 115 - "type": "string", 116 - "_formats": [ 117 - "email" 118 - ] 119 - } 120 - } 121 -} 122 -{{/code}} 108 +Also very similar to JSON-Schema, additional type-specific keys can be used to set further requirements for the expected value. H 123 123 124 -(% style="text-align: justify;" %) 125 -Also like JSON-Schema, it is possible to define a customized regular expression pattern for the expected string, supporting the [[ECMA-262 regex-dialect>>https://www.ecma-international.org/publications-and-standards/standards/ecma-262/]]. Assuming that my string property only accepts a Gregorian calendar year, the corresponding openMINDS syntax look like this: 126 126 127 -{{code language="json"}} 128 -{ 129 - "properties": { 130 - "yearProperty": { 131 - "type": "string", 132 - "pattern": "([0-9]{4})" 133 - } 134 - } 135 -} 136 -{{/code}} 137 - 138 -(% style="text-align: justify;" %) 139 -===== Properties expecting a numerical value ===== 140 - 141 -(% style="text-align: justify;" %) 142 -(//**coming soon**//) 143 - 144 -(% style="text-align: justify;" %) 145 -===== Properties expecting another object ===== 146 - 147 -(% style="text-align: justify;" %) 148 -(//**coming soon**//) 149 - 150 -(% style="text-align: justify;" %) 151 -===== Properties expecting an array of values ===== 152 - 153 -(% style="text-align: justify;" %) 154 -(//**coming soon**//) 155 - 156 - 157 157 === The openMINDS integration pipeline === 158 158 159 159 (//**coming soon**//)