﻿<?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="encargos_pensoes">
	  <xs:complexType>
		<xs:sequence>
		  <xs:element minOccurs="1" maxOccurs="1" name="mes_processamento" type="xs:date"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="data_emissao" type="xs:date"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="entidade" type="tns:entidade"/>
		  <xs:element minOccurs="0" maxOccurs="1" name="movimentos" nillable="true" type="tns:movimentos"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="valor_total" type="tns:ValorSinal"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="numero_registos" type="xs:int"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="reservado1" nillable="true" type="xs:string"/>
		  <xs:element minOccurs="1" maxOccurs="1" name="reservado2" nillable="true" type="xs:string"/>
		</xs:sequence>
		<xs:attributeGroup ref="tns:versao"/>
	  </xs:complexType>
  </xs:element>
  
  <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:simpleType name="reporte_valor">
	<xs:restriction base="xs:string">
	  <xs:enumeration value="PM"/>
	  <xs:enumeration value="SN"/>
	  <xs:enumeration value="14"/>
	  <xs:enumeration value="RT"/>
	</xs:restriction>
  </xs:simpleType>

  <xs:complexType name="entidade">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="codigo" type="xs:int"/>
      <xs:element minOccurs="1" maxOccurs="1" name="nome" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="movimentos">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="movimento" nillable="true" type="tns:movimento"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="movimento">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="conta" type="xs:string"/>
      <xs:element minOccurs="1" maxOccurs="1" name="tipo_abono" nillable="true" type="xs:string"/>
      <xs:element minOccurs="1" maxOccurs="1" name="numero_utente" type="xs:int"/>
      <xs:element minOccurs="1" maxOccurs="1" name="sufixo_utente" nillable="true" type="xs:int"/>
      <xs:element minOccurs="1" maxOccurs="1" name="data_direito" nillable="true" type="xs:date"/>
      <xs:element minOccurs="1" maxOccurs="1" name="data_1abono" nillable="true" type="xs:date"/>
      <xs:element minOccurs="1" maxOccurs="1" name="valor" type="tns:ValorSinal"/>
      <xs:element minOccurs="1" maxOccurs="1" name="reporte_valor" type="tns:reporte_valor"/>
      <xs:element minOccurs="0" maxOccurs="1" name="tipo_movimento" nillable="true" type="xs:string"/>
      <xs:element minOccurs="1" maxOccurs="1" name="motivo" nillable="true" type="xs:string"/>
      <xs:element minOccurs="1" maxOccurs="1" name="nome_utente" type="xs:string"/>
      <xs:element minOccurs="1" maxOccurs="1" name="nome_produtor" nillable="true" type="xs:string"/>
      <xs:element minOccurs="1" maxOccurs="1" name="reservado" nillable="true" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ValorSinal">
    <xs:simpleContent>
      <xs:extension base="tns:valor_decimal">
        <xs:attribute name="sinal" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:schema>





