xml-maven-plugin icon indicating copy to clipboard operation
xml-maven-plugin copied to clipboard

Catalogs cannot be loaded via resource: URL

Open sewe opened this issue 4 years ago • 1 comments

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:

  1. Bundle your schemas or stylesheets along with a catalog into a resource JAR
  2. Refer to the schemas only via their <publicId> during plug-in <configuration>
  3. Moreover, any schema imports can again only use their xs:import/@namespace; no xs:import/@schemaLocation with a Maven-specific resources: 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.

sewe avatar Aug 03 '20 19:08 sewe