2010-06-08 69 views
5

比方说,我有下面的类:自动XML转换

类Person(VAL姓:字符串,VAL名字:字符串)

有没有生成该类XML,而无需自动方式手动创建一个toXml()方法?理想情况下,输出会是这样的:

 
    <Person> 
     <firstName>John</firstName> 
     <lastName>Smith</lastName> 
    </Person> 

好像应该有办法做到这一点,而无需手动编写了这一切,。也许有一个我还没有找到的特质?

回答

3

不幸的是,我不认为有这样一个神奇的特质。你可以使用像XStream这样的东西来实现这一点。然而,它似乎并没有自动打印所有的Scala类,所以你可能需要编写自己的转换器。在列表的情况下,Someone else已经这么做了,我想对于你的例子你可能需要类似的东西。

5

对于case类(或其他Product子类),这是一次很容易写统称:名称可以用productPrefix检索,所有的值通过productIterator是可迭代的,并通过productElementName字段的名称。

不幸的是,productElementName也只有很短的生命:它是在revision 20958添加和删除在revision 21223,显然是因为它增加太多重量case类(有也是一个open ticket它)。