﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://www.cga.pt" elementFormDefault="qualified" targetNamespace="http://www.cga.pt" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="justificativo_regularizacao_quotas">
	  <xs:complexType>
		<xs:sequence>
		  <xs:element minOccurs="1" maxOccurs="1" name="titulo" type="xs:string"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="servico" type="tns:entidade"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="subscritor" type="tns:entidade"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="periodo" type="tns:periodo"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="totais" type="tns:totais"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="data_emissao" type="xs:date"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="moeda" type="tns:moeda"/>
		  <xs:element minOccurs="0" maxOccurs="1" name="linhas" nillable="true" type="tns:linhas"/>
		</xs:sequence>
		<xs:attributeGroup ref="tns:versao"/>
		</xs:complexType>
</xs:element>
  
 <xs:simpleType name="moeda">
	<xs:restriction base="xs:string">
	  <xs:enumeration value="EUR"/>
	  <xs:enumeration value="PTE"/>
	</xs:restriction>
  </xs:simpleType>  
  
  <xs:simpleType name="valor_decimal">
    <xs:restriction base="xs:decimal">
      <xs:totalDigits value="16"/>
      <xs:fractionDigits value="2"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:attributeGroup name="versao">
    <xs:attribute name="versao" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="1.0"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
      
  <xs:complexType name="entidade">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="numero" type="xs:int"/>
      <xs:element minOccurs="1" maxOccurs="1" name="nome" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="periodo">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="inicio" type="xs:date"/>
      <xs:element minOccurs="1" maxOccurs="1" name="fim" type="xs:date"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="totais">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="quotas" type="tns:valor_decimal"/>
      <xs:element minOccurs="1" maxOccurs="1" name="contribuicoes" type="tns:valor_decimal"/>
      <xs:element minOccurs="1" maxOccurs="1" name="juros" type="tns:valor_decimal"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="linhas">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="linha" nillable="true" type="tns:linha"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="linha">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="data_efeito" type="xs:date"/>
      <xs:element minOccurs="1" maxOccurs="1" name="natureza" type="xs:string"/>
      <xs:element minOccurs="1" maxOccurs="1" name="dias" type="tns:valor_decimal"/>
      <xs:element minOccurs="1" maxOccurs="1" name="remuneracao" type="tns:valor_decimal"/>
      <xs:element minOccurs="1" maxOccurs="1" name="taxa_quotas" type="tns:valor_decimal"/>
      <xs:element minOccurs="1" maxOccurs="1" name="quotas" type="tns:valor_decimal"/>
      <xs:element minOccurs="1" maxOccurs="1" name="taxa_contribuicoes" type="tns:valor_decimal"/>
      <xs:element minOccurs="1" maxOccurs="1" name="contribuicoes" type="tns:valor_decimal"/>
      <xs:element minOccurs="1" maxOccurs="1" name="juros" type="tns:valor_decimal"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>


