CLI del schema
El script mondrian-schema envuelve la herramienta Java mondrian.schema.yaml.SchemaCli para que no tenga que recordar una larga invocación mvn exec:java. Úselo para convertir schemas XML existentes a YAML, convertir YAML de vuelta a XML para el despliegue, o validar un archivo de schema antes de guardarlo en Saiku.
Comandos
to-yaml — convertir XML a YAML
./scripts/mondrian-schema to-yaml <input.xml> [-o output.yaml]Lee un schema Mondrian-4 XML y escribe la representación YAML equivalente. Si se omite -o, el YAML se escribe a stdout.
Ejemplo — convertir FoodMart:
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml -o demo/FoodMart.yamlEjemplo — vista previa sin guardar:
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml | head -40to-xml — convertir YAML a XML
./scripts/mondrian-schema to-xml <input.yaml> [-o output.xml]Lee un schema Mondrian-4 YAML y escribe el XML equivalente. Si se omite -o, el XML se escribe a stdout. Esta es la misma conversión que el motor de Saiku ejecuta automáticamente en tiempo de ejecución — ejecutarla manualmente es útil para inspeccionar la salida antes de desplegar o para migrar de vuelta a una toolchain nativa de XML.
Ejemplo — convertir de vuelta a XML:
./scripts/mondrian-schema to-xml demo/FoodMart.yaml -o FoodMart-generated.xmlEjemplo — pipe a un diff para verificar la fidelidad del round-trip:
./scripts/mondrian-schema to-xml demo/FoodMart.yaml | diff demo/FoodMart.mondrian.xml -lint — validar un archivo de schema
./scripts/mondrian-schema lint <input.{yaml,xml}>Parsea y valida un archivo de schema — YAML o XML. Los errores y advertencias se escriben a stderr. En caso de éxito, el comando sale silenciosamente con código 0.
Ejemplo — validar un schema YAML:
./scripts/mondrian-schema lint demo/FoodMart.yamlEjemplo — validar un schema XML:
./scripts/mondrian-schema lint demo/FoodMart.mondrian.xmlCódigos de salida
| Código | Significado |
|---|---|
0 | Éxito — sin errores |
1 | Argumentos incorrectos o archivo de entrada ausente |
2 | Fallo de parseo o validación — diagnóstico escrito a stderr |
Estos códigos son adecuados para uso en pipelines CI y hooks pre-guardado.
Flujos típicos
-
Convierta su schema XML existente a YAML:
Ventana de terminal ./scripts/mondrian-schema to-yaml my-schema.xml -o my-schema.yaml -
Valide el YAML para confirmar que es válido:
Ventana de terminal ./scripts/mondrian-schema lint my-schema.yaml -
Revise y anote
my-schema.yamlcon comentarios, luego súbalo a Saiku mediante la página de Schemas.
-
Cree o edite su schema YAML localmente.
-
Ejecute lint para detectar errores antes de subir:
Ventana de terminal ./scripts/mondrian-schema lint my-schema.yamlUn código de salida
0significa que el schema se parseó limpiamente. Cualquier error aparece en stderr con una referencia de línea. -
Si necesita suministrar XML a una herramienta externa (por ejemplo, un cliente de reporting legacy), convierta bajo demanda:
Ventana de terminal ./scripts/mondrian-schema to-xml my-schema.yaml -o my-schema.xml
Añada un paso de lint a su pipeline CI para detectar errores de schema antes de que lleguen a producción:
# In .github/workflows/ci.yml or equivalent- name: Lint Mondrian schemas run: | for f in schemas/*.yaml; do ./scripts/mondrian-schema lint "$f" doneEl script sale con código 2 ante cualquier fallo de parseo o validación, lo que fallará el job de CI automáticamente.
Requisitos previos
El script requiere:
- Java — disponible en
$PATH(misma versión de JVM usada para construir el proyecto) - Maven — para la construcción inicial del classpath; no se necesita después de que exista la caché
- El repositorio
mondrian-saikuclonado localmente (el script es parte de ese repo, no un binario independiente)
Relacionado
- Schemas YAML — la referencia completa de elementos YAML.
- Schemas — suba y gestione schemas en el dashboard de Saiku.
- Diseñador de schemas — genere un schema a partir de una descripción en lenguaje natural.