xml-maven-plugin
xml-maven-plugin copied to clipboard
Catalogs cannot be loaded via resource: URL
The FAQ state the following:
The plugin attempts to resolve resources through the class loader automatically. Alternatively, you can enforce using the class loader, if you specify your resource with an URI like "resource:org/foo/stylesheet.xsl".
Unfortunately, that is only true to stylesheets or schemas, not for catalog files. (To test, simply change mojo-1438-validate
’s pom.xml
: <catalog>resource:src/main/xml/catalog.xml</catalog>
)
This prevents the following use case:
- Bundle your schemas or stylesheets along with a catalog into a resource JAR
- Refer to the schemas only via their
<publicId>
during plug-in<configuration>
- Moreover, any schema imports can again only use their
xs:import/@namespace
; noxs:import/@schemaLocation
with a Maven-specificresources:
scheme is necessary, as the catalog takes care of the mapping.
In other words, the schemas are completely generic. Any Maven-specifics are localized in the catalog.xml
that is shared along-side the schemas.