多年来我一直在使用NativeXml从我的程序数据创建xml.这一点非常好,但现在我遇到了麻烦.
我现在需要在xml中插入一个哈希,它是从xml的规范形式创建的.我看了一下,Native Xml有一个功能“Canonicalize”,但要么我没有正确使用它(一个很好的机会)或(因为它标记为实验)它没有做所需要的.
我一直在使用它(就像我能找到的唯一例子中所建议的那样)
MyXmlFile.Canonicalize;
我一直在向测试服务发送xml而没有任何问题所以我认为一切正常.收件人正在接受xml提交和哈希码. Canonicalize剥开开始的xml标签<?xml version =“1.0”?>但是因为xml相当好,而且我没有将它的格式设置为xfReadable,我找不到太大的区别.
现在我遇到了一个问题.一条数据表明,一切都不能正常运作.
如果我的数据中包含一个包含撇号的名称,例如O’Reilly,那么在xml中它会被写入(正确),就像这样
<Surname>O'Reilly</Surname>
据我所知,当它被规范化时,这应该显示为
<Surname>O'Reilly</Surname>
这不会发生,因此收件人拒绝我的xml提交,因为哈希不匹配.
我花了最近两天的时间浏览NativeXml代码和文档,还在网上找不到答案.可悲的是,NativeXml论坛似乎也没有生命.
我应该用NativeXml做什么吗?如果不是NativeXml那么还有什么可以做的吗?有没有什么我可以通过xml来正确规范它?
最佳答案 当前版本的NativeXML(4.07)从DTD中获取命名字符实体并对其进行扩展.当然,四个预定义的命名字符实体不在任何DTD中,因此它们不会被处理.看起来数字字符实体也不是规范化的,还有其他几个转换尚未实现. NativeXML在当前状态下不是正确的工具.