【问题标题】:Delphi Classes to XML representation:Delphi 类到 XML 表示:
【发布时间】:2013-03-28 17:13:40
【问题描述】:

使用 Delphi XE:

XML 数据绑定向导基于 XML/XSD 生成 Delphi 类 - 效果很好。

但是我还需要另辟蹊径:将 Delphi 类转换为 XML。我在 XE 中找不到任何支持。 (我知道使用 C#、.NET 很容易做到这一点,但显然,由于 Delphi 并不真正支持反射,因此比使用 C# 困难得多)

我有一个选择是使用 SharpDevelop 在 C# 中编写类,并使用 MS 实用程序(我相信它是免费下载的)从 C# 代码生成 XML。我也有支持此功能的 VS 2005,但尚未安装,我不想参与其中)。

任何人都对如何完成这项工作有建议:直接从 Delphi 到 XML/XSD?一个开源工具会很好,或者一些可以做到这一点的好单元。

【问题讨论】:

    标签: xml delphi xml-serialization delphi-xe xsd.exe


    【解决方案1】:

    NativeXmlOmniXML 开源库可以将 Delphi 对象转换为 XML(不是 XSD)。即使在 2010 年之前的 Delphi 版本中,它们也支持对象序列化和反序列化。

    因此可以在第一步中使用它们来创建一个 XML 文件,然后可以将其传递给数据绑定向导以生成 Delphi 类代码。

    【讨论】:

    • 谢谢 - 将检查。我不需要回到德尔福。只需要将 Delphi 类表示为 XML。
    【解决方案2】:

    Robert Love 在 2009 年末写了一篇文章来讨论这个话题:Xml Serialization - Basic Usage。它使用自 Delphi 2010 起可用的“新”RTTI。

    【讨论】:

    • 谢谢 - 绝对是一个好的开始。不熟悉“新”RTTI 的东西,因为我对“旧”的 RTTI 东西感觉不好。 :-) 但这看起来很容易。问题是我需要做多少工作才能代表一个更复杂的类 - 他的例子非常简单。
    • @Mikey 如果你想能够覆盖“所有”,你必须做很多工作,但如果你保持简单,那就可以了。这就是为什么 Delphi XML 数据绑定向导支持这么少的 XML 特性的原因。考虑到您不能将所有类都表示为 XML,反之亦然。
    • 谢谢 - 当然我不能用 XML 表示所有内容。我需要做的不仅仅是在那个简单的例子中表示 - 需要使用嵌套列表/数组等。我们将看到......如果情况变得更糟,我也可以手动完成。
    猜你喜欢
    • 1970-01-01
    • 2011-08-16
    • 2012-10-22
    • 2012-06-28
    • 1970-01-01
    • 2023-03-08
    • 2014-07-09
    • 2011-08-23
    • 2023-04-01
    相关资源
    最近更新 更多