FMS6 - Import Schema - Chart of Accounts
Chart of Accounts Validation XSD
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 2 U (http://www.xmlspy.com) by XMLSPY 5 Professional Ed. Release 2 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="GLAccounts">
<xs:annotation>
<xs:documentation>Comment describing your root element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Header">
<xs:annotation>
<xs:documentation>Provides details of the school providing the export and when the export was made.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="LANumber">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0123456789]{3}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SchoolNumber">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0123456789]{4}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SchoolName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\w|\W){1,50}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ExportDate" type="xs:date"/>
<xs:element name="FinancialYearID" type="xs:integer"/>
<xs:element name="FinancialYearDescription">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\w|\W){1,9}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="FinancialYearStartDate" type="xs:date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RevenueCodes" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="LedgerCodes">
<xs:complexType>
<xs:sequence>
<xs:element name="LedgerCode" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Lists all ledger codes of type EX, ES and IN</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="LedgerType"/>
<xs:element ref="LedgerCode"/>
<xs:element ref="LedgerDescription"/>
<xs:element ref="LedgerGroup"/>
<xs:element name="ShortCode" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\w|\W){1,8}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="NormalProfile">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\w|\W){1,32}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="NormalVAT" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([0-9]{1})|([A-Z]{1})"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Services" type="xs:boolean" minOccurs="0"/>
<xs:element name="Funds">
<xs:complexType>
<xs:sequence>
<xs:element name="Fund" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="FundCode"/>
<xs:element name="CFRCode" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(E|I|CE|CI)[0123456789]{2}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Funds">
<xs:complexType>
<xs:sequence>
<xs:element name="Fund" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Lists all funds to support the EX, ES, and IN ledger codes</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="FundCode"/>
<xs:element name="Description">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\w|\W){1,22}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="LEACode" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\w|\W){1,9}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ExcludefromCFR" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VATCodes">
<xs:complexType>
<xs:sequence>
<xs:element name="VATCode" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Lists all VAT type ledger codes to support the EX, ES, and IN ledger codes</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="VATType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="VI"/>
<xs:enumeration value="VO"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element ref="LedgerCode"/>
<xs:element ref="LedgerDescription"/>
<xs:element ref="LedgerGroup"/>
<xs:element name="VATCode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="1"/>
<xs:pattern value="([0-9]{1})|([A-Z]{1})"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="VATRate">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="99.99"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BalanceCodes" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="BKTypes" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="BKType">
<xs:annotation>
<xs:documentation>Lists all Bank type ledger codes</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="LedgerGroup"/>
<xs:element ref="LedgerDescription"/>
<xs:element name="AccountName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\w|\W){1,50}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SortCode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0123456789]{2}-[0123456789]{2}-[0123456789]{2}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="AccountNumber">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0123456789]{1,15}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="AccountCode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="1"/>
<xs:pattern value="[0..9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="BACSUserNumber" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0123456789]{6}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="BACSBureauNumber">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="B[1234567890]{5}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="BACSExclHeadTrailRecs" type="xs:boolean"/>
<xs:element ref="LedgerCode"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OtherTypes" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="OtherType">
<xs:annotation>
<xs:documentation>Lists all other types of ledger code not covered above</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="LedgerType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="AO"/>
<xs:enumeration value="CC"/>
<xs:enumeration value="CP"/>
<xs:enumeration value="DC"/>
<xs:enumeration value="FC"/>
<xs:enumeration value="LS"/>
<xs:enumeration value="PC"/>
<xs:enumeration value="PY"/>
<xs:enumeration value="RE"/>
<xs:enumeration value="FD"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element ref="LedgerCode"/>
<xs:element ref="LedgerDescription"/>
<xs:element ref="LedgerGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CostCentres" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="CostCentre" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Lists all Cost Centres</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Code">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]{1,9}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Description">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\w|\W){1,32}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Abbreviation">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\w|\W){1,12}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Holder" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="0"/>
<xs:maxLength value="25"/>
<xs:pattern value="(\w|\W){1,25}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Threshold">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="999"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CheckSpending" type="xs:boolean"/>
<xs:element name="Links" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Link" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Lists the Ledger codes and fund linked to this cost centre</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="LedgerCode"/>
<xs:element ref="FundCode"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Version" use="required" fixed="0.03"/>
</xs:complexType>
</xs:element>
<xs:element name="LedgerType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="EX"/>
<xs:enumeration value="ES"/>
<xs:enumeration value="IN"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="LedgerCode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]{1,8}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="LedgerDescription">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\w|\W){1,32}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="LedgerGroup">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\w|\W){1,32}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="FundCode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{2}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>