Read-only mirror of https://github.com/sogis/meta2file — Kanton Solothurn. Issues & pull requests at the source.
  • HTML 49%
  • XSLT 27.6%
  • Java 23.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2025-02-13 12:27:21 +01:00
.github/workflows update upload-artifact 2025-01-30 08:31:04 +01:00
app upd geocat model 2025-02-13 12:27:21 +01:00
gradle start with releasing artifact 2022-04-20 12:12:06 +02:00
lib [xslt] remove services from html 2025-01-30 08:29:23 +01:00
.gitattributes initial commit 2022-04-06 18:28:01 +02:00
.gitignore add app subproject 2022-06-05 16:45:12 +02:00
.sdkmanrc remove yaml stuff 2022-06-04 21:48:58 +02:00
build.gradle upd geocat export 2022-12-06 16:50:59 +01:00
gradlew initial commit 2022-04-06 18:28:01 +02:00
gradlew.bat initial commit 2022-04-06 18:28:01 +02:00
LICENSE Initial commit 2022-04-06 11:25:06 +02:00
README.md fix doc link 2022-09-21 11:56:19 +02:00
settings.gradle renamed artifacts to meta2file 2022-09-21 10:08:18 +02:00

meta2file

Konfigurieren und Starten

Kommandozeilen-Tool

Dieses ist direkt via Releases im Repo als "Fat-Jar" verfügbar und umfasst alle notwendigen Drittbibliotheken. Das aktuellste jar ist via latest Release unter dem Namen meta2file-cli-[Version]-all.jar verfügbar.

Lib

Die Teilfunktionalität für das Erzeugen der HTML-Datenbeschreibung (Module lib) ist als normales jar auf dem Maven-Repo "Maven Central" publiziert. (https://mvnrepository.com/artifact/io.github.sogis/meta2file/).

Methode für das Erzeugen der Datenbeschreibung: Meta2Html.renderDataSheet(...)

Abhängigkeiten der Lib siehe build.gradle des lib Subprojektes.

Develop

Package-Struktur

Der im Ganzen Repo gleichbleibende Präfix ch.so.agi.meta2file_ wird folgend als BASE abgekürzt.

  • lib
    • BASE.except: Exception-Klassen.
    • BASE.libmain: Enthält das Java-Interface, über welches die "Lib-Nutzer" app (in diesem Repo) und SIMI die Funktionen anstossen.
    • BASE.in: Liest die erforderlichen Metadaten einer Themenbereitstellung aus DB oder Json in die Java-Beans des model ein.
      • BASE.in.db: Klassen für das Einlesen aus der Datenbank.
    • BASE.model: Java-Beans Domain-Model der Metainformationen. Wird in allen packages verwendet.
    • BASE.out: Klassen für das Generieren der HTML und XML outputs.
  • Zusätzliche Packages in app
    • BASE.appmain: Eingangsklasse und CLI-parsing der Kommandozeilen-App.
    • BASE.model.geocat: Viewmodel für das Generieren der ISO-CH XML-Dateien mittels Apache Freemarker.
    • BASE.out.geocat: Generiert aus den Beans die ISO-CH XML-Dateien für geocat (Eine Datei pro Themen-Bereitstellung).

XSLT

Die XSL-Transformation kann ohne zusätzlichen Code in der Konsole getestet resp. entwickelt werden. Es muss lediglich Saxon-HE vorliegen (https://www.saxonica.com/html/download/java.html). Siehe build.gradle betreffend der verwendeten Version.

java -jar /Users/stefan/apps/SaxonHE10-6J/saxon-he-10.6.jar -s:ch.so.agi.av_gb_administrative_einteilung.xml -xsl:xml2html.xsl -o:fubar.html

Die Quell-XML-Datei muss aber allenfalls aus einem Test (bean2html_Ok) hergestellt werden und dabei in einen persistenten Ordner kopiert werden, da die XML-Datei nur ein internes Zwischenprodukt ist.

Einfacher, aber eventuell schwieriger zu debuggen:

./gradlew clean lib:test --tests ch.so.agi.meta2file.MetaBean2FileConverterTest.bean2html_Ok

XSL-FO (PDF)

Alpha stuff.

java -jar /Users/stefan/apps/SaxonHE10-6J/saxon-he-10.6.jar -s:ch.so.agi.av_gb_administrative_einteilung.xml -xsl:xml2pdf.xsl -o:ch.so.agi.av_gb_administrative_einteilung.fo

/Users/stefan/apps/fop-2.7/fop/fop -fo ch.so.agi.av_gb_administrative_einteilung.fo -pdf fubar.pdf -c fop.xconf