EGL-Bibliothek 'XMLLib'
In diesem Thema werden die XMLLib-Funktionen und -Variablendefinitionen beschrieben.
Die folgende Tabelle enthält eine Liste der Systemfunktionen in der Bibliothek 'XMLLib'.
| Systemfunktion und Aufruf | Beschreibung |
|---|---|
| convertFromXML (XML-Zeichenfolge in, Variable out) | Konvertiert eine XML-Zeichenfolge in einen nicht strukturierten Datensatz. |
| Ergebnis = convertToXML (Variable in) | Konvertiert einen nicht strukturierten Datensatz in eine XML-Zeichenfolge. |
Hinweise zu Kompatibilität und Einschränkungen für die COBOL-Generierung:
- Für alle Systeme gilt:
- Die EGL-Sprache übergibt nur flexible Datensätze an die Funktionen in XMLLib. Der Debugger, JavaGen oder RUI unterstützen keine strukturierten Datensätze als Argumente für die XMLLib-Funktionen. Daher werden diese strukturieren Datensätze auch von CobolGen nicht unterstützt. Um diese Einschränkung zu umgehen, können Sie jederzeit einen kompatiblen flexiblen Datensatz aus Ihren strukturieren Datensätzen erstellen und mittels einer Anweisung zum Verschieben nach Namen die Daten dort hinein- oder heraus verschieben.
- Der Debugger, JavaGen und RUI können ein Feld des Typs ANY, das an die XMLLib-Funktion übergeben werden soll, zwar verarbeiten, CobolGen jedoch nicht. Das liegt daran, dass CobolGen vom Generator die Generierung von COBOL-Code erfordert, der für den übergebenen EGL-Datensatz spezifisch ist. Damit wird die Fähigkeit eingeschränkt, ein Feld vom Typ ANY als Funktionsargument zu übergeben.
- EGL unterstützt dynamische Feldgruppen, sowohl dynamische Feldgruppen von Zeichenfolgen, Zeichen und anderen primitiven Typen als auch dynamische Feldgruppen von Datensätzen. Mehrere Ebenen von dynamischen Feldgruppen werden von EGL jedoch nicht unterstützt. Das hat zur Folge, dass Sie keine dynamischen Feldgruppen von Datensätzen codieren können, die einen Datensatz enthalten, der ebenfalls eine dynamische Feldgruppe ist.
- Wenn Sie dynamische Feldgruppen im flexiblen Datensatz verwenden, beträgt die Standardanzahl der Einträge 100. Wenn für die dynamische Feldgruppe eine Anfangsgröße angegeben ist, wird diese Größe verwendet, es sei denn, sie wird von der Anmerkung maxSize für diese dynamische Feldgruppe überschrieben. MaxSize wird als erste Wahl für die Größe verwendet, gefolgt von der Anfangsgröße und dann dem Standardwert 100. Dem Generator muss eine Größe angegeben werden, da für den COBOL-Compiler eine COBOL-Struktur mit fester Länge erstellt werden muss.
- Wenn Sie Zeichenfolgen in einem flexiblen Datensatz verwenden, beträgt die Standardlänge 256 Zeichen, es sei denn, die Anmerkung maxLen ist angegeben. MaxLen wird als erste Wahl für die Maximalgröße verwendet, gefolgt vom dem Standardwert 256. Dem Generator muss eine Länge angegeben werden, da für den COBOL-Compiler eine COBOL-Struktur mit fester Länge erstellt werden muss.
- Die Maximallänge der Zeichenfolge, die von den XMLLib-Funktionen erstellt oder verwendet wird, beträgt 32.767 Zeichen. Jedoch kann die maximal zulässige Länge von dem symbolischen Parameter MAXIMUMSTRINGSIZE überschrieben werden. Deshalb können bei Bedarf auch größere Längen verwendet werden. Beachten Sie, dass dies die Maximalgröße aller Zeichenfolgen betrifft, die mit dem symbolischen Parameter generiert werden. Im Grunde kann sie sich allgemein auf die Arbeitsbereiche des COBOL-Compilers und die Größe des Programm-Lademoduls auswirken. Beachten Sie außerdem, dass das Programm bei der Übergabe einer längeren Zeichenfolge an ein anderes Programm auch die erhöhte MAXIMUMSTRINGSIZE (maximale Zeichenfolgelänge) benötigt. Andernfalls könnten einige Zeichenfolgedaten bei der Verwendung abgeschnitten werden.
- Sie können mehr als ein Vorkommen desselben Datensatzes als Teil des übergebenen flexiblen Datensatzes definieren, solange sich diese Vorkommen an der obersten Ebene befinden. Allerdings kann derselbe Datensatz nicht mehr als einmal als Teil eines eingebetteten Datensatzes definiert werden.
- Folgende EGL-Anmerkungen werden von Rational Business Developer unterstützt: @XMLRootElement, @XMLElement und @XMLAttribute (zu iSeries beachten Sie die folgende Einschränkung für Attribute).
- Die Anmerkungen @XMLRootElement, @XMLElement und @XMLAttribute können den Anmerkungs-Unterwert 'Name' unterstützen. Wenn der Unterwert für die Anmerkung 'Name' definiert ist, wird er verwendet. Andernfalls wird der Feldname so belassen, wie er ist, ohne Umwandlung in Großbuchstaben.
- Für iSeries-Systeme gilt:
- Wenn Sie die Funktion 'convertToXML' verwenden, unterstützt der iSeries COBOL-Compiler das Attributargument nicht. Das hat zur Folge, dass keines der Attribute xxx="...", die in XML erstellt werden, bei der XML-Erstellung auftritt. Die generierte COBOL-Quelle jedoch, die EGL produziert, unterstützt alle eingehenden Attribute. Dies bedeutet, dass die Funktion 'convertFromXML' Attribute in XML unterstützt, auch wenn der iSeries-COBOL-Compiler dies nicht tut.