Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

tustep:loesungen:tustep_und_xml:standard_makros

Zurück zur Übersichtsseite - TUSTEP und XML


#*TAGS: Erstellen einer Tag-Liste

- ms.tru ms.tru

Das Standard-Makro #*TAGS dient der Erstellung einer Liste der in einer Quelldatei vorkommenden XML-Tags unter Berücksichtigung ihrer hierarchischen Verortung, um diese Tags anschließend in Parameter für das Satzprogramm umwandeln zu können. Damit kann eine nach TUSTEP importierte XML-Datei ohne Konvertierungszwischenschritt unmittelbar gesetzt werden. Weitere Anwendungen sind allerdings ebenfalls denkbar, insbesondere im Hinblick auf die zweite Zieldatei von #*TAGS. Grundvoraussetzung für die Nutzung von #*TAGS ist, dass die Daten korrekt geschachtelt sind. Die nachfolgenden Codezeilen melden die Quelldatei an, kreieren einige Zieldateien und rufen schließlich das Standardmakro mit den entsprechenden Spezifikationen auf.

#AN,adressbook.tf
#DA,zieltags.tf,seq-ap
#DA,zieltags2.tf,seq-ap
#DA,reihenfolge.tf,seq-ap
#DA,hierarchie.tf,seq-ap
#DA,protokoll.tf,seq-ap

#*TAGS,QU=adressbook.tf,ZI=zieltags.tf'zieltags2.tf,LO=+,PR=protokoll.tf,REIH=reihenfolge.tf,HI=hierarchie.tf

Über die zusätzliche Spezifikation MODUS kann gesteuert werden, ob bei der Verarbeitung geprüft werden soll, dass außerhalb des Wurzelelements sowie zwischen dem Wurzelelement und dem ersten ihm untergeordneten Element kein Text außer Leerzeichen steht.

In der Datei zieltags.tf steht anschließend die Liste der Tags aus der Quelldatei. Ihre Stellung in der Taghierarchie kommt durch die Angabe der Punkte vor dem jeweiligen Tag zum Ausdruck:

tags1.PNG

Diese Datei kann anschließend manuell um die gewünschten Satzinformationen ergänzt werden:

tags2.PNG

zieltagsman.tf [2 KB]


