Muokkaa

Jaa


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.

See Also

Creating TIBCO Rendezvous Send Handlers