Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Sonderregister für XML PARSE-Anweisung

&pagelevel(3)&pagelevel

Die ereignisorientierte Verarbeitung eines XML-Dokuments stellt Daten zu den erkannten, syntaktischen Einheiten zu Beginn der Verarbeitungsprozedur in Sonderregistern zur Verfügung.

Datenerklärungen für die Sonderregister dürfen vom Programmierer nicht geschrieben werden. Vielmehr erzeugt sie der Compiler automatisch, wenn bei der Übersetzung des Programms die Option zur Erkennung der XML-spezifischen Schlüsselwörter eingeschaltet ist (siehe Handbuch "COBOL2000 Benutzerhandbuch“ [1], Abschnitt 10.2 „Verwenden von XML-Sprachmitteln in Programmen“). Die Sonderregister existieren nur einmal pro Ablaufeinheit und stehen auch in geschachtelten Programmen zur Verfügung.

Es gibt drei Gruppen von Sonderregistern:

  • XML-EVENT, XML-CODE:

    Die darin gelieferten Daten haben immer eine feste Länge und beschreiben ein Ereignis.

  • Für XML-Dokumente, die in einem alphanumerischen Datenfeld bereitgestellt sind:

    XML-TEXT, XML-NAMESPACE, XML-NAMESPACE-PREFIX.

    Die darin gelieferten Daten haben variable Länge und beschreiben die mit einem Ereignis zusammenhängenden Daten.

    Zur Ausnahme beim Sonderfall des Ereignisses CONTENT-NATIONAL-CHARACTER siehe auch Abschnitte „XML-TEXT" und „XML-NTEXT".

  • Für XML-Dokumente, die in einem nationalen Datenfeld bereitgestellt sind:

    XML-NTEXT, XML-NNAMESPACE, XML-NNAMESPACE-PREFIX.

    Die darin gelieferten Daten haben variable Länge und beschreiben die mit einem Ereignis zusammenhängenden Daten.

Die Sonderregister – ausgenommen XML-CODE – werden nur durch die XML PARSE-Anweisung modifiziert. Wenn sie als Empfangsfeld im Programm auftreten, führt das zu undefiniertem Verhalten. Daher haben die Sonderregister – ausgenommen XML-CODE – auch nur während der Ausführung einer XML-Anweisung einen sinnvollen Inhalt. Die Standardfunktion FUNCTION LENGTH (sonderregister) liefert bei Bedarf die aktuelle Länge der variabel langen Daten.

XML-EVENT

Dieses Sonderregister enthält zu Beginn der Verarbeitungsprozedur den Namen des gerade erkannten Ereignisses. Die möglichen Ereignisse sind in Abschnitt „Verarbeitungsprozedur" detailliert beschrieben.

Das Sonderregister entspricht einem Datenelement mit der Beschreibung

  USAGE DISPLAY PIC X(30).

XML-CODE

Dieses Sonderregister enthält zu Beginn der Verarbeitungsprozedur einen Fehlerschlüssel, wenn es sich bei dem Ereignis um 'EXCEPTION' handelt. Bei allen anderen Ereignissen enthält es den Wert 0. Die möglichen Werte für Fehlerschlüssel entnehmen Sie dem Handbuch "COBOL2000 Benutzerhandbuch“ [1], Abschnitt 10.6 "Erweiterter Ein-/Ausgabe-Zustand für XML-Anweisungen (CBX-Code)“.

Als einziges Sonderregister darf es vom Programm auch modifiziert werden, um bei der Rückkehr aus einer Verarbeitungsprozedur der XML PARSE-Anweisung die gewünschte Fortsetzung zu signalisieren (siehe Abschnitt „XML-Anweisung").

Das Sonderregister entspricht einem Datenfeld mit der Beschreibung

  USAGE COMP-5 PICTURE S9(9).

XML-TEXT

Wenn das XML-Dokument in einem alphanumerischen Datenfeld steht, enthält dieses Sonderregister zu Beginn der Verarbeitungsprozedur einen Teil des XML-Dokuments, der durch das Ereignis genau beschrieben wird.

Das Sonderregister entspricht einem Datenelement mit der Beschreibung

  USAGE DISPLAY PICTURE X ANY LENGTH,

wobei die aktuelle Länge der Länge des gelieferten Dokument-Teils (in Zeichen) entspricht. Wenn das XML-Dokument in einem nationalen Datenfeld steht, oder wenn das Ereignis END-OF-DOCUMENT, CONTENT-NATIONAL-CHARACTER oder
NAMESPACE-DECLARATION ist, ist die aktuelle Länge 0.

XML-NTEXT

Wenn das XML-Dokument in einem nationalen Datenfeld steht, enthält dieses Sonderregister zu Beginn der Verarbeitungsprozedur einen Teil des XML-Dokuments, der durch das Ereignis genau beschrieben wird.

Das Sonderregister entspricht einem Datenelement mit der Beschreibung

  USAGE NATIONAL PICTURE N ANY LENGTH,

wobei die aktuelle Länge der Länge des gelieferten Dokument-Teils (in Zeichen) entspricht. Wenn das XML-Dokument in einem alphanumerischen Datenfeld steht – außer beim Ereignis CONTENT-NATIONAL-CHARACTER –, oder wenn das Ereignis
END-OF-DOCUMENT oder NAMESPACE-DECLARATION ist, ist die aktuelle Länge 0.

XML-NAMESPACE

Wenn das XML-Dokument in einem alphanumerischen Datenfeld steht, enthält dieses Sonderregister zu Beginn der Verarbeitungsprozedur bei den Ereignissen ATTRIBUTE-NAME, DEFAULTED-ATTRIBUTE-NAME, END-OF-ELEMENT, NAMESPACE-DECLARATION und START-OF-ELEMENT den Namen des Namensraums.

Das Sonderregister entspricht einem Datenelement mit der Beschreibung

  USAGE DISPLAY PICTURE X ANY LENGTH,

wobei die aktuelle Länge die Länge des Namensraum-Namens (in Zeichen) ist. Wenn das XML-Dokument in einem nationalen Datenfeld steht oder der Namensraum leer ist oder es sich um ein anderes Ereignis handelt, ist die aktuelle Länge 0.

XML-NNAMESPACE

Wenn das XML-Dokument in einem nationalen Datenfeld steht, enthält dieses Sonderregister zu Beginn der Verarbeitungsprozedur bei den Ereignissen ATTRIBUTE-NAME, DEFAULTED-ATTRIBUTE-NAME, END-OF-ELEMENT, NAMESPACE-DECLARATION und START-OF-ELEMENT den Namen des Namensraums.

Das Sonderregister entspricht einem Datenelement mit der Beschreibung

  USAGE NATIONAL PICTURE N ANY LENGTH,

wobei die aktuelle Länge die Länge des Namensraum-Namens (in Zeichen) ist. Wenn das XML-Dokument in einem alphanumerischen Datenfeld steht oder der Namensraum leer ist oder es sich um ein anderes Ereignis handelt, ist die aktuelle Länge 0.

XML-NAMESPACE-PREFIX

Wenn das XML-Dokument in einem alphanumerischen Datenfeld steht, enthält dieses Sonderregister zu Beginn der Verarbeitungsprozedur bei den Ereignissen ATTRIBUTE-NAME, DEFAULTED-ATTRIBUTE-NAME, END-OF-ELEMENT, NAMESPACE-DECLARATION und START-OF-ELEMENT das Präfix des Namensraums.

Das Sonderregister entspricht einem Datenelement mit der Beschreibung

  USAGE DISPLAY PICTURE X ANY LENGTH,

wobei die aktuelle Länge die Länge des Präfix (in Zeichen) ist. Wenn das XML-Dokument in einem nationalen Datenfeld steht oder der Namensraum kein Präfix hat oder es sich um ein anderes Ereignis handelt, ist die aktuelle Länge 0.

XML-NNAMESPACE-PREFIX

Wenn das XML-Dokument in einem nationalen Datenfeld steht, enthält dieses Sonderregister zu Beginn der Verarbeitungsprozedur bei den Ereignissen ATTRIBUTE-NAME, DEFAULTED-ATTRIBUTE-NAME, END-OF-ELEMENT, NAMESPACE-DECLARATION und START-OF-ELEMENT das Präfix des Namensraums.

Das Sonderregister entspricht einem Datenelement mit der Beschreibung

  USAGE DISPLAY PICTURE N ANY LENGTH,

wobei die aktuelle Länge die Länge des Präfix (in Zeichen) ist. Wenn das XML-Dokument in einem alphanumerischen Datenfeld steht oder der Namensraum kein Präfix hat oder es sich um ein anderes Ereignis handelt, ist die aktuelle Länge 0.