Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal.
Tenho muito pouca experiencia com arquivos XML apesar do meu sistema gerar arquivos mensalmente, já por um bom tempo.
Trabalhamos sob regimento do Banco Central e necessitamos enviar informaçoes periodicas por documento XML.
Um novo arquivo foi solicitado. O sistema já gerou o sistema conforme especificações, mas falta a validação do arquivo para envio e ai está meu grande problema.
Meu arquivo XML esta assim:
<?xml version="1.0" encoding="UTF-8"?>
<Doc5300 codigo-documento="5300" data-base="2014-12" cnpj="12345678" tipo-remessa="I">
<cooperados>
<cooperado pessoa="1" identificacao="00000000000">
<relacionamentos-encerrados>
<relacionamento inicio="1994-10-07" fim="2000-12-01"/>
<relacionamento inicio="2000-09-22" fim="1899-12-30"/>
</relacionamentos-encerrados>
</cooperado>
<cooperado pessoa="1" identificacao="00000122700">
<relacionamentos-encerrados>
<relacionamento inicio="2001-12-03" fim="2011-05-19"/>
</relacionamentos-encerrados>
</cooperado>
</cooperados>
</Doc5300>
E o XSD que está no endereço http://www.bcb.gov.br/Fis/pstaw10/5300.xsd está assim:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="Doc5300" type="Doc5300ComplexType"/>
<xs:complexType name="Doc5300ComplexType">
<xs:sequence>
<xs:element name="cooperados" type="CooperadosComplexType"/>
</xs:sequence>
<xs:attribute name="data-base" type="xs:gYearMonth"/>
<xs:attribute name="tipo-remessa" type="TipoRemessaSimpleType"/>
<xs:attribute name="cnpj" type="CnpjSimpleType"/>
<xs:attribute name="codigo-documento" type="codigoDocumentoSimpleType"/>
</xs:complexType>
<xs:simpleType name="codigoDocumentoSimpleType">
<xs:restriction base="xs:integer">
<xs:pattern value="5300"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CooperadosComplexType">
<xs:sequence>
<xs:element name="cooperado" type="CooperadoComplexType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CooperadoComplexType">
<!--
Pode ocorrer relacionamento-atual e relacionamento-encerrados ou ao menos um dos dois.
-->
<xs:choice>
<xs:sequence>
<xs:element name="relacionamento-atual" type="RelacionamentoAtualComplexType" minOccurs="1"/>
<xs:element name="relacionamentos-encerrados" type="RelacionamentosEncerradoComplexType" minOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element name="relacionamentos-encerrados" type="RelacionamentosEncerradoComplexType" minOccurs="1"/>
</xs:sequence>
</xs:choice>
<xs:attribute name="pessoa" type="PessoaSimpleType" use="required"/>
<xs:attribute name="identificacao" type="CnpjOuCpfSimpleType" use="required"/>
</xs:complexType>
<xs:complexType name="RelacionamentoAtualComplexType">
<xs:choice>
<xs:sequence>
<xs:element name="municipio" type="xs:integer"/>
<xs:element name="operacoes-como-titular" type="OperacoesComoTitularComplexType"/>
<xs:element name="capital-integralizado" type="PositivoComCentavosSimpleType"/>
<xs:element name="capital-a-integralizar" type="PositivoComCentavosSimpleType"/>
</xs:sequence>
<xs:sequence></xs:sequence>
</xs:choice>
<xs:attribute name="inicio" type="xs:date" use="required"/>
</xs:complexType>
<xs:complexType name="RelacionamentoEncerradoComplexType">
<xs:attribute name="inicio" type="xs:date" use="required"/>
<xs:attribute name="fim" type="xs:date" use="required"/>
</xs:complexType>
<xs:complexType name="RelacionamentosEncerradoComplexType">
<xs:sequence>
<xs:element name="relacionamento" type="RelacionamentoEncerradoComplexType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="OperacoesComoTitularComplexType">
<xs:sequence>
<xs:element name="conta-corrente" type="SimOuNaoSimpleType"/>
<xs:element name="deposito-a-prazo" type="SimOuNaoSimpleType"/>
<xs:element name="deposito-sob-aviso" type="SimOuNaoSimpleType"/>
<xs:element name="op-credito" type="SimOuNaoSimpleType"/>
<xs:element name="outros" type="SimOuNaoSimpleType"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="TipoRemessaSimpleType">
<xs:restriction base="xs:string">
<!-- I - Inclusão S - Substituição -->
<xs:pattern value="I|S"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CnpjSimpleType">
<xs:restriction base="xs:integer">
<xs:pattern value="[0-9]{8}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PessoaSimpleType">
<xs:restriction base="xs:integer">
<!--
1 – Pessoa Física residente no país 2 – Pessoa Jurídica domiciliada no país 3 – Pessoa Física residente no exterior 4 – Pessoa Jurídica domiciliada no exterior
-->
<xs:pattern value="[1-4]"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CnpjOuCpfSimpleType">
<xs:restriction base="xs:integer">
<xs:pattern value="[0-9]{11,14}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PositivoComCentavosSimpleType">
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="2"/>
<xs:minInclusive value="0"/>
<xs:pattern value="\d+\.\d{2}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SimOuNaoSimpleType">
<xs:restriction base="xs:string">
<!-- Sim | Não -->
<xs:pattern value="S|N"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Quando valido o arquivo me apresenta a seguinte mensagem:
Invalid byte 2 of 3-byte UTF-8 sequence.
Tenho dúvida quanto ao XSD estar de acordo com o XML.
Preciso da ajuda de vcs.
Obrigado.
Carregando comentários...