Prozessablauf: Vorproduktion von Einzelheften von Zeitschriften
Die Standard-Vorproduktion für Einzelhefte von Zeitschriften wird gesteuert über das Target ESV-Digital-Vorproduktion_Zeitschriften_Heft in Lokales-SVN-Checkout-Verzeichnis_ESV-Digital-Produktion/transformation/ant/build.xml.
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_Zeitschriften_Heft" 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_zeitschriften_hefte_fuer_einzelheft_gesamtrahmen">Kopiert alle zu einer Zeitschrift gehörenden XML-Dateien ins lokale Eingabeverzeichnis (nicht nur die des aktuellen Heftes, da die anderen für die Erstellung der Gesamtrahmendatei verfügbar sein müssen) (Lokales-SVN-Checkout-Verzeichnis_ESV-Digital-Produktion/input). Bilddateien werden nicht mitkopiert.
<antcall target="build_zs_gesamtrahmen">Erstellt eine Gesamtrahmendatei, in der alle Zeitschriftenhefte referenziert sind. Die Rahmendateien der einzelnen Hefte werden verworfen. In der Gesamtrahmendatei werden Abschnitte für Jahrgänge (z. B. "2021") und die einzelnen Hefte innerhalb der Jahrgänge eingefügt. Die Jahrgangsabschnitte werden absteigend sortiert (jüngster Jahrgang steht oben). Innerhalb der Jahrgänge wird numerisch sortiert (das erste Heft des Jahrgangs steht oben). Die Benennung für die einzelnen Hefte lautet immer "Heft Nr. n".
Fügt direkt vor jedes Element
<dokument>eine temporäre Hilfs-PI<?esv_temp_instanztyp?>mit dem Wert von@/esv.instanz/@typder zugeordneten Instanz (für eine spätere einfachere Auswertung).Exportiert die Gesamtrahmendatei in das lokale Ausgabeverzeichnis (Lokales-SVN-Checkout-Verzeichnis_ESV-Digital-Produktion/output).
<antcall target="cleanup_input">Löscht den Inhalt des lokalen Eingabeverzeichnisses.
<antcall target="copy_input">Kopiert rekursiv den gesamten Inhalt des Ordners im Gesamtdatenbestand, in dem sich die Rahmendatei befindet, ins lokale Eingabeverzeichnis (Lokales-SVN-Checkout-Verzeichnis_ESV-Digital-Produktion/input).
<antcall target="custom_steps_filehandling">Wenn es sich bei der Zeitschrift um die Stiftung&Sponsoring (SuS) handelt, wird der Inhalt des zum ausgewählten Heft gehörenden Ordners sus_Jahrgang_Heftnummer_rs in den Eingabeordner kopiert.
<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="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.
<antcall target="build_zs_gesamtxml">Erstellt ein Gesamt-XML; Voraussetzung für METIS bzw. Erzeugen von Element
<metaeintrag[@name='beitragsschluessel']>, um die Sequenz der Seitenbeginne korrekt zu ermitteln.<antcall target="zs_create_lookup_seitenbeginne">Erstellt eine Seitenbeginne-Lookup-Datei; Voraussetzung für METIS bzw. Erzeugen von Element
<metaeintrag[@name='beitragsschluessel']><antcall target="zs_add_beitragsschluessel_db">Fügt einen Beitragsschlüssel (METIS) hinzu, falls er nicht existiert (Zeitschriften); Wrapper für XSLT (da gemeinsame XSLT-Funktionsbibliothek genutzt wird zur einheitlichen Erstellung); erfordert eine in der DB vorhandene Lookup-Datei, die vorher erstellt werden muss (create-lookup-seitenbeginne.xsl)
<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')]]<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="delete_einzelrahmen_db">Führt das XQuery-Skript delete_einzelrahmen.xquery aus. Es löscht die Einträge für die Rahmendateien der Einzelhefte aus der Datenbank.Wichtig:Dieser Vorgang muss vor der Verlinkung durchgeführt werden.<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"
<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="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="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="common.start_http_db>Startet BaseX als HTTP-Server.
<antcall target="update_seitenbeginn_zs_db">Führt das XQuery-Update-Skript update_seitenbeginn_zs.xquery aus. Es fügt bei Beiträgen (oder anderen Elementen), die kein
<seitenbeginn>-Element im Instanztitel haben (d. h. Beiträge, die nicht auf einer neuen Seite starten), das im Werk direkt vorhergehenden<seitenbeginn>-Element in den Instanztitel ein.<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="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="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_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="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.<echo level="info" message="Füge Gesamt-Rahmendatei zur DB hinzu...">Gibt in Oxygen in der Ansicht Resultate die Textzeile "Füge Gesamt-Rahmendatei zur DB hinzu..." aus.
<antcall target="common.xquery_manage_db">Führt das XQuery-Skript db-add.xquery aus, das der lokalen BaseX-Datenbank unter C:\tmp-basex\data die zuvor im lokalen Ausgabeverzeichnis zwischengespeicherte Gesamtrahmendatei hinzu.
<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_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_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="delete_lfg_db">Führt das XQuery-Update-Skript delete_lfg.xquery aus. Es löscht das Attribut
@lfgaus<seitenbeginn>-Elementen, um die Ausgabe im Seitenbeginn-Tooltip auf ESV-Digital bei Zeitschriften zu unterdrücken. Außerdem löscht es das Element<es.fundstellen>, da dieses Element aktuell auf ESV-Digital fehlerhaft ausgegeben wird.<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="custom_steps_refactoring_xslt_db">Führt werksspezifische, XSLT-basierte Verarbeitungsschritte aus, die anhand der Produkt-ID gesteuert werden.
Der Task custom.stichwortverzeichnis_splitten ist gesondert dokumentiert.
<antcall target="update_beitrag_autoreninfo_db">Führt das XQuery-Update-Skript update_beitrag_autoreninfo.xquery aus. Es gibt Autoreninformationen unterhalb des Beitrags (auch: News, Buchbesprechungen) aus. Dabei werden verschiedene Fälle berücksichtigt (mit und ohne Abbildung und beschreibendes
<absatz>-Element). Bei abweichender Erfassungssystematik besteht hier ggf. Anpassungsbedarf. Es fügt auch am Ende von Zeitschriftenbeiträgen und News nach den Autoreninfos den Text aus eventuell in der Autorengruppe vorhandenen Fußnoten als Absatz ein. Das Skript wurde erweitert, um die Autorenbilder am Ende von Editorial hinzufügen.<antcall target="update_beitrag_interview_db>Führt das XQuery-Update-Skript update_beitrag_interview.xquery aus. Es platziert bei Beiträgen und Interviews die Namen der Interviewten unter die Vortitel und die Fotos der Interviewten sowie die Informationen über die Interviewten unter die Titel der Beiträge/Interviews.
<antcall target="update_buchbesprechung_autoren_db>Führt das XQuery-Update-Skript update_buchbesprechung_autoren.xquery aus. Es ersetzt das Element buchinfo/autorengruppe mit einem Absatz, welcher die Autoren des besprochenen Buches mit einem Schrägstrich getrennt ausgibt. Handelt es sich bei dem besprochenen Werk um ein Herausgeberwerk, wird der String "(Hrsg.)" mit einem Leerzeichen getrennt angehängt.
<antcall target="update_entscheidungsbesprechung_autoren_db>Führt das XQuery-Update-Skript update_entscheidungsbesprechung_autoren.xquery aus. Es entfernt das Element /esv.instanz/entscheidung/entscheidungsbesprechung/autorengruppe bzw. /esv.instanz/entscheidung/entscheidungsvariante/anmerkung/meta/autorengruppe (ältere Auszeichnung) und fügt einen Absatz hinzu, welcher den bzw. die Autoren mit einem Schrägstrich getrennt ausgibt. Ein möglicherweise ausgezeichneter Ort wird als String in Klammern mit einem Leerzeichen getrennt angehängt.
<antcall target="update_seitenbeginn_zs_gesamtrahmen_db>Führt das XQuery-Update-Skript update_seitenbeginn_zs.xquery aus. Es fügt bei Beiträgen (oder anderen Elementen), die kein
<seitenbeginn>-Element im Instanztitel haben (d. h. Beiträge, die nicht auf einer neuen Seite starten), das im Werk direkt vorhergehenden<seitenbeginn>-Element in den Instanztitel ein.<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. <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_zs_db">Führt das XQuery-Update-Skript update_pi_zitierung_zs.xquery aus. Es erstellt bei Zeitschriften die PIs zur Ausgabe von Quelle und Zitiervorschlag im Dokumentenkopf auf ESV-Digital.
<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="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
- 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_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="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_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="update_zs_rechtsprechung_autoren_db">Führt das XQuery-Update-Skript update_zs_rechtsprechung_autoren.xquery aus. Es kapselt die Autorengruppe in einem Container vom Typ hervorhebung und platziert den Container ans Ende der Entscheidungsbesprechung.
<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="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="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="TEMP_update_verzeichnis.literatur_db">Führt das XQuery-Update-Skript TEMP_update_verzeichnis.literatur.xquery aus. Das Skript verpackt
<verzeichnis.literatur>, das direkt auf eine<ebene>folgt, in eine neue<ebene>und verschiebt<titel>aus<verzeichnis.literatur>in die neue<ebene>. Gleichzeitig packt es verzeichnis.eintrag, verzeichnis.literatur und lit.eintrag aus (wird von SHI nicht verarbeitet) und stellt schemakonforme Absatzstruktur her.<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="delete_delete_abstract_inhaltvz_db">Führt das XQuery-Update-Skript delete_abstract_inhaltvz.xquery aus. Es entferne das Element
<abstract[@typ eq 'inhaltvz']>aus den Instanztypen beitrag, news.<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="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="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="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_teilcheck">Führt das XQuery-Update-Skript check_ids_teilcheck.xquery aus. Es prüft, ob die in der Rahmendatei referenzierten Dokumente vorhanden sind (und andersrum).
<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="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).
