Gli spazi bianchi consecutivi in ??un file XML devono essere ignorati da un lettore XML?

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

  •  19-08-2019
  •  | 
  •  

Domanda

Nel mio lavoro abbiamo le nostre classi XML che creano un DOM, ma non sono sicuro di come gestire gli spazi bianchi consecutivi?

per es.

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

Quando viene letto nel DOM, il nodo di testo dovrebbe includere lo spazio bianco consecutivo tra Hello e World o semplicemente ridurlo a uno spazio?

O la fonte XML dovrebbe essere scritta in questo modo:

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

o in caso contrario & amp; nbsp; che forse & # 32; ?

È stato utile?

Soluzione

& amp; nbsp; è un'entità HTML e non ha nulla a che fare con lo stesso XML.

Per rispondere alla tua domanda, lo considererei significativo. Anche il DOM HTML considera gli spazi consecutivi come significativi, è solo che rende visivamente solo uno spazio. Come appare nel DOM e come appare sullo schermo sono due cose completamente diverse.

Altri suggerimenti

È un po 'sconcertante sentire che le persone sono là fuori che implementano processori XML senza nemmeno guardare le specifiche XML.

Dalla specifica XML 1.0, sezione 2.10 Gestione degli spazi bianchi " (sottolineatura mia):

  

Nella modifica di documenti XML, lo è spesso   comodo da usare "spazio bianco"   (spazi, tabulazioni e linee vuote) da impostare   a parte il markup per maggiore   leggibilità. Tale spazio bianco è   in genere non destinato all'inclusione   nella versione fornita del   documento. D'altro canto,   & Quot; significativa " spazio bianco che dovrebbe   essere conservato nella versione fornita   è comune, ad esempio in poesia e   codice sorgente.

     

Un processore XML DEVE sempre passare tutto   caratteri in un documento che non lo sono   markup fino all'applicazione. A   la convalida del processore XML DEVE anche   informare l'applicazione quale di questi   i personaggi costituiscono uno spazio bianco   visualizzato nel contenuto dell'elemento.

     

Un attributo speciale chiamato xml: space   può essere collegato a un elemento a   segnala un'intenzione che in questo   elemento, lo spazio bianco dovrebbe essere   preservato dalle applicazioni. In valido   documenti, questo attributo, come qualsiasi altro   altro, DEVE essere dichiarato se viene utilizzato.   Quando dichiarato, DEVE essere indicato come   tipo enumerato i cui valori sono uno   o entrambi di " default " e "preservare".   Ad esempio: ...

MODIFICA: lo spazio bianco all'interno dei tag è considerato significativo (i miei pensieri iniziali su questo essere come HTML erano sbagliati; google prima, rispondi alle domande dopo!) vedi questa spiegazione

IMO sembra abbastanza naturale trattare gli spazi bianchi come significativi in ??questo caso. Mi aspetto che il valore del nodo DOM sia uguale a quello che ho usato nel markup.

Se " avete le nostre classi XML, " e chiunque li abbia scritti non conosce già la risposta a questa domanda, probabilmente hai molti, molti, molti più problemi che non hai ancora scoperto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top