docs: def _obtem_doctype(self, xml):
          """Obtém DOCTYPE do XML
  
          Determina o tipo de arquivo que vai ser assinado, procurando pela tag
          correspondente.
          """
          doctype = None
  
          #
          # XML da NF-e
          #
          if '</NFe>' in xml:
              doctype = '<!DOCTYPE NFe [<!ATTLIST infNFe Id ID #IMPLIED>]>'
          elif '</cancNFe>' in xml:
              doctype = '<!DOCTYPE cancNFe [<!ATTLIST infCanc Id ID #IMPLIED>]>'
          elif '</inutNFe>' in xml:
              doctype = '<!DOCTYPE inutNFe [<!ATTLIST infInut Id ID #IMPLIED>]>'
          elif '</infEvento>' in xml:
              doctype = '<!DOCTYPE evento [<!ATTLIST infEvento Id ID #IMPLIED>]>'
  
          #
          # XML do CT-e
          #
          elif '</CTe>' in xml:
              doctype = '<!DOCTYPE CTe [<!ATTLIST infCte Id ID #IMPLIED>]>'
          elif '</cancCTe>' in xml:
              doctype = '<!DOCTYPE cancCTe [<!ATTLIST infCanc Id ID #IMPLIED>]>'
          elif '</inutCTe>' in xml:
              doctype = '<!DOCTYPE inutCTe [<!ATTLIST infInut Id ID #IMPLIED>]>'
          #elif 'infEvento' in xml:
              #doctype = '<!DOCTYPE evento [<!ATTLIST infEvento Id ID #IMPLIED>]>'
  
          #
          # XML do MDF-e
          #
          elif '</MDFe>' in xml:
              doctype = '<!DOCTYPE MDFe [<!ATTLIST infNFe Id ID #IMPLIED>]>'
  
          #
          # XML da NFS-e
          #
          elif 'ReqEnvioLoteRPS' in xml:
              doctype = '<!DOCTYPE Lote [<!ATTLIST Lote Id ID #IMPLIED>]>'
          elif 'EnviarLoteRpsEnvio' in xml:
              doctype = '<!DOCTYPE EnviarLoteRpsEnvio>'
          elif 'CancelarNfseEnvio' in xml:
              doctype = '<!DOCTYPE CancelarNfseEnvio>'
  
          #
          # Esocial
          #
          elif '</evtInfoEmpregador>' in xml:
              doctype = '<!DOCTYPE eSocial [<!ATTLIST evtInfoEmpregador Id ID #IMPLIED>]>'
  
          #
          # EFD/Reinf
          #
          elif '</evtInfoContri>' in xml:
              doctype = '<!DOCTYPE Reinf [<!ATTLIST evtInfoContri Id ID #IMPLIED>]>'
          elif '</evtServTom>' in xml:
              doctype = '<!DOCTYPE Reinf [<!ATTLIST evtServTom Id ID #IMPLIED>]>'
          elif '</evtFechaEvPer>' in xml:
              doctype = '<!DOCTYPE Reinf [<!ATTLIST evtFechaEvPer Id ID #IMPLIED>]>'
  
          else:
              raise ValueError('Tipo de arquivo desconhecido para assinatura/validacao')
  
          return doctype