Prozessablauf: Vorproduktion von Büchern/LBW/Onlinewerken
Die Standard-Vorproduktion für Bücher, LBW und Onlinewerken wird gesteuert über das Target ESV-Digital-Vorproduktion in
Lokales-SVN-Checkout-Verzeichnis_ESV-Digital-Produktion/transformation/ant/build.xml. Dies
ist auch das Default-Target. Für LBW soll im Normalfall das Transformationsszenario ESV-Digital-Vorproduktion EL (nur aktuellste Lieferung) gewählt werden. Damit werden nur die aktuellsten Instanzen vorproduziert.
Im Folgenden ist der Ablauf der Vorproduktion anhand des Target-Aufbaus und der weiteren aufgerufenen Targets beschrieben. Die Reihenfolge der Aufrufe ist relevant für den Ablauf.
<target name="ESV-Digital-Vorproduktion" if="is-rahmendatei" depends="test_is_rahmendatei">
(test_is_rahmendatei prüft, ob es sich bei der aktuell geöffneten Datei um eine Rahmendatei handelt.)
<echo message="ESV-Digital-Vorproduktionfür Rahmendatei ${currentFile}">Gibt in der Ansicht Resultate von Oxygen den Namen der aktuell ausgewählten Rahmendatei aus. Diese Datei bildet den Kontext für das Ausführen der nachfolgenden Skripte.
<antcall target="cleanup_before">Löscht den Inhalt aller Arbeitsverzeichnisse.
<antcall target="copy_input">Kopiert alle XML-und Bilddateien aus dem zur Rahmendatei gehörigen Verzeichnis ins lokale Eingabeverzeichnis (Lokales-SVN-Checkout-Verzeichnis_ESV-Digital-Produktion/input).
<antcall target="schematron_checks_source">Führt die Schematron-Prüfung der XML-Daten aus.
<antcall target="convert_images">Konvertiert Grafikdateien, die in den Formaten TIFF, GIF, JPEG, PNG, SVG, WMF, EMF, EPS oder PDF vorliegen, mithilfe von ImageMagick bzw. Ghostscript ins PNG-Format.
<antcall target="write_image_sidecar">Liest mithilfe des Programms exiftool ( V:\ContentManagement\EP\Tools\abbildungen-konvertieren\vendor\exiftool\exiftool.exe) die Metadaten aller Grafikdateien aus und schreibt sie als Liste in die Datei images-sidecar.xml. Das XQuery-Update-Skript update_grafik_width_height.xquery nutzt im späteren Verlauf die Informationen in dieser Datei, um die Breite bzw. Höhe der im Werk enthaltenen Grafiken zu ermitteln.
<antcall target="common.start_http_db>Startet BaseX als HTTP-Server.
<echo level="info" message="Erzeuge DB...">Gibt in Oxygen in der Ansicht Resultate die Textzeile "Erzeuge DB..." aus.
<antcall target="common.xquery_manage_db">Führt das XQuery-Skript db-create.xquery aus, das eine lokale BaseX-Datenbank unter C:\tmp-basex\data erzeugt. Alle nachfolgenden XQuery-Skripte werden auf dieser Datenbank ausgeführt.
<antcall target="update_rahmendatei_refid_db">Passt den Wert in Attribut /esv.produkt//dokument/@refid ggf. an. Dazu wird der Wert von @refid mit dem Wert von /esv.instanz/@id abgeglichen. Die passende /esv.instanz wird über dokument/@href gefunden - wir gehen davon aus, dass dieser Wert immer korrekt ist
<antcall target="store_meta_db">Fragt die Rahmendatei und das ARS-XML zu den Werkparametern ab und speichert das Ergebnis in mehreren BaseX-Stores; während die Stores 'rahmendatei' und 'ars' hauptsächlich (aber nicht nur) zum Debugging existieren, ist der Hauptstore ein gemergter Store mit dem Namen 'werk', nachfolgende Queries können mit store:get('werk') einheitlich darauf zugreifen. Jeder Eintrag im Store besitzt einen Key und einen entsprechenden Eintrag. Das kann ein String, aber auch eine XML-Struktur sein (falls die Daten komplexer sind, z.B. verschiedene Autorengruppen, die erst in einer anderen Query analysiert werden können).
Beispiele eines Zugriffs auf den Store:
- store:get('werk')?auflage
- store:get('werk')?titel_haupt
Siehe dazu auch https://docs.basex.org/wiki/Store_Module
<antcall target="store_info_db">Gibt im DEBUG-Szenario den Inhalt des BaseX-Store aus.
<antcall target="store_check_db">Prüft ausgewählte Werte des Inhalts des BaseX-Stores und bricht die Vorproduktion bei fehlenden Werten ab.
Checks werden in __store_check.xquery eingetragen in eine Map:
let $checks_map := map{ 'kein Titel' : $store_metadata('titel_haupt') => string-length() = 0, 'LBW/Buch/Online-Werk und keine ISBN' : not($produkttyp = ('Zeitschrift')) and $store_metadata('isbn') => string-length() = 0, 'Zeitschrift und keine ISSN' : ($produkttyp = ('Zeitschrift')) and $store_metadata('issn') => string-length() = 0, 'weder Hrsg. noch Autoren': not($produkttyp = ('Zeitschrift')) and (not($store_metadata('herausgeber_as_node')/*) and not($store_metadata('autoren_as_node')/*)), 'keine Jahresangabe' : $store_metadata('jahr') => string-length() = 0, 'kein Erscheinungstermin' : not($produkttyp = ('Zeitschrift')) and $store_metadata('erscheinungstermin') => string-length() = 0 }Der oder die Keys (Wert vor dem Doppelpunkt) purzelt bei einem Abbruch in den Transformationsreiter raus, der Wert (Wert hinter dem Doppelpunkt) ist die eigentliche Prüfung auf die Werte im BaseX-Store, die in __store_meta.xquery ermittelt werden.
<antcall target="write_params">Schreibt die folgenden, für die weitere Produktion benötigten werkspezifischen Parameter in die Datei Lokales-SVN-Checkout-Verzeichnis_ESV-Digital-Produktion/transformation/ant/Current-Produktion.properties.xml:- Werktyp
- Produkt-ID
- Produkt-Kürzel
- ID der Rahmendatei
- Ggf. assoziierte Rahmendateien (für Custom-Schritte für SuS "Rote Seiten")
<xmlproperty file="Current-Produktion.properties.xml" keeproot="false">Lädt die oben erstellte Properties-Datei.
<echo message="${produktid}">Gibt die verwendete Produkt-ID im Log aus.
<antcall target="delete_verwendung_db">Führt das XQuery-Update-Skript delete_verwendung.xquery aus. Es entfernt Dateien und Referenzen auf diese Dateien aus der Rahmendatei oder Inhaltsverzeichnissen, wenn in den Elementen<abschnitt>,<dokument>,<verzeichnis.ebene>oder<verzeichnis.eintrag>die folgenden Attribute mit den entsprechenden Werten gefüllt sind:@verwendung = "nur-print"oder@verwendung = "print"@verwendungsausschluss = "esv-digital"oder@verwendungsausschluss = "online"
<delete_troublesome_pis_db>Führt das XQuery-Update-Skript delete_troublesome_pis.xquery aus. Es entfernt anhand des folgenden XPath störende PIs, welche in bestimmten Elementen vorhanden sind:
* //processing-instruction()[parent::email or parent::*[name()=>starts-with('verweis')]]<antcall target="update_glossar_db">Führt das XQuery-Update-Skript
update_refids_verweisseite.xqueryaus. Es ändert den Wert von verweis.seite/@reid zu esv.instanz/@refid wenn der Wert gleich dem Wert von (verzeichnis.literatur|verzeichnis.standard|inhaltsverzeichnis|register)/@id ist und gleichzeitig das Parent-Element des jeweiligen Elements esv.instanz ist.<antcall target="update_glossar_db">Führt das XQuery-Update-Skript
update_abschnitt_titel_kommentierung_kennungen_zusammenfassen.xqueryaus. Es fügt bei einem Abschnittstitel in der Rahmendatei in Klammern die Kennungen der kommentierten Einzelvorschriften hinzu (nur Kommentarinstanzen).<antcall target="update_inhaltsvz_ohne_db">Führt das XQuery-Update-Skript update_inhaltsvz_ohne.xquery aus. Es dient der Behandlung von Verzeichnissen ohne Fundstellen-Verweise (Typ ohne)
<antcall target="update_vz_autoren_db">Führt das XQuery-Update-Skript update_vz_autoren.xquery aus. Es wandelt Autorengruppen an
verzeichnis.eintragin eine Zeichenfolge nach dem Muster nachname_1/nachname_2/nachname_n um, und hängt sie an den Verzeichniseintrag-Text an.<antcall target="update_verzeichnis_kz_seite_db">Führt das XQuery-Update-Skript
update_verzeichnis_kz_seite.xqueryaus. Es entfernt beim Inhaltsverzeichnistyp ivz.kz-seite die Seitenverweise.<antcall target="update_verzeichnis_inline_auszeichnung_db">Führt das XQuery-Update-Skript
update_verzeichnis_inline_auszeichnung.xqueryaus. Es entfernt in Verzeichnissen unerwünschte Inline-Auszeichnungen (z. B. durch die XML-Last-Erfassung).<antcall target="update_verzeichnis_verweise_gleicher_typ_db">Führt das XQuery-Update-Skript
update_verzeichnis_verweise_gleicher_typ.xqueryaus. Es entfernt bei Inhaltsverzeichnissen die bei der XML-Last-Erfassung falsch ausgezeichnete Verweise gleichen Typs innerhalb einer Fundstelle (z. B. wenn keine Überspannung ausgezeichnet ist, sondern zwei nachfolgende Randnummern als zwei Verweise gleichen Typs).<antcall target="update_verzeichnis_verweise_db">Führt das XQuery-Update-Skript update_verzeichnis_verweise.xquery aus. Es entfernt die Fundstellen von
<inhaltsverzeichnis>,<verzeichnis.standard>und legt den Verweis um<text>und<kennung>. Das Resultat ist ein Verzeichnis, bei dem die einzelnen Einträge klickbar sind.<antcall target="delete_verweis_refid_ohne_ziel_db">Führt das XQuery-Update-Skript delete_verweis_refid_ohne_ziel.xquery aus. Es entfernt Verweise in
<register.eintrag>, bei denen es keine@idzur@refidgibt (diese Verweise sind sowieso nicht klickbar und führen zu Problemen in der Darstellung).<antcall target="update_verzeichnis_rahmendatei_db">Führt das XQuery-Update-Skript update_verzeichnis_rahmendatei.xquery aus. Es sorgt dafür, dass alle Verweise in Verzeichnissen, die auf die Rahmendatei referenzieren, nun den ersten Element 'dokument' adressieren, das nach dem referenzierten Element steht.
<antcall target="update_verzeichnis_seitenverweise_tabellen_abbildungen_db">Führt das XQuery-Update-Skript update_verzeichnis_seitenverweise_tabellen_abbildungen.xquery aus. Korrigiert die refids von Seitenverweisen in Tabellen- und Abbildungsverzeichnissen, wenn die refid nicht zu einer passenden ID einer Abbildung bzw. Tabelle führt. Diese Art der XML-Auszeichnung gibt es primär noch in älteren XML-Last-Daten; dort ist oft als Ziel eine Ebene ausgezeichnet. Zur Ermittlung der korrekten ID wird die Kennung verglichen
<antcall target="update_verzeichnis_seitenverweise_db">Führt das XQuery-Update-Skript update_verzeichnis_seitenverweise.xquery aus. Es wandelt Seitenverweise in Verzeichnissen in ID-Verweise um, damit der Verweis auf den Ebenen-Titel aufgelöst werden kann (Nutzer-Erwartung online).
<antcall target="update_verzeichnis_huellebene_db">Führt das XQuery-Update-Skript update_verzeichnis_huellebene.xquery aus. Es packt das Element verzeichnis.ebene aus, wenn das Element ohne Geschwisterelement auf höchster Ebene eines Verzeichnisses existiert (einfacheres CSS-Handling).
<antcall target="update_verzeichnis_attribut_status_text_generieren_db">Führt das XQuery-Update-Skript update_verzeichnis_attribut_status_text_generieren.xquery aus. Es erzeugt ein Element
<kursiv>mit einem Text, der aus dem Wert des Attributs@statusdes Elements<verzeichnis.eintrag>abgeleitet wird:Wert des Attributs @statusResultierender Text weggefallen (weggefallen) aufgehoben nicht_abgedruckt (hier nicht wiedergegeben) <antcall target="update_verzeichnis_eintrag_zu_ebene_db">Führt das XSLT update_verzeichnis_eintrag_zu_ebene.xsl aus (mit Hilfe des XQuery-Wrappers update_with_xslt.xquery). Wandelt verzeichnis.eintrag[verzeichnis.ebene] zu verzeichnis.ebene (mit Titel). Grund: einfacheres CSS-Handling.
<antcall target="update_verzeichnis_zwischenueberschrift_kapseln_db">Führt das XSLT update_verzeichnis_zwischenueberschrift_kapseln.xsl aus (mit Hilfe des XQuery-Wrappers update_with_xslt.xquery). Abkürzungsverzeichnis mit Zwischenueberschriften: die jeweils nachfolgenden Verzeichnis-Einträge kapseln als Ebene. Grund: einfacheres CSS-Handling.
<antcall target="update_verzeichnis.ebene_zu_zwischenueberschrift">Führt das XSLT-Skript update_verzeichnis.ebene_zu_zwischenueberschrift.xsl aus (mit Hilfe des XQuery-Wrappers update_with_xslt.xquery). Es löst in Autorenverzeichnissen die ggf. vorhandenen Ebenenstrukturen auf und konvertiert die Titel der Ebenen in Zwischenüberschriften. Grund: einfacheres CSS-Handling.
<antcall target="delete_stichwortverzeichnis_verzeichnis.einleitung">Führt das XQuery-Update-Skript delete_stichwortverzeichnis_verzeichnis.einleitung.xquery aus. Es entferne das Element
<verzeichnis.einleitung>aus allen Stichwortverzeichnissen.<antcall target="update_kommentar.teil_titel">Führt das XQuery-Update-Skript update_kommentar.teil_titel.xquery aus. Das Skript sucht nach allen Titeln innerhalb von
<kommentar.teil>, die: Ein<titel.standard>-Element enthalten und kein<titel.kurz>-Element haben. Falls solche<titel>-Elemente gefunden werden, wird ein neues<titel.kurz>-Element mit dem Inhalt von<titel.standard>generiert und eingefügt.<antcall target="update_element_attribut_status_text_generieren_db">Führt das XQuery-Update-Skript update_element_attribut_status_text_generieren.xquery aus. Es erzeugt ein Element
<kursiv>mit einem Text, der aus dem Wert des Attributs@statusdes Elements abgeleitet wird:Wert des Attributs @statusResultierender Text nicht_abgedruckt (hier nicht wiedergegeben) <antcall target="TEMP.rename_file_and_id">Führt das XQuery-Update-Skript _TEMP_rename_file_and_id.xq aus. Es benennt die Dateien um, die in der Liste _TEMP_rename_file_and_id.config.xml im Verzeichnis ../transformation/ant/ hinterlegt sind. Die Attribute
@idund@refidin der Instanzdatei und die Attribute@refidund@hrefin der Rahmendatei werden entsprechend angepasst.Hintergrund: Aufgrund einer fehlerhaften Implementierung der SHI ESV-Digital-Plattform werden in manchen Fällen korrigierte bzw. aktualisierte Instanzen nicht auf ESV-Digital angezeigt (alte Version der betreffenden Instanz wird statt der aktualisierten Version angezeigt). Die einzige Möglichkeit, von unserer Seite her dieses Problem zu umgehen, ist, die betreffende Instanz unter einem neuen Dateinamen und mit entsprechend neuen instanzinternen IDs zu produzieren.
<antcall target="filter_aktuellste_db"/>Filtert die Dateien nach dem jüngsten Publikationsdatum. Nur aktiv, wenn Transformationsszenario
ESV-Digital-Vorproduktion EL (nur aktuellste Lieferung)gewählt wird.<TEMP.update_attribut_publikationsdatum_db>Führt die XQuery-Refaktorierungsskripte publikationsdatum-ergaenzen-aus-blattnorm.xquery, publikationsdatum-ergaenzen-aus-ars-buch.xquery und publikationsdatum-ergaenzen-aus-rahmendatei aus. Diese fügen (sofern noch nicht vorhanden) das Attribut
@publikationsdatumdem Element<esv.instanz>hinzu und aktualisieren den Wert des Attributs. Bei Büchern wird der Wert aus dem ARS ausgelesen, bei LBW und Onlinewerken, sofern möglich, ebenfalls, bei Zeitschriften wird das Publikationsdatum aus der Rahmendatei ermittelt. Wenn bei LBW im ARS kein Publikationsdatum ermittelbar ist, wird versucht, das Publikationsdatum aus der Blattnorm der Lieferungen zu erschließen.Anmerkung:Dieser Verarbeitungsschritt ist im Mai 2023 als temporäre Lösung eingeführt worden. Sobald das Attribut@publikationsdatumflächendeckend in allen Daten vorhanden ist, sollte dieses Target entfernt werden.<antcall target="transform_normalize-for-diff">Führt das externe XSLT-Skript normalize-for-diff.xsl aus. Es normalisiert (Kopien der) Instanzen zur gleichförmigen Ermittlung der Zeichenzahl unabhängig von Einrückungen etc.
<antcall target="update_zeichenzahl_db">Führt das XQuery-Update-Skript update_zeichenzahl.xquery aus. Es fügt die PI
esv_zeichenzahlhinzu, die die Zeichenzahl der Instanz enthält.<antcall target="verlinker-xquery.verlinken.extern">Generiert Links auf:- Entscheidungen
- Vorschriften
- Publikationen
<antcall target="verlinker-xquery.verlinken">Generiert werksinterne Links auf:- Randnummern
- Kennzahlen
- Ebenen
- Kapitel
- Abbildungen
- Tabellen
- Fußnoten
<antcall target="common.start_http_db>Startet BaseX als HTTP-Server.
<antcall target="add_meta_db">Führt das XQuery-Update-Skript
add_meta.xqueryaus. Es fügt überall dort das Element esv.instanz/meta hinzu, wo es fehlt.<antcall target="add_inhaltsuebersicht_titel_db>Führt das XQuery-Update-Skript
add_inhaltsuebersicht_titel.xqueryaus. Es fügt in ein Element<inhaltsverzeichnis>(keine Verzeichnisinstanz; üblicherweise eine Inhaltsübersicht) ohne Element<titel>ein Element<titel>mit dem Text Inhaltsübersicht ein.<antcall target="update_fnref_zu_fn_db">Führt das XQuery-Update-Skript
update_fnref_zu_fn.xqueryaus. Es wandelt<fnref>-Elemente in<fn>-Elemente um, die die Texte und Nummerierungen der referenzierten Fußnoten enthalten.<antcall target="custom_steps_refactoring_db">Führt werksspezifische Verarbeitungsschritte aus, die anhand der Produkt-ID gesteuert werden.
Anmerkung:Sollen News für eine Zeitschrift gruppiert werden, müssen die jeweiligen Produktkürzel in der Konfigurationsdatei ESV-Digital-Vorproduktion.properties.xml angegeben werden (Verwendung siehe custom.update_rahmendatei_news_gruppieren_db)<antcall target="update_math_db">Führt das XSLT-Skript
mathml-3-to-mathml-core.xslaus. Führt das XQuery-Update-Skriptupdate_math.xqueryaus. Entspricht das MathML der W3C Specification MathML Core (Stand Sept. 2024: Draft; Validierung durch RNG-Datei unterhttps://github.com/w3c/mathml-schema/tree/main/rng; angepasst durch uns, s.mathml4-core.esv.rng), wird es behalten und die parallel existierende Abbildung entfernt; entspricht es nicht MathML Core, wird es entfernt und die parallel existierende Abbildung behalten<antcall target="update_glossar_db">Führt das XQuery-Update-Skript
update_glossar.xqueryaus. Es ändert eine Glossar-Struktur zu einer Verzeichnis-Struktur (da Element glossar von SHI nicht umgesetzt ist).<antcall target="update_all_ids_db">Führt das XQuery-Update-Skript update_all_ids.xquery aus. Es erstellt IDs an Elementen, an denen das ESV-Schema keine IDs vorsieht, an denen die ESV-Digital-Anwendung aber IDs erwartet (z.B. esv.instanz/kapitel)
<antcall target="update_all_ids_db">Führt das XQuery-Update-Skript update_all_ids_2.xquery aus. Es fügt bei IDs, welche nicht exakt mit der Instanz-ID beginnen, ein Präfix bestehend aus der Instanz-ID ein. Zur Vermeidung von Problemen bei SHI.
<antcall target="update_taxonomie_db">Führt das XQuery-Update-Skript update_taxonomie.xquery aus. Es benennt den Wert des Attributs
@namein<taxonomie>-Elementen von ESV-Digital-Taxonomie in esv-fachgebiet um.Anmerkung:Auf ESV-Digital werden die Informationen aus den Taxonomie-Elementen des Typs esv-fachgebiet zur Filterung der Trefferliste und zur Zuweisung zu Datenbanken über den Modulkonfigurator verwendet.Enthält die Instanz keine PI namens
<?taxonomie_importiert?>und ist kein Taxonomie-Element mit dem Attribut@nameund Attributwert ESV-Digital-Taxonomie im Element<meta>der Instanz vorhanden, fügt das Skript ein entsprechendes Element ein und verwenden den Wert des ARS-Felds Haupt-Fachgebiet (015c) des zugehörigen Werks als Default-Taxonomie-Wert.Die Prüfung auf die PI
<?taxonomie_importiert?>soll verhindern, dass das Skript über den Fallback-Mechanismus Default-Taxonomien aus dem ARS zuweist, obwohl das Lektorat über den Taxonomie-Workflow alle Taxonomie-Zuweisungen zu einer Instanz entfernen lassen hat. Im Rahmen des Taxonomie-Workflows kennzeichnet nämlich das betreffende Refaktorierungsskript, das die Taxonomien aktualisiert, alle bearbeiteten Dateien mit der PI<?taxonomie_importiert?>.<antcall target="update_seitenbeginne_db">Führt das XQuery-Update-Skript seitenbeginne_get_startseite.xquery aus. Setze eine PI zum Anfang einer esv.instanz, welche die Startseite und Endseite enthält.
<antcall target="update_autoren_id_db">Führt das XQuery-Update-Skript update_autoren_ids.xquery aus. Es vergibt Autoren-IDs für
<person>-Elemente anhand eines ARS-Datenexports.<antcall target="update_autoren_elementreihenfolge_db">Führt das XSLT-Skript update_autoren_elementreihenfolge.xsl aus. Es stellt die gleiche Sortierung bestimmter Kindelemente von
<autorengruppe/person>sicher.<antcall target="update_seitenbeginne_2_db">Führt das XQuery-Update-Skript seitenbeginne_move_2.xquery aus. Es verschiebt Seitenbeginne, die von SHI problematisch bzw. falsch konvertiert werden.
<antcall target="delete_verweis_abk_db">Führt das XQuery-Update-Skript delete_verweis_abk.xquery aus. Es löscht Vorkommen von
<verweis.abkuerzung>, sofern noch vorhanden.<antcall target="update_titelseiten_db">Führt das XQuery-Update-Skript update_titelseiten.xquery aus. Es erzeugt Labels für verschiedene Autorengruppen zur Darstellung auf der Werk-Titelseite.
<antcall target="update_pi_mk_db">Führt das XQuery-Update-Skript update_pi_mk.xquery aus. Es fügt die folgenden PIs der Rahmendatei bzw. den betreffenden Instanzdateien hinzu, die für eine Zuweisung von Werken bzw. Entscheidungen zu Datenbanken über den Filter ISBN/ISSN, Gerichtsbarkeit und Gerichtstyp im Modulkonfigurator benötigt werden:<?esv_isbn-issn?><?esv_gerichtsbarkeit?><?esv_gerichtstyp?>
<antcall target="update_isbn_issn_db">Führt das XQuery-Update-Skript update_isbn_issn.xquery aus. Es erstellt Labels zur Darstellung der verschiedenen ISBNs bzw. ISSNs (Print, eBook) auf der Werk-Titelseite.
<antcall target="update_refs_db">Führt das XSLT-Skript update_href_any2pixel.xsl aus. Es ersetzt im Attribut
@hrefvon<grafik>-Elementen die Dateiendung einer Abbildung, die nicht auf .png endet, durch .png.<antcall target="update_motto_db">Führt das XQuery-Update-Skript update_motto.xquery aus. Es packt das Element
<motto>und ggf.<motto>/<quelle>aus und fügt einem Element<absatz>ein Attribut@besonderheitmit dem Wert 'ausrichtung.rechts' hinzu sowie ein Element<kursiv>. Ein möglicherweise vorhandenes Element<container>wird so belassen.<antcall target="update_grafik_alt_db">Führt das XQuery-Update-Skript update_grafik_alt.xquery aus. Es fügt jedem
<grafik>-Element ein Attribut@althinzu, falls es noch keines gibt und eine Bildbeschriftung gibt (aus welcher der Text entnommen wird)<antcall target="update_grafik_width_height_db">Führt das XQuery-Update-Skript update_grafik_width_height.xquery aus. Es fügt jedem
<grafik>-Element eine PI<?width?>hinzu, die als Wert die Bildbreite der referenzierten Grafikdatei in Pixel enthält. Die Bildbreite entspricht der Original-Bildbreite, die das Skript der dynamisch generierten Hilfsdatei images-sidecar.xml entnimmt, zuzüglich eines pauschalen Skalierungsfaktors von 0,5 und des Skalierungsfaktors, der ggf. im@size-Attribute des<grafik>-Elements angegeben ist.Beispiel:
<grafik href="b9783503126156_I_02_abb0001.png" size="100%" orient="port"><?width 1386px?></grafik>Anmerkung:Da bei manchen Grafiken eine individuelle Größenanpassung erforderlich ist, damit sie auf ESV-Digital in einer sinnvollen Größe angezeigt werden, gibt es die Möglichkeit, in solchen Fällen die PI<?width?>direkt in die Instanzdatei im Gesamtdatenbestand des betreffenden Werks zu schreiben. Das Skript erkennt dann bei der Vorproduktion, dass die PI bereits vorhanden ist, und lässt die PI und deren Wert unverändert bestehen.<antcall target="update_vorspann_unterschrift_db">Führt das XQuery-Update-Skript update_vorspann_unterschrift.xquery aus. Es führt an<unterschrift>-Elementen, die über die Unterelemente<ort>und<datum>verfügen, die folgenden Änderungen durch, damit diese Informationen ausgegeben werden können:- Pro Element
<unterschrift>wird ein neues Unterelement<text>als erster Knoten dem Element hinzugefügt. Das neue Unterelement enthält die Inhalte der Unterelemente<ort>und<datum>durch ein Komma plus Leerzeichen getrennt. - Die Unterelemente
<ort>und<datum>werden anschließend gelöscht.
- Pro Element
<antcall target="replace_unterschrift_db">Führt das XQuery-Update-Skript replace_unterschrift.xquery aus. Es ersetzt das Element<unterschrift>durch seinen Inhalt, wobei es die darin enthaltenen Unterelemente wie folgt anpasst, um die Schema-Konformität sicherzustellen:<text>-Unterelemente werden durch<absatz>-Elemente gleichen Inhalts ersetzt.<grafik>-Unterelemente werden jeweils in einem<absatz>-Element gekapselt.- Jedes
<absatz>-Element wird mit einer eindeutigen ID versehen. - Alle anderen Unterelemente werden unverändert übernommen.
<unterschrift>-Element ein<table>-Unterelemente, bleibt dieses inklusive seines Elternelements<unterschrift>unverändert erhalten, da bei der Transformation nach HTML für dieses Element ein entsprechendes HTML-Element erzeugt wird.Anmerkung:Dieses Skript setzt voraus, dass das Skript update_vorspann_unterschrift.xquery bereits ausgeführt worden ist, das ursprünglich eventuell vorhandene Unterelemente<ort>und<datum>zu einem<text>-Element zusammenfasst.<antcall target="update_container_adresse_db">Führt das XQuery-Update-Skript update_container_adresse.xquery aus. Es führt in Adresscontainern die Inhalte der beiden
<adresse>-Unterelemente<strasse>und<hausnummer>(sofern vorhanden) sowie<postleitzahl>und<ort>im Unterelement<strasse>und<ort>zusammen und löscht dann die dadurch redundant gewordenen Unterelemente<hausnummer>und<postleitzahl>.Außerdem fügt es dem Inhalt des Unterelements
<postfach>das Label „Postfach “ hinzu, sodass die Ziffernfolge für den Benutzer eindeutig identifizierbar ist.Eventuell in den Unterelemente enthaltene Kommata werden entfernt.
<antcall target="update_container_telefon_fax_db">Führt das XQuery-Update-Skript update_container_telefon_fax.xquery aus. Es ergänzt in Adresscontainern die Inhalte der Unterelemente
<telefon>,<fax>und<email>(sofern vorhanden) jeweils um die Zeichenfolge „Telefon: “, „Fax: “ und „E-Mail: “, damit die betreffenden Informationen vom Benutzer auf ESV-Digital eindeutig identifiziert werden können. Ohne diese Zusatzinformation wäre nicht erkennbar, ob es sich bei einer aufgelisteten Nummer um eine Telefon- oder Fax-Nummer handelt.Aus Konsistenzgründen werden auch E-Mail-Adressen mit einem entsprechenden Label gekennzeichnet.
Eventuell in den Unterelemente enthaltene Kommata werden entfernt.
<antcall target="update_verzeichnis_autorengruppe_adresse_db">Führt das XQuery-Update-Skript update_verzeichnis_autorengruppe_adresse.xquery aus. Es führt in Autorengruppen von Autorenverzeichnissen die Inhalte der beiden
<adresse>-Unterelemente<strasse>und<hausnummer>(sofern vorhanden) sowie<postleitzahl>und<ort>im Unterelement<strasse>und<ort>zusammen und löscht dann die dadurch redundant gewordenen Unterelemente<hausnummer>und<postleitzahl>.Außerdem fügt es dem Inhalt des Unterelements
<postfach>das Label „Postfach“ hinzu, sodass die Ziffernfolge für den Benutzer eindeutig identifizierbar ist.Eventuell in den Unterelemente enthaltene Kommata werden entfernt.
Hintergrund: Bei der Produktion für ESV-Digital werden alle Unterelemente eines <adresse>-Elements in separate Blockelemente (<div>) transformiert. Straße und Hausnummer sowie PLZ und Ort werden daher auf ESV-Digital in separaten Absätzen angezeigt. Da dieses Problem per CSS nicht lösbar ist, führt dieses Skript die Adressbestandteile vorab zusammen.
<antcall target="update_verzeichnis_autorengruppe_telefon_fax_db">Führt das XQuery-Update-Skript update_verzeichnis_autorengruppe_telefon_fax.xquery aus. Es ergänzt in Autorengruppen von Autorenverzeichnissen die Inhalte der Unterelemente
<telefon>,<fax>und<email>(sofern vorhanden) jeweils um die Zeichenfolge „Telefon: “, „Fax: “ und „E-Mail: “, damit die betreffenden Informationen vom Benutzer auf ESV-Digital eindeutig identifiziert werden können. Ohne diese Zusatzinformation wäre nicht erkennbar, ob es sich bei einer aufgelisteten Nummer um eine Telefon- oder Fax-Nummer handelt.Aus Konsistenzgründen werden auch E-Mail-Adressen mit einem entsprechenden Label gekennzeichnet.
Eventuell in den Unterelemente enthaltene Kommata werden entfernt.
<antcall target="insert_seitenbeginn_lfg_db">Führt das XQuery-Update-Skript insert_seitenbeginn_lfg.xquery aus. Es fügt bei LBW und Onlinewerken eine PI
<?esv_lfg?>direkt hinter dem Element<esv.instanz>ein. Der Wert dieser PI wird auf ESV-Digital im Dokumentkopf unter Letzte Aktualisierung angezeigt.Der Wert der PI wird wie folgt ermittelt:- Wenn die Instanzdatei keine
<seitenbeginn>-Elemente enthält, aber ihr Element<esv.instanz>über ein Attribut@red-standmit einem gültigen Datumswert verfügt, wird dieses Datum als Wert für die PI verwendet (dies ist z. B. bei Onlinewerken der Fall). - Wenn die Instanzdatei keine
<seitenbeginn>-Elemente enthält und ihr Element<esv.instanz>kein Attribut@red-standmit einem gültigen Datumswert hat, aber über ein Attribut@publikationsdatummit einem gültigen Datumswert verfügt, wird dieser Datumswert als PI-Wert verwendet (dies ist der Fallback-Fall bei Online-Werken, denen das Attribut@red-standfehlt). - Wenn die Instanzdatei
<seitenbeginn>-Elemente enthält, wird der Seitenbeginn mit dem jüngsten Datum ermittelt und die Lieferungsangabe dieses Seitenbeginns als PI-Wert verwendet (Standardfall bei Print-LBW). - In allen anderen Fällen bleibt der Wert der PI leer, und die PI wird nicht in die betreffende Instanzdatei eingefügt. Im Dokumentkopf auf ESV-Digital wird dann die Ausgabe von Letzte Aktualisierung unterdrückt.
Anmerkung:Dieses Skript ist ursprünglich für LBW entwickelt worden, die<seitenbeginn>-Elemente mit Lieferungsangaben enthalten. Bei Onlinewerken, die ebenfalls vom Werktyp "LBW" sind, fehlen prinzipbedingt sowohl<seitenbeginn>-Elemente als auch Lieferungsangaben.Um den Lesern Standinformationen zu den einzelnen Kennzahlen zu liefern, wird daher auf das Attribut
@red-standzurückgegriffen, dass idealerweise das Datum der letzten redaktionellen (d. h. vom Verfasser durchgeführten) Änderung enthält. Sollte dieses Attribut nicht vorhanden sein oder keinen gültigen Datumswert enthalten, wird als Fallback das Publikationsdatum genutzt.- Wenn die Instanzdatei keine
<antcall target="add_PI_dokumenttyp_fuer_alle_Werke_db">Führt das XQuery-Update-Skript add_PI_dokumenttyp_fuer_alle_Werke.xquery aus. Es fügt den Instanzdateien jeweils eine PI
<?esv_dokumenttyp?>hinzu. Mithilfe dieser PI wird den Instanzdateien ein Dokumenttyp zugewiesen, nach dem auf ESV-Digital die Trefferliste gefiltert werden kann. Der Wert der PI bestimmt das Skript anhand des Instanz- und Werktyps:Instanztyp Werktyp PI-Wert gesamtvorschrift alle Kapitel gesamtvorschrift.amtlich alle Vorschrift einzelvorschrift alle Vorschrift entscheidung alle Rechtsprechung kommentar alle Kommentar beitrag Zeitschrift Zeitschriften-Beitrag kapitel Buch/LBW Kapitel Zeitschrift Zeitschriften-Beitrag vorspann.vortext Buch/LBW Kapitel Zeitschrift Zeitschriften-Beitrag verzeichnis alle Verzeichnis news LBW Kapitel Zeitschrift Zeitschriften-Beitrag kalender alle Kalender buchbesprechung alle Buchbesprechung anzeige alle (keine Zuweisung) <antcall target="add_PI_dokumenttyp_fuer_Spezialfaelle_db">Führt das XQuery-Update-Skript add_PI_dokumenttyp_fuer_Spezialfaelle.xquery aus. Es fügt bei Vorliegen bestimmter
<metaeintrag>-Elemente (/esv.instanz/meta/metaeintrag) hinter der vom Skript add_PI_dokumenttyp_fuer_alle_Werke.xquery erzeugten PI eine weitere PI<?esv_dokumenttyp?>mit entsprechender Dokumenttypzuweisung in die Instanzdateien ein. Der Wert der PI bestimmt das Skript anhand der folgenden Attributwerte des<metaeintrag>-Elements:metaeintrag-Element PI-Wert @name @wert bmf-geschaeftszeichen Amtliches Schreiben esv-digital-instanztyp arbeitshilfe Arbeitshilfe rechtsprechung Rechtsprechung cases-study Case Study materialien Materialien vollzugshilfe Vollzugshilfe zusatzmaterial Zusatzmaterial Wichtig:Dieses Skript setzt voraus, dass zuvor das Skript add_PI_dokumenttyp_fuer_alle_Werke.xquery ausgeführt worden ist.<antcall target="add_PI_sortdate_db">Führt das XQuery-Update-Skript add_PI_sortdate.xquery aus. Es fügt eine PI<?esv_sort_date?>ein, deren Wert in der Trefferliste auf ESV-Digital zum Sortieren der Instanzen nach Aktualität verwendet wird. Je nach Werk- bzw. Instanztyp wird der Wert vom Skript wie folgt ermittelt:- Gesamtvorschriften: Datum des Inkrafttretens (
/esv.instanz/gesamtvorschrift.amtlich/@inkrafttreten) - Bücher: Erscheinungstermin aus Feld 007 des ARS
- LBW/Onlinewerke: Je nach Vorhandensein entsprechender Instanzattribute bzw. PIs wird das Datum nach folgender Priorität aus den Werten der angegebenen Attribute bzw. PI ermittelt:
- Datum der letzten inhaltlichen Aktualisierung, ermittelt aus dem Wert der PI
<?esv_lfg?>(und damit aus der Blattnorm) /esv.instanz/@red-stand/esv.instanz/@publikationsdatum
- Datum der letzten inhaltlichen Aktualisierung, ermittelt aus dem Wert der PI
- Zeitschriften: Monat und Jahr des Hefts, in dem die Instanzdatei enthalten ist (
/esv.produkt//abschnitt/abschnitt.meta/meta/volldatum) - Falls überhaupt kein gültiges Datum ermittelbar ist: Dummy-Datum
2019-01-16
Anmerkung:Bei der Anwendung auf LBW setzt dieses Skript voraus, dass die PI<?esv_lfg?>in der Instanzdatei vorhanden ist.- Gesamtvorschriften: Datum des Inkrafttretens (
<antcall target="add_PI_sortdate_rahmendatei_db">Führt das XQuery-Update-Skript add_PI_sortdate_rahmendatei.xquery aus. Es findet aus allen vorher mit add_PI_sortdate.xquery gesetzten PIs das aktuellste Datum heraus und setzt diese PI zusätzlich in die Rahmendatei
<antcall target="update_produktionsdatum_db">Führt das XQuery-Update-Skript update_pi_vorproduktion.xquery aus. Es fügt die PI
<?esv_vorproduktion?>ein. Sie dient der internen Markierung (keine Funktion).<antcall target="add_PIs_zitatstamm_vollzitat_werk_db">Führt das XQuery-Update-Skript add_PIs_zitatstamm_vollzitat_werk.xquery aus. Es generiert die PIs
<?esv_vollzitat?>,<?esv_zitatstamm?>und<?esv_werk?>aus Metadaten in der Rahmendatei und aus ARS-Einträgen und fügt sie der Rahmendatei hinzu. Sollte eine oder mehrere der PIs bereits vorhanden sein (weil sie im Gesamtdatenbestand manuell eingefügt worden ist/sind), bleibt diese unverändert erhalten.Die PIs
<?esv_vollzitat?>und<?esv_zitatstamm?>werden bei Büchern und LWB zum Generieren der PIs<?esv_zitiervorschlag?>und<?esv_quellenangabe?>benötigt. Bei der Produktion für ESV-Digital werden die Werte in diesen beiden PIs wiederum genutzt, um die Einträge Zitiervorschlag und Quelle im Dokumentkopf zu befüllen. Für Zeitschriften werden die PIs<?esv_vollzitat?>und<?esv_zitatstamm?>nicht verwendet; die Generierung der PIs<?esv_zitiervorschlag?>und<?esv_quellenangabe?>erfolgt für diesen Typ auf anderem Wege (für Details, siehe das Skript update_pi_zitierung.xquery)Die PI
<?esv_werk?>wird zum Befüllen des Elements/esv.produkt/produkt.meta/titel/titel.zitiervorschlagder Rahmendatei verwendet. Der Wert dieses Elements wird sowohl vom Modulkonfigurator als auch von der Plattform als Label an verschiedenen Stellen verwendet.Anmerkung:Das Skript ermittelt die Namen der zu nennenden Verfasser in Abhängigkeit vom Typ der jeweiligen Autorengruppe, in der die Namen stehen. Dabei geht es von der folgenden Typ-Rangfolge aus:- begruender
- herausgeber
- autor
Die Rangfolge wurde aus den typischen Verfassernennungen in den ARS-Feldern 006 und 060c abgeleitet. Sollte in Einzelfällen diese Rangfolge zu Zitiervorschlägen/Quellenangaben führen, in denen nicht die gewünschten Verfasser und/oder die Verfasser nicht in der gewünschten Reihenfolge genannt sind, müssen die drei PIs mit den gewünschten Angaben manuell in die Rahmendatei des betreffenden Werks im Gesamtdatenbestand eingetragen werden. Das Skript fügt dann die PIs nicht hinzu und überschreibt auch keine der vorhandenen.
- Führt das XQuery-Update-Skript add_PI_werk.xquery aus. Es fügt allen Instanzen die PI
<?esv_werk?>hinzu und befüllt sie mit dem Wert der PI<?esv_werk?>aus der Rahmendatei.Die PI an den Instanzen wird von der doctronic-Plattform benötigt, um in Trefferlisten und im Dokumentkopf die Werkbezeichnung anzuzeigen.
Anmerkung:Das Skript setzt voraus, dass zuvor das Skript add_PIs_zitatstamm_vollzitat_werk.xquery ausgeführt worden ist. - Führt das XQuery-Update-Skript add_PI_Stand.xquery aus. Es generiert die PI
<?esv_stand?>, die für die doctronic-Plattform den Wert für das Feld Stand im Dokumentkopf liefert. Der Wert der PI wird wie folgt ermittelt:- Loseblatt-/Onlinewerke: Wert der PI
<?esv_lfg?> - Bücher: Jahresangabe aus dem Wert der PI
<?esv_sort_date?> - Zeitschriften: Monat und Jahr aus dem Volldatum des Hefts, in dem sich die Instanz befindet
- Loseblatt-/Onlinewerke: Wert der PI
<antcall target="add_PI_aktualisiertes_abonniertes_werk_db">Führt das XQuery-Update-Skript add_PI_aktualisiertes_abonniertes_werk.xquery aus. Es generiert die PIs
<?esv_aktualisiertes_werk?>und<?esv_abonniertes_werk?>aus Metadaten in der Rahmendatei und aus ARS-Einträgen. Benötigt werden sie ausschließlich für doctronic.<antcall target="add_PI_verfasser_db">Führt das XQuery-Update-Skript add_PI_verfasser.xquery aus. Es generiert die PIs<?esv_verfasser?>und<?esv_verfasser_label?>. Der Wert der PI<?esv_verfasser?>wird aus den Personenangaben in der Autorengruppe zusammengestellt (akad. Titel, Vorname und Nachname) und in der Trefferliste von ESV-Digital (doctronic) unter Verfasser bzw. Verfasserin angezeigt. Der Wert<?esv_verfasser_label?>steuert den Text des Labels in Abhängigkeit vom Geschlecht der Verfasser/innen:- Wenn der Wert des Attributs
@geschlechtbei allen Verfassern mit m in der Autorengruppe angegeben ist, wird die Variable auf den Wert Verfasser gesetzt. - Wenn der Wert des Attributs
@geschlechtbei allen Verfassern mit w in der Autorengruppe angegeben ist, wird die Variable auf den Wert Verfasserin gesetzt. - In allen anderen Fällen wird sie auf den Wert Verfasser gesetzt.
- Wenn der Wert des Attributs
<antcall target="add_PI_besprochenes_werk_db">Führt das XQuery-Update-Skript add_PI_bespochenes_werk.xquery aus. Es generiert die PI
<?esv_besprochenes_werk?>, deren Wert in der Trefferliste von ESV-Digital (doctronic) bei Buchbesprechungen unter Besprochenes Werk angezeigt wird. Zur Bestimmung des Werts werden Herausgeber/Autor, Haupttitel und ggf. Untertitel des besprochenen Werks aus den entsprechenden Unterelementen von<buchinfo>ermittelt und wie folgt kombiniert: Verfasser-/Herausgebervorname Verfasser-/Herausgebernachname, Hauptitel – Untertitel. Bei mehr als einem Verfasser/Herausgeber wird nur der Name des ersten Verfassers/Herausgebers gefolgt von »et al« angegeben. Bei Herausgebern wird »(Hrsg.)« dem Namen nachgestellt.<antcall target="add_PI_kommentierte_norm_db">Führt das XQuery-Update-Skript add_PI_kommentierte_norm.xquery aus. Es generiert die PI
<?esv_kommentierte_norm?>, deren Wert in der Trefferliste von ESV-Digital (doctronic) bei Treffern in Kommentierungen unter Kommentierte Norm angezeigt wird.Der Wert der PI enthält den folgenden Text:- Wenn die Gesamtvorschrift mehrere Paragrafen der gleichen Vorschrift enthält:
§§ Nr._Paragraf_1, Nr._Paragraf_2, Nr._Paragraf_n Kürzel_der_Vorschrift
- Wenn die Gesamtvorschrift mehrere Artikel der gleichen Vorschrift enthält:
Art. Nr._Artikel_1, Nr._Artikel_2, Nr._Artikel_n Kürzel_der_Vorschrift
- Wenn die Gesamtvorschrift mehrere Paragrafen unterschiedlicher Vorschriften enthält:
§ Nr._Paragraf_1 Kürzel_Vorschrift_1, § Nr._Paragraf_2 Kürzel_Vorschrift_2, § Nr._Paragraf_n Kürzel_Vorschrift_n
- Wenn die Gesamtvorschrift mehrere Artikel unterschiedlicher Vorschriften enthält:
Art. Nr._Artikel_1 Kürzel_Vorschrift_1, Art. Nr._Artikel_2 Kürzel_Vorschrift_2, Art. Nr._Artikel_n Kürzel_Vorschrift_n
- Wenn die Gesamtvorschrift nur einen Paragrafen enthält:
§ Nr._des_Paragrafen Kürzel_der_Vorschrift (Titel_des_Paragrafen)
- Wenn die Gesamtvorschrift nur einen Artikel enthält:
Art. Nr._des_Artikels Kürzel_der_Vorschrift (Titel_des_Artikels)
- Wenn die Gesamtvorschrift mehrere Paragrafen der gleichen Vorschrift enthält:
<antcall target="update_titel_zitiervorschlag_db">Führt das XQuery-Update-Skript update_titel_zitiervorschlag.xquery aus. Es schreibt das Element
/esv.produkt/produkt.meta/titel/titel.zitiervorschlagmit dem Wert der PI<?esv_werk?>in die Rahmendatei, sofern es nicht vorhanden ist. Das Skript setzt daher voraus, dass zuvor das Skript add_PIs_zitatstamm_vollzitat_werk.xquery erfolgreich ausgeführt worden ist, das u. a. die PI<?esv_werk?>in die Daten schreibt.Wenn das Element
/esv.produkt/produkt.meta/titel/titel.zitiervorschlagbereits vorhanden ist und die@produktiddes Werks „KR“ lautet, wird es nicht geändert, damit der für KR manuell hinterlegte, kürzere Titel erhalten bleibt, der sich besser für die Anzeige in der Breadcrumb-Zeile von EDV-Digital eignet, als der vollständige Titel des Werks aus der PI<?esv_werk?>.Wenn das Element
/esv.produkt/produkt.meta/titel/titel.zitiervorschlagbereits vorhanden ist und die@produktiddes Werks anders lautet als „KR“, wird das vorhandene Element durch das neu generierte ersetzt. Dies stellt sicher, dass von den Dienstleistern oder der Herstellung auf Basis der Printausgabe erfasste Zitiervorschläge nicht übernommen werden, sondern die vom Skript erzeugten, standardisierten verwendet werden.Hintergrund: Im Modulkonfigurator wird das Element
/esv.produkt/produkt.meta/titel/titel.zitiervorschlagzur Identifikation der Werke bei der Werkauswahl und Sortierung verwendet. Wenn es fehlt, wird ersatzweise das Element/esv.produkt/produkt.meta/titel/titel.standard/textgenutzt, das aber keine Verfasser-Informationen enthält. Für die Filterung der Werkliste und die Suche von Werken fehlt dann die Verfasser-Information. Im Wert des Elements/esv.produkt/produkt.meta/titel/titel.zitiervorschlagist sie standardmäßig mit enthalten, wenn dieses Element vom Dienstleister/der Herstellung den Daten hinzugefügt wird. Die Dienstleister fügen das Element aber nur hinzu, wenn im Print ein Zitiervorschlag vorhanden ist. Daher fehlt es in vielen Fällen.Neben der Verwendung im Modukonfigurator wird das Element in Kombination mit dem Wert aus dem Element
liste-auflagen/auflageauch für die Angabe des Werktitels in der Breadcrumb-Zeile verwendet. In manchen Fällen enthält der Zitiervorschlag in der Printausgabe aber bereits die Angabe der Auflage (und manchmal zusätzlich auch "Rn..."), was dann zu Doppelungen in der Breadcrumb-Zeile führt. Daher müssen erfasste Zitiervorschläge durch standardisierte generierte Zitiervorschäge ersetzt werden. Eine Ausnahme bildet das Werk Knoblich Kontenrahmen, dessen Titel für die Breadcrumb-Anzeige zu lang ist. Der manuell gesetzte Zitiervorschlag bleibt in diesem speziellen Fall erhalten.<antcall target="update_zitierung_buch_lbw_db">Führt das XQuery-Update-Skript update_pi_zitierung_buch_lbw.xquery aus. Es erstellt bei Bücher, LBW und Onlinewerken die PIs zur Ausgabe von Quelle und Zitiervorschlag im Dokumentenkopf auf ESV-Digital.
<antcall target="add_verlag_element_db">Führt das XQuery-Update-Skript add_verlag_element.xquery aus. Es fügt, sofern noch nicht vorhanden, ein Element
<verlag>mit den Unterelementen<name>und<ort>in das Element<produkt.meta>der Rahmendatei ein. Der Inhalt von<name>und<ort>richtet sich nach dem Verlagsnamen, der aus dem Inhalt des Elements<copyright>ermittelt wird.Das Skript add_PI_copyright-vermerk.xquery verwendet diese Angaben zum Generieren einer entsprechenden PI, die Anzeige der Copyright-Informationen im Dokumentkopf auf ESV-Digital steuert.
<antcall target="update_bandnr_db">Führt das XQuery-Update-Skript update_bandnr.xquery aus. Es fügt das Präfix "Band" in den Inhalt des Elements /esv.produkt/produkt.meta/bandnr ein, wenn dieser mit einer Ziffer beginnt.
<antcall target="add_PI_copyright-vermerk_db">Führt das XQuery-Update-Skript add_PI_copyright-vermerk.xquery aus. Es fügt in der Rahmendatei eine PI
<?esv_copyright-vermerk?>vor das Element<?produkt.meta?>ein. Der Wert der PI wird dann im Dokumentkopf des Werks auf ESV-Digital neben dem Verlagslogo angezeigt.<antcall target="update_textmining_db">Führt das XQuery-Update-Skript update_textmining.xquery aus. Es entfernt das Element info-textmining und fügt den Inhalt als zusätzlichen Absatz in das Element copyright ein.
<antcall target="update_copyright_cc_attribution_db">Führt das XQuery-Update-Skript update_copyright_cc_attribution.xquery aus. Es kopiert bei Open-Access-Werken die Creative-Commons-Hinweise aus dem
<info-lizenz>-Element ins<copyright>-Element. Das Skript wird nur für Werke ausgeführt, die in der Rahmendatei über ein<info-lizenz>-Element verfügen, das<absatz>-Elemente enthält, in denen die Zeichenfolge „commons“ vorkommt.Hintergrund: Bei der Produktion für ESV-Digital wird das Element
<info-lizenz>aktuell nicht in HTML konvertiert. Damit die CC-Hinweise auf der Titelei der betreffenden Werke erscheinen, müssen sie daher als<absatz>-Unterelemente ins<copyright>-Element kopiert werden, da dieses Element auf ESV-Digital ausgegeben wird.<antcall target="update_info-hochschulschrift_db">Führt das XQuery-Update-Skript update_info-hochschulschrift.xquery aus. Es verschiebt alle Unterelemente des Elements esv.produkt/produkt.meta/info-hochschulschrift in das Element esv.produkt/produkt.meta/copyright. Da im Element
<copyright>nur ein Unterelement vom Typ titel.standard zulässig ist, wird ein eventuell im Element<info-hochschulschrift>enthaltenes<titel.standard>-Unterelement vor dem Verschieben in ein<absatz>-Element umgewandelt. Die Unterelemente des<titel.standard>-Elements werden dabei serialisiert in das<absatz>-Element integriert.Hintergrund:
Bei der Produktion für die ESV-Digital-Plattform wird das Element
<info-hochschulschrift>nicht in HTML transformiert und daher auf der Plattform nicht angezeigt. Um die Informationen aus dem Element trotzdem auf der Plattform auszugeben, wird dessen Inhalt daher in ein Element verschoben, das in HTML transformiert wird.<antcall target="update_tabellenrahmentyp_db">Führt das XQuery-Update-Skript update_tabellenrahmentyp.xquery aus. Es ändert Tabellen, die nur oben und unten über Rahmenlinien verfügen (
@frame="topbot"), in Tabellen mit umlaufenden Rahmenlinien (@frame="all").Hintergrund: Tabellen, die nur oben und unten über Rahmenlinien verfügen, werden auf ESV-Digital in vielen Fällen fehlerhaft dargestellt. Die einfachste Lösung für dieses Problem ist daher, dass Tabellen, die nur oben und unten über Rahmenlinien verfügen, in Tabellen mit umlaufenden Rahmenlinien konvertiert werden.
<antcall target="add_auszug_text_db">Führt das XQuery-Update-Skript add_auszug_text.xquery aus. Es fügt bei Instanzdateien, die das Attribut
@auszugenthalten, unter den folgenden Bedingungen die Zeichenfolge "- Auszug -" ein:Instanztyp Element <bemerkung>vorhanden?Aktion vorschrift Ja Hängt die Zeichenfolge an den Text im Element an. Nein Fügt das Element <bemerkung>mit der Zeichenfolge ein.kommentar n/a Keine Andere n/a Fügt die Zeichenfolge als ersten Absatz hinter dem Titel ein. <antcall target="update_instanz_sammelwerk_autoren_db">Führt das XQuery-Update-Skript update_instanz_sammelwerk_autoren.xquery aus. Es fügt die Namen der Autoren in ein Herausgeberwerk (Buch) nach dem Titel ein. Hinweis: Kommentierungen sind (vorerst) davon ausgenommen.
<antcall target="update_ebene_autoreninfo_db">Führt das XQuery-Update-Skript update_ebene_autoreninfo.xquery aus.
<antcall target="update_abschnitt_titel_db">Führt das XQuery-Update-Skript update_abschnitt_titel.xquery aus. Es integriert dem Untertitel in titel.standard/text, da Untertitel auf ESV-Digital nicht ausgespielt werden.
<antcall target="delete_abschnitt_leer_db">Führt das XQuery-Update-Skript delete_abschnitt_leer.xquery aus. Es entfernt leere Abschnitte aus der Rahmendatei.
<antcall target="add_softhyphen_to_titel_db">Führt das XQuery-Update-Skript add_softhyphen_to_titel.xquery aus. Es fügt bei den Wörtern des Titels der Rahmendatei bedingte Trennstriche ein, wenn die betreffenden Wörter in der Datei trennwoerterbuch.xml aufgeführt sind.
Hintergrund: Die Werkskacheln auf den Datenbankstartseiten von ESV-Digital umbrechen Titel nicht automatisch, wenn einzelne Wörter zu breit für die Kachel sind, sondern schneiden sie ab. Um das zu vermeiden, müssen die Titel bedingte Trennstriche enthalten, sodass der Browser den Titel automatisch umbrechen kann, wenn der Titel zu breit für die Kachel ist.
<antcall target="update_einzelvorschrift_weggefallen_db">Führt das XQuery-Update-Skript update_einzelvorschrift_weggefallen.xquery aus. Es ergänzt bei weggefallenen/aufgehobenen Vorschriften das Element
<titel.kurz>um die Angabe „(weggefallen)“.Sollte das Element
<titel.kurz>fehlen, wird es hinzugefügt.Hintergrund:
Auf ESV-Digital soll in den TOCs bei den Einträgen für weggefallene/aufgehobene Vorschriften immer der Hinweis „(weggefallen)“ stehen. Da auf ESV-Digital zur Befüllung der TOC-Einträge vorrangig das Element
<titel.kurz>genutzt wird (und der eigentliche Titel bei weggefallenen/aufgehobenen Vorschriften in der Regel fehlt), ergänzt das Skript das Element<titel.kurz>mit dem Text „(weggefallen)“.<antcall target="update_einzelvorschrift_titel_fehlt_db">Führt das XQuery-Update-Skript update_einzelvorschrift_titel_fehlt.xquery aus. Dieses Skript ergänzt bei Einzelvorschriften, dessen obligatorisches Kindelement titel weder eine Kennung noch einen Text aufweist, den Titel aus der Ebene. Diese Art der XML-Auszeichnung findet sich oft bei Artikelgesetzen.
<antcall target="add_liste_auflagen_db">Führt das XQuery-Update-Skript add_liste_auflagen.xquery aus. Das Skript fügt das Element
<liste-auflagen>ein, wenn es in<produkt.meta>nicht existiert.<antcall target="update_status_aufgehoben_zu_weggefallen_db">Führt das XQuery-Update-Skript update_status_aufgehoben_zu_weggefallen.xquery aus. Das Skript ändert den Wert des Attributs @status von 'aufgehoben' zu 'weggefallen'.
<antcall target="delete_caps_db">Führt das XSLT-Skript delete_caps aus. Das Skript entfernt das Element caps und verwandelt der Inhalt in Großbuchstaben.
<antcall target="update_rnblock_status_db">Führt die XQuery update_rnblock_status aus. Das Skript generiert den Textstring "einstweilen frei" als Absatz in einer Randnummer mit dem passenden Attributwert in
@statusund entfernt das Attribut (XSD-Validität).<antcall target="update_organisation_db">Führt das XQuery-Update-Skript update_organisation.xquery aus. Es ersetzt in der Rahmendatei und in den Instanzdateien das Element autorengruppe/organisation/name durch autorengruppe/person/nachname (einheitliche Verarbeitung)
<antcall target="update_rahmendatei_autorengruppe_beruf_db">Führt das XQuery-Update-Skript update_rahmendatei_autorengruppe_beruf.xquery aus. Es benennt in der Rahmendatei das Element autorengruppe/person/beruf in autorengruppe/person/funktion um.
Hintergrund: Es wird bei der Transformation unserer Daten in HTML durch die ESV-Digital-Plattform das Element autorengruppe/person/beruf nicht berücksichtigt. Damit diese Information trotzdem in der Titelei eines Werks auf ESV-Digital angezeigt wird, nutzen wir stattdessen das Element autorengruppe/person/funktion, das bei der Transformation in HTML berücksichtigt wird.
<antcall target="add_autoren_toc_db">Führt das XQuery-Update-Skript add_autoren_toc.xquery aus. Es fügt den Instanzen von Sammelbänden und Zeitschriften das Element
<titel.kurz typ="redaktionell>hinzu.Der Wert von
<titel.kurz typ="redaktionell>wird dabei nach folgendem Muster aus den Metadaten der Instanz generiert:kennung titel.kurz bzw. titel.standard (autorennachname), also z. B. Mobile narrative Landeskunde – kulturelles Lernen in WhatsApp-Tandems (Biebighäuser/Marques-Schäfer), 1 Einführung und Grundbegriffe (Hoffmann/Beckmann)
Auf Kommentar-Instanzen, die weggefallene/aufgehobene Vorschriften enthalten, wird das Skript nicht angewendet da diese Instanzen bereits eine Spezialbehandlung mit dem Skript update_einzelvorschrift_weggefallen.xquery erfahren haben. Außerdem wird bei diesen Fällen keine Autorenangabe benötigt.
Hintergrund:
Auf ESV-Digital soll(en) in den TOC-Einträgen von Sammelbänden und Zeitschriften der/die Name(n) des/der Autor(en) angezeigt werden (Anforderung aus dem Philologie-Lektorat). Standardmäßig wird in den TOC-Einträge der Inhalt von titel.standard/text angezeigt. Wenn allerdings ein
<titel.kurz typ="redaktionell">-Element vorhanden ist, wird dieses bvorzugt angezeigt.Um die Autorennamen in die TOC-Einträge zu bekommen, ohne SHI dafür beauftragen zu müssen, wird daher ein passendes
<titel.kurz typ="redaktionell">-Element pro Instanz generiert und hinter<titel.standard>eingefügt.Bei manchen LBW (z. B. AuV, RdA) wird dieser Trick ebenfalls genutzt, um Kennzahlen in den TOC-Einträgen anzuzeigen.
<antcall target="delete_titel_kennzahl_db">Führt das XQuery-Update-Skript delete_titel_kennzahl.xquery aus. Es löscht Instanzen anhand des Titels (Instanz selbst und Referenz aus der Rahmendatei), falls der Titel einem Eintrag in der Liste tranformation/ant/auszuschliessende_titel.xml entspricht.
<antcall target="update_verweis_externer_inhalt_db">Führt das XQuery-Update-Skript update_verweis_externer_inhalt.xquery aus. Es benennt das Element
<verweis.externer-inhalt>um in<verweis.web>(damit SHI das Element korrekt verarbeitet).<antcall target="update_non_unique_ids_db">Führt das XQuery-Update-Skript update_non_unique_ids.xquery aus. Es bereinigt non-unique-IDs.
<antcall target="add_PI_metis_db">Führt das XQuery-Update-Skript add_PI_METIS.xquery aus. Fügt eine PI hinzu, die die METIS-Zählpixel-URL enthält.
<antcall target="update_schemalocation_db">Ändert den Wert des Attributs xsi:noNamespaceSchemaLocation auf die URI für das Arbeits-XML (Name = lokaler Pfad). Für die automatische Validierung in Oxygen und als transparenter Hinweis auf das gültige Arbeits-XML-Schema.
<antcall target="delete_lookup_files_db">Entfernt möglicherweise temporär hinzugefügte Lookup-Dateien (Root-Knoten: lookup)
<antcall target="delete_zwischenueberschrift_ordnerbeginn_db">Führt das XQuery-Update-Skript delete_zwischenueberschrift_ordnerbeginn.xquery aus. Es löscht alle Elemente
<zwischenueberschrift[@besonderheit eq 'ordnerbeginn']><antcall target="stats_verweis_vs_db">Extrahiert aus Vorschriftenverweisen die Namen der referenzierten Vorschriften sowie deren Zitierhäufigkeit im aktuellen Werk und speichere diese Informationen in einer Datei Lokales-SVN-Checkout-Verzeichnis_ESV-Digital-Produktion/transformation/ant/log/verweis-vs-haeufigkeit.log.
<antcall target="common.xquery_manage_db">Führt das XQuery-Skript db-value-to-file.xquery aus. Es schreibt die in der BaseX-Datenbank (unter C:\tmp-basex\data) zwischengespeicherten Werte als Datei in die BaseX-Datenbank. Diese Datei wird dann zusammen mit den anderen Inhalten in der BaseX-Datenbank im nächsten Schritte ins lokale Ausgabeverzeichnis (Lokales-SVN-Checkout-Verzeichnis_ESV-Digital-Produktion/output) exportiert. Aktuell generiert das Skript eine Datei docs_geloescht.txt. In dieser werden die vom Skript delete_titel_kennzahl.xquery gelöschten Dateien protokolliert.
<echo level="info" message="Exportiere DB...">Gibt in Oxygen in der Ansicht Resultate die Textzeile "Exportiere DB..." aus.
<antcall target="common.xquery_manage_db">Führt das XQuery-Skript db-export.xquery aus, dass den Inhalt der lokalen BaseX-Datenbank (unter C:\tmp-basex\data) ins lokale Ausgabeverzeichnis (Lokales-SVN-Checkout-Verzeichnis_ESV-Digital-Produktion/output) exportiert.
<antcall target="copy_werkabbildung_to_output">Kopiert die Werkabbildung in den Ordner output/abbildungen.
<antcall target="store_clear_db">Löscht den mittels
<antcall target="store_meta_db">erstellten BaseX-Store wieder.<antcall target="check_ids">Führt das XQuery-Update-Skript check_ids.xquery aus. Es prüft die im lokalen Ausgabeverzeichnis abgelegten Daten auf Konsistenz.
<antcall target="common.stop_http_db">Stoppt den Base-X-HTTP-Dienst.
<antcall target="copy_output">Kopiert die fertigen Daten aus dem lokalen Ausgabeverzeichnis in den Produktionsordner. Wird ausgelassen, wenn der Parameter debug auf true gesetzt ist (dies ist bei den Produktionsszenarien der Fall, deren Namen mit "!DEBUG!" beginnen).
<antcall target="delete_dateien_nicht_referenziert">Enfernt nicht (mehr) referenzierte Abbildungen (z.B. durch eine Ergänzungslieferung entfallen, oder Formeln, die nur als MathML vorproduziert werden). Sollte nicht auf sehr große Werke angewendet werden (Zeitschriften, Primärcontent).
<antcall target="export_taxonomie"/>Führt das XQuery-Skript export_current_taxonomie_values.xquery aus. Es exportiert eine Liste der im Werk enthaltenen Instanzen unter anderem mit Informationen über eventuell bereits vergebenen Taxonomie-Einträgen (ESV-Digital-Taxonomien und Dokumenttypen) und speichert sie als CSV-Datei in dem Verzeichnis, das beim Starten des Transformationsszenarios im Dialogfeld pfad_csv angegeben wurde (voreingestellt ist T:\Contentmanagement\Taxonomie-Test).
Bei der Bestimmung der im Werk enthaltenen Instanzen werden alle Instanzdateien berücksichtigt, die sich im Produktionsdatenverzeichnis des Werks (V:\ContentManagement\ESV-Digital\Produktionsdaten\app-data\werke\produktid) befinden.Wichtig:Es erfolgt zwar kein Abgleich, ob diese Dateien auch tatsächlich (und korrekt) in der Rahmendatei referenziert werden. Das Skript versucht jedoch aus der Rahmendatei die Titel der Abschnitte zu ermitteln, die den jeweiligen Instanzen übergeordnet sind. Dazu gleicht es die Dateinamen der Instanzen mit den@href-Werten der<dokument>-Elemente in der Rahmendatei ab. Sollten sich im Produktionsdatenverzeichnis Instanzdateien befinden, deren Dateinamen nicht in der Rahmendatei referenziert werden, generiert das Skript eine CSV-Datei mit fehlerhaften Zeilen, da es die Abschnittstitel für die betreffenden Instanzen nicht in der Rahmendatei findet. Entsprechend sind in den Zeilen dieser Instanzen die Werte verschoben.Sind für eine Instanz noch keine Taxonomie-Einträge vorhanden, wird bei der Listenerstellung automatisch aus dem ARS das Hauptfachgebiet abgerufen, das dem betreffenden Werk zugewiesen worden ist, und als Taxonomie-Eintrag (1. Ebene) der Instanz hinzugefügt.
<antcall target="copy_output_TEMP_EWP">Kopiert die fertigen Daten aus dem lokalen Ausgabeverzeichnis in den Produktionsordner der Einzelwerksproduktionsstrecke. Wird ausgelassen, wenn der Parameter debug auf true gesetzt ist (dies ist bei den Produktionsszenarien der Fall, deren Namen mit "!DEBUG!" beginnen).
<antcall target="write_vorproduktionsstatus_lbw_db"/>Schreibt beim Ausführen des Transformationsszenarios
ESV-Digital-Vorproduktion EL (nur aktuellste Lieferung)eine Textdateivorproduktionsstatus.txtin das Produktionsdaten-Verzeichnis.Zur Kontrolle der vorherigen Vorproduktionsläufe wird eine Ausgabe am Ende des Transformationsszenarios erzeugt. Liegt die letzte Gesamtwerkproduktion sehr weit zurück, sollte das Werk noch einmal komplett vorproduziert werden.
