Datentypzuordnung für Sendehandler in TIBCO Rendezvous
Die Zuordnung zwischen XML-Schematypen und TIBCO Rendezvous-Typen ist nur möglich, wenn TIBCO Rendezvous Typinformationen (xsi:type=) bereitstellt. Alle nicht unterstützten Typen werden nach Möglichkeit Zeichenfolgen zugeordnet. Wenn keine Zuordnung möglich ist oder wenn die Option in der Portkonfiguration deaktiviert ist, wird ein Fehler generiert.
Datentypzuordnung zwischen XML-Schema und TIBCO Rendezvous
In der folgenden Tabelle wird die mögliche Zuordnung zwischen XML-Schematypen und TIBCO Rendezvous-Typen aufgezeigt.
XML-Typ | TIBCO RV-Typ |
---|---|
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 |
Alle anderen Elemente – mit einer Debugmeldung | TIBRVMSG_STRING – das Protokoll |
Da der BizTalk-Adapter für TIBCO Rendezvous keinen Zugriff auf ein Schema hat, müssen Sie beim Übertragen von BizTalk Server an TIBCO Rendezvous das XML-Attribut xsi:type
für alle Nicht-Zeichenfolgenfelder angeben. Der Adapter generiert anhand dieser Informationen den geeigneten Nachrichtenfeldtyp in der TIBCO Rendezvous-Nachricht.
Beispiel für Nachrichtenzuordnung
Das folgende Beispiel veranschaulicht das Zuordnen einer Nachricht zwischen BizTalk Server und TIBCO Rendezvous. Informationen zum Zuordnen von Typen finden Sie in der vorstehenden Tabelle für Datentypzuordnung.
<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>
Nachdem die vorherige Nachricht als strukturierte TIBCO Rendezvous-Nachricht generiert wurde, ist sie nun eine TibcoMsg-Instanz der obersten Ebene mit sechs Feldern. Die letzten Felder sind eine Unternachricht, die aus zwei Feldern von Arraytypen besteht (die Elementelemente sind nicht TIBCO Rendezvous Message-Feldern zugeordnet, sondern Elementen in einem Nachrichtenfeld vom Typ array
). Das Feld MarketCap ohne Typspezifikation würde als Nachrichtenfeld vom Typ Zeichenfolge gesendet.