Skip to content
Snippets Groups Projects
niepra01's avatar
Rolf Niepraschk authored
d3c98c08
History
Name Last commit Last update
deploy
Makefile
README.md

vl-schema-jsoneditor

Erzeugen und Ausliefern von JSON-SCHEMA-Objekten zur Verwendung mit JSON-EDITOR in der Web-Applikation Ottomane.

Die SCHEMA-Definitionen (z.B. Dokument 000_SCHEMA-cus) enthalten oftmals Bestandteile in Form von Variablen, sind also unvollständig. Diese Variablen müssen durch reale Daten ersetzt werden, die ebenfalls ihren Ursprung in Datenbankdokumenten haben. Man erreicht so eine bessere Aktualität, wenn die Ersetzung automatisch geschieht. Die List-View-Kombination in diesem Repositorium dient diesem Zweck.

Die Variablen

Folgende Struktur wird verwendet: {{XXX@YYY@ZZZ}}. Bedeutung:

  • XXX: Kennung der Variablen. Sie bestimmt, woher der konkrete Inhalt zur Ersetzung beschafft wird. Welche Kennungen derzeit unterstützt werden, findet man im Quelltext der List.
  • YYY: Typ der Variablen. Derzeit wird nur der Type ENUM (Array) unterstützt. Denkbar wäre noch OBJECT, um komplette Sub-SCHEMAs einzufügen.
  • ZZZ: Erweiterte Kennung (optional).

Beispiel: {{000_UNITS@ENUM@Pressure}}. Es wird ein Array aus der Unterstruktur Pressure in der Quelle 000_UNITS adressiert, in diesem Fall also alle üblichen Druck-Maßeinheiten.

Die SCHEMA-Definitionen

Wird ein SCHEMA in Rohform beispielsweise per http://localhost:5984/vl_db/000_SCHEMA-cob-srg beschafft, so ist darin ausschnittsweise die folgende Struktur enthalten:

  "properties": {
    "Unit": {
      "type": "string",
      "enum": "{{000_UNITS@ENUM@Pressure}}"
    }
  }

Erfolgt dagegen der Zugriff über die List editor-schema, d.h. per [http://localhost:5984/vl_db/_design/editor-schema/_list/getSchema/getData?schema=000_SCHEMA-cob-srg] (http://localhost:5984/vl_db/_design/editor-schema/_list/getSchema/getData?schema=000_SCHEMA-cob-srg), erhält man eine Struktur mit ersetzten Variablen:

  "properties": {
    "Unit": {
      "type": "string",
      "enum": ["mbar", "DCR", "Pa", "kPa", "Torr"]
    }
  }