AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1509306
Accepted
hippietrail
hippietrail
Asked: 2019-12-12 10:15:50 +0800 CST2019-12-12 10:15:50 +0800 CST 2019-12-12 10:15:50 +0800 CST

Todo arquivo/fluxo/etc XML deve começar com um caractere "<" ou com um BOM seguido por um caractere "<"?

  • 772

Estou fazendo algumas coisas de detecção de tipo de arquivo e queria lidar com a detecção de XML de forma mais robusta.

Eu adicionei suporte para um Unicode BOM inicial opcional (Byte Order Mark) seguido por um <caractere em codificação de 8 bits ou UTF-16.

(Este é apenas um teste inicial. Se este teste for aprovado, tento analisá-lo como XML, mas não faço isso a menos que pareça XML, pois é mais pesado em recursos.)

Eu olhei para o padrão XML, mas o jargão estava ficando muito difícil e não tenho certeza se segui todas as regras gramaticais corretamente, especialmente para os recursos mais esotéricos do XML. Eu não vi nada específico no padrão sobre com quais personagens ele pode começar.

Em particular, não tenho certeza se é ou não legal que arquivos ou fluxos XML comecem com espaço em branco antes do primeiro<

xml file-format
  • 1 1 respostas
  • 18 Views

1 respostas

  • Voted
  1. Best Answer
    Michael Kay
    2019-12-12T11:53:52+08:002019-12-12T11:53:52+08:00

    Uma entidade de documento deve sempre começar com "<", mas se não houver declaração XML, isso pode ser precedido por um espaço em branco.

    Uma entidade externa analisada não requer um "<" inicial. As entidades externas analisadas normalmente não são analisadas por conta própria, apenas quando referenciadas direta ou indiretamente de uma referência de entidade em uma entidade de documento.

    A especificação não é realmente tão complicada.

    [1]     document       ::=      prolog element Misc*
    
    [22]    prolog     ::=      XMLDecl? Misc* (doctypedecl Misc*)?
    [23]    XMLDecl    ::=      '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
    
    [27]    Misc       ::=      Comment | PI | S
    
    [3]     S      ::=      (#x20 | #x9 | #xD | #xA)+
    

    deixa bem claro que, se o XMLDecl estiver ausente, o documento pode começar com Misc, que inclui a opção de espaço em branco. No entanto, XMLDecl, doctypedecl, element, Commente PItodos começam com " <".

    • 1

relate perguntas

  • Como obter ftype para o usuário atual

  • erro de link html em xml

  • Por que diferentes editores hexadecimais mostram diferentes binários para um arquivo?

  • Algum formato de arquivo de imagem incorpora autor, título etc.?

  • O XML Schema Explorer não está funcionando

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve