xml - Delphi - 我可以使用 NativeXml 创建规范的 XML 吗?

标签 xml delphi nativexml

多年来,我一直在使用 NativeXml 从我的程序数据中创建 xml。这非常有效,但现在我遇到了障碍。

我现在需要将哈希插入到从规范形式的 xml 创建的 xml 中。我看了一下,Native Xml 有一个函数“Canonicalize”,但要么我没有正确使用它(一个很好的机会),要么(因为它被标记为实验性的)它没有做所需的事情。

我一直这样使用它(正如我能找到的唯一示例中所建议的那样)

MyXmlFile.Canonicalize;

我一直在毫无问题地将 xml 发送到测试服务,所以我认为一切正常。收件人正在接受 xml 提交和哈希代码。 Canonicalize 去除开始的 xml 标签 <?xml version="1.0"?>但由于 xml 的格式相当好,我没有将其格式设置为 xfReadable我找不到太大的区别。

现在我遇到了一个问题。一项数据表明,一切都没有按预期运行。

如果我的数据中有一个包含撇号的名称,例如 O'Reilly,那么在 xml 中它会被(正确地)这样写

<Surname>O&apos;Reilly</Surname>

据我所知,当它被规范化时,这应该显示为

<Surname>O'Reilly</Surname>

这并没有发生,因此收件人拒绝了我的 xml 提交,因为散列不匹配。

过去两天我一直在浏览 NativeXml 代码和文档,也在网上搜索,但找不到答案。遗憾的是,NativeXml 论坛似乎也没有生气。

我应该使用 NativeXml 做什么?如果不是 NativeXml 那么还有什么可以做的吗?有什么我可以将 xml 传递给以正确规范化它的东西吗?

最佳答案

当前版本的 NativeXML (4.07) 从 DTD 中获取命名字符实体并扩展它们。四个预定义的命名字符实体当然不在任何 DTD 中,因此不处理它们。看起来数字字符实体也没有规范化,还有其他几个转换有待实现。在当前状态下,NativeXML 根本不是适合这项工作的工具。

关于xml - Delphi - 我可以使用 NativeXml 创建规范的 XML 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15252648/

相关文章:

javax.xml.bind.UnmarshalException : unexpected element (uri :"", 本地 :"")。预期的元素是

xml - 使用 ws 寻址从 Web 服务中检索数据

delphi - 刷新嵌套在 DataSetField 中的 ClientDataSet

delphi - 如何快速显示大 (GB) 文本文件?

delphi - 将动态记录数组的变量复制到另一个变量,但它们共享一个地址

xml - 如何使用 NativeXml 查找节点 : Delphi

xml - 使用 Delphi 和 NativeXML 浏览 XML 文件 :

r - 如何将带有父属性的XML属性解析为R中的数据帧

java - Android:使用findViewById时需要引用 View ?

Delphi - 使用 NativeXML 迭代 XML 数据集