Ich habe diesen Code in Scala geschrieben, um mit Jaxb Scala-Objekte in XML zu serialisieren (möchte nicht Scala native XML-Funktionalität verwenden).Verwenden von JAXB in Scala zum Serialisieren nach XML
@XmlRootElement(name = "SESSION")
@XmlAccessorType(XmlAccessType.FIELD)
case class Session(
@XmlAttribute(name="TYPE")
sessionType: String
) {
def this() = this("")
}
@XmlRootElement(name = "FOO-BAR")
@XmlAccessorType(XmlAccessType.FIELD)
case class FooBar(
@XmlElement
session: Session
) {
def this() = this(new Session())
}
object JAXBTest extends App {
val context = JAXBContext.newInstance(classOf[FooBar])
val fooBar = FooBar(Session("mysession"))
val stringWriter = new StringWriter()
val marshaller = context.createMarshaller()
marshaller.marshal(hHonors, stringWriter)
println(stringWriter.toString)
}
Die erzeugte XML sieht aus wie
<FOO-BAR><session><sessionType>mysession</sessionType></session></FOO-BAR>
Aber die XML Ich möchte
ist<FOO-BAR><SESSION TYPE="mysession"></SESSION></FOO-BAR>
Dies ist das komplette Kern Beispiel mit einem Zusatz: ein Adapter, um 0..1 Kardinalität zu Option https://gist.github.com/javathought/658c0554145ae6b7f89bd34ca71d8e0e zuzuordnen – Javathought