【发布时间】:2011-05-23 16:15:57
【问题描述】:
通过使用模式,是否有任何简单/简便的方法来验证 xml msg 的编码?
假设 xml 的第一行“不”可信? 例如忽略 ?xml version="1.0" encoding="UTF-8" ?
【问题讨论】:
通过使用模式,是否有任何简单/简便的方法来验证 xml msg 的编码?
假设 xml 的第一行“不”可信? 例如忽略 ?xml version="1.0" encoding="UTF-8" ?
【问题讨论】:
不,除了二进制数据元素类型之外,模式不能指定编码类型,但这种编码仍将被文档本身的高级编码封装。如果您意识到架构是假设描述信息而不是传输格式,那么这是有道理的。 XML 规范规定了文档传输信息,例如在最一般的意义上如何表示和存储信息。 Schema 用于验证通过 XML 存储的数据是否满足各方之间的某种语法限制。 XML 规范中定义的序言(您提到的第一行)是存在(或不存在)是抱怨 XML 阅读器需要知道文档如何编码的实体。编码只是端点之间的协议以表示正确的 unicode 代码点,XML 规范指定了如何达成这种协议,而不是模式。
如果您有兴趣,这是 XML 1.1 规范中有关如何达成此协议的相关部分,更有趣的是投诉读者如何“猜测”编码,因此足以猜测序言可以被读取读取实际编码属性:http://www.w3.org/TR/xml11/#sec-guessing
【讨论】: