Konfiguration der Darstellungsoptionen mit XPath
Ich halte die Sache u.a. für mich selbst fest:
In dem heiEDITIONSPipeline-Step <hei:text_configureDisplayAndSuppres>
sind zwei XSLT-Skripte für das Eintragen von hc:DisplayDivision
und/oder hc:SuppressInTOC
mithilfe einer Konfigurationsdatei (deren Pfad als Parameter übergeben wird) vorgesehen:
- text_configureDisplayAndSuppress.xsl (Konfiguration mit @xml:id oder Klasse an @ana)
- text_configureDisplayAndSuppressByXPath.xsl (Konfiguration mit XPath)
Das letztere Skript werde ich erstmal deaktivieren, weil es Saxon ab Version 10 braucht und deswegen nur mit neueren Calabash-Versionen läuft. Eine solche neuere Version von Calabash kommt aber bisher nur in wenigen Editionsprojekten zum Einsatz.
Das Skript ist aber sehr hilfreich, weil man damit keine @xml:id-s auflisten muss, sondern einen oder mehrere beliebige XPath-Ausdrücke übergeben kann.
Z.B. kann man festlegen, dass <div>
s auf Kindebene von <body>
sowie <back>
mit hc:DisplayDivision
markiert werden sollen, und <div>
s dritter Ebene sowie <div>
s in <back>
mit hc:SuppressInTOC
im TOC unterdrückt werden sollen. Wenn ein Dokument viele Abschnitte hat (und deshalb die Auflistung von xml:id
-s lästig wäre) oder wenn eine <div>
-Hierarchie auf allen Ebenen nur die generische Klasse hc:Section
verwendet, bietet die Konfiguration über XPath große Vorteile. Das genannte Beispiel würde man in einer Konfigurationsdatei einfach so umsetzen:
<configuration xmlns="https://digi.ub.uni-heidelberg.de/schema/tei/heiEDITIONS">
<displayDivision>
<XPath>TEI/text/body/div</XPath>
<XPath>TEI/text/back</XPath>
</displayDivision>
<suppressInTOC>
<XPath>TEI/text/body/div/div/div</XPath>
<XPath>TEI/text/back/div</XPath>
</suppressInTOC>
</configuration>
Das ist so schon in text_configureDisplayAndSuppressByXPath.xsl implementiert, muss aber im Step <hei:text_configureDisplayAndSuppres>
noch aktiviert werden, sobald die neuere Calabash-Version gut eingesetzt werden kann. Mit der alten Calabash-Version wirft text_configureDisplayAndSuppressByXPath.xsl den Fehler:
xsl:evaluate is not available in this configuration
Leider lässt sich xsl:evaluate kaum durch etwas Vergleichbares ersetzen, um mit beliebigen XPath-Ausdrücken klarzukommen.