The default language loader of x4o loads all 'META-INF/language/language-modules.xml' resources found in the classpath.
So every extension library has its own modules definition file. All options are allowed in multiple forms and order.
The xsd file can be found in the x4o-core project classpath 'META-INF/language/modules-1.0.xsd'.
<?xml version="1.0" encoding="UTF-8"?> <modules version="1.0" xmlns="http://language.x4o.org/xml/ns/modules" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://language.x4o.org/xml/ns/modules http://language.x4o.org/xml/ns/modules-1.0.xsd" > <language version="1.0"> <eld-resource>foobar-lang.eld</eld-resource> <eld-resource>foobar-backend-default.eld</eld-resource> <eld-resource>foobar-backend-old.eld</eld-resource> <module-loader>org.foo.bar.x4o.FooCustomModuleLoader</module-loader> <module-loader>org.foo.bar.x4o.BarCustomModuleLoader</module-loader> <sibling-loader>org.x4o.xml.meta.MetaLanguageSiblingLoader</sibling-loader> <sibling-loader>org.foo.bar.x4o.HelloWorldQueryLanguageSiblingLoader</sibling-loader> </language> <language version="2.0"> <eld-resource>foobar-lang-2.0.eld</eld-resource> </language> </modules>
The eld-resource tag loads the eld resource relative from the modules xml resource.
The module-loader lets you define module extensions and namespaces in code.
The sibling-loader lets you load other languages into the language used.