2 Syntax: xsltproc Values.xsl FIX44.xml
5 <xsl:stylesheet xmlns:
xsl=
"http://www.w3.org/1999/XSL/Transform" version=
"1.0">
6 <xsl:output method=
"text" encoding=
"UTF-8"/>
8 <xsl:template match=
"text()"/>
9 <xsl:template match=
"/">/* DO NOT EDIT
10 * This file is autogenerated
11 * Look fix/README for more information how to generate this file
15 typedef struct _fix_field {
16 int tag; /* FIX tag */
21 <xsl:apply-templates/>
26 translate(@description,$uppercase,$smallcase)
29 <xsl:variable name=
"smallcase" select=
"'abcdefghijklmnopqrstuvwxyz'" />
30 <xsl:variable name=
"uppercase" select=
"'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
32 <xsl:template match=
"fix/fields">
33 <xsl:for-each select=
"field[value]">
34 <xsl:variable name=
"val_type" >
36 <xsl:when test=
"@type='STRING'"> string_string
</xsl:when>
37 <xsl:when test=
"@type='MULTIPLESTRINGVALUE'"> string_string
</xsl:when>
38 <xsl:otherwise> value_string
</xsl:otherwise>
41 static const
<xsl:copy-of select=
"$val_type" /> <xsl:value-of select=
"@name"/>_val[] = {
<xsl:for-each select=
"value"> <xsl:choose>
42 <xsl:when test=
"../@type='INT'">
43 {
<xsl:value-of select=
"@enum"/>,
"<xsl:value-of select="translate(@description,'_',' ')
"/>" },
</xsl:when>
44 <xsl:when test=
"../@type='STRING'">
45 {
"<xsl:value-of select="@enum
"/>",
"<xsl:value-of select="translate(@description,'_',' ')
"/>" },
</xsl:when>
46 <xsl:when test=
"../@type='MULTIPLESTRINGVALUE'">
47 {
"<xsl:value-of select="@enum
"/>",
"<xsl:value-of select="translate(@description,'_',' ')
"/>" },
</xsl:when>
49 { '
<xsl:value-of select=
"@enum"/>',
"<xsl:value-of select="translate(@description,'_',' ')
"/>" },
</xsl:otherwise>
58 <xsl:template match=
"fix/messages">
59 static const string_string messages_val[] = {
<xsl:for-each select=
"message">
60 {
"<xsl:value-of select="@msgtype
"/>",
"<xsl:value-of select="@name
"/>" },
</xsl:for-each>