Zurück zur Übersichtsseite - Editor
- 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.
- 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 bei der schrittweisen Herstellung von wohlgeformtem XML, etwa im Rahmen einer Retrodigitalisierung oder im Rahmen einer Datenkonvertierung, an. 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 <code>
und </code>
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 <code>
bzw. </code>
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.
- 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 inkl. der übergeordneten Tags bis zum Wurzelelement aus tli gibt eine hierarchische Liste aller Tags inkl. der übergeordneten Tags bis zum Wurzelelement aus, beginnend beim untersten Tag der Hierarchie
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 Taags 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.
- 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