转自:http://blog.csdn.net/songzhang/article/details/1788770
3.1.5 FIXML SYNTAX FIXML语法
FIXML Highlights重要信息
·
FIXML是创建FIX消息的XML字典
·
使用同样的FIX数据字典和商业逻辑。
·
主要关注FIX应用层消息,不对会话层进行规范
·
能被封装在FIX会话层协议和其他协议,如果MQ TIBCO SOAP等协议当中。
3.1.5.1 Background背景
1998年,FPL FIXML工作组开始引入XML格式,并发布白皮书支持一个改进方法将FIX协议迁移到XML格式。工作组在1999年1月15日,发布了一个初始版本FIXML DTDs。当前版本的DTDs基于FIX4.1,4.2和4.3版。FIXML Schema 基于FIXML,紧接着在FIX4.4后发布。
1. FIX and FIXML Version and Comparison using New Order Single Message
一个“新指令消息(
New Order
)”的
FIX
和
FIXML
不同伴本的比较。
FIX tag=value Version
The following is a FIX 4.2 New Order Single message in classic tag-value pair format:
以下是
FIX4.2
版本
New Order
单一消息的经典
“符号
-
值”格式表示
8=FIX.4.2^9=251^35=D^49=AFUNDMGR^56=ABROKER^34=2^52=20030615-01:14:49^11=12345^1=111111^63=0^64=20030621^21=3^110=1000^111=50000^55=IBM^48=459200101^22=1^54=1^60=2003061501:14:49 38=5000^40=1^44=15.75^15=USD^59=0^10=127
注意:^为SOH分界符
此消息长度为
195
字节。
.
FIXML 4.2 Version
基于FIXML 4.2 DTD 的
<
FIXML
>
<
FIXMLMessage
>
<
Header
>
<
PossDupFlag
Value
="N"
/>
<
PossResend
Value
="N"
/>
<
SendingTime
>20020103-12:00:01
</SendingTime>
<
Sender
>
<
CompID
>AFUNDMGR
</CompID>
</
Sender
>
<
Target
>
<
CompID
>ABROKER
</CompID>
</
Target
>
</
Header
>
<
ApplicationMessage
>
<
Order
>
<
ClOrdID
>1968
</ClOrdID>
<
Account
>4130287
</Account>
<
HandlInst
Value
="1"
/>
<
ExDestination
Value
="L"
/>
<
Instrument
>
<
Symbol
>IBM
</Symbol>
<
SecurityID
>459200101
</SecurityID>
<
SecurityIDSource
Value
="1"
/>
</
Instrument
>
<
Side
Value
="2"
/>
<
TransactTime
>20021120-12:13:12
</TransactTime>
<
OrderQtyData
>
<
OrderQty
>1000
</OrderQty>
</
OrderQtyData
>
<
OrdType
Value
="2"
/>
<
Price
>93.25
</Price>
<
Currency
Value
="USD" />
</
Order
>
</
ApplicationMessage
>
</
FIXMLMessage
>
</
FIXML
>
长度为684字节,是FIX tag=value消息的3倍多。实际上,3-5倍
FIXML 4.4 Schema Version
FIXML 4.4 Schema.
<
FIXML
>
<
Order
ClOrdID
="123456"
Side
="2"
TransactTm
="2001-09-11T09:30:47-05:00"
OrdTyp
="2"
Px
="93.25"
Acct
="26522154">
<
Hdr
Snt
="2001-09-11T09:30:47-05:00"
PosDup
="N"
PosRsnd
="N"
SeqNum
="521">
<
Sndr
ID
="AFUNDMGR"/>
<
Tgt
ID
="ABROKER"/>
</
Hdr
>
<
Instrmt
Sym
="IBM"
ID
="459200101"
IDSrc
="1"/>
<
OrdQty
Qty
="1000"/>
</
Order
>
</
FIXML
>
长度为
348
,比原始
FIX tag=value
消息长
70%
相对前一个格式,就可阅读性而言,没有重要数据丢失。
Sample Message Content 消息内容实例
The following table is included to help clarify the message content shown above
Tag/Attribute |
Meaning |
<
FIXML
>
|
Root element
|
<Order ClOrdID="123456"
Side
="2"
TransactTm
="2001-09-11T09:30:47-05:00"
OrdTyp
="2"
Px
="93.25"
Acct
="26522154">
|
New order Client’s order ID Sell order Transaction time Limit order Limit price Customer’s account
|
<
Instrmt
Sym
="IBM"
ID
="459200101"
IDSrc
="1"/>
|
Stock symbol Stock CUSIP (ID source=CUSIP)
|
<OrdQtyQty="1000"/>
|
Order quantity
|
</Order>
|
Close of order
|
</
FIXML
>
|
Close root element
|
FIXML 4.4 Schema 设计目标
FIXML消息设计目标
这些设计目标是指
FIXML
的实例文档。
· W3C.FIXML
的实现应当遵照
W3C
的
XML
技术标准。
·
FIXML的实现应当是适合在大容量数据传输场景的实现。其目标应用:
·
Order(指令)路由
·
交易报告和交易后处理
·
产品(证券)信息分配
·
市场创建的低容量应用。Market making for lower volume applications ???
·
应当做到带宽占用的最小化。少于FIX tag=value格式长度的1.5倍。
·
在遵循前面原则的基础上,仍维持FIXML消息的可读性。
·
同FIX 4.4 tag=value相同,在FIXML里支持FpML产品规范。
·
支持FIX tag=value消息的翻译相互转换。
·
提供对ISO15022的相互参照,包括每个消息,元素和组件。
·
维持可扩展性和客户个性化
·
增加自定义消息的能力。
·
在消息、组件块 和重复组中添加自定义域的能力.
·
FIXML的实现应当提供所有层次的传输无关性。
·
FIXML的实现应当能够支持FIXML版本识别。
Design Objectives for the Schema Document
Schema文档的设计目标
·
FIXML Schema 应当使用当前事实上的,最好的XML Schema行业应用实践来实现。
·
FIMXL Schema 应当采用完全支持FIXML4.4 Schema版本方式来实现。
·
支持版本的识别。
·
提供足够的meta-data来识别FIX 域名称,组件类型,tag编号,ISO 15002库的交叉饮用。
·
保持与FpMLSchema的互操作和兼容。
The FIXML Schema shall be based upon and be compatible with the current version of XML schema:
H
http://www.w3.org/2001/XMLSchema
H