Command Line FundsXML - CSV Converter

Open source command line tool for conversion of CSV data to FundsXML format and vice versa:
  • Both conversion directions with same simple mapping definition
  • Built in format and content check with detailled error protocol
  • Single file conversion and batch mode
  • Fully customizable via mapping definition
Command Line Parameters - Single Files
Conversion from CSV to FundsXML:
convert -c c2x -i input.csv -m mapping.csv -o output.xml -e errors.csv Conversion from FundsXML to CSV:
convert -c x2c -i input.xml -m mapping.csv -t template.csv -o output.csv -e errors.csv
Command Line Parameters - Batch Mode
Conversion from CSV to FundsXML:
convert -c c2x -i input\*.csv -m holdings-mapping.csv -o output\*.xml -e error -l log.csv -p processed -r counter Conversion from FundsXML to CSV:
convert -c x2c -i input\*.xml -m holdings-mapping.csv -t holdings-template.csv -o output\*.csv -e error -l log.csv -p processed -r counter Additional parameters for batch conversion:
-e error ............ Directory for files with errors in input files
-l log.csv .......... Protocol with list of processed files and status
-p processed ........ Directory of processed input files
-r counter .......... Directory of counter definitions
Mapping Definition Columns
Column NameM/OContent Description
CSV_OPMOperation: "CHANGE", "FIX", "IF", "MAP", "UNIQUE" or "VAR"
CSV_CONTENTMColumn name, constant value (FIX) or pattern (VAR)
CSV_CONTENT2MSecond column name (optional)
CSV_MOO"M" (Mandatory) or "O" (Optional)
CSV_TYPEMType: "BOOLEAN", "DATE", "DATETIME", "INTEGER", "NUMBER", "TEXT"
CSV_FORMATORegex-Format: e.g. "DD.MM.YYYY", "[A-Z]{3}", "(YES,NO)", "(EQ,BO,SC,OP,FU,FX,AC)"
CSV_MIN_LENOMinimum length of content
CSV_MAX_LENOMaximum length of content
CSV_DEFAULTODefault value
CSV_CONDITIONOCondition: e.g. "CCY != FUND_CCY"
XML_OPMOperation: "FIX", "IF", "LOOP", "MAP", "VAR"
XML_CONTENTMXPath (without root node), constant value (FIX) or pattern (VAR)
XML_MOO"M" (Mandatory) or "O" (Optional)
XML_TYPEMType: "BOOLEAN", "DATE", "DATETIME", "INTEGER", "NUMBER", "TEXT"
XML_FORMATORegex-Format: e.g. "(CALL,PUT)", "(true,false)"
XML_MIN_LENOMinimum length of content
XML_MAX_LENOMaximum length of content
XML_DEFAULTODefault value
XML_CONDITIONOCondition: e.g. "@ccy = Funds/Fund/Currency"
Mapping Sample
CSV_OPCSV_CONTENTCSV_TYPEXML_OPXML_CONTENTXML_TYPE
FIXSAMPLE.2019-01-10.12345TEXTMAPControlData/UniqueDocumentIDTEXT
VARNOWDATETIMEMAPControlData/DocumentGeneratedDATETIME
MAPNAV_DATEDATEMAPControlData/ContentDateDATE
FIXEUTEXTMAPControlData/DataSupplier/SystemCountryTEXT
FIXSDSTEXTMAPControlData/DataSupplier/ShortTEXT
FIXSample Data SupplierTEXTMAPControlData/DataSupplier/NameTEXT
FIXGenericTEXTMAPControlData/DataSupplier/TypeTEXT
FIXENTEXTMAPControlData/LanguageTEXT
CHANGELEITEXTLOOPFunds/Fund 
MAPLEITEXTMAPFunds/Fund/Identifiers/LEITEXT
MAPFUND_NAMETEXTMAPFunds/Fund/Names/OfficialNameTEXT
MAPFUND_CCYTEXTMAPFunds/Fund/CurrencyTEXT
FIXtrueBOOLEANMAPFunds/Fund/SingleFundFlagBOOLEAN
MAPFUND_LEGAL_STRUCTURETEXTMAPFunds/Fund/FundStaticData/ListedLegalStructureTEXT
Download FundsXML-CSV-Converter Version 1.02
New in V1.02: Support for two header lines in csv files (if matching column names defined in CSV_CONTENT or CSV_CONTENT2)


ZIP-file containing Windows executable, source code and sample files (1.8 MB)