Browse Source
Alterando função da validação de esquema para não ser feito repetições e poder reutilizar a função só mudando o xsd;
Alterando função da validação de esquema para não ser feito repetições e poder reutilizar a função só mudando o xsd;
Foi criado a função que valida o esquema do webservice de distribuição do DFe, que não havia validações; Foi alterado o template da função de consultra distribuição do DFe, permitindo consulta via NSU.pull/230/head
3 changed files with 314 additions and 4 deletions
-
3pytrustnfe/nfe/templates/NFeDistribuicaoDFe.xml
-
297pytrustnfe/xml/schemas/distDFeInt_v1.01.xsd
-
18pytrustnfe/xml/validate.py
@ -0,0 +1,297 @@ |
|||||
|
<?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.portalfiscal.inf.br/nfe" targetNamespace="http://www.portalfiscal.inf.br/nfe" elementFormDefault="qualified" attributeFormDefault="unqualified"> |
||||
|
<xs:simpleType name="TNSU"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo número sequencial único</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:token"> |
||||
|
<xs:pattern value="[0-9]{15}"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TQNSU"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo quantidade de NSU</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:unsignedShort"> |
||||
|
<xs:minInclusive value="1"/> |
||||
|
<xs:maxInclusive value="50"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TVerDistDFe"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Versão dos leiautes do Web Service NFeDistribuicaoDFe</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:enumeration value="1.01"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TAmb"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Ambiente</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:enumeration value="1"/> |
||||
|
<xs:enumeration value="2"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TCodUfIBGE"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Código da UF da tabela do IBGE</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:enumeration value="11"/> |
||||
|
<xs:enumeration value="12"/> |
||||
|
<xs:enumeration value="13"/> |
||||
|
<xs:enumeration value="14"/> |
||||
|
<xs:enumeration value="15"/> |
||||
|
<xs:enumeration value="16"/> |
||||
|
<xs:enumeration value="17"/> |
||||
|
<xs:enumeration value="21"/> |
||||
|
<xs:enumeration value="22"/> |
||||
|
<xs:enumeration value="23"/> |
||||
|
<xs:enumeration value="24"/> |
||||
|
<xs:enumeration value="25"/> |
||||
|
<xs:enumeration value="26"/> |
||||
|
<xs:enumeration value="27"/> |
||||
|
<xs:enumeration value="28"/> |
||||
|
<xs:enumeration value="29"/> |
||||
|
<xs:enumeration value="31"/> |
||||
|
<xs:enumeration value="32"/> |
||||
|
<xs:enumeration value="33"/> |
||||
|
<xs:enumeration value="35"/> |
||||
|
<xs:enumeration value="41"/> |
||||
|
<xs:enumeration value="42"/> |
||||
|
<xs:enumeration value="43"/> |
||||
|
<xs:enumeration value="50"/> |
||||
|
<xs:enumeration value="51"/> |
||||
|
<xs:enumeration value="52"/> |
||||
|
<xs:enumeration value="53"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TCOrgaoIBGE"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Código de orgão (UF da tabela do IBGE + 90 RFB)</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:enumeration value="11"/> |
||||
|
<xs:enumeration value="12"/> |
||||
|
<xs:enumeration value="13"/> |
||||
|
<xs:enumeration value="14"/> |
||||
|
<xs:enumeration value="15"/> |
||||
|
<xs:enumeration value="16"/> |
||||
|
<xs:enumeration value="17"/> |
||||
|
<xs:enumeration value="21"/> |
||||
|
<xs:enumeration value="22"/> |
||||
|
<xs:enumeration value="23"/> |
||||
|
<xs:enumeration value="24"/> |
||||
|
<xs:enumeration value="25"/> |
||||
|
<xs:enumeration value="26"/> |
||||
|
<xs:enumeration value="27"/> |
||||
|
<xs:enumeration value="28"/> |
||||
|
<xs:enumeration value="29"/> |
||||
|
<xs:enumeration value="31"/> |
||||
|
<xs:enumeration value="32"/> |
||||
|
<xs:enumeration value="33"/> |
||||
|
<xs:enumeration value="35"/> |
||||
|
<xs:enumeration value="41"/> |
||||
|
<xs:enumeration value="42"/> |
||||
|
<xs:enumeration value="43"/> |
||||
|
<xs:enumeration value="50"/> |
||||
|
<xs:enumeration value="51"/> |
||||
|
<xs:enumeration value="52"/> |
||||
|
<xs:enumeration value="53"/> |
||||
|
<xs:enumeration value="90"/> |
||||
|
<xs:enumeration value="91"/> |
||||
|
<xs:enumeration value="92"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TCnpj"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Número do CNPJ</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:maxLength value="14"/> |
||||
|
<xs:pattern value="[0-9]{14}"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TCpf"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Número do CPF</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:maxLength value="11"/> |
||||
|
<xs:pattern value="[0-9]{11}"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TVerAplic"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Versão do Aplicativo</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="TString"> |
||||
|
<xs:minLength value="1"/> |
||||
|
<xs:maxLength value="20"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TStat"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Código da Mensagem enviada</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:maxLength value="3"/> |
||||
|
<xs:pattern value="[0-9]{3}"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TMotivo"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Motivo</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="TString"> |
||||
|
<xs:maxLength value="255"/> |
||||
|
<xs:minLength value="1"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TString"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation> Tipo string genérico</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:pattern value="[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TChNFe"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Chave da Nota Fiscal Eletrônica</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:maxLength value="44"/> |
||||
|
<xs:pattern value="[0-9]{44}"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TProt"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Número do Protocolo de Status</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:maxLength value="15"/> |
||||
|
<xs:pattern value="[0-9]{15}"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TDateTimeUTC"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Data e Hora, formato UTC (AAAA-MM-DDThh:mm:ssTZD, onde TZD = +hh:mm ou -hh:mm)</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:pattern value="(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TIe"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Inscrição Estadual do Emitente // alterado EM 24/10/08 para aceitar ISENTO</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:maxLength value="14"/> |
||||
|
<xs:pattern value="[0-9]{2,14}|ISENTO"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:simpleType name="TDec_1302"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:restriction base="xs:string"> |
||||
|
<xs:whiteSpace value="preserve"/> |
||||
|
<xs:pattern value="0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?"/> |
||||
|
</xs:restriction> |
||||
|
</xs:simpleType> |
||||
|
<xs:element name="distDFeInt"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Schema de pedido de distribuição de DF-e de interesse</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:complexType> |
||||
|
<xs:sequence> |
||||
|
<xs:element name="tpAmb" type="TAmb"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation> |
||||
|
Identificação do Ambiente: |
||||
|
1 - Produção |
||||
|
2 - Homologação |
||||
|
</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
</xs:element> |
||||
|
<xs:element name="cUFAutor" type="TCodUfIBGE" minOccurs="0"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Código da UF do Autor</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
</xs:element> |
||||
|
<xs:choice> |
||||
|
<xs:element name="CNPJ" type="TCnpj"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>CNPJ do interessado no DF-e</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
</xs:element> |
||||
|
<xs:element name="CPF" type="TCpf"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>CPF do interessado no DF-e</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
</xs:element> |
||||
|
</xs:choice> |
||||
|
<xs:choice> |
||||
|
<xs:element name="distNSU"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Grupo para distribuir DF-e de interesse</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:complexType> |
||||
|
<xs:sequence> |
||||
|
<xs:element name="ultNSU" type="TNSU"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Último NSU recebido pelo ator. Caso seja informado com zero, ou com um NSU muito antigo, a consulta retornará unicamente as informações resumidas e documentos fiscais eletrônicos que tenham sido recepcionados pelo Ambiente Nacional nos últimos 3 meses.</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
</xs:element> |
||||
|
</xs:sequence> |
||||
|
</xs:complexType> |
||||
|
</xs:element> |
||||
|
<xs:element name="consNSU"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Grupo para consultar um DF-e a partir de um NSU específico</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:complexType> |
||||
|
<xs:sequence> |
||||
|
<xs:element name="NSU" type="TNSU"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Número Sequencial Único. Geralmente esta consulta será utilizada quando identificado pelo interessado um NSU faltante. O Web Service retornará o documento ou informará que o NSU não existe no Ambiente Nacional. Assim, esta consulta fechará a lacuna do NSU identificado como faltante.</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
</xs:element> |
||||
|
</xs:sequence> |
||||
|
</xs:complexType> |
||||
|
</xs:element> |
||||
|
<xs:element name="consChNFe"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Grupo para consultar uma NF-e a partir da chave de acesso</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
<xs:complexType> |
||||
|
<xs:sequence> |
||||
|
<xs:element name="chNFe" type="TChNFe"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>Chave de acesso da NF-e a ser consultada</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
</xs:element> |
||||
|
</xs:sequence> |
||||
|
</xs:complexType> |
||||
|
</xs:element> |
||||
|
</xs:choice> |
||||
|
</xs:sequence> |
||||
|
<xs:attribute name="versao" type="TVerDistDFe" use="required"/> |
||||
|
</xs:complexType> |
||||
|
</xs:element> |
||||
|
</xs:schema> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue