XSD模式可以验证编码,例如UTF-8吗?可能吗?

5

通过使用模式,是否有一种简单/易于验证xml消息编码的方式?

假设xml的第一行“不”可信? 例如忽略?xml version="1.0" encoding="UTF-8"?

1个回答

8
不,模式不能规定编码类型,除了二进制数据元素类型之外,但是此编码仍将被文档本身的高级编码所封装。如果你意识到模式应该描述信息而不是传输格式,这就有意义了。XML规范规定文档传输信息,例如最一般化的信息表示和存储方式。模式用于验证通过XML存储的数据是否符合各方之间某种句法限制。在XML规范中定义的prolog(即您提到的第一行)是实体,存在(或不存在)是投诉XML读者需要知道文档如何编码的内容。编码只是终端点之间表示正确的Unicode代码点的协议,XML规范指定如何达成这个协议,而不是模式。
如果您感兴趣,这是XML 1.1规范的相关部分,介绍了如何达成这个协议,以及如何让投诉读者“猜测”编码,以便可以读取实际的编码属性:http://www.w3.org/TR/xml11/#sec-guessing

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接