In diesem Abschnitt erfahren Sie, wie Sie Nachrichten behandeln, die zur MIME-Domäne gehören und vom MIME-Parser syntaktisch analysiert werden. Verwenden Sie diese Informationen in Verbindung mit den Informationen im Abschnitt Inhalt des Hauptteils einer Nachricht bearbeiten.
Die logische Baumstruktur kann mit ESQL bearbeitet werden, bevor die Nachricht an andere Knoten im Nachrichtenfluss übergeben wird. Ein Nachrichtenfluss kann auch unter Verwendung von ESQL eine MIME-Domänenbaumstruktur erstellen. Wenn eine MIME-Domänennachricht den Sendeknoten erreicht, wird der MIME-Parser aufgerufen, um den Bitstrom auf Basis der logischen Baumstruktur wiederherzustellen.
CREATE FIELD OutputRoot.MIME TYPE Name; DECLARE M REFERENCE TO OutputRoot.MIME; CREATE LASTCHILD OF M TYPE Name NAME 'Data';
DECLARE partData BLOB ASBITSTREAM(InputRoot.XML); CREATE LASTCHILD OF M.Data DOMAIN('BLOB') PARSE(partData);
DECLARE partData BLOB ASBITSTREAM(InputRoot.XML); CREATE LASTCHILD OF M.Data DOMAIN('BLOB') NAME 'BLOB'; CREATE LASTCHILD OF M.Data.BLOB NAME 'BLOB' VALUE partData;
Mit beiden Methoden wird dieselbe Baumstruktur erstellt. Die erste Methode wird empfohlen, da das explizite Konstruktionswissen über die Baumstruktur, das vom BLOB-Parser gefordert wird, nicht in den Fluss eingebaut wird.
DECLARE part1Data BLOB ASBITSTREAM(InputRoot.XML.part1); DECLARE part2Data BLOB ASBITSTREAM(InputRoot.XML.part2); SET OutputRoot.Properties.ContentType = 'multipart/related; boundary=myBoundary'; CREATE FIELD OutputRoot.MIME TYPE Name; DECLARE M REFERENCE TO OutputRoot.MIME; CREATE LASTCHILD OF M TYPE Name NAME 'Parts'; CREATE LASTCHILD OF M.Parts TYPE Name NAME 'Part'; DECLARE P1 REFERENCE TO M.Parts.Part[1]; CREATE FIELD P1."Content-Type" TYPE NameValue VALUE 'text/plain'; CREATE FIELD P1."Content-Id" TYPE NameValue VALUE 'part one'; CREATE LASTCHILD OF P1 TYPE Name NAME 'Data'; CREATE LASTCHILD OF P1.Data DOMAIN('BLOB') PARSE(part1Data); CREATE LASTCHILD OF M.Parts TYPE Name NAME 'Part'; DECLARE P2 REFERENCE TO M.Parts.Part[2]; CREATE FIELD P2."Content-Type" TYPE NameValue VALUE 'text/plain'; CREATE FIELD P2."Content-Id" TYPE NameValue VALUE 'part two'; CREATE LASTCHILD OF P2 TYPE Name NAME 'Data'; CREATE LASTCHILD OF P2.Data DOMAIN('BLOB') PARSE(part2Data);
SET OutputRoot = InputRoot; -- Check to see if the MIME message is multipart or not. IF LOWER(InputProperties.ContentType) LIKE 'multipart/%' THEN CREATE LASTCHILD OF OutputRoot.MIME.Parts NAME 'Part'; DECLARE P REFERENCE TO OutputRoot.MIME.Parts.[<]; CREATE FIELD P."Content-Type" TYPE NameValue VALUE 'text/xml'; CREATE FIELD P."Content-ID" TYPE NameValue VALUE 'new part'; CREATE LASTCHILD OF P TYPE Name NAME 'Data'; -- This is an artificial way of creating some BLOB data. DECLARE newBlob BLOB '4f6e652074776f2074687265650d0a'; CREATE LASTCHILD OF P.Data DOMAIN('BLOB') PARSE(newBlob); END IF;
SET OutputRoot.Properties.ContentType = 'text/plain';Richten Sie den Inhaltstyp-Wert nicht direkt in der MIME-Baumstruktur oder in HTTP-Baumstrukturen ein, da der Wert in diesem Fall ignoriert oder inkonsistent verwendet wird.