Implementation Guide

Overview

What is FundsXML?

Regulatory Compliant

High Performance

Validation Ready

Use Cases

Key Features

The Technology: XML & XSD

XML (eXtensible Markup Language)

XML is a markup language designed to store and transport data. Unlike HTML, it doesn’t define how to display data, but rather how to describe it. Its self-describing nature makes it perfect for complex data exchange between different systems.

XSD (XML Schema Definition)

An XSD file is a “rulebook” or “blueprint” for an XML document. It defines the legal building blocks of the XML, such as the element names, data types, and structure. The FundsXML XSD ensures that all data files are consistent and valid.

Linking Your XML to the Schema

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>

Quick Start

1

Download the Schema

2

Create a FundsXML File

3

Validate Your XML

Watch Video Tutorials

Understanding the Schema

The FundsXML schema is defined in an XML Schema Definition (XSD) file. This file 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 XSD file is the definitive reference for what constitutes a valid FundsXML document. It enforces data types, element order, and cardinality.

Modular Structure: The schema is modular, with different sections for different data types (e.g., portfolio data, static fund data, transaction data). This allows you to use only the parts you need.

Exploring the Schema: Use an XML editor (like FreeXMLToolit, XMLSpy or VS Code with an XML extension) or an online schema viewer to explore the main components like PortfolioFund, and Asset. This will help you visualize the data relationships.

Key Schema Nodes

<FundsXML4>

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">
...
</FundsXML4>

<ControlData>

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>
        <Contact>
            <Email>datamanagement@company.com</Email>
        </Contact>
    </DataSupplier>
    <DataOperation>INITIAL</DataOperation>
    <Language>EN</Language>
</ControlData>

<Fund>

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

Data Validation & Quality Checks

Ensuring High-Quality Data

Level 1: XSD Validation

Level 2: XSLT Quality Checks

Tools for XSLT Transformation

Example XSLT Checks

Code Examples

Equity Fund Portfolio

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

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>
        ...
    </ControlData>
    <Funds>
        <Fund>
            <Identifiers>
                <LEI>PQOH26KWDF7CG10L6792</LEI>
            </Identifiers>
            <Names>
                <OfficialName>DEMO FUND 01</OfficialName>
            </Names>
            <Currency>EUR</Currency>
            <SingleFundFlag>true</SingleFundFlag>
            ...
            <FundDynamicData>
                <TotalAssetValues>
                    <TotalAssetValue>
                        <NavDate>2021-11-30</NavDate>
                        <TotalAssetNature>OFFICIAL</TotalAssetNature>
                        <TotalNetAssetValue>
                            <Amount ccy="EUR">255355819.05</Amount>
                        </TotalNetAssetValue>
                    </TotalAssetValue>
                </TotalAssetValues>
                <Portfolios>
                    <Portfolio>
                        <NavDate>2021-11-30</NavDate>
                        <Positions>
                            <Position>
                                <UniqueID>ID_24347801</UniqueID>
                                <Currency>EUR</Currency>
                                <TotalValue>
                                    <Amount ccy="EUR">7928598.39</Amount>
                                </TotalValue>
                                <TotalPercentage>3.104922</TotalPercentage>
                                <Account>
                                    <MarketValue>
                                        <Amount ccy="EUR">7934101.13</Amount>
                                    </MarketValue>
                                    <Interests>
                                        <Amount ccy="EUR">-5502.74</Amount>
                                    </Interests>
                                </Account>
                            </Position>
                            ...
                          </Positions>
                      </Portfolio>
                  </Portfolios>
              </FundDynamicData>
          </Fund>
      </Funds>
  <AssetMasterData>
        <Asset>
            <UniqueID>ID_24347801</UniqueID>
            <Currency>EUR</Currency>
            <Country>AT</Country>
            <Name>EUR Account</Name>
            <AssetType>AC</AssetType>
            <AssetDetails>
                <Account>
                    <Counterparty>
                        <Identifiers>
                            <LEI>PQOH26KWDF7CG10L6792</LEI>
                        </Identifiers>
                        <Name>Erste Group Bank AG</Name>
                        <Address>
                            <StreetName>Am Belvedere 1</StreetName>
                            <CityName>Vienna</CityName>
                            <CityCode>1100</CityCode>
                            <Country>AT</Country>
                        </Address>
                    </Counterparty>
                </Account>
            </AssetDetails>
            <Securitized>false</Securitized>
        </Asset>
        ...
    </AssetMasterData>
</FundsXML4>