Arrays

Array können von einfachen Datentypen und von komplexen Objekten erstellt werden.

Array von einfachen Datentypen

Die Angabe von einfachen Datentypen erfolgt innerhalb der Eigenschaft „items“ unter der Eigenschaft Datentyp „type“. Das folgende Schema definiert ein Array von Strings.

{
   "$schema": "http://json-schema.org/draft-04/schema",
   "definitions": {
      "CustomDatatype": {
         "$schema": "http://json-schema.org/draft-04/schema",
         "title": "CustomDatatype",
         "type": "array",
         "items": {
            "type": "string"
         }
      }
   }
}

Dieses Schema erzeugt den folgenden generischen Dateneditor im Engineering.

Arrays 1:

Der generische Dateneditor zeigt die Array-Elemente auf der linken Seite unter der Bezeichnung des jeweiligen Datentyps an (im Beispiel: String). Soll stattdessen ein selbst definierter Namen angezeigt werden, muss statt dem einfachen Datentyp ein Objekt mit einer Eigenschaft vom Typ des Datentyps gewählt werden und in den Metadaten der „displayName“ der Eigenschaft gesetzt werden.

Array von komplexen Datentypen

Die Angabe von komplexen Datentypen erfolgt innerhalb der Eigenschaft „items“ unter der Eigenschaft Referenz „$ref“. Das folgende Schema definiert ein Array von Objekten des Datentyps „CustomDatatype“. Dieser Datentyp wurde zuvor als Objekt implementiert.

{
   "$schema": "http://json-schema.org/draft-04/schema",
   "definitions": {
      "MyArray": {
         "$schema": "http://json-schema.org/draft-04/schema",
         "title": "MyArray",
         "type": "array",
         "items": {
            "$ref": "tchmi:framework#/definitions/CustomDatatype"
         }
      }
   }
}

Des Weiteren besteht die Möglichkeit, die Beschreibung des Objektes direkt innerhalb der Array-Definition vorzunehmen. Das nachfolgende Schema beschreibt das gleiche Array mit der Definition des Objektes innerhalb der Eigenschaft „items“.

{
   "$schema": "http://json-schema.org/draft-04/schema",
   "definitions": {
      "MyArrayInlineObject": {
         "$schema": "http://json-schema.org/draft-04/schema",
         "title": "MyArrayInlineObject",
         "type": "array",
         "items": {
            "type": "object",
            "title": "CustomObject",
            "description": "Defines a custom object in the array.",
            "propertiesMeta": [
                  {
                     "name": "axisName",
                     "category": "Name",
                     "displayName": "Axis Name",
                     "displayPriority": 10,
                     "description": "",
                     "defaultValue": null,
                     "defaultValueInternal": null
                  },
                  {
                     "name": "axisColor",
                     "category": "Colors",
                     "displayName": "Axis color",
                     "displayPriority": 10,
                     "description": "",
                     "defaultValue": null,
                     "defaultValueInternal": {
                     "color": "#4794da"
                  }
               }
            ],
            "properties": {
               "axisName": {
                  "type": "string"
               },
               "axisColor": {
                  "$ref": "tchmi:framework#/definitions/SolidColor"
               }
            },
            "required": [ "axisName" ]
         }
      }
   }
}

Beide Schema-Dateien erzeugen den folgenden generischen Dateneditor im Engineering.

Arrays 2: