Mik*_*zel 7 xml unicode w3c specifications utf-16
第4.3.3节和附录F的的XML 1.0规范关于说话UTF-16中,字节顺序标记(BOM)中UTF-16的编码数据流,和XML编码声明.根据这些部分中的信息,UTF-16文档中似乎需要字节顺序标记.但附录F中的摘要图表给出了UTF-16输入没有字节顺序标记的情况,但此方案具有xml声明.根据4.3.3节,UTF-16编码的文档不需要编码声明(在这种情况下,XML声明本身是可选的).
鉴于此信息,是一个UTF-16 xml文档,既没有BOM也没有XML声明,如果文档的其余部分是?缺少外部提供的编码信息,这些信息被认为是格式良好的?
从Unicode 6.2规范(第99页):
UTF-16编码方案可能也可能不以BOM开头.但是,当没有BOM时,并且在没有更高级别协议的情况下,UTF-16编码方案的字节顺序是big-endian.
因此,UTF-16文档中不需要BOM.但是可能存在诸如XML规范之类的"更高级协议",以指示在没有BOM的情况下需要对UTF-16 XML文档执行什么操作.
XML 1.0规范中的4.3.3节说:
以UTF-16编码的实体必须和以UTF-8编码的实体可以从[ISO/IEC 10646:2000]附录H所描述的字节顺序标记开始,[Unicode]的第16.8节(零宽度无空间字符) ,#xFEFF).
让我们稍后回到上面.附录F描述了在BOM不存在的情况下检测字符编码的方法.但是我不认为该部分与您的问题相关,因为您要问的是没有BOM和没有XML声明的UTF-16 XML文档是否"格式正确",附录F是规范的非规范部分.
因此,回到规范,如果"作为一个整体,它与生产标签文档匹配",文档就是格式良好的.(第2.1节).回顾document表明XML声明是可选的(这也在2.8节中提到).因此,没有XML声明就可以拥有格式良好的文档; 这回答了你问题的一半.
另一半是没有XML声明但没有BOM的UTF-16 XML文档是否仍然是格式良好的.在4.3.3节中,它说(强调我的):
在没有外部传输协议(例如HTTP或MIME)提供的信息的情况下,对于实体来说,这是一个致命的错误,包括以不同于声明中指定的编码的形式向XML处理器呈现编码声明,或者一个实体,它既不以字节顺序标记也不以编码声明开头,以使用UTF-8以外的编码.
基于此,没有BOM且没有编码声明(这是XML声明的一部分)的UTF-16 XML文档不是一个格式良好的文档(因为致命错误违反了良好的形式,请参阅Section中的良构性约束的定义1.2)在没有外部信息的情况下.这也符合前面第4.3.3节中关于UTF-16 BOM要求的内容.
| 归档时间: |
|
| 查看次数: |
527 次 |
| 最近记录: |