この質問は他のプログラミング言語でも返答されるかもしれませんが、私はScalaからそれが欠落しているような気がします。ScalaクラスのXMLエンティティを美しく表現する方法は?
スカラークラスの次のXMLサンプルを表す明確なDSLを使用して、XML over REST(プレー)フレームワークで簡単に使用できるようにしたいと考えています。
<?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>
ここではScalaのクラスでは上記のモデルを表現する私の試みです:
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]
これは私が1つの会社の内部RESTから変換するために劇中のアプリを書くことをしようとしている、宿題ではありません業界標準のものです。 (興味がある人は、OpenCable ESNI vI02のXML形式です)
私の質問: "foo"と "id"属性を正しく表していますか?もしそうなら、私はXMLを簡単に出力することができます。 fooとidを属性として解釈し、ネストされたタグとして解釈しないようにします。
...<request><type>foo</type><id>1234</id>...DO NOT WANT
ありがとう!
あなたはdefのtoXMLでのXMLタグを二重引用符を忘れていますか? – dlite922