Data Type Mapping for Send Handlers in TIBCO Rendezvous
The mapping from XML schema types to TIBCO Rendezvous types is only possible if TIBCO Rendezvous provides type information (xsi:type=). Any unsupported types are mapped to strings if it is possible. If mapping is not possible, or if the option is disabled in the port configuration, an error is generated.
XML Schema to TIBCO Rendezvous Data Type Mapping
The following table shows the possible mapping from XML schema types to TIBCO Rendezvous types.
XML Type | TIBCO RV Type |
---|---|
TIBRVMSG_MSG | |
TIBRVMSG_XML | |
xsd:dateTime | TIBRVMSG_DATETIME |
xsd:boolean | TIBRVMSG_BOOL |
xsd:byte | TIBRVMSG_I8 |
xsd:short | TIBRVMSG_I16 |
xsd:int | TIBRVMSG_I32 |
xsd:long | TIBRVMSG_I64 |
xsd:unsignedByte | TIBRVMSG_U8 |
xsd:unsignedShort | TIBRVMSG_U16 |
xsd:unsignedInt | TIBRVMSG_U32 |
xsd:unsignedLong | TIBRVMSG_U64 |
xsd:float | TIBRVMSG_F32 |
xsd:double | TIBRVMSG_F64 |
tibrv:IPaddress | TIBRVMSG_IPADDR32 |
tibrv:IPport | TIBRVMSG_IPPORT16 |
tibrv:arrayOfByte | TIBRVMSG_I8ARRAY |
tibrv:arrayOfShort | TIBRVMSG_I16ARRAY |
tibrv:arrayOfInt | TIBRVMSG_I32ARRAY |
tibrv:arrayOfLong | TIBRVMSG_I64ARRAY |
tibrv:arrayOfUnsignedByte | TIBRVMSG_U8ARRAY |
tibrv:arrayOfUnsignedShort | TIBRVMSG_U16ARRAY |
tibrv:arrayOfUnsignedInt | TIBRVMSG_U32ARRAY |
tibrv:arrayOfUnsignedLong | TIBRVMSG_U64ARRAY |
tibrv:arrayOfFloat | TIBRVMSG_F32ARRAY |
tibrv:arrayOfDouble | TIBRVMSG_F64ARRAY |
Anything else - with a debug message | TIBRVMSG_STRING the log. |
Because BizTalk Adapter for TIBCO Rendezvous does not have access to a schema, when you transmit from BizTalk Server to TIBCO Rendezvous, you must provide the XML xsi:type
attribute for any non-string field. The adapter uses that information to generate the appropriate message field type in the TIBCO Rendezvous message.
Message Mapping Example
The following example demonstrates mapping a message from BizTalk Server to TIBCO Rendezvous. Refer to the data type mapping table for information about how types are mapped.
<ns:QuoteUpdate xmlns:xsi http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd http://www.w3.org/2001/XMLSchema"
xmlns:tibrv="http://schemas.microsoft.com/TibcoRendezvous/Types"
xmlns:ns="some namespace for this message [value not important, unless the schema is also used for receive ports]">
<ns:SymbolName id=1 xsi:type="xsd:string">MSFT</ns:SymbolName>
<ns:LastTrade id=2 xsi:type="xsd:double">28.40</ns:LastTrade>
<ns:DayLow id=3 xsi:type="xsd:double">28.25</ns:DayLow>
<ns:DayHigh |
id=4 xsi:type="xsd:double">28.40</ns:DayHigh> |
<ns:MarketCap |
id=10>262575234981</ns:MarketCap> |
<ns:Bids |
id=100 xsi:type="tibrv:message"> |
<ns:TopBids id=1 xsi:type="tibrv:arrayOfDouble">
<item>28.40</item>
<item>28.39</item>
<item>28.39</item>
<item>28.39</item>
<item>28.38</item>
</ns:TopBids>
<ns:BidsSize id=2 xsi:type="tibrv:arrayOfLong">
<item>500</item>
<item>1000</item>
<item>100</item>
<item>100</item>
<item>2000</item>
</ns:BidsSize>
</ns:Bids>
</ns:QuoteUpdate>
After the previous message is generated as a structured TIBCO Rendezvous message, it would be a top-level TibcoMsg instance with six fields. The last fields are a sub-message, composed of two fields of array types (the 'item' elements are not mapped to TIBCO Rendezvous Message fields, but to elements in one Message Field of type array
). The MarketCap field, having no type specification, would be sent as a string message field.