Red Hat Training

A Red Hat training course is available for JBoss Enterprise SOA Platform

13.3.7. XStreamToObject

Input Type java.lang.String
Output Type User Object (specified by "incoming-type" property)
Class org.jboss.soa.esb.actions.converters.XStreamToObject
Takes the XML bound as the Message payload and converts it into an Object using the XStream processor. .

Table 13.5. XStreamToObject Properties

Property Description Required
class-alias
Class alias used during serialization. Defaults to the input Object's class name.
No
exclude-package
Flag indicating whether or not the XML includes a package name.
YES
incoming-type
Class type.
Yes
root-node
Specify a different root node than the actual root node in the XML. Takes an XPath expression.
No
aliases
Specify additional aliases to help XStream to convert the XML elements to Objects
No
attribute-aliases
Specify additional attribute aliases to help XStream to convert the XML attributes to Objects
No
fieldAliases
Field aliases to be added to Xstream.
No
implicit-collections
Which will be registered with Xstream
No
converters
Specify converters to help Xstream to convert the XML elements and attributes to Objects.
No

Example 13.6. Sample Configuration

<action name="transform" class="org.jboss.soa.esb.actions.converters.XStreamToObject">
    <property name="class-alias" value="MyAlias" />
    <property name="exclude-package" value="true" />
    <property name="incoming-type" value="com.acme.MyXXXClass" />
    <property name="root-node" value="/rootNode/MyAlias" />
    <property name="aliases">
        <alias name="alias1" class="com.acme.MyXXXClass1/>
        <alias name="alias2" class="com.acme.MyXXXClass2/>
        ...
    </property>
    <property name="attribute-aliases">
        <attribute-alias name="alias1" class="com.acme.MyXXXClass1"/>
        <attribute-alias name="alias2" class="com.acme.MyXXXClass2"/>
        ...
    </property>
    <property name="fieldAliases">
        <field-alias alias="aliasName" definedIn="className" fieldName="fieldName"/>
        <field-alias alias="aliasName" definedIn="className" fieldName="fieldName"/>
        ...
    </property>
    <property name="implicit-collections">
        <implicit-colletion class="className" fieldName="fieldName" fieldType="fieldType" 
            itemType="itemType"/>
        ...
    </property>
    <property name="converters">
        <converter class="className" fieldName="fieldName" fieldType="fieldType"/>
        ...
    </property>
</action>