Das Open-Source-Framework für die Konvertierung und Prüfung von Dokumenten

Die Entscheidung für ein bestimmtes Softwareprodukt birgt erhebliche Risiken. Gibt es den Hersteller in fünf Jahren noch? Entwickelt er das Produkt weiter? Können andere Anbieter die Installation warten? Kann man die Eignung des Produkts unabhängig überprüfen lassen?

Um für Kunden diese Risiken auszuschließen, hat le-tex seine Basiskonverter als Open Source veröffentlicht. Offengelegt wurden Konverter zwischen XML-basierenden Formaten wie .docx, IDML, EPUB, HTML, DocBook, TEI und NLM / JATS / BITS sowie Erweiterungen, z. B. um PDF- und Bild-­Dateien prüfen zu können.

le-tex transpect umfasst nicht nur die Open Source-Module, sondern auch eine Methodologie, die es ermöglicht, die Module zu Workflows zusammenzustellen. Beispiele für solche Workflows sind die Konvertierung von InDesign (IDML) in verlagsspezifisches XML und von dort nach EPUB, oder die Konvertierung von Word-Manuskripten (.docx) nach XML und von dort nach IDML für einen ersten InDesign-Grobumbruch.

Dass kundenspezifische Installationen oder Weiterentwicklungen nicht offengelegt werden müssen, dafür sorgt die von le-tex gewählte BSD-Lizenz.

Wesentliche Bestandteile von le-tex transpect sind:

Konfigurations­kaskade

Es können abweichende Prüf- und Konvertierregeln pro Imprint, pro Buchreihe oder sogar pro Werk hinterlegt werden, die jeweils die Regeln der nächsthöheren Ebene überschreiben.

Schematron- und Schema-Prüfung

mit Darstellung der jeweiligen Meldungen am Ort des Fehlers im Browser. Mit Schematron lassen sich Fehler entdecken, die einer DTD-Validierung unzugänglich sind, wie z. B. unverankerte Marginalien und Abbildungen, Pseudo-Überschriften ohne korrekte Formatzuweisung oder unreferenzierte Literatur.

Die Technologien hinter diesen Konvertern und Prüfungen sind die W3C-Standards XSLT 2.0 und XProc bzw. die ISO-Standards Schematron und Relax NG.

Ein Beispiel für eine le-tex-transpect-basierte, verlagsweite Konverter-Lösung ist in der nebenstehenden Abbildung dargestellt (siehe auch die Beschreibung der Anwendung bei Hogrefe).

le-tex unterstützt Sie bei der Installation und kundenspezifischen Anpassung von le-tex transpect ebenso wie bei der Integration in bestehende Prozesse. Schulungen und Support vervollständigen das Angebot. Damit ermöglicht le-tex transpect, dass Sie auch in Zukunft auf Ihre bewährten Satzbetriebe und -workflows setzen können.

le-tex geht mit seiner Open-Source-Politik sogar noch einen Schritt weiter: Prinzipiell kann auch jeder andere XML-Berater die Konvertierungsanwendung warten und weiterentwickeln. Darin verdeutlicht sich der Ansatz von le-tex, Kundenbindung durch Technologieführerschaft und Service herzustellen und nicht durch Abhängigkeit von proprietären Lösungen.

Demo

In unserem Subversion-Repository finden Sie ein Demoprojekt und eine Konfigurationsanleitung (in englischer Sprache) für transpect-Projekte.

Mit Hilfe einer einfachen Web-Oberfläche können Sie diese Demo-Anwendung testen, ohne sie installieren zu müssen. Als Testdatei können Sie dabei das White Paper verwenden.

In Verbindung mit le-tex aspect steht Ihnen dessen Rechte-/ Rollenmanagement und eine Projektverwaltung / Statusübersicht zur Verfügung. Die Integration in Ihr Content-Management-System schließlich kann über eine HTTP-API erfolgen.

Präsentation auf der XML Prague 2014

le-tex hat transpect auf der XML Prague 2014 vorgestellt. Sie können sich die Präsentationsfolien hier ansehen.

