FIXML Converter

Overview

FIXML is an XML variant of message representation in the FIX Protocol. It uses the same FIX data dictionary and business logic and focuses primarily on the FIX application messages and does not provide any session layer for transport. FIXML messages can be encapsulated within the FIX Session Protocol or within another protocol such as Message Queue technologies, SOAP etc.

FIXML Converter is a Java library used to work with FIX messages, converting them between FIX and FIXML representations, as shown in the diagram below:

fixml_converter.gif

It is based on SAX API for XML parsing and serializing and on FIX Message API of the FIX Antenna Java for FIX message parsing and serializing. It has minimal overhead of CPU time and memory footprint over message parsers and serializers when converting both ways.

Features

Usage

To use FIXML Converter classes, it is necessary to add runtime libraries to the Java classpath.

Creating a FIXMLConverter Instance

First of all, get a FIXMLConverter instance. The following code snippet shows how to get it using the FIXMLConverterFactory:

FIXMLConverter fixmlConverter = new FIXMLConverterFactory().createConverter(FIXVersion.FIX50SP2);

Simple FIX to FIXML conversion

The following code snippet shows how to convert a parsed FIX message to FIXML string:

FIXMLConverter fixmlConverter = new FIXMLConverterFactory().createConverter(FIXVersion.FIX41);
String fixMessage = "8=FIX.4.1\0019=135\00135=D\00134=1\00149=BLP\00150=30737\00156=SCHB\001" +
"52=20000809-20:20:50\00197=Y\00111=90001008\0011=10030003\00121=2\001" +
"55=TESTA\00154=1\00138=4000\00140=2\00144=30\00159=0\00158=TESTA\00110=062\001";
FIXFieldList fixFieldList = RawFIXUtil.getFIXFieldList(fixMessage.getBytes());
fixmlConverter.convertToFIXML(new FIXMLConverterData(fixFieldList), System.out);

Simple FIXML to FIX conversion

The following code snippet shows how to convert a FIXML string to parsed FIX message:

FIXMLConverter fixmlConverter = new FIXMLConverterFactory().createConverter(FIXVersion.FIX44);
FIXMLConverterData fixmlConverterData = fixmlConverter.convertToFIX(System.in);
FIXFieldList fixFieldList = fixmlConverterData.getFIXFieldLists().get(0);

Advanced FIX to FIXML conversion with custom serializer

The following code snippet shows how to convert a parsed FIX message to FIXML message, using a customized XML serializer with bytestream writer:

FIXMLConverter fixmlConverter = new FIXMLConverterFactory().createConverter(FIXVersion.FIX50);
FIXFieldList fixFieldList = RawFIXUtil.getFIXFieldList(Utils.toByteArray(System.in));
OutputFormat outputFormat = new OutputFormat();
outputFormat.setEncoding("ISO-2022-JP");
outputFormat.setIndenting(true);
outputFormat.setIndent(4);
PrintWriter stringWriter = new PrintWriter(System.out);
XMLSerializer serializer = new XMLSerializer(stringWriter, outputFormat);
serializer.asContentHandler();
fixmlConverter.convertToFIXML(new FIXMLConverterData(fixFieldList), serializer);

Advanced FIXML to FIX conversion with custom XML parser

The following code snippet shows how to convert a FIXML message to parsed FIX message, using a customized XML parser with bytestream reader:

FIXMLConverter fixmlConverter = new FIXMLConverterFactory().createConverter(FIXVersion.FIX50SP1);
XMLReader xmlReader = XMLReaderFactory.createXMLReader(org.apache.xerces.parsers.SAXParser.class.getName());
FIXMLConverterData fixmlConverterData = fixmlConverter.convertToFIX(xmlReader, new InputSource(System.in));
FIXFieldList fixFieldList = fixmlConverterData.getFIXFieldLists().get(0);
Generated on Wed Aug 1 22:46:55 2012 for FIXMLConverterJava by  doxygen 1.6.3