XML and Case Class

XML and Case Class I compare the library scalaxb and XStream. It seems to me that XStream is more easy to use. Here is first step to add the dependencies. "com.thoughtworks.xstream" % "xstream" % "1.4.8","org.joda" % "joda-convert" % "1.7",The Trait object to deal with the xstream base class. package com.sillycat.jobsconsumer.utilities import com.sillycat.jobsconsumer.models.Job import com.thoughtworks.xstream.XStream import com.thoughtworks.xstream.io.xml.DomDriver trait IncludeXMLMapping { var xStream : XStream = new XStream(new DomDriver()) xStream.alias("job",classOf[Job]) def toXML(obj:Any): String ={ xStream.toXML(obj) } def fromXML(xml:String):Any = { xStream.fromXML(xml) } } Here is the Test Class package com.sillycat.jobsconsumer.models import com.sillycat.jobsconsumer.utilities.{IncludeXMLMapping} import org.scalatest.{BeforeAndAfter,Matchers,FunSpec} class JobXMLSpec extends FunSpec with Matchers with BeforeAndAfter with IncludeXMLMapping { describe("JobXMLMapping") { describe("#xml2object"){ it("Convert xml string to object") { val xml = """<job> | <id>id1</id> | <title>title1</title> | <desc>desc1</desc> | <industry>sales</industry> |</job>""".stripMargin val job1 = fromXML(xml).asInstanceOf[Job] job1.title should be ("title1") } } describe("#object2xml"){ it("Convert object to xml string") { val job1 = Job("id1","title1","desc1","sales") val expect = """<job> | <id>id1</id> | <title>title1</title> | <desc>desc1</desc> | <industry>sales</industry> |</job>""".stripMargin val xml = toXML(job1) xml should be (expect) } } } } Tip Warning Message [warn] Class java.time.Duration not found - continuing with a stub. [warn] Class java.time.Duration not found - continuing with a stub. [warn] two warnings found Solution: Adding package dependency fixes the problem. "org.joda" % "joda-convert" % "1.7",References: http://x-stream.github.io/tutorial.html http://alvinalexander.com/scala/serializing-deserializing-xml-scala-classes xml to object https://github.com/takezoe/solr-scala-client case class mapper https://github.com/takezoe/solr-scala-client/blob/master/src/main/scala/jp/sf/amateras/solr/scala/CaseClassMapper.scala

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