Developer Guide

Implementation Guide

A step-by-step guide to integrate and use the FundsXML standard in your applications and data workflows.

Open Standard XML & XSD Backward-compatible v4.2.x
Introduction

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.

XML

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 →
XSD

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.

XML
<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.

Get Started

Quick Start

Four steps from zero to a validated FundsXML file.

1

Download the Schema

Get the latest XSD from the downloads page.

Download →
2

Create a FundsXML File

Generate a file programmatically or manually. Reference the correct schema version for validation.

Sample files →Browse the schema online →
3

Validate Your XML

Check compliance against the XSD using an IDE, online tools or a programmatic library.

CLI · Python · Java · .NET →Validate online →
4

Watch Video Tutorials

Step-by-step guides and presentations on our YouTube channel.

Go to YouTube →
The Schema

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, Fund and Asset.

Reference

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
<?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.

XML
<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.

XML
<Funds>
  <Fund>
    <Identifiers>
      <LEI>PQOH26KWDF7CG10L6792</LEI>
    </Identifiers>
    <Names>
      <OfficialName>DEMO FUND 01</OfficialName>
    </Names>
    <Currency>EUR</Currency>
    <SingleFundFlag>true</SingleFundFlag>
    ...
  </Fund>
</Funds>
Quality Assurance

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.

1

Level 1: XSD Validation

The fundamental, mandatory check. Validates structure, data types and basic requirements against the official XSD — catching most structural errors.

2

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 →
Examples

Code Examples

Equity Fund Portfolio

A portfolio holding report for a fund that primarily invests in equities. Note the <AssetType> is ‘Equity’.

XML · equity-fund.xml
<?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>
Go Deeper

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.