Mapping dei tipi di dati per i gestori di trasmissione in TIBCO Rendezvous
Il mapping dai tipi di schema XML ai tipi TIBCO Rendezvous è possibile solo se TIBCO Rendezvous fornisce informazioni sul tipo (xsi:type=). Per tutti i tipi non supportati viene eseguito il mapping a stringhe, se possibile. Se il mapping non è possibile o se l'opzione è disabilitata nella configurazione delle porte, verrà generato un errore.
Mapping tra i tipi di schema XML e i tipi di dati TIBCO Rendezvous
Nella seguente tabella viene illustrato il possibile mapping dai tipi di schema XML ai tipi TIBCO Rendezvous.
Tipo XML | Tipo 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 |
Qualsiasi altro con un messaggio di debug | TIBRVMSG_STRING nel registro |
Poiché l'adapter BizTalk per TIBCO Rendezvous non ha accesso a uno schema, quando si effettua la trasmissione da BizTalk Server a TIBCO Rendezvous, è necessario fornire l'attributo xsi:type
XML per tutti i campi non stringa. L'adapter utilizza tali informazioni per generare il tipo di campi appropriato nel messaggio TIBCO Rendezvous.
Esempio di mapping di un messaggio
Nel seguente esempio viene illustrato il mapping di un messaggio da BizTalk Server a TIBCO Rendezvous. Per informazioni su come viene eseguito il mapping dei tipi di dati, fare riferimento alla relativa tabella.
<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>
Dopo che il messaggio precedente viene generato come messaggio TIBCO Rendezvous strutturato, corrisponde a un'istanza TibcoMsg principale con sei campi. Gli ultimi campi sono un messaggio secondario costituito da due campi di tipi di matrice (per gli elementi 'item' il mapping non viene eseguito ai campi del messaggio TIBCO Rendezvous, ma agli elementi in un campo del messaggio di tipo array
). Il campo MarketCap, non disponendo di alcuna specifica relativa al tipo, viene inviato come campo stringa del messaggio.