2

我目前正在处理一个代码库,其中包含使用 SOAP::WSDL 生成的几十个类。然而,与 Moose 合作后,我现在认为在运行时在元级别(即不是磁盘上的文件而是直接生成对象)生成这些类可能是一个更好的主意(此时完全排除性能原因)。

  1. 这种方法明智吗?这个想法是避免更改生成的代码,也避免偶尔重新生成它。

  2. 如果是这样,是否有任何现成的 Perl 模块可以从 WSDL 创建类?

4

1 回答 1

1

首先要回答第二个问题,没有任何基于 Moose 的东西可以将 WSDL 转换为一组类。但是,您可以基于 XML::Toolkit 构建一些东西。为了完全公开 XML::Toolkit 是我的模块,它具有将 SAX 流转换为 Moose 类的工具,反之亦然。对于非 Moose Perl 类,有 XML::Compile 我相信它可以编译 SOAP wsdl -> Perl。

要回答第一个问题,我使用 XML::Toolkit 的经验表明,在运行时将类保存在内存中是很棘手的。忽略性能开销,您需要记住很多从 WSDL 夸大的东西。这将是一个有趣的实验,但我不确定它的长期可维护性。

很长时间以来,我一直想尝试这样的事情,但我还没有一个项目让我真正专注于它。不幸的是,我也没有空闲时间来处理这种规模的项目。

于 2009-11-24T19:40:43.350 回答