quickfix - 配置失败:<message>不包含任何字段

Jon*_*han 5 quickfix

我正在使用带有python绑定的quickfix.在使用初始化时FIX44.xml我收到以下错误:

Traceback (most recent call last):
  File "C:\dev\my_proj\quickfix_app.py", line 1227, in start_app
    initiator = fix.SocketInitiator(self, storeFactory, settings, logFactory )
  File "C:\Users\Me\virtual_environments\my_env\lib\site-packages\quickfix.py", line 34432, in __init__
    SocketInitiatorBase.__init__(self, application, storeFactory, settings, logFactory)
  File "C:\Users\Me\virtual_environments\my_env\lib\site-packages\quickfix.py", line 34316, in __init__
    this = _quickfix.new_SocketInitiatorBase(*args)
ConfigError: Configuration failed: FIX44.xml: Configuration failed: <message> contains no fields
Run Code Online (Sandbox Code Playgroud)

错误源自以下代码中的最后一行:

settings     = fix.SessionSettings('FIX44.xml')
storeFactory = fix.FileStoreFactory( settings )
logFactory   = fix.ScreenLogFactory(settings)
initiator    = fix.SocketInitiator(self, storeFactory, settings, logFactory )
Run Code Online (Sandbox Code Playgroud)

我使用相同的错误FIX43.xml,但FIX42.xml工作正常.这些xml文件使用XML验证器签出.由于我正在使用来自quickfix网站的示例xml文件,我怀疑问题与文件有关.
什么可能导致此错误?

Jon*_*han 14

令人遗憾的是,quickfix与quickfix站点的xml不兼容.我发现以下行FIX44.xml:

<message name='XMLnonFIX' msgcat='admin' msgtype='n' />
Run Code Online (Sandbox Code Playgroud)

哪个确实没有领域.由于我不需要此消息,因此我只是删除了该行并且它可以工作.