eed3si9n / scalaxb   1.12.1

MIT License Website GitHub

scalaxb is an XML data binding tool for Scala.

Scala versions: 3.x 2.13 2.12
sbt plugins: 1.x

scalaxb

Maven Central

scalaxb is an XML data-binding tool for Scala that supports W3C XML Schema (xsd) and Web Services Description Language (wsdl) as the input file.

From schema documents scalaxb will generate Scala source files containing case classes to represent the data and typeclass instances to turn XML documents into an object, and the object back to XML.

Modules

There are currently four ways of running scalaxb:

  • command line app scalaxb
  • sbt plugin sbt-scalaxb
  • maven plugin mvn-scalaxb
  • web API scalaxb-heroku hosted on heroku

sbt-scalaxb

To call scalaxb from sbt 1.x and sbt 0.13.x, put this in your project/scalaxb.sbt:

resolvers += Resolver.sonatypeRepo("public")
addSbtPlugin("org.scalaxb" % "sbt-scalaxb" % "X.X.X")

and this in build.sbt:

lazy val dispatchVersion = "1.1.3"
lazy val dispatch = "org.dispatchhttp" %% "dispatch-core" % dispatchVersion
lazy val jaxbApi = "javax.xml.bind" % "jaxb-api" % "2.3.0"
lazy val scalaXml = "org.scala-lang.modules" %% "scala-xml" % "1.3.0"
lazy val scalaParser = "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2"

lazy val root = (project in file(".")).
  enablePlugins(ScalaxbPlugin).
  settings(
    name := "foo-project",
    Compile / scalaxb / scalaxbPackageName := "generated",
    // Compile / scalaxb / scalaxbAutoPackages := true,
    Compile / scalaxb / scalaxbDispatchVersion := dispatchVersion,
    libraryDependencies ++= Seq(dispatch, jaxbApi, scalaParser, scalaXml)
  )

command line app scalaxb

See INSTALL.md.

mvn-scalaxb

See mvn-scalaxb.

Documents

Further info is available at scalaxb.org.

Bug Reporting

If you're having problem with scalaxb, please take a moment and read issue reporting guideline.

Licensing

It's the MIT License. See the file called LICENSE.

Contacts