Inhaltsverzeichnis


Zurück zur Übersichtsseite - TUSTEP und XML


Vorbemerkung

- ms.tru ms.tru

Im Rahmen des TUSTEP-Workshops in Weingarten im Januar 2017 wurden einige „Tipps und Tricks“ für die Be- und Verarbeitung von XML im TUSTEP-Editor und mit Standard-Makros von M. Schneider vorgestellt. Eine Übersicht über die vorgestellten Funktionen findet sich in den nachfolgenden Folien:

dzslides_ms.html [23 KB]




Hinweis zu Bedienung: Nachdem Sie in das iframe geklickt haben, das die Folien enthält, können Sie mithilfe der Pfeiltasten durch die Slides navigieren.

Die Erläuterungen zu den Funktionen finden sich im Folgenden und unter Bearbeitung von XML mit Standard-Makros.

Eingabehilfen

- ms.tru ms.tru

Die nachfolgend erläuterten Tastenkombinationen stehen für Shortcuts, die von TUSTEP per default belegt sind und Steuerbefehle umsetzen (vgl. im Handbuch die Abschnitte „Editor/Tastenkombinationen (Auswahl)“ und „Editor/Steuerbefehle im Editor“). In Letzterem werden die von den Tastenkombinationen aufgerufenen Steuerbefehle erläutert, die zusammen mit einer Vielzahl weiterer Steuerbefehle vom Benutzer auf eigene Tastenkombinationen gelegt oder in Editormakros integriert werden können.

Werden XML-Daten manuell erstellt (z.B. zur Vorbereitung einer Satzausgabe) oder bearbeitet, stehen im Editor Eingabehilfen zur Verfügung, um den Tippaufwand und manuelle Fehlereingaben zu reduzieren:

ALT+A
ALT+E

ergänzen an der aktuellen Cursorposition ein Ende- bzw. Anfangstag passend zum gerade geöffneten bzw. geschlossenen Tag. Bei ALT+E werden optionale Attribute nicht dupliziert, sondern nur der Tagnamen ausgegeben.

ALT+G

gibt eine Liste der Tags aus, die an der Cursorposition innerhalb der Taghierarchie erlaubt sind, sofern der Cursor außerhalb eines Tags steht.
Steht der Cursor innerhalb eines Tags, wird die Liste der für dieses Tag erlaubten Attribute ausgegeben. Voraussetzung hierfür ist die Definition einer erlaubten XML-Hierarchie, z.B. mithilfe des Standardmakros #*TADE.

Die Funktionen

ALT+V
ALT+R

suchen von der aktuellen Cursorposition aus zum Dateiende (Vorwärts) bzw. zum Dateianfang (Rückwärts) nach einem Ende- bzw. Anfangstag, das innerhalb der durchsuchten Daten über kein korrespondierendes Anfangs- bzw. Endetag verfügt, also nach unpaarigen Tags, und zeigen den betreffenden Satz an.

ALT+T

prüft vom Dateianfang her bis zur Cursorposition die Tags und zeigt die an der Cursorposition geöffneten Tags inklusive der jeweiligen Anzahl an, z.B.:
altt.PNG

Tags prüfen

- Schneider-lastin schneider-lastin

Vorbemerkung: Mit den folgenden Anweisungen wird die Paarigkeit von Tags in einem Text geprüft.
Ein Tag ist eine in spitzen Klammern eingeschlossene Zeichenfolge. Es gibt Anfangs-Tags, Ende-Tags und leere Tags.
Anfangs-Tag:

Ende-Tag:

Leeres Tag:


Bedingungen:

tpv           Tag-Prüfung vorwärts in der gesamten Datei
tp            Abkürzung für tp
tpv,pos       Tag-Prüfung vorwärts ab der angegebenen Position bis Dateiende
tpv,ber       Tag-Prüfung vorwärts im angegebenen Bereich, z.B. tpv,(3.1,5.999)

tpr           Tag-Prüfung rückwärts in der gesamten Datei
tpr,pos       Tag-Prüfung rückwärts ab der angegebenen Position bis Dateianfang
tpr,ber       Tag-Prüfung rückwärts im angegebenen Bereich, z.B. tpv,(3.1,5.999)

→ Leere Tags werden bei der Prüfung übergangen.

Spezielle Tag- und Klammerprüfungen

- ms.tru ms.tru

Neben der standardmäßigen Überprüfung von allen XML-Tags in einer Datei können die Anweisungen TPV und TPR auch genutzt werden, um a) nur bestimmte Tags bzw. Taghierarchien (Schachtelungen) zu überprüfen oder b) andere „Klammerstrukturen“, z.B. die Paarigkeit von #/+…#/- oder die korrekte, paarige Schachtelung runder und eckiger Klammern, zu überprüfen.
Die unter a) beschriebene Möglichkeit bietet sich insbesondere an bei der schrittweisen Herstellung von wohlgeformtem XML, etwa im Rahmen einer Retrodigitalisierung oder im Rahmen einer Datenkonvertierung. In diesen Fällen können die bereits eingefügten XML-Tags auf ihre Paarigkeit hin überprüft werden, ohne dass Fehlermeldungen aus anderen, noch nicht bearbeiteten Tagstrukturen erwachsen.

Die Anweisung

tpv,,(),|<code>|(1|</code>|)1|

prüft beispielsweise, ob die Tags

 und 

korrekt geschachtelt sind.
Zwischen den ersten beiden Kommata kann in runden Klammern ein Bereich angegeben werden, falls die Überprüfung auf bestimmte Datensätze beschränkt werden soll. Das Klammerpaar „()“ zeigt an, dass TPV in der 'erweiterten' Fassung für Klammerprüfungen genutzt werden soll. Die Klammern „(1“ und „)1“ geben an, dass die jeweils vorstehenden Zeichenfolgen „

