Funktion
Die START-Anweisung positioniert auf Elemente bzw. Attribute in dem XML-Dokument und ordnet sie Datenfeldern in der FD zu.
Format
START dateiname-1 {ATTRIBUTE | ELEMENT} datenname-1 [INDEX IS {bezeichner-1 | ganzzahl-1}]
[INVALID KEY unbedingte-anweisung-1]
[NOT INVALID KEY unbedingte-anweisung-2
]
[END-START]
Syntaxregeln
dateiname-1 muss der Name einer XML-organisierten Datei sein.
datenname-1 darf gekennzeichnet sein.
datenname-1 muss mit einer IDENTIFIED-Klausel beschrieben und der Datei dateiname-1 untergeordnet sein.
bezeichner-1 muss als ganzzahliges numerisches Datenelement definiert sein.
Wenn in der START-Anweisung ATTRIBUTE angegeben ist, muss die IDENTIFIED-Klausel in der Datenerklärung von datenname-1 die ATTRIBUTE-Angabe haben.
Wenn in der START-Anweisung ELEMENT angegeben ist, muss die IDENTIFIED-Klausel in der Datenerklärung von datenname-1 explizit oder implizit die ELEMENT-Angabe haben.
Die INDEX-Angabe ist nicht zulässig, wenn die IDENTIFIED-Klausel in der Datenerklärung von datenname-1 die BY- und die ATTRIBUTE-Angabe hat.
Allgemeine Regeln
Wenn die Datei dateiname-1 nicht geöffnet ist, ist die START-Anweisung nicht erfolgreich. Der Ein-/Ausgabe-Zustand der Datei wird auf 47 gesetzt.
Wenn in der Datei dateiname-1 kein XML-Dokument geöffnet ist, ist die START-Anweisung nicht erfolgreich. Der Ein-/Ausgabe-Zustand der Datei wird auf 4D gesetzt.
Wenn das datenname-1 direkt übergeordnete Datenfeld keine gültige Position hat, oder datenname-1 die Stufennummer 1 und keine gültige Position hat, ist die START-Anweisung nicht erfolgreich. Der Ein-/Ausgabe-Zustand der Datei wird auf 25 gesetzt, d.h. eine Schlüsselfehler-Bedingung existiert.
Die START-Anweisung führt eine Zuordnung aus (siehe Abschnitt „Sprachelemente DATA DIVISION"), überträgt jedoch keine Daten. Wenn im ersten Schritt dieses Zuordnungsvorgangs kein Knoten aus dem XML-Baum zugeordnet werden kann, ist die START-Anweisung nicht erfolgreich. Der Ein-/Ausgabe-Zustand wird auf 23 gesetzt, d.h. eine Schlüsselfehler-Bedingung existiert.
Wenn die Namen in den bei der Zuordnung wirkenden IDENTIFIED-Klauseln nicht eindeutig sind (siehe "IDENTIFIED-Klausel", allgemeine Regel 9 auf "IDENTIFIED-Klausel"), ist die START-Anweisung nicht erfolgreich. Der Ein-/Ausgabe-Zustand der Datei wird auf 4C gesetzt.
Wenn sich einzelne Attribut- bzw. Elementnamen aus den bei der Zuordnung wirkenden IDENTIFIED-Klauseln nicht im Zeichensatz UTF-16 darstellen lassen, ist die START-Anweisung nicht erfolgreich. Der Ein-/Ausgabe-Zustand der Datei wird auf 4E gesetzt.
Bei der Zuordnung ist im ersten Schritt auf der COBOL-Seite nur das Datenfeld datenname-1 zu betrachten. Dazu dann im XML-Baum alle Kinder – in der Reihenfolge vom ältesten zum jüngsten Kind – des Knotens, der dem datenname-1 direkt übergeordneten Datenfeld zugeordnet ist. Wenn datenname-1 die Stufennummer 1 hat, ist im XML-Baum nur der datenname-1 zugeordnete Knoten zu betrachten.
Wenn INDEX angegeben ist, zeigt ganzzahl-1 bzw. der Inhalt von bezeichner-1 an, der wievielte Knoten aus der Menge aller Knoten aus dem XML-Baum, die im ersten Schritt der Zuordnung prinzipiell zugeordnet werden können, durch die Anweisung dem datenname-1 tatsächlich zugeordnet werden soll. Wenn der angegebene Wert kleiner als 1 oder größer als 231 - 1 ist, ist das Verhalten undefiniert.
Die Fortsetzung des Ablaufs der START-Anweisung hängt davon ab, ob INVALID KEY oder NOT INVALID KEY angegeben ist (siehe Abschnitt „Schlüsselfehler-Bedingung").