Detaillierte Liste der Module und Standalone-Werkzeuge

Bis auf weiteres hosten wir die Module auf unserem eigenen Subversion-Server. Wir denken aber über einen Umzug nach github nach, so dass es noch einfacher für Sie wird, sich an der Entwicklung zu beteiligen.

Modul Standalone verfügbar konfigurierbar Bemerkung
Infrastruktur
calabash ja (Bash, .bat) ja (Extensions, XML Catalogs, Saxon-Edition) Ready-to-run-Version des XProc-Prozessors XML Calabash, mit Bibliotheken für unzip, Relax-NG-Validierung mit XPath der Fehler-Orte, Bild-Parameter-Identifizierung. Wird als svn-External in Standalone-Projekten eingezogen und verwendet den jeweiligen XML Catalog dieser Projekte.
Containerformat→Hub XML
idml2xml ja (Calabash, Make) nein Konvertierung von IDML nach Hub XML
docx2hub ja (Calabash, Make) nein Konvertierung von OOXML (.docx) nach Hub XML
epub2hub ja (Calabash, Make, Bash, .bat) nein (in Grenzen mit XSLT) EPUB nach Hub XML konvertieren (verwendet html2hub)
Container→Container
docx_modify ja (Calabash, Bash) ja (XSLT, XProc) docx-Dateien einfach und doch flexibel per XSLT manipulieren
XML→Container
hub2docx ja (Calabash, Bash) ja (XSLT, XProc, .docx-Vorlage, kaskadierend) Hub XML nach OOXML (.docx) konvertieren (verwendet docx_modify)
xml2idml ja ja (XSLT, XProc, CSS, IDML-Template-Datei, kaskadierend) IDML-Synthese (i.d.R. über den Zwischenschritt XHTML+CSS)
epubtools ja (Calabash, Make) ja (CSS, Überschriften/Splitting, kaskadierend) EPUB-Erzeuger (Input: XHTML). Erzeugt EPUB 2 oder 3, Kann automatisch je nach Textlänge an Überschriften splitten, kann sich referenzierte Bilder auch von dynamischen Webdiensten holen, kann EPUBs mit Audio-Overlay erzeugen, …
htmltemplates nein ja (kaskadierend) HTML-Templates zur Konfiguration eines E-Books aus Textbausteinen, Inhaltsdaten und Metadaten. Der Link <a rel="transclude" href="#…"> verarbeitet das Template mit der referenzierten ID, <a rel="calc" name="…"> verursacht ein <xsl:call-template name="…">. Mit letzterem Mechanismus können z.B. Iterationen, konditionaler Text oder Rendering von Metadaten umgesetzt werden. Aus den benannten XSLT-Templates heraus können dann wiederum benannte HTML-Templates mit Textbausteinen aufgerufen werden. Im Unterschied zu den XSLT-Templates sollen die HTML-Templates von normalen Nutzern gepflegt werden können, z.B. in einem Online-EPUB-Konfigurator.
CSS↔CSSa, Hub↔HTML
css-expand ja (Calabash) ja (XSLT, XProc, .docx-Vorlage, kaskadierend) CSS→XML-Parser und Konvertierung von CSS nach CSSa. Im Frontend-Beispiel kann man das expandierte CSSa mit Schematron prüfen.
css-generate ja (Calabash, Bash) ja (XSLT, XProc, .docx-Vorlage, kaskadierend) CSS-Serialisierung aus der XML-Repräsentation
hub2html nein ja (XSLT, XProc, kaskadierend) Hub XML nach HTML konvertieren. Dieses Modul enthält XSLT, das auch von anderen Modulen zum Filtern und zur Transformation von CSSa-Layout-Information verwendet wird.
html2hub ja (Calabash, Make, Bash, .bat) nein (in Grenzen mit XSLT) HTML nach Hub XML konvertieren
html-tables ja (Calabash) nein HTML-Tabellen-Normalisierer nach Andrew Welch, der für verbundene Zellen die Ursprungskoordinaten im physischen Tabellengitter als data-…-Attribute hinzufügt
letex-util nein nein XSLT-Funktionen zum Umrechnen von Längen, Farbwerten und hexadezimalen Zahlen, zum Mappen von MIME-Typen und Dateiendungen und zur CALS-Tabellen-Normalisierung analog html-tables
Hub hierarchisieren
evolve-hub nein ja (XSLT, XProc, kaskadierend) Flaches Hub XML, wie es aus IDML und .docx entsteht, gemäß formatvorlagenspezifischer Konfiguration hierarchisieren, Listen schachteln, Abbildungen/Tabellen mit ihren Legenden gruppieren etc.
XProc-Kernbibliotheken
pubcoach nein ja (Konfigurationsdatei, XSLT, XProc – import & extend) Zentrale XProc-/XSLT-Bibliothek für die kaskadierende Konfiguration, sowie diverse Utilities wie Schematron- und Relax-NG-Validierung mit Speicherung des @srcpath als Konvertierungsschritt-übergreifender Fehlerort. pubcoach steht für PUBlishing COnversion And CHecking und ist der alte Name von transpect.
xproc-util nein nein Bibliotheken für lineare XSLT-Konvertierpipelines mit einem Mode pro Durchlauf, zum Speichern von Zwischenständen zwecks Debugging, zur Schema-Assoziation, zur Assemblierung von Schematron-Prüfregeln gemäß der Kaskade.
Hub→XML
hub2bits nein ja (XSLT, XProc, kaskadierend) Hub XML nach JATS-/BITS-/HoBoTS-XML konvertieren
hub2tei nein ja (XSLT, XProc, kaskadierend) Hub XML nach TEI konvertieren
XML→HTML
jats2html nein ja (XSLT, XProc, kaskadierend) JATS-/BITS-/HoBoTS-XML nach HTML konvertieren. Verwendet den CSSa-Wrapper-/Mapper von hub2html.
tei2html nein ja (XSLT, XProc, kaskadierend) TEI nach HTML konvertieren. Verwendet den CSSa-Wrapper-/Mapper von hub2html.
Validierung
schematron-stdlib nein ja (kaskadierend) Typische Schematron-Prüfungen, z.B. für unverankerte Textrahmen in IDML oder nicht in Vorlage vorkommender Formate.
htmlreports nein nein SVRL-Fehlermeldungen in HTML rendern, an der Stelle des gemeinsamen @srcpath-Attributs. Funktioniert auch für Meldungen von Relax-NG-Validierungen, nachdem zu jedem Validierungsfehler der nächstgelegene @srcpath herausgesucht wurde.
idmlval ja (Calabash) nein Validierung von (insb. synthetisiertem) IDML gegen das IDML-Relax-NG-Schema
schema nein nein Sammlung von Schemas (XHTML, JATS, TEI, …) zur External+Catalog-Inklusion
Hub→PDF
hub2fo nein nein Hub XML nach XSL-FO konvertieren (unter Anwendung des enthaltenen CSSa)
hub2tex nein ja (Konfigurationsdatei) Hub→LaTeX-Konverter. Enthält einen CALS/OASIS-Tabellen-Normalisierer analog html-tables.
Fonts
fontlib nein nein Open-Source-Fonts, die über ihre kanonische URL im CSS referenziert und so vom EPUB-Erzeuger verwendet werden können.
font-maps nein nein Mapping von Nicht-Unicode-Fonts (Symbol, Wingdings, …) nach Unicode, zur Inklusion bei docx2hub, idml2xml etc.
Metadaten
crossref ja (Calabash, Make, fetchmail/procmail) ja (XSLT) CrossRef-Anfragen für JATS-/BITS-/HoBoTS-XML abschicken und die Ergebnisse in InDesign-Skripte zum Patchen des Originaldokuments mit DOIs konvertieren.

Ansprechpartner

Martin Kraetke
E-Mail: martin.kraetke@le-tex.de
Tel: +49 341 355356 143
Fax: +49 341 355356 543

Gerrit Imsieke
E-Mail: gerrit.imsieke@le-tex.de
Tel: +49 341 355356 110
Fax: +49 341 355356 510