Renderers (Exportlaag)¶
Renderers genereren output in diverse formaten op basis van de opgeslagen modellen. Ze registreren zich via @RendererRegistry.register().
Klasse-hiërarchie¶
classDiagram
class Renderer {
<<abstract>>
+render(args, schema)*
+get_included_columns(args)
}
class ModelRenderer {
+getModels(args, schema)
}
class ClassRenderer {
+getClass(args, schema)
}
class JSONRenderer
class CSVRenderer
class I18nRenderer
class XLSXRenderer
class Jinja2Renderer
class GGM_MDRenderer
class JSON_SchemaRenderer
class TTLRenderer
class RDFRenderer
class JSONLDRenderer
class SQLARenderer
class EARepoUpdater
class SchemaDiffMarkdownRenderer
Renderer <|-- ModelRenderer
Renderer <|-- JSONRenderer
Renderer <|-- CSVRenderer
Renderer <|-- I18nRenderer
Renderer <|-- XLSXRenderer
ModelRenderer <|-- Jinja2Renderer
ModelRenderer <|-- GGM_MDRenderer
ModelRenderer <|-- JSON_SchemaRenderer
Renderer <|-- TTLRenderer
Renderer <|-- RDFRenderer
Renderer <|-- JSONLDRenderer
ModelRenderer <|-- SQLARenderer
Renderer <|-- EARepoUpdater
Renderer <|-- SchemaDiffMarkdownRenderer
Overzicht¶
| Renderer | Type | Bestand | Outputformaat |
|---|---|---|---|
| JSONRenderer | json |
pandasrenderer.py |
JSON (array of records / indexed) |
| CSVRenderer | csv |
pandasrenderer.py |
CSV per tabel |
| I18nRenderer | i18n |
pandasrenderer.py |
Vertaal-JSON |
| XLSXRenderer | xlsx |
xlsxrenderer.py |
Excel (.xlsx) |
| Jinja2Renderer | jinja2 |
jinja2renderer.py |
Custom template output |
| GGM_MDRenderer | ggm_md |
jinja2renderer.py |
Markdown (GGM-formaat) |
| JSON_SchemaRenderer | json_schema |
jinja2renderer.py |
JSON Schema |
| TTLRenderer | ttl |
lodrenderer.py |
Turtle (RDF) |
| RDFRenderer | rdf |
lodrenderer.py |
RDF/XML |
| JSONLDRenderer | jsonld |
lodrenderer.py |
JSON-LD |
| SQLARenderer | sqla |
sqlarenderer.py |
Python SQLAlchemy code |
| EARepoUpdater | ea_repo |
earepoupdater.py |
Direct EA database update |
| SchemaDiffMD | schema_diff_md |
jinja2renderer.py |
Schema-vergelijking markdown |
Tabulaire Renderers¶
JSON, CSV, XLSX — Pandas-gebaseerde export met ondersteuning voor:
- Column filtering via
--output_columns - Key renaming via
--mapper - Meerdere record-types:
RECORD_TYPE_RECORD(array) ofRECORD_TYPE_INDEXED(object met ID als key)
Template Renderers¶
Jinja2, GGM Markdown, JSON Schema — Gebaseerd op Jinja2 templates in crunch_uml/templates/:
| Template | Toepassing |
|---|---|
ggm_markdown.j2 |
Nederlandse overheids-documentatie |
json_schema.j2 |
JSON Schema voor validatie |
ddas_markdown.j2 |
DDAS-specifieke documentatie |
ggm_sqlalchemy.j2 |
SQLAlchemy modelcode |
HTML-to-Markdown conversie via BeautifulSoup + markdownify.
Linked Data Renderers¶
TTL, RDF, JSON-LD — Via rdflib met namespace-ondersteuning (--linked_data_namespace). Genereert RDF/OWL ontologieën op basis van het opgeslagen model.
EA Repo Updater¶
Destructieve operaties
De EA Repo Updater heeft directe ODBC-toegang tot Enterprise Architect databases. Bevat flags voor gevaarlijke operaties:
--ea_allow_insert— Toestaan van nieuwe records--ea_allow_delete— Toestaan van verwijderingen
Tag-strategieën: update | upsert | replace
Schema Diff Renderer¶
Vergelijkt twee schema's via --compare_schema_name en genereert een markdown diff-rapport.
CLI-argumenten (Export)¶
| Argument | Beschrijving |
|---|---|
-f / --outputfile |
Pad naar uitvoerbestand |
-t / --outputtype |
Type renderer |
-pi / --output_package_ids |
Filter op specifieke packages |
-jt / --output_jinja2_template |
Custom Jinja2 template |
-jtd |
Template directory |
--linked_data_namespace |
Namespace voor LOD renderers |
--compare_schema_name |
Schema voor diff-vergelijking |
Beoogde uitbreidingen¶
GraphQL Schema Renderer
Genereer GraphQL schema's op basis van het opgeslagen model.
OpenAPI Renderer
Genereer OpenAPI/Swagger specificaties voor REST API's.