O espaço em branco consecutivo em um arquivo XML deve ser ignorado por um leitor XML?

StackOverflow https://stackoverflow.com/questions/449532

  •  19-08-2019
  •  | 
  •  

Pergunta

No meu trabalho, temos nossas próprias classes XML que constroem um DOM, mas não tenho certeza de quão consecutivo de branco deve ser tratado?

por exemplo

<some-text>
Hello     World
</some-text>

Quando isso é lido no DOM, o nó de texto deve incluir o espaço em branco consecutivo entre o Hello and World ou apenas reduzi -lo a um espaço?

Ou a fonte XML deve ser escrita assim:

<some-text>
Hello &nbsp;&nbsp;&nbsp;&nbsp;World
</some-text>

Ou se não do que talvez?

Foi útil?

Solução

&nbsp; é uma entidade HTML e nada a ver com o próprio XML.

Para responder à sua pergunta, eu trataria isso como significativo. Até o HTML DOM trata os espaços consecutivos como significativos, é apenas que ele só cria um espaço visualmente. Como ele aparece no DOM e como ele aparece na tela são duas coisas totalmente diferentes.

Outras dicas

É um pouco desconcertante saber que as pessoas estão por aí implementando processadores XML sem sequer olhar para as especificações XML.

De Especificação XML 1.0, Seção 2.10 Manuseio de Espaço Branco " (ênfase meu):

Ao editar documentos XML, muitas vezes é conveniente usar o "espaço em branco" (espaços, guias e linhas em branco) para separar a marcação para obter maior legibilidade. Esse espaço em branco normalmente não se destina à inclusão na versão entregue do documento. Por outro lado, o espaço branco "significativo" que deve ser preservado na versão entregue é comum, por exemplo, em poesia e código -fonte.

Um processador XML deve sempre passar todos os caracteres em um documento que não está marcando para o aplicativo. Um processador XML validador também deve informar o aplicativo qual desses caracteres constituem espaço em branco aparecendo no conteúdo do elemento.

Um atributo especial chamado XML: o espaço pode ser anexado a um elemento para sinalizar uma intenção de que, nesse elemento, o espaço branco deve ser preservado por aplicativos. Em documentos válidos, esse atributo, como qualquer outro, deve ser declarado se for usado. Quando declarado, deve ser dado como um tipo enumerado cujos valores são um ou ambos "padrão" e "preservar". Por exemplo: ...

Editar: O espaço em branco dentro das tags é considerado significativo (meus pensamentos iniciais sobre isso como HTML estavam errados; Google primeiro, responda às perguntas mais tarde!) Veja esta explicação

IMO, parece bastante natural tratar os espaços de brancos como significativos neste caso. Eu esperaria que o valor de Dom Node fosse igual ao que eu usei na marcação.

Se você "tem nossas próprias aulas de XML" e quem as escreveu já não sabe a resposta para essa pergunta, você provavelmente tem muitos, muitos, muitos outros problemas que ainda não descobriram.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top