﻿<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:annotation>
        <xs:documentation>
            Título          : Mapa Balancete
            Autor           : ACSS
            Versão          : Balancete_v2_1.xsd
            Última Revisão  : 2012-04-11
        </xs:documentation>
    </xs:annotation>
    <xs:element name="Balancete">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Cabecalho">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Entidade">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Codigo" type="CodigoEntidadeTipo" />
                                        <xs:element name="Nome" type="NomeEntidadeTipo" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Periodo">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Ano" type="AnoTipo" />
                                        <xs:element name="NumeroMes" type="MesTipo" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Corpo">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Linha" maxOccurs="unbounded">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CodigoConta" type="CodigoContaTipo" />
                                        <xs:element name="MovimentosMensais" type="MontantesBalancete" />
                                        <xs:element name="PeriodoAcumulado" type="MontantesBalancete" />
                                        <xs:element name="Saldos" type="MontantesBalancete" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="CodigoEntidadeTipo">
        <xs:restriction base="xs:integer">
            <xs:totalDigits value="9" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="NomeEntidadeTipo">
        <xs:restriction base="xs:string">
            <xs:maxLength value="256" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="AnoTipo">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="2011" />
            <xs:maxInclusive value="2020" />
            <xs:totalDigits value="4" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="MesTipo">
        <xs:restriction base="xs:integer">
            <xs:enumeration value="1" />
            <xs:enumeration value="2" />
            <xs:enumeration value="3" />
            <xs:enumeration value="4" />
            <xs:enumeration value="5" />
            <xs:enumeration value="6" />
            <xs:enumeration value="7" />
            <xs:enumeration value="8" />
            <xs:enumeration value="9" />
            <xs:enumeration value="10" />
            <xs:enumeration value="11" />
            <xs:enumeration value="12" />
            <xs:enumeration value="13" />
            <xs:enumeration value="14" />
            <xs:enumeration value="15" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ValorMonetarioTipo">
        <xs:restriction base="xs:decimal">
            <xs:totalDigits value="14" />
            <xs:fractionDigits value="2" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="CodigoContaTipo">
        <xs:restriction base="xs:string">
            <xs:minLength value="2" />
            <xs:maxLength value="20" />
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="MontantesBalancete">
        <xs:sequence>
            <xs:element name="Debito" type="ValorMonetarioTipo" />
            <xs:element name="Credito" type="ValorMonetarioTipo" />
        </xs:sequence>
    </xs:complexType>
</xs:schema>

