2
虽然这个问题可以用其他编程语言来解答,但我觉得它从Scala中错过了。如何精美地表示一个Scala类中的XML实体?
我想要使用清晰的DSL代表Scala类中的以下示例XML,以便我可以在REST(play)框架的XML中轻松使用它。
<?xml version="1.0" encoding="UTF-8">
<requests>
<request type="foo" id="1234">
<recipient>bar<recipient>
<recipient>baz<recipient>
<body>This is an example string body</body>
<ext>Optional tag here like attachments</ext>
<ext>Optional too</ext>
</request>
</requests>
这里是我试图表现在斯卡拉类上面的模型:
class Attribute[G](
value:G
)
class Request(
type: Attribute[String],
id: Attribute[Integer],
recipient[List[String]],
body: String,
ext: Option[List[String]] // Some or None
)
// how it's used
val requests = List[Request]
这不是功课,我试着写剧本的应用程序翻译从一个公司内部的其余部分一个行业标准之一。 (如果有人很好奇,这是OpenCable ESNI vI02 XML格式)
我的问题:我是否正确表示“foo”和“id”属性?如果是这样,我怎么会轻松输出XML没有太多的按摩或粗糙的字符串插值。我希望foo和id被解释为属性而不是嵌套标签,如下所示:
...<request><type>foo</type><id>1234</id>...DO NOT WANT
谢谢!
你忘了XML标记周围双引号的高清toxml用于? – dlite922