TIBCO Rendezvous 中用于发送处理程序的数据类型映射
仅当 TIBCO 集合提供类型信息 (xsi:type=) 时,从 XML 架构类型到 TIBCO 集合类型的映射才有可能。 如果可能,会将任何不受支持的类型映射到字符串。 如果映射不可能,或者该选项已在端口配置中被禁用,则会生成错误。
XML 架构到 TIBCO 集合数据类型映射
下表显示从 XML 架构类型到 TIBCO 集合类型的可能映射。
XML 类型 | TIBCO RV 类型 |
---|---|
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 |
其他任何内容 - 具有调试消息 | TIBRVMSG_STRING 日志。 |
由于用于 TIBCO Rendezvous 的 BizTalk 适配器无权访问架构,因此从 BizTalk Server 传输到 TIBCO Rendezvous 时,必须为任何非字符串字段提供 XML xsi:type
属性。 适配器使用该信息生成 TIBCO 集合消息中的相应消息字段类型。
消息映射示例
下面的示例演示从 BizTalk Server 到 TIBCO 集合的消息映射。 有关如何映射类型的信息,请参考数据类型映射表。
<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>
将以前的消息生成为结构化的 TIBCO 集合消息之后,该消息将成为具有六个字段的顶级 TibcoMsg 实例。 最后一个字段是一个子消息,由数组类型的两个字段组成, (“item”元素不映射到 TIBCO 会合消息字段,而是映射到一个类型 array
) 的消息字段中的元素。 未指定类型的 MarketCap 字段将作为字符串消息字段发送。