Zum Inhalt springen

Schema-CLI

Das mondrian-schema-Skript umhüllt das Java-Tool mondrian.schema.yaml.SchemaCli, sodass Sie sich keine lange mvn exec:java-Beschwörung merken müssen. Verwenden Sie es, um bestehende XML-Schemas in YAML zu konvertieren, YAML für das Deployment zurück in XML zu konvertieren oder eine Schema-Datei zu validieren, bevor Sie sie in Saiku speichern.


Befehle

to-yaml — XML zu YAML konvertieren

Terminal-Fenster
./scripts/mondrian-schema to-yaml <input.xml> [-o output.yaml]

Liest ein Mondrian-4-XML-Schema und schreibt die äquivalente YAML-Darstellung. Wenn -o weggelassen wird, wird das YAML nach stdout geschrieben.

Beispiel — FoodMart konvertieren:

Terminal-Fenster
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml -o demo/FoodMart.yaml

Beispiel — Vorschau ohne Speichern:

Terminal-Fenster
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml | head -40

to-xml — YAML zu XML konvertieren

Terminal-Fenster
./scripts/mondrian-schema to-xml <input.yaml> [-o output.xml]

Liest ein Mondrian-4-YAML-Schema und schreibt die äquivalente XML. Wenn -o weggelassen wird, wird die XML nach stdout geschrieben. Dies ist dieselbe Konvertierung, die die Saiku-Engine zur Laufzeit automatisch ausführt — sie manuell auszuführen ist nützlich, um die Ausgabe vor dem Deployment zu inspizieren oder zu einem XML-nativen Toolchain zurück zu migrieren.

Beispiel — zurück zu XML konvertieren:

Terminal-Fenster
./scripts/mondrian-schema to-xml demo/FoodMart.yaml -o FoodMart-generated.xml

Beispiel — durch ein Diff pipen, um die Round-Trip-Treue zu verifizieren:

Terminal-Fenster
./scripts/mondrian-schema to-xml demo/FoodMart.yaml | diff demo/FoodMart.mondrian.xml -

lint — eine Schema-Datei validieren

Terminal-Fenster
./scripts/mondrian-schema lint <input.{yaml,xml}>

Parst und validiert eine Schema-Datei — entweder YAML oder XML. Fehler und Warnungen werden nach stderr geschrieben. Bei Erfolg beendet sich der Befehl still mit Code 0.

Beispiel — ein YAML-Schema linten:

Terminal-Fenster
./scripts/mondrian-schema lint demo/FoodMart.yaml

Beispiel — ein XML-Schema linten:

Terminal-Fenster
./scripts/mondrian-schema lint demo/FoodMart.mondrian.xml

Exit-Codes

CodeBedeutung
0Erfolg — keine Fehler
1Falsche Argumente oder fehlende Eingabedatei
2Parse- oder Validierungsfehler — Diagnose in stderr geschrieben

Diese Codes sind für die Verwendung in CI-Pipelines und Pre-Save-Hooks geeignet.


Typische Workflows

  1. Konvertieren Sie Ihr bestehendes XML-Schema in YAML:

    Terminal-Fenster
    ./scripts/mondrian-schema to-yaml my-schema.xml -o my-schema.yaml
  2. Linten Sie das YAML, um zu bestätigen, dass es gültig ist:

    Terminal-Fenster
    ./scripts/mondrian-schema lint my-schema.yaml
  3. Überprüfen und annotieren Sie my-schema.yaml mit Kommentaren, dann laden Sie es über die Schemas-Seite zu Saiku hoch.


Voraussetzungen

Das Skript benötigt:

  • Java — verfügbar auf $PATH (gleiche JVM-Version, die zum Bauen des Projekts verwendet wird)
  • Maven — für den einmaligen Classpath-Build; nicht erforderlich, nachdem der Cache existiert
  • Das mondrian-saiku-Repository lokal ausgecheckt (das Skript ist Teil dieses Repos, kein eigenständiges Binary)

Verwandt

  • YAML-Schemas — die vollständige YAML-Element-Referenz.
  • Schemas — Schemas im Saiku-Dashboard hochladen und verwalten.
  • Schema-Designer — ein Schema aus einer Natural-Language-Beschreibung generieren.