Implementation Guide
A step-by-step guide to integrate and use the FundsXML standard in your applications and data workflows.
Overview
What is FundsXML?
FundsXML is a standardized XML schema designed specifically for European fund data exchange. It provides a unified format for sharing fund information, performance data, and regulatory compliance information across financial institutions.
Regulatory Compliant
Meets EU financial data standards
High Performance
Optimized for large-scale data processing
Validation Ready
Built-in data quality assurance
Use Cases
- Fund data aggregation
- Performance reporting
- Regulatory submissions
- Data warehouse integration
- Third-party data feeds
Key Features
- Standardized fund identification
- Performance data modeling
- Risk metrics integration
- Multi-currency support
- Regulatory reporting compatibility
The Technology: XML & XSD
FundsXML is built upon two open standards: XML for structuring data and XSD for defining the rules of that structure. Understanding these will help you work with FundsXML more effectively.
eXtensible Markup Language
A markup language designed to store and transport data. Its self-describing nature makes it perfect for complex data exchange between different systems.
Learn more about XML →XML Schema Definition
A “rulebook” or “blueprint” for an XML document. It defines legal elements, data types and structure, ensuring all FundsXML files are consistent and valid.
Learn more about XSD →Linking Your XML to the Schema
Link your FundsXML file to its XSD schema in the root <FundsXML4> element using the xsi:noNamespaceSchemaLocation attribute. This tells any processing application where to find the rules that define your file.
<FundsXML4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://github.com/fundsxml/schema/releases/download/4.2.2/FundsXML.xsd">
<!-- Your FundsXML data goes here -->
</FundsXML4>All versions since 4.0.0 are backward compatible — update the URL to target a different version.
Quick Start
Four steps from zero to a validated FundsXML file.
Create a FundsXML File
Generate a file programmatically or manually. Reference the correct schema version for validation.
Sample files →Browse the schema online →Validate Your XML
Check compliance against the XSD using an IDE, online tools or a programmatic library.
CLI · Python · Java · .NET →Validate online →Understanding the Schema
The FundsXML schema is defined in an XSD file that acts as the rulebook — specifying all allowed elements, data types and hierarchies. A deep understanding of the schema is key to a successful implementation.
XSD as the Source of Truth: the definitive reference for a valid FundsXML document. It enforces data types, element order, and cardinality.
Modular Structure: different sections for different data types (portfolio, static fund, transaction data) — use only the parts you need.
Exploring the Schema: use an XML editor (FreeXmlToolkit, XMLSpy, VS Code) or an online schema viewer to explore
Portfolio,FundandAsset.
Key Schema Nodes
The schema is extensive. Browse the most important parent nodes below — switch tabs to see each node’s purpose and a sample snippet.
The root element for every FundsXML document. It holds header information like the schema version and creation timestamp, and acts as the main container for all other data nodes.
<?xml version="1.0" encoding="UTF-8"?>
<FundsXML4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://github.com/fundsxml/schema/releases/download/4.2.2/FundsXML.xsd">
<ControlData> ... </ControlData>
<Funds> ... </Funds>
<AssetMasterData> ... </AssetMasterData>
</FundsXML4>Contains metadata about the file transmission, such as sender and recipient information, file type, and timestamps. It is used for routing and processing the file correctly.
<ControlData>
<UniqueDocumentID>ID_01</UniqueDocumentID>
<DocumentGenerated>2021-11-30T16:14:04</DocumentGenerated>
<ContentDate>2021-11-30</ContentDate>
<DataSupplier>
<SystemCountry>AT</SystemCountry>
<Short>ASSETMGNT</Short>
<Name>Asset Management Company Name</Name>
<Type>Asset Manager</Type>
</DataSupplier>
<DataOperation>INITIAL</DataOperation>
<Language>EN</Language>
</ControlData>Contains all static and dynamic master data for a single fund. This includes identifiers (ISIN, LEI), fund name, management company, currency, and legal information.
<Funds>
<Fund>
<Identifiers>
<LEI>PQOH26KWDF7CG10L6792</LEI>
</Identifiers>
<Names>
<OfficialName>DEMO FUND 01</OfficialName>
</Names>
<Currency>EUR</Currency>
<SingleFundFlag>true</SingleFundFlag>
...
</Fund>
</Funds>Going further? The handbook covers every major node in dedicated chapters:
Data Validation & Quality Checks
Data quality is paramount. FundsXML provides a two-level approach to ensure your data is not only structurally correct but also logically consistent.
Level 1: XSD Validation
The fundamental, mandatory check. Validates structure, data types and basic requirements against the official XSD — catching most structural errors.
Level 2: XSLT Quality Checks
Advanced assurance. XSLT enforces complex business rules an XSD cannot — e.g. consistency between related data fields.
Tools for XSLT Transformation
XSLT transformations can be run with many tools. Professional editors like XMLSpy offer powerful features; for an open-source alternative, the FreeXmlToolkit provides robust capabilities and is a valuable community resource.
Example XSLT Checks
We provide a repository of example XSLT files to help you get started with advanced quality checks — adapt them to your specific needs.
Go to Example XSLT Checks →Code Examples
Equity Fund Portfolio
A portfolio holding report for a fund that primarily invests in equities. Note the <AssetType> is ‘Equity’.
<?xml version="1.0" encoding="UTF-8"?>
<FundsXML4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://github.com/fundsxml/schema/releases/download/4.2.2/FundsXML.xsd">
<ControlData>
<UniqueDocumentID>EAM_FUND_001</UniqueDocumentID>
<DataOperation>INITIAL</DataOperation>
</ControlData>
<Funds>
<Fund>
<Identifiers><LEI>PQOH26KWDF7CG10L6792</LEI></Identifiers>
<Names><OfficialName>DEMO FUND 01</OfficialName></Names>
<Currency>EUR</Currency>
<FundDynamicData>
<Portfolios>
<Portfolio>
<NavDate>2021-11-30</NavDate>
<Positions>
<Position>
<UniqueID>ID_24347801</UniqueID>
<TotalValue><Amount ccy="EUR">7928598.39</Amount></TotalValue>
<TotalPercentage>3.104922</TotalPercentage>
</Position>
</Positions>
</Portfolio>
</Portfolios>
</FundDynamicData>
</Fund>
</Funds>
<AssetMasterData>
<Asset>
<UniqueID>ID_24347801</UniqueID>
<Name>EUR Account</Name>
<AssetType>AC</AssetType>
</Asset>
</AssetMasterData>
</FundsXML4>Two paths to go deeper
The website covers the essentials. For runnable code in your stack, head to the examples repository. For the conceptual deep dive, read the handbook.