X4 Streaming Support
Dieser Adapter nimmt ein XML oder XML-Fragment (well-nested) und erzeugt daraus ein Dokument, das als Ausgabe für den ReST Starter verwendet werden kann. Innerhalb dieses XML(-Fragments) wird nach Stream
-Elementen im Namensraum x4feature:reststream
gesucht. Diese werden in die Ausgabe übernommen, während alle anderen Teile Base64-kodiert werden. Somit lassen sich XML-Dokumente als ReST-Ausgabe erzeugen in denen ein Stream Base64-kodiert eingebettet ist (z. B. eine SOAP-Response, wenn nicht mit MTOM gearbeitet wird).
Eigenschaften (Properties)
Operation | Bestimmt, welche Operation der Funktions-Adapter durchführt Mögliche Werte: |
Parameter
Adapter | Hauptklasse des Adapters (nicht verändern!) Mögliche Werte: de.softproject.integration.adapter.reststreamsupport.RestStreamSupportAdapter: Hauptklasse (Standard) |
inputEncoding | Zeichenkodierung des Input-Dokuments Mögliche Werte: Beliebige gültige Zeichenkodierung (z. B. |
Statuswerte
1 | Die Operation wurde erfolgreich ausgeführt. |
0 | Die Operation wurde erfolgreich ausgeführt, jedoch ohne Ergebnis. |
-1 | Die Operation ist aufgrund eines technischen Fehlers fehlgeschlagen. |
Input
Der Adapter-Input kann wie folgt aufgebaut sein:
<?xml version="1.0" encoding="UTF-8"?>
<RootElement>
<SomeElementBefore>Text</SomeElementBefore>
<ContainerForTheStream>
<Stream xmlns="x4feature:reststream" url="xstore://SomeProject/someData.xml" transcoding="base64-UTF-8"/>
</ContainerForTheStream>
<SomeElementAfter>More Text</SomeElementAfter>
</RootElement>
Output
Folgende XML-Struktur wird vom Adapter ausgegeben:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Status code="200"/>
<Headers/>
<Content encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPFJvb3RFbGVtZW50PgoJPFNv
bWVFbGVtZW50QmVmb3JlPlRleHQ8L1NvbWVFbGVtZW50QmVmb3JlPgoJPENvbnRhaW5lckZvclRo
ZVN0cmVhbT4=<Stream xmlns="x4feature:reststream" url="xstore://SomeProject/someData.xml" transcoding="base64-UTF-8"></Stream>
PC9Db250YWluZXJGb3JUaGVTdHJlYW0+Cgk8U29tZUVsZW1lbnRBZnRlcj5Nb3JlIFRleHQ8L1Nv
bWVFbGVtZW50QWZ0ZXI+CjwvUm9vdEVsZW1lbnQ+
</Content>
</Response>
Diese Ausgabe kann sofort an den ReST-Starter zurückgegeben werden, oder erst noch mit entsprechenden Headern versehen werden.
Inhalt von xstore://SomeProject/someData.xml
<?xml version="1.0" encoding="UTF-8"?>
<Hallo><Welt/></Hallo>
Ergebnis der ReST-Antwort
<?xml version="1.0" encoding="UTF-8"?>
<RootElement>
<SomeElementBefore>Text</SomeElementBefore>
<ContainerForTheStream>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxIYWxsbz48V2VsdC8+PC9IYWxsbz4=</ContainerForTheStream>
<SomeElementAfter>More Text</SomeElementAfter>
</RootElement>
Derzeit gibt es keine Unterstützung wenn ein Stream in ein Attribut eingesetzt werden soll. In diesem Fall muss das entsprechende Element und Attribut mit Base64-Strings im Content
-Element zusammengebaut werden.