Чувствителен ли регистр тега объявления XML?

У меня есть, вероятно, очень простой вопрос, но я нигде не могу найти на него ответ, и мне нужно быть в этом уверенным.

У меня есть различные файлы XML от разных поставщиков. Один из поставщиков предоставил мне файл XML с японскими символами в файле. Первоначально у меня возникли проблемы с обработкой XML-файла (я использую SDK MSXML). Персонажи получились бы неверными. Я обнаружил, что если в файл XML было добавлено следующее, все работало отлично.

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

И поэтому я попросил продавца добавить это в свой файл. Но добавили его с кодировкой в ​​нижнем регистре:

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

И когда я загружаю этот новый файл с этим объявлением, у меня возникает та же проблема, что и при отсутствии этого объявления.

То, что я пытаюсь выяснить (наверняка), заключается в том, чувствителен ли этот атрибут кодирования к регистру (или в противном случае проблема). Имеет ли значение, что они ставят "utf-16" вместо "UTF-16"?

Обновление: по совету тех, кто разместил здесь ответы, я настроил и выполнил тест. Один файл имел нижний регистр utf-16, а другой верхний регистр. В остальном файлы были идентичны. Это не решило проблему и не является проблемой. Мой вывод состоит в том, что MSXML не чувствителен к регистру, как указано в спецификации, опубликованной в ответах.


person Frank V    schedule 28.05.2009    source источник
comment
очевидно, если проблема исчезнет с одной версией, а не с другой, тогда это имеет значение...   -  person workmad3    schedule 28.05.2009


Ответы (2)


Я полагаю, что вопрос на самом деле не в том, "является ли стандарт чувствительным к регистру?" но "чувствительна ли кодировка к регистру в MSXML SDK?"

С сайта bytes.com:

Спецификация XML говорит, что процессоры «ДОЛЖНЫ» соответствовать именам кодировок без учета регистра. «СЛЕДУЕТ» - это технический термин, менее сильный, чем «ДОЛЖЕН», но я не вижу причин, по которым процессор не мог бы этого сделать.

Однако мы знаем, что это не всегда может быть верным на практике. Если вы можете попробовать оба варианта одновременно, сделайте это и сообщите нам о результате.

person JoshJordan    schedule 28.05.2009
comment
Я могу и буду. Просто нужно приложить немало усилий, чтобы его настроить. Я надеялся, что у кого-то есть подробные знания о MSXML.... - person Frank V; 28.05.2009

Из спецификаций XML:

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

Так что это не обязательно, но рекомендуется не учитывать регистр, согласно RFC 2119:

  1. СЛЕДУЕТ. Это слово или прилагательное "РЕКОМЕНДУЕТСЯ" означают, что могут существовать веские причины в конкретных обстоятельствах для игнорирования того или иного пункта, но все последствия должны быть поняты и
    тщательно взвешены, прежде чем выбирать другой курс.
person schnaader    schedule 28.05.2009
comment
Хотя ваши ответы и ответы Джоша Джордана примерно одинаковы, я собираюсь дать «ответ» ему, потому что он указал, что на практике это может быть не так, и что мы должны попробовать бок о бок. Но я согласен с тем, что вы оставили соответствующий ответ, и я собираюсь +1 за это. Еще раз спасибо. - person Frank V; 28.05.2009