Aufbau eines TXSTEP-Skripts


Ein TXSTEP-Skript beginnt immer mit der von anderen XML-Dateien bekannten Deklaration des verwendeten XML-Standards:
<?xml version="1.0" encoding="UTF-8"?>
Darauf folgt das Wurzeltag für TXSTEP-Skripte SCRIPT. Bei SCRIPT müssen die verwendeten Namensräume angegeben werden:
<script xmlns="http://www.xstep.org" xsi:schemaLocation="http://www.xstep.org relativer/Pfad/zur/txstep.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
Dieser Header ist in allen TXSTEP-Skripten gleich, der Pfad zur txstep.xsd muss allenfalls angepasst werden. Innerhalb des Wurzelelements SCRIPT besteht ein Skript aus zwei Teilen: Im Element VARIABLES können Variablen definiert werden, die für das ganze Skript gelten. Anschliessend an das Element VARIABLES folgen die Anweisungen, die ein Skript ausführen soll.
<?xml version="1.0" encoding="UTF-8"?>
<script xmlns="http://www.xstep.org" xsi:schemaLocation="http://www.xstep.org relativer/Pfad/zur/txstep.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
    <variables>
        <!-- Hier können Variablen, u. a. für den Zugriff auf Dateien, definiert werden -->
    </variables>
    <!-- Hier werden die Verarbeitungsanweisungen für das Skript angegeben -->
</script>

Zugriff auf Dateien


Um innerhalb eines TXSTEP-Skripts auf Dateien zugreifen zu können, müssen diese innerhalb des Elements VARIABLES mit dem Tag VARIABLE definiert werden. Dabei stehen insgesamt sieben Werte zum Attribut TYPE zur Auswahl; die ersten drei sind für den Zugriff auf Dateien wichtig:
  1. permanent-file: Permanente Dateien (Fremddateien oder TUSTEP-Dateien) einer Variablen zuweisen, Zugriff lesend (Standard) oder schreibend möglich. Diese Dateien bleiben nach der Ausführung des Skripts erhalten, es sei denn sie werden explizit gelöscht.
  2. execution-file: Ist einer Variablen mit dem Attribut type="execution-file" eine Datei zugewiesen, so werden die TUSTEP-Kommandos, die aus dem Skript generiert wurden, in diese Datei geschrieben, bevor sie ausgeführt werden. Sie können dort später eingesehen und/oder in einer TUSTEP-Sitzung noch einmal ausgeführt werden. Stehen schon Daten in dieser Datei, so werden sie überschrieben. Wird keine Variable vom Typ execution-file definiert, so werden die aus dem Skript generierten Kommandos in eine temporäre Datei geschrieben, die nur für die Dauer der Ausführung des Skripts existiert.
  3. scratch-file: Definition von temporären TUSTEP-Dateien. Diese Dateien werden nach der Ausführung des Skripts gelöscht.
  4. log-file: Soll das Ablaufprotokoll nicht in die Standard-Log-Datei ausgegeben werden, so kann hier eine andere Datei angegeben werden.
  5. procedure: Innerhalb des Elements procedure definierte Skripte werden permanent in diese Datei gespeichert. Sie stehen dann auch in anderen TXSTEP-Skripten als external-procedure zur Verfügung. Dazu muß dort die Datei als "external-procedure" mit lesendem Zugriff definiert und mit einem Namen (z.B. sort-proc) versehen werden, um dann im Skript mit call-external-procedure name="sort-proc"... aufgerufen werden zu können.
  6. external-procedure: Prozeduren, die von einem anderen Skript definiert und in der angegebenen Datei gespeichert wurden, stehen als external-procecure zur Verfügung. Dazu muß die Datei als "external-procedure" mit lesendem Zugriff definiert und mit einem Namen (z.B. sort-proc) versehen werden, um dann im Skript mit call-external-procedure name="sort-proc"... aufgerufen werden zu können.
  7. foreign-procedure: Prozeduren, die nicht mit TXSTEP- oder TUSTEP-Mitteln erstellt ind in der angegebenen Datei gespeichert wurden, stehen als foreign-procedure zur Verfügung. Dazu muß die Datei als "foreign-procedure" mit lesendem Zugriff definiert und mit einem Namen (z.B. ged-xsl) versehen werden, um dann im Element foreign z.B. mit xslt xsource="$dest1" xdest="$dest2" procedure="$ged-xsl" saxonpath="c:/saxon" aufgerufen werden zu können.

