{{indexmenu_n>2}}
====== Grundlagen ======
----
====== Aufbau eines TXSTEP-Skripts ======
\\ Ein TXSTEP-Skript beginnt immer mit der von anderen XML-Dateien bekannten **Deklaration** des verwendeten XML-Standards:\\
Darauf folgt das **Wurzeltag** für TXSTEP-Skripte "SCRIPT". Bei "SCRIPT" müssen die verwendeten Namensräume angegeben werden:\\
\\
====== 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:\\
- **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.
- **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.
- **scratch-file**: Definition von temporären TUSTEP-Dateien. Diese Dateien werden nach der Ausführung des Skripts gelöscht.
- **log-file**: Soll das Ablaufprotokoll nicht in die Standard-Log-Datei ausgegeben werden, so kann hier eine andere Datei angegeben werden.
- **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.
- **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.
- **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:\\
file:///Absoluter/Pfad/zur/Datei.xml
\\ 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:\\
file:///Absoluter/Pfad/zur/Datei.tf
\\ Für das Anlegen einer **Scratch-Datei** müssen nur die Attribute "TYPE" und "NAME" angegeben werden:\\
\\
====== Aufruf eines TXSTEP-Skripts ======
\\ Im oXygen XML-Editor kann über das Menu "Werkzeuge" ein [[txstep:erste_schritte:start#4. Arbeiten mit TXSTEP unter Windows|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]\\ \\ {{files_open:bilder:de.gif|de.gif}} Eine kurze (englische) Beschreibung der Syntax, die den search- und exchange-tables zugrunde liegt, finden Sie {{files_open:daten:par_syntax.pdf|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.\\ \\ {{files_open:bilder:gb.gif|gb.gif}} Please consult the short {{files_open:daten:par_syntax.pdf|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.