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 - "propertyNameA": {}, 42 - "propertyNameB": {}, 43 - "propertyNameC": {} 41 + "propertyNameA": {}, 42 + "propertyNameB": {}, 43 + "propertyNameC": {} 44 44 }, 45 45 "required": [ 46 - "propertyNameA", 47 - "propertyNameC" 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 - "_type": "https:~/~/openminds.ebrains.eu/core/Dataset", 77 - "_extends": "products/researchProduct.schema.tpl.json" 76 + "_type": "https:~/~/openminds.ebrains.eu/core/Dataset", 77 + "_extends": "products/researchProduct.schema.tpl.json" 78 78 } 79 79 {{/code}} 80 80 ... ... @@ -90,24 +90,70 @@ 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 -===== Definingexpectedvalues=====93 +===== Properties expecting a string value ===== 94 94 95 95 (% style="text-align: justify;" %) 96 - The expectedvalue ofapropertycan be defined in large parts in the same way as in JSON-Schema,withsomeopenMINDS syntaxspecificsimplifications andmodifications.96 +Properties that expect values of type string can be defined in large parts in the same way as in JSON-Schema. Without any further formatting requirements the definition of such a property looks like this: 97 97 98 +{{code language="json"}} 99 +{ 100 + "properties": { 101 + "freeStringProperty": { 102 + "type": "string" 103 + } 104 + } 105 +} 106 +{{/code}} 107 + 98 98 (% style="text-align: justify;" %) 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"##** 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: 107 107 108 -Also very similar to JSON-Schema, additional type-specific keys can be used to set further requirements for the expected value. H 111 +{{code language="json"}} 112 +{ 113 + "properties": { 114 + "emailProperty": { 115 + "type": "string", 116 + "_formats": [ 117 + "email" 118 + ] 119 + } 120 + } 121 +} 122 +{{/code}} 109 109 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: 110 110 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 + 111 111 === The openMINDS integration pipeline === 112 112 113 113 (//**coming soon**//)