WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Mit Binärdaten arbeiten

Wenn Binärdaten oder ungültige Zeichen in XML-Daten aufgenommen werden müssen, werden diese am besten als Binärzeichenfolge codiert.

Codierung von Binärdaten für XML

Es gibt zwei Möglichkeiten, Binärdaten in einem XML-Dokument zu codieren:
hexBinary:	<nonXMLChars>0001020304050607080B0C0E0F</nonXMLChars>

base64Binary:	<nonXMLChars>AAECAwQFBgcICwwODw==</nonXMLChars>

Mit der Codierung 'base64Binary' werden die verfügbaren XML-Zeichen besser genutzt; außerdem ist ein base64-codiertes Binärfeld um ein Drittel kleiner als ein hexBinary-codiertes Feld. Weit verbreitet ist die Verwendung der Codierung 'base64Binary' für das MIME-Format und verschiedene XML-basierte Standards.

Wenn Sie Daten an Anwendungen senden, die base64-codierte Daten nicht decodieren können, und die Nachrichtengröße keine Rolle spielt, sollten Sie die einfachere hexBinary-Codierung verwenden.

Binärdaten syntaktisch analysieren

Am einfachsten können Binärdaten unter Verwendung des XMLNSC-Parsers mit einem Nachrichtenmodell syntaktisch analysiert werden:
  1. Suchen Sie nach einem XML-Schema, das Ihre Eingabe-XML beschreibt, oder erstellen Sie ein solches XML-Schema.
  2. Setzen Sie die Knoteneigenschaften im Nachrichtenfluss wie folgt:
    • Setzen Sie auf der Seite 'Standardwert' die Option Nachrichtendomäne auf XMLNSC.
    • Setzen Sie auf der Seite 'Auswertung' die Option Auswertung auf Inhalt und Wert.
    • Aktivieren Sie in den XMLNSC-Eigenschaften das Kontrollkästchen Build tree using XML Schema types (Baumstruktur mit XML-Schematypen erstellen).

Der XMLNSC-Parser decodiert die hexBinary- oder base64Binary-codierten Daten automatisch anhand des einfachen Typs des Elements oder des Attributs, das die Binärdaten enthält. Die Nachrichtenbaumstruktur enthält dann den decodierten BLOB-Wert.

Wenn Sie die XMLNS-Domäne verwenden, müssen die Binärdaten als Zeichenfolge syntaktisch analysiert werden. Sie ist dann in der Nachrichtenbaumstruktur als CHARACTER-Wert enthalten. Werden die Daten mit 'hexBinary' codiert, können Sie mit der ESQL-Funktion CAST eine Umwandlung in einen BLOB-Wert vornehmen. Wenn die Daten mit 'base64Binary' codiert werden, ist es am einfachsten, die Funktion BASE64DECODE zu verwenden. Der Abschnitt Funktion BASE64DECODE enthält weitere Informationen hierzu.

Binärdaten generieren

Binärdaten können in der Ausgabe-XML mit der hexBinary- oder base64Binary-Codierung generieren.

Bei Verwendung von 'hexBinary' müssen Sie die BLOB-Daten mit der ESQL-Anweisung CAST in eine hexBinary-Zeichenfolge umwandeln.

Bei 'base64Binary' haben Sie zwei Möglichkeiten:
  • Rufen Sie die Funktion BASE64ENCODE auf. Der Abschnitt Funktion BASE64ENCODE enthält weitere Informationen hierzu.
  • Ändern Sie wie im folgenden Beispiel das Typfeld im Syntaxelement:
    -- ESQL-Code für die Generierung von base64-codierten Binärdaten
    DECLARE myBLOB BLOB;
    -- myBLOB mit den Binärdaten füllen
    CREATE LASTCHILD OF OutputRoot.XMLNSC.message
           TYPE BITOR(XMLNSC.Attribute, XMLNSC.base64Binary)
           NAME myBase64Element
           VALUE myBLOB; 

    Beachten Sie, dass sich der logische Wert in der Nachrichtenbaumstruktur nicht ändert, wenn der Feldtyp auf 'XMLNSC.base64Binary' gesetzt wird. Im Nachrichtenfluss ist es weiterhin ein großes Binärobjekt (BLOB), und wenn Sie die Zeichenfolgedarstellung abrufen, wird es als hexBinary-Zeichenfolge aufgeführt. Wenn die Nachrichtenbaumstruktur jedoch in einen Bitstrom umgewandelt wird (in einem Ausgabeknoten oder mit dem Aufruf ASBITSTREAM), erfolgt die base64-Umwandlung automatisch und die XML-Ausgabe enthält die korrekte base64-Zeichenfolge.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:20:29


TaskthemaTaskthema | Version 8.0.0.5 | ac67173_