Bei der Erstellung einer XML-Nachrichtenbaumstruktur müssen Sie auf die Reihenfolge der Felder in der Baumstruktur achten.
Reihenfolge der Felder in der Nachrichtenbaumstruktur
Bei der Erstellung einer XML-Ausgabenachricht in einem Compute-Knoten ist die Reihenfolge der ESQL-Codezeilen wichtig, da die Nachrichtenelemente in der Reihenfolge erstellt werden, in der Sie sie codieren.
<Order>
<ItemNo>1</ItemNo>
<Quantity>2</Quantity>
</Order>
Falls Sie diesem Code eine DocType-Deklaration hinzufügen möchten, fügen Sie diese ein, bevor Sie die Eingabenachricht in die Ausgabenachricht kopieren.
SET OutputRoot.XMLNS.(XML.XmlDecl) = '';
SET OutputRoot.XMLNS.(XML.XmlDecl).(XML.Version) = '1.0';
SET OutputRoot.XMLNS.(XML.DocTypeDecl)Order ='';
SET OutputRoot.XMLNS.(XML.DocTypeDecl).(XML.SystemId) = 'NewDtdName.dtd';
SET OutputRoot = InputRoot;
-- weiterer ESQL-Code --
Wenn Sie die letzten Anweisungen für das Kopieren der Eingabenachricht vor den XML-spezifischen Anweisungen einsetzen, wird für die Ausgabenachricht der folgende XML-Code generiert.
<Order>
<ItemNo>1</ItemNo>
<Quantity>2</Quantity>
</Order>
<?xml version="1.0"?>
Dieser XML-Code ist nicht korrekt formatiert; wenn er aus der Nachrichtenbaumstruktur in einen Bitstrom im Sendeknoten geschrieben wird, kommt es daher zu einem Fehler.
Feldtyp setzen
Wird eine Nachrichtenbaumstruktur von der Eingabe in die Ausgabe kopiert, ohne dass die Domäne gewechselt wird, werden die meisten Syntaxelemente vom Parser (XMLNSC oder XMLNS) erstellt, und die Feldtypen sind korrekt. Wenn Sie die Nachrichtenbaumstruktur dagegen auf Basis einer Datenbankabfrage oder anhand der Nachrichtenbaumstruktur eines anderen Parsers erstellen, müssen Sie sicherstellen, dass die einzelnen Syntaxelemente korrekt über den Feldtyp ermittelt werden. Ausführliche Hinweise zu den von XMLNSC und XMLNS verwendeten Feldtypkonstanten finden Sie in den folgenden Abschnitten: