Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Sprachelemente PROCEDURE DIVISION

&pagelevel(3)&pagelevel

Strukturorientierte Verarbeitung

Die Verarbeitung einer XML-organisierten Datei beginnt mit der OPEN-Anweisung und endet mit der CLOSE-Anweisung. Eine solche Datei enthält im Prinzip mehrere XML-Dokumente. Derzeit werden jedoch nur Dateien unterstützt, die genau ein XML-Dokument enthalten. Die Verarbeitung dieses Dokuments, insbesondere die Erzeugung der Baumdarstellung des XML-Dokuments, beginnt mit der OPEN DOCUMENT-Anweisung und endet mit der CLOSE DOCUMENT-Anweisung. Positionieren in dem XML-Baum geschieht mit der START-Anweisung. Die READ-Anweisung überträgt Daten von einem oder mehreren Knoten des XML-Baums in das Programm. Die OPEN DOCUMENT-Anweisung mit der AT-Angabe (gepaart mit einer CLOSE DOCUMENT-Anweisung) erlaubt es einen Teilbaum wie ein eigenständiges Dokument zu behandeln.

Ereignisorientierte Verarbeitung

Das zu bearbeitende XML-Dokument muss im Arbeitsspeicher bereitgestellt werden. Ein Dokument, falls erforderlich, aus einer Datei einzulesen, oder den Zeichensatz zu konvertieren usw., bleibt dem Anwenderprogramm überlassen. Die Anweisung XML PARSE bearbeitet und zerlegt ein gesamtes XML-Dokument dann schrittweise. Sobald eine syntaktische Einheit des Dokuments erkannt wurde, geht die Kontrolle vorübergehend an eine vom Anwender bereitzustellende Routine zu deren Behandlung – Verarbeitungsprozedur genannt – über (vergleichbar den Ein-/Ausgabeprozeduren einer SORT-Anweisung). In der Verarbeitungsprozedur stehen die erkannte syntaktische Einheit und zusätzliche, damit verbundene Daten in Sonderregistern für eine weitere Verarbeitung zur Verfügung. Nach Ende der Verarbeitungsprozedur wird die XML-Anweisung fortgesetzt. Dieser Wechsel zwischen XML-Anweisung und Verarbeitungsprozedur wiederholt sich solange, bis das ganze XML-Dokument verarbeitet worden ist, oder auf Grund von Fehlern keine weitere Verarbeitung möglich ist, oder das Anwenderprogramm auf die weitere Zerlegung des XML-Dokuments verzichtet.

Datenübertragung bei strukturorientierter Verarbeitung

Alles verhält sich so, als ob das XML-Dokument in der Baumform in UTF-16 dargestellt wäre, unabhängig davon, wie es tatsächlich dargestellt ist. Einzelne Daten im XML-Baum werden XML-Wert genannt und sind als Datenelemente der Kategorie national anzunehmen. Die Übertragung von Daten aus dem XML-Baum zu den Empfangsfeldern im COBOL-Programm umfasst daher ggf. auch Konvertierungen. Die Art der Übertragung wird durch die Länge des XML-Werts und die Kategorie des Empfangsfeldes bestimmt.

  • Länge des XML-Werts = 0:

    Das Empfangsfeld wird initialisiert entsprechend der Anweisung

    INITIALIZE empfangsfeld TO DEFAULT

  • Länge des XML-Werts > 0:

    • Die Kategorie des Empfangsfeldes ist national:
      Der XML-Wert wird entsprechend den Regeln für eine MOVE-Anweisung übertragen.

    • Die Kategorie des Empfangsfeldes ist alphabetisch oder alphanumerisch:
      Der XML-Wert wird entsprechend der Standard-Funktion DISPLAY-OF (ohne zweites Argument) konvertiert, und das Resultat entsprechend den Regeln für eine MOVE-Anweisung übertragen.

    • Die Kategorie des Empfangsfeldes ist numerisch:
      Aus dem XML-Wert wird entsprechend der Standard-Funktion NUMVAL-C (ohne zweites Argument) ein numerischer Wert gebildet, und dieser entsprechend den Regeln für eine MOVE-Anweisung übertragen.

Ausnahmesituationen bei strukturorientierter Verarbeitung

Zur Erzeugung der Baumdarstellung (bei der OPEN DOCUMENT-Anweisung ohne die AT-Angabe) wird das in einer Datei oder im Speicher bereitgestellte XML-Dokument in nationale Zeichendarstellung konvertiert. Wenn sich dabei Zeichen finden, die keine nationale (UTF-16-)Darstellung besitzen, tritt die Ausnahmesituation
EC-XML-CODESET-CONVERSION auf. Diese Ausnahmesituation ist NON-FATAL. An die Stelle der betroffenen Zeichen tritt im XML-Baum das Ersatzzeichen.

Nach der Übertragung eines XML-Werts in alphanumerische oder alphabetische Empfangsfelder kann die Ausnahmesituation EC-DATA-CONVERSION auftreten. An die Stelle von nicht konvertierbaren Zeichen ist dabei das Ersatzzeichen getreten. Wenn es für diese Ausnahmesituation eine USE-Prozedur gibt, die mit RESUME AT NEXT STATEMENT verlassen wird, wird der Programmlauf mit der Übertragung des nächsten XML-Werts fortgesetzt, sofern durch die READ-Anweisung mehrere XML-Werte zu übertragen sind und noch nicht alle Übertragungen erfolgt sind.

Schachtelung von Anweisungen zur Verarbeitung von XML-Dokumenten

Sowohl für die Anweisungen zur strukturorientierten Verarbeitung, als auch für die Anweisung zur ereignisorientierten Verarbeitung von XML-Dokumenten gilt folgende Einschränkung:

Das Durchlaufen von USE-Prozeduren bzw. Verarbeitungsprozeduren während der Ausführung von Anweisungen zur Verarbeitung eines XML-Dokuments – insbesondere können das die OPEN-Anweisung (siehe "OPEN-Anweisung"), die READ-Anweisung (siehe "READ-Anweisung") und die XML PARSE-Anweisung (siehe "XML-Anweisung") sein – darf nicht dazu führen, dass eine weitere derartige Anweisung ausgeführt wird.