2009-05-28 12 views
7

Ich habe was ist wahrscheinlich eine wirklich einfache, studid Frage, aber ich kann nirgendwo eine Antwort finden, und ich muss mir ziemlich sicher sein.Ist für das XML-Deklarationstag die Groß-/Kleinschreibung relevant?

Ich habe verschiedene XML-Dateien von verschiedenen Anbietern. Einer der Anbieter stellt mir eine XML-Datei mit japanischen Zeichen in der Datei zur Verfügung. Ursprünglich hatte ich Probleme beim Verarbeiten der XML-Datei (ich verwende die MSXML SDK). Die Charaktere würden falsch kommen. Ich fand, dass, wenn das Folgende der XML-Datei hinzugefügt wurde, alles super funktionierte.

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

Und so fragte ich den Verkäufer dies in ihre Datei hinzuzufügen. Aber sie fügte hinzu, es mit der Codierung in Kleinbuchstaben:

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

Und wenn ich diese neue Datei zu laden, mit dieser Erklärung, ich bin immer das gleiche Problem wie wenn diese Erklärung nicht da war.

Was ich (sicher) herausfinden will, ist, wenn dieses Kodierungsattribut die Groß-/Kleinschreibung unterscheidet (oder sonst das Problem ist). Ist es wichtig, dass sie "UTF-16" im Vergleich zu "UTF-16" setzen?

Update: Unter dem Rat von diesen, die Antworten hier gepostet, habe ich einen Test eingerichtet und ausgeführt. Eine Datei hatte den Kleinbuchstabe utf-16 und der andere Großbuchstabe. Ansonsten waren die Dateien identisch. Das behebt das Problem nicht und ist nicht das Problem. Meine Schlussfolgerung ist, dass MSXML nicht case sensitive ist, wie die Spezifikation in den Antworten angibt.

+0

offensichtlich, wenn das Problem mit einer Version weggeht und nicht die andere, dann ist es egal ... – workmad3

Antwort

10

Ich nehme an, die Frage ist nicht wirklich "ist der standrard case-sensitive?" aber "ist die Kodierung Groß-und Kleinschreibung in MSXML SDK?"

Von bytes.com:

Die XML-Spezifikation sagt, dass Prozessoren "sollten" Match-Codierung Namen sein Fall-unsensibel. "SOLL" ist ein technischer Begriff, weniger stark als "MUSS", aber ich kann keinen Grund sehen, warum ein Prozessor es nicht tun würde.

Wir wissen jedoch, dass dies in der Praxis nicht immer zutrifft. Wenn Sie beide Seite-an-Seite versuchen können, tun Sie dies bitte und lassen Sie uns wissen, was das Ergebnis ist.

+0

kann und werde ich. Es braucht nur ein bisschen Aufwand, um es einzurichten. Ich hatte gehofft, dass man detaillierte Kenntnisse von MSXML hatte .... –

+0

Ich habe ein Update oben gepostet. Vielen Dank. –

8

Vom XML specs:

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

So ist es nicht nötig, aber recommened Groß- und Kleinschreibung zu sein, nach RFC 2119:

  1. SOLL Dieses Wort, oder das Adjektiv "EMPFOHLEN", bedeutet, dass gibt es möglicherweise gültige Gründe in besondere Umstände zu ignorieren, ein besonderen Punkt, aber die volle Implikationen müssen verstanden werden und
    sorgfältig abgewogen werden, bevor Sie einen anderen Kurs wählen.
+0

Obwohl Ihre und JoshJordan die Antworten in etwa gleich sind, werde ich die "Antwort" zu ihm geben, weil er darauf hingewiesen dass es in der Praxis nicht wahr sein kann und dass wir es nebeneinander versuchen sollten. Aber ich tue es angemessen, dass du eine angemessene Antwort hinterlässt, und ich werde dafür +1 geben. Nochmals vielen Dank. –

Verwandte Themen