【发布时间】:2017-07-16 19:26:19
【问题描述】:
我有一堆遗留模块想要转换为基于 Moose 的。这些模块目前具有“toXML”方法,这些方法是使用 XML::LibXML 手动编码的。
是否有将 Moose 对象序列化为 XML 的模块或技术?
我看过 MooseX::Storage,但它处理 JSON、YAML 和存储,而不是 XML。谷歌搜索 Moose 和 XML 会产生大量对 XML::Rabbit 的引用,这似乎很适合将 XML 解析为 Moose 类,但对于获取 Moose 对象并将它们序列化为 XML 的情况并不多。
http://grokbase.com/t/perl/moose/11akp809sr/java-annotation-net-attributes-in-moose 的 6 年前的帖子非常接近我想要做的事情,但似乎没有任何后续行动。
【问题讨论】:
-
MooseX::Storage 通过使用MooseX::Storage::Format::JSON 角色来实现。据我所知,这是我们那里唯一的
MooseX::Storage::Format序列化角色。也许自己写?Format::JSON的代码只有几十行(使用模块)。我不知道你到底需要序列化什么,但也许XML::Dumper 可以提供帮助。它声称能够处理对象。 -
@zdim, Re "据我所知,这是我们那里唯一的 MooseX::Storage::Format 序列化角色", MooseX::Storage::Format: :JSON、...::YAML 和 ...::Storable 都带有 MooseX::Storage。
-
@Blaise Pascal,所以写 MooseX::Storage::Format::XML。
-
@ikegami 对。我的意思是我没有看到
MooseX::Storage::Format下的任何其他模块 -
在使用 MooseX::Storage 时必须考虑的事情是,例如,将对象保存在键/值存储中(例如,ecom 应用程序中的产品对象),并且您有很多对于不同产品类型的不同子类,您必须在应用程序的某个位置加载所有这些子类,因为 MooseX::Storage 无法为您做到这一点。您当然可以教它这样做,但是加载所有这些类更容易,例如在您的主应用程序类中。
标签: xml perl serialization moose