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

时间:2009-05-28 15:35:13

标签: xml encoding utf-16

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

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

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

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

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

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

我想弄清楚(肯定的)是编码属性是否区分大小写(或者是其他问题)。 他们把“utf-16”与“UTF-16”相比是否重要?

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

2 个答案:

答案 0 :(得分:11)

我认为问题不是“ standrard 区分大小写吗?”但“ MSXML SDK 中的编码是否区分大小写?”

来自bytes.com

  

XML规范说处理器“应该”匹配编码名称   不区分大小写。 “SHOULD”是一个技术术语,不如说强   “必须”,但我看不出处理器不这样做的原因。

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

答案 1 :(得分:10)

来自XML specs

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

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

  
      
  1. 应该这个词,或形容词“推荐”,意思是   可能存在正当理由   特殊情况忽略了一个   特别的项目,但完整   必须理解其含义   在选择之前仔细权衡   不同的课程。
  2.