可以用xsd架构验证编码,例如UTF-8吗?

lee*_*lee 3 xml schema xsd utf-8 utf

通过使用模式,有没有简单/简单的方法来验证xml msg的编码?

假设xml的第一行"不"值得信赖?例如,忽略?xml version ="1.0"encoding ="UTF-8"?

Jam*_*mes 6

不,除了二进制数据元素类型之外,模式不能指示编码类型,但是这种编码仍然将由文档本身的高级编码封装.如果您意识到架构是为了描述信息而不是传输格式,那么这是有道理的.XML规范规定了文档传输信息,例如如何以最普遍的意义表示和存储信息.Schema用于验证通过XML存储的数据是否满足各方之间的某种语法限制.XML规范中定义的prolog(您提到的第一行)是存在(或不存在)的投影XML读者需要知道文档如何编码的实体.

如果您感兴趣,这是关于如何达成此协议的XML 1.1规范的相关部分,以及投诉读者如何"猜测"编码的更有趣的内容,因此可以很好地猜测prolog可以被读取到阅读实际的编码属性:http: //www.w3.org/TR/xml11/#sec-guessing