This is a compiled version of several XML schemas to manage "imsmanifest.xml" files.
The JAXB classes are generated from the four XSDs in src/main/resources via the
jaxb-maven-plugin (JAXB 4.0, jakarta.* namespace), which is wired into the build.
This replaces the old xjc command-line tool, which is no longer shipped with the JDK
(JAXB was removed from the JDK in Java 11) and requires no separate installation.
The plugin runs during the generate-sources phase, so a normal build regenerates the
sources in place under src/main/java:
mvn generate-sources # regenerate only
mvn clean install # regenerate, compile, test and packageEach XSD is mapped to its own package via a dedicated plugin execution in pom.xml:
| Schema | Package |
|---|---|
src/main/resources/imscp_v1p2.xsd |
org.olat.imscp.xml.manifest |
src/main/resources/imsmd_v1p2p4.xsd |
org.olat.imsmd.xml.manifest |
src/main/resources/imsqti_metadata_v2p1.xsd |
org.olat.imsqti.xml.manifest |
src/main/resources/oomd_v1p1.xsd |
org.olat.oo.xml.manifest |
Build requirements: Java 17.
Namespace prefixes for the generated packages are declared in their package-info.java,
e.g.:
@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://www.openolat.org/xsd/oomd_v1p1",
elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED,
location = "http://www.openolat.org/xsd/oomd_v1p1.xsd",
xmlns = { @jakarta.xml.bind.annotation.XmlNs(namespaceURI = "http://www.openolat.org/xsd/oomd_v1p1", prefix = "oomd") })
package org.olat.oo.xml.manifest;