XML (Extensible Markup Language) ist eine logische Auszeichnungssprache, mit der Dokumente in Elemente strukturiert werden können. Mit XML kann der Anwender eine eigene Sprachsyntax definieren, z.B mit Hilfe einer DTD (Document Type Definition) oder eines XML-Schemas (XSD).
Die XML-Schnittstelle von openUTM (kurz UTM-XML) ist eine Programmschnittstelle, mit der sich XML-Dokumente lesen, bearbeiten und neu erstellen lassen. Außerdem können XML-Dokumente gegenüber XML-Schemata validiert werden.
Diese Schnittstelle wird innerhalb von UTM-Teilprogrammen aufgerufen und steht für die Programmiersprachen C, C++ und COBOL zur Verfügung.
Als Kommunikationsschnittstelle kann jede der in diesem Kapitel beschriebenen Schnittstellen verwendet werden (KDCS, CPI-C oder XATMI). Außerdem ist UTM-XML auch in openUTM-Clients einsetzbar.
Ein einfacher Einsatzfall wie z.B. das Bearbeiten eines XML-Dokuments im KDCS-Teilprogramm sieht wie folgt aus:
Lesen der Daten mit MGET
Das XML-Dokument wird in den Nachrichtenbereich eingelesen.
Bearbeiten der Daten über die UTM-XML-Schnittstelle
Das XML-Dokument wird in einen Objektbaum konvertiert und die einzelnen Elemente werden bearbeitet. Nach vollständiger Bearbeitung wird das XML-Objekt wieder in ein XML-Dokument überführt.
Für die Datentyp-Konvertierung wird eine eigene Struktur verwendet (t_value-Struktur).
Senden des XML-Dokuments mit MPUT
Das bearbeitete XML-Dokument wird im Nachrichtenbereich bereitgestellt und an den Auftraggeber zurückgeschickt.
Wird ein XML-Dokument interaktiv in mehreren Dialogschritten (= Teilprogrammen) bearbeitet, dann muss der Programmierer dafür sorgen, dass der Kontext erhalten bleibt. Dazu gibt es 2 Möglichkeiten:
Das XML-Objekt wird in ein XML-Dokument konvertiert und zwischenzeitlich in einem geeigneten UTM-Speicherbereich gesichert, z.B. KB, LSSB oder GSSB, siehe "UTM-Speicherbereiche".
Das Programm verwendet den KDCS-Aufruf PGWT. PGWT verhindert einen Prozesswechsel und erhält den gesamten Programmkontext.
Übersicht: C/C++-Aufrufe der UTM-XML-Schnittstelle
C/C++-Aufruf | Beschreibung |
KXLInitEnv | Initialisierung der UTM-XML-Umgebung |
KXLFromdatentyp | Konvertierung von datentyp in die t_value-Struktur |
KXLTodatentyp | Konvertierung von der t_value-Struktur in datentyp |
KXLCreateNewObj | Erzeugen eines XML-Objekts |
KXLSetSubObject | Navigieren im XML-Objekt |
KXLRead | Lesen eines XML-Objekts |
KXLConvDocToObj | Konvertieren zwischen XML-Objekt und XML-Dokument, |
KXLGetHomeEnc | Zeichensatz ermitteln/setzen und Konvertieren von/in UTF8 |
KXLWriteNS | Namensräume verwalten |
KXLGetSizeOfNodeList | Größe einer Node List abfragen |
KXLTSENV | Diagnosefunktionen |
KXLConvDocToObjAndValid | Unterstützung der Schema-Funktionalität |
COBOL-Schnittstelle
Die COBOL-Schnittstelle wird über einen Adaptermodul aufgerufen, beim Aufruf wird die gewünschte Funktion in Form von Parametern übergeben. Dazu wird ein COPY-Element verwendet, das den Parameterbereich beschreibt. Dieser Bereich muss vor dem Aufruf versorgt werden, die Parameter entsprechen den Parametern der zugehörigen C-Funktion.
Die COBOL-Schnittstelle enthält gegenüber C/C++ die zusätzliche Funktion KXLSchemaGetRoot, mit der der Root-Knoten des Schema-Objekts angefordert werden kann. In C/C++ kann dies direkt per Sprachmittel realisiert werden.
Weitere Informationen zur UTM-XML-Schnittstelle finden Sie im Handbuch „XML für openUTM“. |