" bzw. "

“ als öffnende respektive schließende Klammer angesehen werden sollen. Die Zahl gibt die jeweilige Zugehörigkeit an, was dann relevant wird, wenn mehrere Klammerpaare mit einer Anweisung überprüft werden sollen. Wenn Klammern bzw. Tags unterhalb von anderen Tags überprüft werden sollen, kann dies mittels mehrfacher Angabe von runden Klammern kenntlich gemacht werden. „(((1" und ")))1“ zeigen entsprechend an, dass das mit diesen Kennern versehene Klammerpaar nur innerhalb der zweiten, zuvor definierten Klammer stehen darf.
Um verschiedene Klammerbereiche unabhängig voneinander überprüfen zu können, ist die Angabe von eckigen Klammern „[“ bzw. „]“ vorgesehen, um solche Bereiche abzutrennen:

tpv,,(),|<i>|(1|</i>|)1|<fn>|[2|</fn>|]2|

überprüft die Schachtelung von <i>. Dabei werden zwei Klammerbereiche unterschieden: derjenige innerhalb von Fußnoten („<fn>|[2|</fn>|]2|“) und derjenige außerhalb von Fußnoten. In der Beispieldatei testkl.tf findet sich eine entsprechende Schachtelung. Entfernt man ein öffnendes oder schließendes <i>-Tag innerhalb oder außerhalb der Fußnoten, wird eine entsprechende Fehlermeldung bei der Ausführung der o.g. Anweisung ausgegeben.

testkl.tf [2 KB]

Über die beschriebenen Funktionen hinausgehend, besteht die Möglichkeit, dass innerhalb von Klammern auch zu definierende Zeichenfolgen (z.B. Milestones oder Schlagwörter) überprüft werden können. Die zu überprüfenden Zeichenfolgen sind mit „@“ zu kennzeichnen:

testkl2.tf [8 KB]

tpv,,(),|<fn>|(1|\*|@@1|</fn>|)1|

überprüft, dass Asterisken (*) nur auf der zweiten Klammerstufe, im betreffenden Fall also unterhalb von „<fn>“ vorkommen. Wird an anderer Stelle ein „*“ eingetragen (z.B. unterhalb von „<i>“ oder unterhalb des Wurzelelemens), erhält man eine Fehlermeldung.

Taglisten

- ms.tru ms.tru

Im Editor stehen verschiedene Möglichkeiten zur Verfügung, sich die in einer notwendigerweise korrekt geschachtelten Datei verwendeten Tags ausgeben zu lassen:
tl gibt eine alphabetische Liste aller Tags aus tlh gibt eine hierarchische Liste aller Tags aus inkl. der übergeordneten Tags bis zum Wurzelelement tli gibt eine hierarchische Liste aller Tags aus inkl. der übergeordneten Tags bis zum Wurzelelement, ab dem untersten Tag der Hierarchie</code> Für die genannten Anweisungen stehen jeweils erweiterbare Formulierungen zur Verfügung:

tl,ber,mds,pfad
tlh,ber,mds,pfad
tli,ber,mds,pfad

Für ber kann ein Datensatzbereich eingeschränkt werden. Modus („mds“) steuert die Behandlung der XML-Kommentare: Mit „-“ wird bewerkstelligt, dass XML-Kommentare beim Prüfen übergangen werden, während mit einem „+“, die Daten zwischen „^<!–“ und „–^>“ mit überprüft werden. Wird keine Angabe zu mds gemacht, werden „<!–“ und „–>“ wie Anfangs- und Endetags behandelt und damit ebenfalls auf Paarigkeit überprüft.
Mit pfad kann nach einem Tag gesucht werden, das in den Daten an einer bestimmten Stelle der Taghierarchie steht. Hierbei sind drei Arten von Angaben möglich: a) <tagname> für ein Tag mit dem Namen „tagname“, b) <*> für ein Tag mit beliebigem Namen und c) * für null oder beliebig viele Tags mit beliebigem Namen.

tl,,,|*<abbr>|

findet sämtliche <abbr>-Tags in der gesamten Datei unabhängig von ihrer Hierarchiestufe. Mit RETURN kann man sich durch die Treffer navigieren lassen.

tl,(5.1,-1),,|*<note><abbr>|

findet nur diejenigen <abbr>-Tags, die unmittelbar unterhalb eines <note>-Elements stehen. Gesucht wird ab Datensatz 5.1 bis zum Dateiende.

Prüfung illegaler Tagnamen

- ms.tru ms.tru

Möchte man Tags auf ihre Paarigkeit hin überprüfen sowie bei den weiteren Tag-bezogenen Anweisungen (TL, TLH…) mit einbeziehen, die nicht den TUSTEP-Konventionen für Tagnamen entsprechen (s.o.), so kann man die entsprechenden Tagnamen, die als legal angesehen werden sollen, definieren. Die erste nachstehende Definition legt fest, dass „<%1>….</%1>“ und „←2>…</-2>“ bei der Paarigkeitsprüfung wie Tags mit regelkonformen Tagnamen behandelt werden sollen:

tpl=|%1|-2|
tpl=           löscht die Definitionen

Mit der Anweisung tpl können leere Tags (=milestones) definiert werden. Sie werden folglich bei der Paarigkeitsprüfung ignoriert. Mit den beiden nachfolgenden Anweisungen wird „<+44>“ zunächst als legaler Tagname und anschließend als Milestone definiert:

tpn=|+44|
tpl=|+44|
tpl=           löscht die Definitionen



Zurück zur Übersichtsseite - TUSTEP und XML