Gegebenenfalls ist vor dem Start des Satzlaufs noch Preprocessing notwendig, um die Quelldatei für den Satz aufzubereiten (s. z.B. Einzelzeichencodierung; s. #KOPIERE):

satz.p [2 KB]

#DE,,*
quelle = adressbook.tf
psdatei = satz.ps
ziel = satzziel.7
*EOF

#DA,<ziel>'tmp.1's.6's.9'protf,FR=-
#DA,<psdatei>,FDF-AP

#- notwendiges Pre-processing
#KO,<quelle>,tmp.1,,+,PA=*
XX        |<\?xml*>||
XX        |@|^@|
*EOF

#SATZ,quelle=tmp.1,ziel=<ziel>,ausgabe=s.6,modus=t,loeschen=+,prot=s.9'protf,par=zieltagsman.tf
#*psaus,quelle=s.6,datei=<PSDATEI>,lo=+

Das Satzergebnis steht anschließend in der Datei satz.ps:
tags3.PNG

In der zweiten Zieldatei von #*TAGS (zieltags2.tf) werden die Quelldaten dupliziert und die Tagsstruktur dahingehend angereichert, dass in sämtlichen Tagnamen die an der betreffenden Stelle der XML-Hierarchie noch geöffneten Tags in das jeweilige Tag ergänzt werden:
tags4.PNG


#*XMLATTSOR: Sortieren von Attributen

- ms.tru ms.tru

Das Standardmakro #*XMLATTSOR sortiert die Reihenfolge der Attribute in den XML-Tags einer Quelldatei in einer vom Benutzer anzugebenden oder in alphabetischer Reihenfolge (gem. der Standardsortierreihenfolge; vgl. im Handbuch „Code-Tabellen/Standard-Sortierfolge in TUSTEP“) , was die Analyse der Daten und die Weiterverarbeitung u.U. erheblich erleichtern kann.

bsp_attr.tf [2 KB]


Das nachfolge Skript steuert die alphabetische Sortierung der Attribute der Quelldatei in die Zieldatei sortziel.tf.

#DE,,*
quelle = bsp_attr.tf
ziel =   sortziel.tf
*EOF

#DA,<ziel>,SEQ-AP

#*XMLATTSOR,QU=<quelle>,ZI=<ziel>,LO=+,REIH=alpha


Darüber hinaus kann vom Benutzer eine Reihenfolge festgelegt werden:

#DE,,*
quelle = bsp_attr.tf
ziel =   sortziel_be.tf
*EOF

#DA,<ziel>,SEQ-AP

#*XMLATTSOR,QU=<quelle>,ZI=<ziel>,LO=+,REIH=*
      * @type-Attribut falls vorhanden immer an
      * erste Stelle schreiben, den Rest
      * alphabetisch sortieren
XS1       |type|a|
*EOF

Wie in den Zieldateien ersichtlich ist, werden bei der Verarbeitung nicht nur die Attribute sortiert, sondern auch Leerzeichen und Leerzeilen aus der Quelldatei entfernt.

Eine ähnliche Funktion zum Sortieren von Attributen ist in TUSCRIPT unter als SORT_ATTRIBUTES(liste, namen) implementiert. Auch hier sind alphabetische sowie benutzerdefinierte Sortierreihenfolgen möglich.

#*TADE: Erstellung einer Definitionsdatei

- ms.tru ms.tru - [ schaelkle | schaelkle ]

Bei der Eingabe oder Korrektur von XML-Daten im Editor kann es eine große Hilfe sein, wenn Vorschläge unterbreitet werden, welche Tags an einer bestimmten Stelle laut Vorgabe erlaubt sind. Eine mögliche Vorgehensweise wird im Folgenden an einem Beispiel skizziert.

Musterdatei:

clausewitz.tf [1 MB]

Quelle: Clausewitz, Carl von: Vom Kriege. Hinterlassenes Werk des Generals Carl von Clausewitz, Dritter Theil, Berlin 1834, In: Deutsches Textarchiv <http://www.deutschestextarchiv.de/clausewitz_krieg03_1834>, abgerufen am 11.11.2013.

Schritt 1:
Ausgangspunkt ist eine nach TUSTEP konvertierte XML-Datei.

Achtung: Die Ausgangs-XML-Datei darf keine interne DTD enthalten, wie z.B.:
<!DOCTYPE TEI SYSTEM „tei_all.dtd“[
<!ENTITY auml „&#x00E4“;>
….
]>

oder
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
(s. hierzu Link W3Schools)

Eine solche DTD ist ggf. auszukommentieren oder aus der Datei zu löschen. Andernfalls erhält man beim Aufruf von #*TADE (s.u.) die Fehlermeldung „Datenfehler: Nach < keine > mehr im Satz (x.y)“.

Ggf. ist die Quelldatei zunächst anzumelden:

#AN,clausewitz.tf


Schritt 2:
Kreieren einer Definitionsdatei

#DA,clausew_def.tf,SEQ-AP


Schritt 3:
Extraktion der in der Ausgangsdatei enthaltenen XML-Struktur (verwendete Tags mit ihrer Hierarchiestufe) mit dem Standardmakro #*TADE (= TAg-DEfinitionen)
→ Eine Beschreibung des Standardmakros kann über das Kommando #INFORMIERE,tade aufgerufen werden.

#*TADE,DA=clausewitz.tf,ZI=clausew_def.tf,N=1,LO=+

Mit diesem Kommando wird die Definitionsdatei durch Strukturextraktion der Quelldatei erstellt. Zudem wird festgelegt, dass die hieraus zu erstellenden Definitionen der Tag-Gruppe 1 zugewiesen werden und der Inhalt der Zieldatei gelöscht werden soll.

Schritt 4:
Kontrolle/Bearbeitung/Ergänzung der automatisch erstellten Definitionsdatei
→ Die Syntax hierzu ist im TUSTEP-Handbuch unter „Tag-Prüfung definieren/wechseln/löschen/abfragen“ dargestellt.
Beispiel:
Die automatisch generierte Definition enthält in unserem Beispiel etwa die folgende Zeile:

T1,persName=?ref;/*<author>/*<editor>/

Diese legt fest, dass das Tag „<persName>“ mit dem optionalen Attribut „ref“ unterhalb der Tags „<author>“ und „<editor>“ vorkommen darf. Würde man darüber hinaus das Attribut „n“ und „xml:id“ optional erlauben wollen, müsste man die Zeile folgendermaßen abändern:

T1,persName=?ref,?n,?xml:id:;/*<author>/*<editor>/


Schritt 5:
Einstellung der Definitionsdatei für die Benutzung im Editor:

#E,DE=clausew_def.tf

Die extrahierten Tag-Definitionen sind nun als Tag-Gruppe 1 im Editor verfügbar und können mit der Anweisung „T1“ angezeigt werden.

Schritt 6:
Definition des Editorsteuerbefehl für die Auswahl der erlaubten Tags mittels Tastaturmakro:

Y,SC_T=SELECT_TAG

Nach der erfolgten Makrodefinition kann an eine beliebige Stelle des Editors geklickt und mittels der Tastenkombination

SHIFT+CTRL+T bzw. SHIFT+STRG+T

ein Anzeigefenster mit den zur Auswahl stehenden Tags aufgerufen werden.
→ Die gleiche Funktionalität kann per Button in einer Makroleiste bereitgestellt werden; siehe dazu Makroleiste.

Alternativ kann ein mit einem Tagging zu versehender Textteil markiert und anschließend mit einem an der betreffenden Stelle erlaubten Tag versehen werden. Hierzu können folgende Definitionen benutzt werden:

Y,M_RP=SAVE_CUR,MRK_INI,MRK_CHG:0B
Y,M_RR=MRK_DEL_REP,REST_CUR,TXT_CHG:TFT,SELECT_TAG,TXT_CHG:0B,MRK_INS,TXT_CHG:TFT,ADD_END_TAG

grundlegende Funktionalität:
Nach der farblich hervorgehobenen Markierung einer Textstelle mit der rechten(!) Maustaste wird der markierte Text in den Zwischenspeicher gespeichert. Anschließend erscheint das Popup-Fenster mit den an der betreffenden Stelle zur Verfügung stehenden Tags. Nachdem ein Tag ausgewählt wurde, wird der Text aus dem Zwischenspeicher inklusive des paarigen Taggings eingefügt.



Zurück zur Übersichtsseite - TUSTEP und XML

tustep/loesungen/tustep_und_xml/standard_makros.txt · Zuletzt geändert: 2021/03/16 05:34 (Externe Bearbeitung)