Für existierende Dateien muss als Typ "permanent-file" angegeben werden. Ihr Format (TUSTEP- oder Fremddatei) wird automatisch festgestellt. Handelt es sich um eine Fremddatei, so kann mit dem Attribut code die dort verwendete Codierung angegeben werden. Fehlt das Attribute code, so wird anhand des ersten Satzes der Datei geprüft, ob es sich um eine in UTF-8 codierte XML-Datei handelt; wenn ja, wird code=UTF-8, andernfalls code=ANSI angenommen.

Einbindung einer in UTF-8 codierten XML-Datei mit lesendem Zugriff:
<variables>
    <variable type="permanent-file" name="source">file:///Absoluter/Pfad/zur/Datei.xml</variable>
</variables>

Bei permanenten Dateien, auf die auch geschrieben werden soll, ist zudem mit dem Attribut option anzugeben, ob bereits in dieser Datei existierende Daten überschrieben werden sollen (option="erase") oder ob die Daten ans Datei-Ende angehängt werden sollen (option="append"). Für lesenden Zugriff ist option="read" optional.

Bei neu einzurichtenden Dateien müssen außerdem Angaben zu format und - bei Fremddateien - zu code gemacht werden. Beispiel:
    <variable type="permanent-file" name="destination" format="tustep" option="erase">file:///Absoluter/Pfad/zur/Datei.tf</variable>

Für das Anlegen einer Scratch-Datei müssen nur die Attribute TYPE und NAME angegeben werden:
    <variable type="scratch-file" name="temp1"/>

Aufruf eines TXSTEP-Skripts


Im oXygen XML-Editor kann über das Menu "Werkzeuge" ein Button eingerichtet werden, über den das jeweils aktuell geöffnete Skript ausgeführt werden kann, sowie ein Button zum Anzeigen der log-Datei mit dem Ablaufprotokoll.

Steht der oXygen XML Editor nicht zur Verfügung, so können TXSTEP-Skripte auf drei verschiedene Arten aufgerufen werden:

  • Über die Eingabeaufforderung (Windows):
Absoluter\Pfad\zur\txstep.bat Absoluter\Pfad\zum\Skript\xxx.xml

  • Über "Start" > "Ausführen" (Windows). Dort Folgendes eingeben und anschliessend auf "OK" klicken:
Absoluter\Pfad\zur\txstep.bat Absoluter\Pfad\zum\Skript\xxx.xml"

  • In einer TUSTEP-Sitzung:
#makro
$$ execute "Absoluter\Pfad\zur\txstep.bat Absoluter\Pfad\zum\Skript\xxx.xml"
*eof

Anzeigen der Log-Datei


  • Über den dafür eingerichteten oXygen-Button

  • Über die Eingabeaufforderung (Windows):
Absoluter\Pfad\zur\log.bat

  • Über "Start" > "Ausführen" (Windows). Dort Folgendes eingeben und anschliessend auf "OK" klicken:
Absoluter\Pfad\zur\log.bat

Syntax in search-tables und exchange-tables

- wilhelmott wilhelmott

de.gif Eine kurze (englische) Beschreibung der Syntax, die den search- und exchange-tables zugrunde liegt, finden Sie hier.
Die Such- und Austauschtabellen erlauben umfangreiche und effiziente Such- und Austauschoperationen für eine Vielzahl von Aufgaben (Auswahl, Modifikation, Erstellung von Sortierschlüsseln, ...) in TXSTEP-Skripten.

gb.gif Please consult the short description of the syntax used in search-tables and exchange-tables which allow powerful and efficient search and replace operations for a variety of purposes (selecting, text modification, building sort keys, ...) in TXSTEP scripts.