XML声明标记是否区分大小写?

Fra*_*k V 8 xml encoding utf-16

我有一个可能是一个非常简单,狡猾的问题,但我无法在任何地方找到答案,我需要对此非常肯定.

我有来自不同供应商的各种XML文件.其中一个供应商为我提供了一个包含日文字符的XML文件.最初,我在处理XML文件时遇到了问题(我正在使用MSXML SDK).角色会出错.我发现如果将以下内容添加到XML文件中,一切都很有效.

<?xml version="1.0" encoding="UTF-16"?>
Run Code Online (Sandbox Code Playgroud)

所以我要求供应商将其添加到他们的文件中.但是他们用小写的编码添加了它:

<?xml version="1.0" encoding="utf-16"?>
Run Code Online (Sandbox Code Playgroud)

当我加载这个新文件时,使用此声明,我遇到了与此声明不存在时相同的问题.

我想弄清楚的(肯定的)是该编码属性是否区分大小写(或者是其他问题).他们把"utf-16"与"UTF-16"放在一起是否重要?

更新:在这些发布答案的人的建议下,我设置并执行了测试.一个文件的小写字母为utf-16,另一个大写字母.除此之外,文件是相同的.这没有解决问题,也不是问题.我的结论是,MSXML不区分大小写,因为规范在答案中说明.

Jos*_*dan 11

我认为这个问题并不是"对于标准的案例敏感吗?" 但" MSXML SDK中的编码区分大小写?"

来自bytes.com:

XML规范说处理器"应该"不区分大小写匹配编码名称."SHOULD"是一个技术术语,不如"必须"强,但我看不出任何理由为什么处理器不会这样做.

但是,我们知道在实践中这可能并非总是如此.如果你可以并排尝试,请这样做,让我们知道结果是什么.


sch*_*der 10

XML规范:

XML processors SHOULD match character encoding names in a case-insensitive way
Run Code Online (Sandbox Code Playgroud)

根据RFC 2119,它不是必需的,但建议不区分大小写:

  1. 应该这个词,或形容词"推荐",意味着在特定情况下可能存在忽略
    特定项目的正当理由,但
    在选择不同的课程之前必须理解并仔细权衡全部含义.