﻿<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.eFinanceira.gov.br/schemas/evtCadDeclarante/v1_2_0" targetNamespace="http://www.eFinanceira.gov.br/schemas/evtCadDeclarante/v1_2_0" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="../../Comum/xmldsig-core-schema.xsd"/>
  <xs:element name="eFinanceira">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="evtCadDeclarante">
          <xs:annotation>
            <xs:documentation>Evento de Informações da Entidade Declarante</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ideEvento" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                  <xs:documentation>Informações de Identificação do Evento</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="indRetificacao" minOccurs="1" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>
                            Indicativo de Retificação:
                            1 - Original
                            2 - Retificador
                            3 - Retificador a Pedido
                          </xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:unsignedInt">
                          <xs:pattern value="[1|2|3]"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="nrRecibo" minOccurs="0" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>Número do recibo do arquivo a ser retificado</xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="15"/>
                          <xs:maxLength value="49"/>
                          <xs:pattern value="[0-9]{1,18}[-][0-9]{2}[-][0-9]{3}[-][0-9]{4}[-][0-9]{1,18}"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="tpAmb" minOccurs="1" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>
                            Identificação do ambiente:
                            1 - Produção
                            2 - Homologação
                          </xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:unsignedInt">
                          <xs:pattern value="[1|2]"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="aplicEmi" minOccurs="1" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>
                            Processo de emissão do evento:
                            1- Emissão com aplicativo da empresa
                          </xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:unsignedInt">
                          <xs:pattern value="[1|2]"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="verAplic" minOccurs="1" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>Versão do aplicativo de emissão do evento</xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="20"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="ideDeclarante" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                  <xs:documentation>Informações de identificação da Entidade Declarante</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="cnpjDeclarante" minOccurs="1" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>CNPJ da Entidade Declarante</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="14"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="infoCadastro" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                  <xs:documentation>Informações de cadastro da Entidade Declarante</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="GIIN" minOccurs="0" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Global Intermediary Identification Number</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="19"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="CategoriaDeclarante" minOccurs="0" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>Tipo da categoria</xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="0"/>
                          <xs:maxLength value="8"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="NIF" minOccurs="0" maxOccurs="unbounded">
                      <xs:annotation>
                        <xs:documentation>Informações de identificação fiscal no exterior da Entidade Declarante</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="NumeroNIF" minOccurs="1" maxOccurs="1">
                            <xs:simpleType>
                              <xs:annotation>
                                <xs:documentation>Número de Identificação Fiscal no Exterior</xs:documentation>
                              </xs:annotation>
                              <xs:restriction base="xs:string">
                                <xs:minLength value="1"/>
                                <xs:maxLength value="25"/>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="PaisEmissao" minOccurs="1" maxOccurs="1">
                            <xs:simpleType>
                              <xs:annotation>
                                <xs:documentation>Pais de emissão do NIF</xs:documentation>
                              </xs:annotation>
                              <xs:restriction base="xs:string">
                                <xs:minLength value="1"/>
                                <xs:maxLength value="2"/>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="tpNIF" minOccurs="0" maxOccurs="1">
                            <xs:simpleType>
                              <xs:annotation>
                                <xs:documentation>Tipo do NIF</xs:documentation>
                              </xs:annotation>
                              <xs:restriction base="xs:string">
                                <xs:minLength value="1"/>
                                <xs:maxLength value="30"/>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="nome" minOccurs="1" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>Nome da Entidade Declarante</xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="100"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="tpNome" minOccurs="0" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>Tipo do nome da Entidade Declarante</xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="7"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="enderecoLivre" minOccurs="1" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>Endereço principal da Entidade Declarante</xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="200"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="tpEndereco" minOccurs="0" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>Tipo do endereço principal da Entidade Declarante</xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="7"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="municipio" minOccurs="1" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>Código do município da Entidade Declarante</xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:unsignedInt">
                          <xs:totalDigits value="7"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="UF" minOccurs="1" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>Sigla da Unidade da Federação da Entidade Declarante</xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="2"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="CEP" minOccurs="1" maxOccurs="1">
                      <xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>Código de Endereçamento Postal da Entidade Declarante</xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="8"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Pais" minOccurs="1" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>País do endereço da Entidade Declarante</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="2"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="paisResid" minOccurs="1" maxOccurs="unbounded">
                      <xs:annotation>
                        <xs:documentation>País de residência fiscal da Entidade Declarante</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Pais" minOccurs="1" maxOccurs="1">
                            <xs:annotation>
                              <xs:documentation>Sigla do país de residência da Entidade Declarante</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:minLength value="1"/>
                                <xs:maxLength value="2"/>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="EnderecoOutros" minOccurs="0" maxOccurs="unbounded">
                      <xs:annotation>
                        <xs:documentation>Demais endereços da Entidade Declarante</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="tpEndereco" minOccurs="0" maxOccurs="1">
                            <xs:simpleType>
                              <xs:annotation>
                                <xs:documentation>Tipo do endereço</xs:documentation>
                              </xs:annotation>
                              <xs:restriction base="xs:string">
                                <xs:minLength value="1"/>
                                <xs:maxLength value="7"/>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:choice>
                            <xs:element name="EnderecoLivre" minOccurs="0" maxOccurs="1">
                              <xs:simpleType>
                                <xs:annotation>
                                  <xs:documentation>Endereço na forma de texto livre</xs:documentation>
                                </xs:annotation>
                                <xs:restriction base="xs:string">
                                  <xs:minLength value="1"/>
                                  <xs:maxLength value="200"/>
                                </xs:restriction>
                              </xs:simpleType>
                            </xs:element>
                            <xs:element name="EnderecoEstrutura" minOccurs="0" maxOccurs="unbounded">
                              <xs:annotation>
                                <xs:documentation>Endereço na forma estruturada</xs:documentation>
                              </xs:annotation>
                              <xs:complexType>
                                <xs:sequence>
                                  <xs:element name="EnderecoLivre" minOccurs="0" maxOccurs="1">
                                    <xs:simpleType>
                                      <xs:annotation>
                                        <xs:documentation>Parte do endereço estruturado na forma de texto livre</xs:documentation>
                                      </xs:annotation>
                                      <xs:restriction base="xs:string">
                                        <xs:minLength value="1"/>
                                        <xs:maxLength value="200"/>
                                      </xs:restriction>
                                    </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="Endereco" minOccurs="0" maxOccurs="1">
                                    <xs:annotation>
                                      <xs:documentation>Dados do endereço</xs:documentation>
                                    </xs:annotation>
                                    <xs:complexType>
                                      <xs:sequence>
                                        <xs:element name="Logradouro" minOccurs="0" maxOccurs="1">
                                          <xs:simpleType>
                                            <xs:annotation>
                                              <xs:documentation>Logradouro</xs:documentation>
                                            </xs:annotation>
                                            <xs:restriction base="xs:string">
                                              <xs:minLength value="1"/>
                                              <xs:maxLength value="60"/>
                                            </xs:restriction>
                                          </xs:simpleType>
                                        </xs:element>
                                        <xs:element name="Numero" minOccurs="0" maxOccurs="1">
                                          <xs:simpleType>
                                            <xs:annotation>
                                              <xs:documentation>Número(ou outra identificação) no logradouro</xs:documentation>
                                            </xs:annotation>
                                            <xs:restriction base="xs:string">
                                              <xs:minLength value="1"/>
                                              <xs:maxLength value="10"/>
                                            </xs:restriction>
                                          </xs:simpleType>
                                        </xs:element>
                                        <xs:element name="Complemento" minOccurs="0" maxOccurs="1">
                                          <xs:simpleType>
                                            <xs:annotation>
                                              <xs:documentation>Subunidade no local identificado pelo logradouro/número</xs:documentation>
                                            </xs:annotation>
                                            <xs:restriction base="xs:string">
                                              <xs:minLength value="1"/>
                                              <xs:maxLength value="10"/>
                                            </xs:restriction>
                                          </xs:simpleType>
                                        </xs:element>
                                        <xs:element name="Andar" minOccurs="0" maxOccurs="1">
                                          <xs:simpleType>
                                            <xs:annotation>
                                              <xs:documentation>Andar da subunidade no local identificado pelo logradouro/número</xs:documentation>
                                            </xs:annotation>
                                            <xs:restriction base="xs:string">
                                              <xs:minLength value="1"/>
                                              <xs:maxLength value="10"/>
                                            </xs:restriction>
                                          </xs:simpleType>
                                        </xs:element>
                                        <xs:element name="Bairro" minOccurs="0" maxOccurs="1">
                                          <xs:simpleType>
                                            <xs:annotation>
                                              <xs:documentation>Bairro(ou alguma outra subdivisão da cidade)</xs:documentation>
                                            </xs:annotation>
                                            <xs:restriction base="xs:string">
                                              <xs:minLength value="1"/>
                                              <xs:maxLength value="40"/>
                                            </xs:restriction>
                                          </xs:simpleType>
                                        </xs:element>
                                        <xs:element name="CaixaPostal" minOccurs="0" maxOccurs="1">
                                          <xs:simpleType>
                                            <xs:annotation>
                                              <xs:documentation>Código de Caixa postal</xs:documentation>
                                            </xs:annotation>
                                            <xs:restriction base="xs:string">
                                              <xs:minLength value="1"/>
                                              <xs:maxLength value="12"/>
                                            </xs:restriction>
                                          </xs:simpleType>
                                        </xs:element>
                                      </xs:sequence>
                                    </xs:complexType>
                                  </xs:element>
                                  <xs:element name="CEP" minOccurs="1" maxOccurs="1">
                                    <xs:simpleType>
                                      <xs:annotation>
                                        <xs:documentation>Código de Endereçamento Postal do endereço</xs:documentation>
                                      </xs:annotation>
                                      <xs:restriction base="xs:string">
                                        <xs:minLength value="1"/>
                                        <xs:maxLength value="12"/>
                                      </xs:restriction>
                                    </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="Municipio" minOccurs="1" maxOccurs="1">
                                    <xs:simpleType>
                                      <xs:annotation>
                                        <xs:documentation>Município brasileiro, ou cidade no exterior</xs:documentation>
                                      </xs:annotation>
                                      <xs:restriction base="xs:string">
                                        <xs:minLength value="1"/>
                                        <xs:maxLength value="60"/>
                                      </xs:restriction>
                                    </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="UF" minOccurs="1" maxOccurs="1">
                                    <xs:simpleType>
                                      <xs:annotation>
                                        <xs:documentation>Unidade da Federação Brasileira (sigla) ou subdivisão do país estrangeiro</xs:documentation>
                                      </xs:annotation>
                                      <xs:restriction base="xs:string">
                                        <xs:minLength value="1"/>
                                        <xs:maxLength value="40"/>
                                      </xs:restriction>
                                    </xs:simpleType>
                                  </xs:element>
                                </xs:sequence>
                              </xs:complexType>
                            </xs:element>
                          </xs:choice>
                          <xs:element name="Pais" minOccurs="1" maxOccurs="1">
                            <xs:simpleType>
                              <xs:annotation>
                                <xs:documentation>País do endereço</xs:documentation>
                              </xs:annotation>
                              <xs:restriction base="xs:string">
                                <xs:minLength value="1"/>
                                <xs:maxLength value="2"/>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" use="required" >
              <xs:annotation>
                <xs:documentation>Identificador que representa unicamente o evento no sistema para a mesma empresa</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:ID">
                  <xs:minLength value="13"/>
                  <xs:maxLength value="20"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
        <xs:element ref="ds:Signature"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
