Gli spazi bianchi consecutivi in ??un file XML devono essere ignorati da un lettore XML?
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 World </some-text>
o in caso contrario & amp; nbsp; che forse & # 32; ?
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.