Files
mars-elt/airflow/ods/lm/balancesheet/config/balancesheet.xsd
Grzegorz Michalski 2c225d68ac init
2026-03-02 09:47:35 +01:00

103 lines
3.4 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://escb.ecb.int/balancesheet"
xmlns:lm="http://exdi.ecb.int/lm"
targetNamespace="http://escb.ecb.int/balancesheet"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://exdi.ecb.int/lm" schemaLocation="../../lm_common/lm.xsd" />
<xs:element name="balanceSheetMessage">
<xs:complexType>
<xs:sequence>
<xs:element name="cbBalanceSheet" type="cbBalanceSheet" minOccurs="1" maxOccurs="unbounded" />
<xs:element name="eurosystemBalanceSheet" type="eurosystemBalanceSheet" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="cbHeader">
<xs:complexContent>
<xs:extension base="eurosystemHeader">
<xs:sequence>
<xs:element name="status" type="status" />
<xs:element name="freeText" type="lm:freeText" minOccurs="0" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="eurosystemHeader">
<xs:sequence>
<xs:element name="country" type="lm:isoCode" />
<xs:element name="referenceDate" type="xs:date" />
<xs:element name="version" type="lm:positiveInt" />
<xs:element name="dateOfTransmission" type="xs:date" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="cbBalanceSheet">
<xs:annotation>
<xs:documentation>Represents a balanceSheet for a CB</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="header" type="cbHeader" />
<xs:element name="assets" type="balanceSheetItem" minOccurs="1" />
<xs:element name="liabilities" type="balanceSheetItem" minOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="eurosystemBalanceSheet">
<xs:annotation>
<xs:documentation>Represents an aggregated balanceSheet of all CBs</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="header" type="eurosystemHeader" />
<xs:element name="assets" type="balanceSheetItem" minOccurs="1" />
<xs:element name="liabilities" type="balanceSheetItem" minOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="balanceSheetItem">
<xs:sequence>
<xs:element name="level" type="lm:positiveInt" />
<xs:element name="position" type="lm:positiveInt" />
<xs:element name="itemType" type="itemType" minOccurs="0" />
<xs:element name="fullyQualifiedPosition" type="fullyQualifiedPosition" minOccurs="0" />
<xs:element name="name" type="itemName" minOccurs="0" />
<xs:element name="amount" type="lm:amountInEuro" />
<xs:element name="item" type="balanceSheetItem" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="itemName">
<xs:restriction base="xs:string">
<xs:maxLength value="200" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="itemType">
<xs:restriction base="xs:string">
<xs:enumeration value="Asset" />
<xs:enumeration value="Liability" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fullyQualifiedPosition">
<xs:restriction base="xs:string">
<xs:pattern value="(A|L)(\.([1-9][0-9]*))+" />
<xs:maxLength value="200" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="status">
<xs:restriction base="xs:string">
<xs:enumeration value="U" />
<xs:enumeration value="B" />
<xs:enumeration value="R" />
</xs:restriction>
</xs:simpleType>
</xs:schema>