2009-05-28 10 views
7

Ho quello che è probabilmente una molto semplice, domanda studid ma non riesco a trovare una risposta ad esso da nessuna parte e ho bisogno di essere abbastanza sicuro di questo.Il tag dichiarazione XML è sensibile al maiuscolo/minuscolo?

devo vari file XML da vari fornitori. Uno dei venditori mi fornisce un file XML con caratteri giapponesi nel file. In origine, stavo riscontrando problemi nell'elaborazione del file XML (sto utilizzando lo MSXML SDK). I personaggi sarebbero usciti fuori di testa. Ho trovato che se il seguente è stato aggiunto al file XML, tutto ha funzionato alla grande.

<?xml version="1.0" encoding="UTF-16"?> 

E così ho chiesto al venditore di aggiungere questo al loro file. Ma hanno aggiunto con la codifica in minuscolo:

<?xml version="1.0" encoding="utf-16"?> 

E quando carico questo nuovo file, con questa dichiarazione, mi sto lo stesso problema di quando questa dichiarazione non c'era.

Quello che sto cercando di capire (di sicuro) è se l'attributo di codifica è case sensitive (o è altrimenti il ​​problema). È importante che mettano "utf-16" contro "UTF-16"?

Aggiornamento: sotto il consiglio di questi che hanno postato le risposte qui, ho impostato ed eseguito un test. Un file aveva il minuscolo utf-16 e l'altro maiuscolo. Oltre a questo, i file erano identici. Questo non ha risolto il problema e non è il problema. La mia conclusione è che MSXML non fa distinzione tra maiuscole e minuscole poiché la specifica, pubblicata nelle risposte, afferma.

+0

ovviamente se il problema si risolve con una versione e non l'altra, allora è importante ... – workmad3

risposta

10

Suppongo che la questione non è in realtà "è il standrard case-sensitive?" ma "la codifica è case-sensitive in MSXML SDK?"

Da bytes.com:

Le specifiche XML dice che i processori "dovrebbe" essere nomi partita di codifica caso-insensibile. "DOVREBBE" è un termine tecnico, meno forte di "DEVE", ma non vedo alcun motivo per cui un processore non lo faccia.

Tuttavia, sappiamo che questo potrebbe non essere sempre vero nella pratica. Se puoi provare entrambi, ti preghiamo di farlo e facci sapere qual è il risultato.

+0

Posso e voglio. Ci vuole solo un po 'di sforzo per configurarlo. Speravo che uno avesse una conoscenza approfondita di MSXML .... –

+0

Ho pubblicato un aggiornamento sopra. Grazie. –

8

Dal XML specs:

XML processors SHOULD match character encoding names in a case-insensitive way 

Quindi non è necessario, ma recommened essere case-insensitive, secondo RFC 2119:

  1. DOVREBBE Questa parola, o l'aggettivo "RACCOMANDATO", significa che possono esistere ragioni valide in circostanze particolari per ignorare un elemento particolare
    , ma il completo implicazioni devono essere comprese e
    attentamente valutati prima di scegliere un corso diverso .
+0

Anche se le tue e le risposte di JoshJordan sono quasi le stesse, darò la "risposta" a lui perché ha sottolineato che potrebbe non essere vero nella pratica e che dovremmo provare uno a fianco all'altro. Ma, ritengo appropriato lasciare una risposta appropriata e ho intenzione di fare +1 per quello. Grazie ancora. –