<?xml version="1.0"?>
<xsd:schema targetNamespace="http://megasoftarrecadanet.com.br/xsd/nfse_v01.xsd" attributeFormDefault="unqualified"
            elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://megasoftarrecadanet.com.br/xsd/nfse_v01.xsd" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
    <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#"
                schemaLocation="xmldsig-core-schema20020212.xsd"/>

    <!-- definition of simple elements -->
    <xsd:simpleType name="tsNumeroNfse">
        <xsd:restriction base="xsd:nonNegativeInteger">
            <xsd:totalDigits value="15"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsCodigoVerificacao">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="9"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsStatusRps">
        <xsd:restriction base="xsd:byte">
            <xsd:pattern value="1|2"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsStatusNfse">
        <xsd:restriction base="xsd:byte">
            <xsd:pattern value="1|2"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsExigibilidadeISS">
        <xsd:restriction base="xsd:byte">
            <xsd:pattern value="1|2|3|4|5|6|7"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsNumeroProcesso">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="30"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsRegimeEspecialTributacao">
        <xsd:restriction base="xsd:byte">
            <xsd:pattern value="1|2|3|4|5|6"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsSimNao">
        <xsd:restriction base="xsd:byte">
            <xsd:pattern value="1|2"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsResponsavelRetencao">
        <xsd:restriction base="xsd:byte">
            <xsd:pattern value="1|2"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsPagina">
        <xsd:restriction base="xsd:nonNegativeInteger">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="999999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsNumeroRps">
        <xsd:restriction base="xsd:nonNegativeInteger">
            <xsd:totalDigits value="15"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsSerieRps">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="5"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsTipoRps">
        <xsd:restriction base="xsd:byte">
            <xsd:pattern value="1|2|3"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsOutrasInformacoes">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="255"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsValor">
        <xsd:restriction base="xsd:decimal">
            <xsd:totalDigits value="15"/>
            <xsd:fractionDigits value="2" fixed="true"/>
            <xsd:minInclusive value="0"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsItemListaServico">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="5"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsCodigoCnae">
        <xsd:restriction base="xsd:int">
            <xsd:totalDigits value="7"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsNumeroNbs">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="12"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsCodigoTributacao">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="20"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsAliquota">
        <xsd:restriction base="xsd:decimal">
            <xsd:totalDigits value="6"/>
            <xsd:fractionDigits value="4"/>
            <xsd:minInclusive value="0"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsDiscriminacao">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="2000"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsCodigoMunicipioIbge">
        <xsd:restriction base="xsd:int">
            <xsd:totalDigits value="7"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsInscricaoMunicipal">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="15"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsRazaoSocial">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="150"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsNomeFantasia">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="60"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsCnpj">
        <xsd:restriction base="xsd:string">
            <xsd:length value="14" fixed="true"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsEndereco">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="125"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsNumeroEndereco">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="10"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsComplementoEndereco">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="60"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsBairro">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="60"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsUf">
        <xsd:restriction base="xsd:string">
            <xsd:length value="2" fixed="true"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsCodigoPaisBacen">
        <xsd:restriction base="xsd:string">
            <xsd:length value="4"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsCep">
        <xsd:restriction base="xsd:string">
            <xsd:length value="8"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsEmail">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="80"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsTelefone">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="20"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsCpf">
        <xsd:restriction base="xsd:string">
            <xsd:length value="11" fixed="true"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsCodigoObra">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="15"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsArt">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="15"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsNumeroLote">
        <xsd:restriction base="xsd:nonNegativeInteger">
            <xsd:totalDigits value="15"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsNumeroProtocolo">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="50"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsSituacaoLoteRps">
        <xsd:restriction base="xsd:byte">
            <xsd:pattern value="1|2|3|4"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsQuantidadeRps">
        <xsd:restriction base="xsd:int">
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsCodigoMensagemAlerta">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="4"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsDescricaoMensagemAlerta">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="200"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsCodigoCancelamentoNfse">
        <xsd:restriction base="xsd:byte">
            <xsd:pattern value="1|2|3|4|5"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsIdTag">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="255"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="tsVersao">
        <xsd:restriction base="xsd:token">
            <xsd:pattern value="[1-9]{1}[0-9]{0,1}\.[0-9]{2}"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tsIdentificadorTomadorEstrangeiro">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="50"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="tsCodigoCib">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="30"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="tsInscricaoImobiliaria">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="30"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="tsCodigoEnderecoPostal">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="11"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="tsEstadoRegiaoProvincia">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="60"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="tsCidadeExterior">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="60"/>
            <xsd:minLength value="1"/>
            <xsd:whiteSpace value="collapse"/>
        </xsd:restriction>
    </xsd:simpleType>

    <!-- definition of complex elements -->
    <xsd:complexType name="tcCpfCnpj">
        <xsd:choice>
            <xsd:element name="Cpf" type="tsCpf" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="Cnpj" type="tsCnpj" minOccurs="1"
                         maxOccurs="1"/>
        </xsd:choice>
    </xsd:complexType>

    <xsd:complexType name="tcEnderecoExterior">
        <xsd:sequence>
            <xsd:element name="CodEnderecoPostal" type="tsCodigoEnderecoPostal" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="EstadoRegiaoProvincia" type="tsEstadoRegiaoProvincia"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="CidadeExterior" type="tsCidadeExterior"
                         minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcEndereco">
        <xsd:sequence>
            <xsd:element name="Endereco" type="tsEndereco" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="Numero" type="tsNumeroEndereco"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="Complemento" type="tsComplementoEndereco"
                         minOccurs="0" maxOccurs="1"/>
            <xsd:element name="Bairro" type="tsBairro" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="Cep" type="tsCep" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="EnderecoExterior" type="tcEnderecoExterior"
                         minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcContato">
        <xsd:sequence>
            <xsd:element name="Telefone" type="tsTelefone" minOccurs="0"
                         maxOccurs="1"/>
            <xsd:element name="Email" type="tsEmail" minOccurs="0"
                         maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcIdentificacaoOrgaoGerador">
        <xsd:sequence>
            <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="Uf" type="tsUf" minOccurs="1"
                         maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcIdentificacaoRps">
        <xsd:sequence>
            <xsd:element name="Numero" type="tsNumeroRps" minOccurs="1"
                         maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcIdentificacaoPrestador">
        <xsd:sequence>
            <xsd:element name="CpfCnpj" type="tcCpfCnpj" minOccurs="0"
                         maxOccurs="1"/>
            <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal"
                         minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcIdentificacaoTomador">
        <xsd:sequence>
            <xsd:choice>
                <xsd:element name="CpfCnpj" type="tcCpfCnpj" minOccurs="1" maxOccurs="1"/>
                <xsd:element name="IdentificadorTomadorEstrangeiro" type="tsIdentificadorTomadorEstrangeiro" minOccurs="1" maxOccurs="1"/>
            </xsd:choice>
            <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="InscricaoEstadual" type="tsInscricaoEstadual" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="Cooperado" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcIdentificacaoConsulente">
        <xsd:sequence>
            <xsd:element name="CpfCnpj" type="tcCpfCnpj" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal"
                         minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcIdentificacaoIntermediario">
        <xsd:sequence>
            <xsd:element name="CpfCnpj" type="tcCpfCnpj" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcDadosTomador">
        <xsd:sequence>
            <xsd:element name="IdentificacaoTomador" type="tcIdentificacaoTomador"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="RazaoSocial" type="tsRazaoSocial"
                         minOccurs="0" maxOccurs="1"/>
            <xsd:element name="Endereco" type="tcEndereco" minOccurs="1"
                         maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcDadosIntermediario">
        <xsd:sequence>
            <xsd:element name="IdentificacaoIntermediario" type="tcIdentificacaoIntermediario" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="RazaoSocial" type="tsRazaoSocial" minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcValoresDeclaracaoServico">
        <xsd:sequence>
            <xsd:element name="ValorServicos" type="tsValor"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="ValorDeducoes" type="tsValor"
                         minOccurs="0" maxOccurs="1"/>
            <xsd:element name="ValorPis" type="tsValor" minOccurs="0"
                         maxOccurs="1"/>
            <xsd:element name="ValorCofins" type="tsValor" minOccurs="0"
                         maxOccurs="1"/>
            <xsd:element name="ValorInss" type="tsValor" minOccurs="0"
                         maxOccurs="1"/>
            <xsd:element name="ValorIr" type="tsValor" minOccurs="0"
                         maxOccurs="1"/>
            <xsd:element name="ValorCsll" type="tsValor" minOccurs="0"
                         maxOccurs="1"/>
            <xsd:element name="OutrasRetencoes" type="tsValor"
                         minOccurs="0" maxOccurs="1"/>
            <xsd:element name="Aliquota" type="tsAliquota" minOccurs="0"
                         maxOccurs="1"/>
            <xsd:element name="DescontoIncondicionado" type="tsValor"
                         minOccurs="0" maxOccurs="1"/>
            <xsd:element name="DescontoCondicionado" type="tsValor"
                         minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcValoresNfse">
        <xsd:sequence>
            <xsd:element name="BaseCalculo" type="tsValor" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="Aliquota" type="tsAliquota" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="ValorIss" type="tsValor" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="Deducao" type="tsValor"
                         minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcDadosObra">
        <xsd:sequence>
            <xsd:element name="CodObra" type="tsCodigoObra" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="CodCib" type="tsCodigoCib" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="EnderecoObra" type="tcEndereco" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="InscricaoImobiliaria" type="tsInscricaoImobiliaria" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcDadosServico">
        <xsd:sequence>
            <xsd:element name="Valores"
                         type="tcValoresDeclaracaoServico" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="IssRetido" type="tsSimNao" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="CodigoTributacaoMunicipio"
                         type="tsCodigoTributacao" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="Exigibilidade" type="tsExigibilidadeISS" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="NumeroNbs"
                         type="tsNumeroNbs" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="Discriminacao" type="tsDiscriminacao"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="InfAdicional" type="tsInfAdicional" maxOccurs="1" minOccurs="0"></xsd:element>
            <xsd:element name="InfObra" type="tcDadosObra" maxOccurs="1" minOccurs="0"></xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcDadosConstrucaoCivil">
        <xsd:sequence>
            <xsd:element name="CodigoObra" type="tsCodigoObra"
                         minOccurs="0" maxOccurs="1"/>
            <xsd:element name="Art" type="tsArt" minOccurs="1"
                         maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcDadosPrestador">
        <xsd:sequence>
            <xsd:element name="IdentificacaoPrestador" type="tcIdentificacaoPrestador"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="RazaoSocial" type="tsRazaoSocial"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="NomeFantasia" type="tsNomeFantasia"
                         minOccurs="0" maxOccurs="1"/>
            <xsd:element name="Endereco" type="tcEndereco" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="Contato" type="tcContato" minOccurs="0"
                         maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcInfRps">
        <xsd:sequence>
            <xsd:element name="IdentificacaoRps" type="tcIdentificacaoRps"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="DataEmissao" type="xsd:dateTime"
                         minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="Id" type="tsIdTag"/>
    </xsd:complexType>

    <xsd:complexType name="tcInfDeclaracaoPrestacaoServico">
        <xsd:sequence>
            <xsd:element name="Rps" type="tcInfRps"
                         minOccurs="0" maxOccurs="1"/>
            <xsd:element name="Servico" type="tcDadosServico"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="Prestador" type="tcIdentificacaoPrestador"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="Tomador" type="tcDadosTomador"
                         minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="Id" type="tsIdTag"/>
    </xsd:complexType>

    <xsd:complexType name="tcDeclaracaoPrestacaoServico">
        <xsd:sequence>
            <xsd:element name="InfDeclaracaoPrestacaoServico" type="tcInfDeclaracaoPrestacaoServico" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element ref="dsig:Signature" minOccurs="0"
                         maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcIdentificacaoNfse">
        <xsd:sequence>
            <xsd:element name="Numero" type="tsNumeroNfse" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="CpfCnpj" type="tcCpfCnpj" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal"
                         minOccurs="0" maxOccurs="1"/>
            <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge"
                         minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcInfNfse">
        <xsd:sequence>
            <xsd:element name="Numero" type="tsNumeroNfse" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="CodigoVerificacao" type="tsCodigoVerificacao"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="DataEmissao" type="xsd:dateTime"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="OutrasInformacoes" type="tsOutrasInformacoes"
                         minOccurs="0" maxOccurs="1"/>
            <xsd:element name="ValoresNfse" type="tcValoresNfse"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="PrestadorServico" type="tcDadosPrestador"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="OrgaoGerador" type="tcIdentificacaoOrgaoGerador"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="DeclaracaoPrestacaoServico" type="tcDeclaracaoPrestacaoServico" minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="Id" type="tsIdTag"/>
    </xsd:complexType>

    <xsd:complexType name="tcNfse">
        <xsd:sequence>
            <xsd:element name="InfNfse" type="tcInfNfse" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element ref="dsig:Signature" minOccurs="0"
                         maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="versao" type="tsVersao" use="required"/>
    </xsd:complexType>

    <xsd:complexType name="tcInfPedidoCancelamento">
        <xsd:sequence>
            <xsd:element name="IdentificacaoNfse" type="tcIdentificacaoNfse"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="CodigoCancelamento" type="tsCodigoCancelamentoNfse"
                         minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="Id" type="tsIdTag"/>
    </xsd:complexType>

    <xsd:complexType name="tcPedidoCancelamento">
        <xsd:sequence>
            <xsd:element name="InfPedidoCancelamento" type="tcInfPedidoCancelamento"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element ref="dsig:Signature" minOccurs="0"
                         maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcConfirmacaoCancelamento">
        <xsd:sequence>
            <xsd:element name="Pedido" type="tcPedidoCancelamento"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="DataHora" type="xsd:dateTime"
                         minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="Id" type="tsIdTag"/>
    </xsd:complexType>

    <xsd:complexType name="tcCancelamentoNfse">
        <xsd:sequence>
            <xsd:element name="Confirmacao" type="tcConfirmacaoCancelamento"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element ref="dsig:Signature" minOccurs="0"
                         maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="versao" type="tsVersao" use="required"/>
    </xsd:complexType>

    <xsd:complexType name="tcRetCancelamento">
        <xsd:sequence>
            <xsd:element name="NfseCancelamento" type="tcCancelamentoNfse" minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcInfSubstituicaoNfse">
        <xsd:sequence>
            <xsd:element name="NfseSubstituidora" type="tsNumeroNfse"
                         minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="Id" type="tsIdTag"/>
    </xsd:complexType>

    <xsd:complexType name="tcSubstituicaoNfse">
        <xsd:sequence>
            <xsd:element name="SubstituicaoNfse" type="tcInfSubstituicaoNfse"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element ref="dsig:Signature" minOccurs="0"
                         maxOccurs="2"/>
        </xsd:sequence>
        <xsd:attribute name="versao" type="tsVersao" use="required"/>
    </xsd:complexType>

    <xsd:complexType name="tcCompNfse">
        <xsd:sequence>
            <xsd:element name="Nfse" type="tcNfse" minOccurs="1"
                         maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcMensagemRetorno">
        <xsd:sequence>
            <xsd:element name="Codigo" type="tsCodigoMensagemAlerta"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="Mensagem" type="tsDescricaoMensagemAlerta"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="Correcao" type="tsDescricaoMensagemAlerta"
                         minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcMensagemRetornoLote">
        <xsd:sequence>
            <xsd:element name="IdentificacaoRps" type="tcIdentificacaoRps"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="Codigo" type="tsCodigoMensagemAlerta"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="Mensagem" type="tsDescricaoMensagemAlerta"
                         minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcLoteRps">
        <xsd:sequence>
            <xsd:element name="NumeroLote" type="tsNumeroLote"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="CpfCnpj" type="tcCpfCnpj" minOccurs="1"
                         maxOccurs="1"/>
            <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal"
                         minOccurs="0" maxOccurs="1"/>
            <xsd:element name="QuantidadeRps" type="tsQuantidadeRps"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="ListaRps" minOccurs="1" maxOccurs="1">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="Rps" type="tcDeclaracaoPrestacaoServico"
                                     minOccurs="1" maxOccurs="unbounded">
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="Id" type="tsIdTag"/>
        <xsd:attribute name="versao" type="tsVersao" use="required"/>
    </xsd:complexType>

    <xsd:element name="ListaMensagemRetornoLote">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="MensagemRetorno" type="tcMensagemRetornoLote"
                             minOccurs="1" maxOccurs="unbounded"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="ListaMensagemRetorno">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="MensagemRetorno" type="tcMensagemRetorno"
                             minOccurs="1" maxOccurs="unbounded"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="ListaMensagemAlertaRetorno">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="MensagemRetorno" type="tcMensagemRetorno"
                             minOccurs="1" maxOccurs="unbounded"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="cabecalho">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="versaoDados" type="tsVersao"
                             minOccurs="1" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:attribute name="versao" type="tsVersao" use="required"/>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="CompNfse" type="tcCompNfse"/>

    <xsd:element name="GerarNfseEnvio">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="Rps" type="tcDeclaracaoPrestacaoServico" maxOccurs="1" minOccurs="1"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="GerarNfseResposta">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:choice>
                    <xsd:element name="ListaNfse" minOccurs="1" maxOccurs="1">
                        <xsd:complexType>
                            <xsd:sequence>
                                <xsd:element ref="CompNfse"
                                             minOccurs="1" maxOccurs="1"/>
                                <xsd:element ref="ListaMensagemAlertaRetorno" minOccurs="0" maxOccurs="1"/>
                            </xsd:sequence>
                        </xsd:complexType>
                    </xsd:element>
                    <xsd:element ref="ListaMensagemRetorno" minOccurs="1"
                                 maxOccurs="1"/>
                </xsd:choice>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="ConsultarNfseRpsEnvio">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="IdentificacaoRps" type="tcIdentificacaoRps"
                             minOccurs="1" maxOccurs="1"/>
                <xsd:element name="Prestador" type="tcIdentificacaoPrestador"
                             minOccurs="1" maxOccurs="1"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="ConsultarNfseRpsResposta">
        <xsd:complexType>
            <xsd:choice>
                <xsd:element ref="CompNfse" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="ListaMensagemRetorno" minOccurs="1"
                             maxOccurs="1"/>
            </xsd:choice>
        </xsd:complexType>
    </xsd:element>

    <xsd:simpleType name="tsInfAdicional">
        <xsd:restriction base="xsd:string"></xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="tsInscricaoEstadual">
        <xsd:restriction base="xsd:string"></xsd:restriction>
    </xsd:simpleType>

    <xsd:element name="NfseGerada" type="tcGeraNfseMega"></xsd:element>

    <xsd:complexType name="tcGeraNfseMega">
        <xsd:sequence>
            <xsd:element name="ListaNfse" type="tcListaNfseMega" maxOccurs="1" minOccurs="1"></xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcNfseMega">
        <xsd:sequence>
            <xsd:element name="Numero" type="tsNumeroNfse"></xsd:element>
            <xsd:element name="CodigoVerificacao"
                         type="tsCodigoVerificacao">
            </xsd:element>
            <xsd:element name="DataEmissao" type="xsd:dateTime"></xsd:element>
            <xsd:element name="ValoresNfse" type="tcValoresNfse"></xsd:element>
            <xsd:element name="PrestadorServico"
                         type="tcDadosPrestador">
            </xsd:element>
            <xsd:element name="OrgaoGerador"
                         type="tcIdentificacaoOrgaoGerador">
            </xsd:element>
            <xsd:element name="TomadorServico" type="tcDadosTomador"></xsd:element>
            <xsd:element name="CodigoTributacao" type="tsCodigoTributacao"></xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="tcListaNfseMega">
        <xsd:sequence>
            <xsd:element name="Nfse" type="tcNfseMega" maxOccurs="unbounded" minOccurs="1"></xsd:element>
        </xsd:sequence>
    </xsd:complexType>
</xsd:schema>

