Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Manifest JAXB WS for OpenOLAT

This is a compiled version of several XML schemas to manage "imsmanifest.xml" files.

Generating the Java sources

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 package

Each 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 configuration

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;

Releases

Packages

Used by

Contributors

Languages