Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
V
vl-schema-jsoneditor
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
vaclab
vl-schema-jsoneditor
Commits
2b092834
Commit
2b092834
authored
7 years ago
by
Rolf Niepraschk
Browse files
Options
Downloads
Patches
Plain Diff
Inhalt stark geändert
parent
a848fad6
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+40
-46
40 additions, 46 deletions
README.md
with
40 additions
and
46 deletions
README.md
+
40
−
46
View file @
2b092834
...
...
@@ -4,56 +4,50 @@ Erzeugen und Ausliefern von JSON-SCHEMA-Objekten zur Verwendung mit
[
JSON-EDITOR
](
https://github.com/jdorn/json-editor/
)
in der Web-Applikation
[
Ottomane
](
/../../web-apps
)
.
NOTIZEN:
*
List schreiben, die parameter-gesteuert (»cob«, »cus«, »tdo«) eine
SCHEMA-Datenstruktur liefert (aus 000_SCHEMA
*
und ggf. kombiniert mit
000_SUBSCHEMA
*
)
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.
*
Das Ausgangsdokument mit SCHEMA-Code (z.B.
`000_SCHEMA-cob`
) kann solche
Struktur haben:
### 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
](
deploy/lists/getSchema.js
)
.
*
`YYY`
: Typ der Variablen. Derzeit wird nur der Type
`ENUM`
(Array) unterstützt.
*
`ZZZ`
: Erweiterte Kennung.
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:
```
"Content": {
"CalibrationObject": {
"Owner": {
...
},
"{{Setup}}": {},
"Device": {
...
}
"properties": {
"Unit": {
"type": "string",
"enum": "{{000_UNITS@ENUM@Pressure}}"
}
}
```
"{{Setup}}" muss ersetzt werden durch einen der Einträge in
`000_SUBSCHEMA-cob`
oder ggf. beseitigt werden.
Wenn ein schon bestehendes cob-Dokument als Template benutzt wird, muss für
das SCHEMA das _dazugehörige_ SUBSCHEMA ausgewählt werden.
Weitere Einträge in der zu liefernden SCHEMA-Struktur müssen vorher präpariert
werden (z.B. enum für Gasart u.a.)
### Hinweise zu den SCHEMA-Definitionen
Um einen Ausgangsstand zur späteren Vervollkommnung zu haben, sollte man eine
erste Version der SCHEMA-Definition auf Grundlage eines schon vorhandenen
Datenbankdokument (z.B.
`cob-XXX.json') erzeugen. Das kann mit dem Programm
[»GenSON«](https://github.com/wolverdude/GenSON) geschehen:
```
git clone https://github.com/wolverdude/GenSON.git
cd GenSON
sudo python setup.py install
```
Beispiel zur Anwendung:
`
``
curl http://a73434.berlin.ptb.de:5984/vl_db/cob-tlv-adixen_10478 |
\
genson -i2 > 000_SCHEMA-cob-tlv.json
```
Das Dokument »cob-tlv-adixen_10478« sollte möglichst korrekt sein und alle für
diese Dokumentenart wichtigen Einträge enthalten (hier also
»CalibrationObject«). Späteres Ziel in Zusammenhang mit dem Template-Editor
»Ottomane« muss es sein, ein gleichartiges Endprodukt erzeugen zu können.
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),
enthält man eine Struktur mit ersetzten Variblen:
```
"properties": {
"Unit": {
"type": "string",
"enum": ["mbar", "DCR", "Pa", "kPa", "Torr"]
}
}
```
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment