Skip to content

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.