javaee / jaxb-v2

Other
211 stars 99 forks source link

XJC fails on RELAXNG_COMPACT compilation with datatype library "http://www.w3.org/2001/XMLSchema-datatypes" not recognized #1065

Open glassfishrobot opened 9 years ago

glassfishrobot commented 9 years ago

When trying to compile the attached (or any) RNC file I get:

datatype library "http://www.w3.org/2001/XMLSchema-datatypes" not recognized

Possibly related to #128 and #465.

I believe a link to the datatype library is somehow broken.

glassfishrobot commented 9 years ago

Reported by lexi

glassfishrobot commented 9 years ago

lexi said: Java 1.5 workaround is obviously not an option.

glassfishrobot commented 9 years ago

lexi said: Tested with 2.2.11 via maven-jaxb2-plugin and 2.2.4-2 via command-line.

glassfishrobot commented 9 years ago

lexi said: Stack trace (unfortunately not too enlightning):

org.xml.sax.SAXParseException; systemId: file:/C:/Projects/workspaces/mj2p/maven-jaxb2-plugin-project/tests/rnc/src/main/resources/georss.rnc; lineNumber: 25; columnNumber: 45; datatype library "http://www.w3.org/2001/XMLSchema-datatypes" not recognized   at org.kohsuke.rngom.binary.SchemaBuilderImpl.error(SchemaBuilderImpl.java:751)
    at org.kohsuke.rngom.binary.SchemaBuilderImpl.makeDataPatternBuilder(SchemaBuilderImpl.java:379)
    at org.kohsuke.rngom.parse.host.SchemaBuilderHost.makeDataPatternBuilder(SchemaBuilderHost.java:150)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.DataExpr(CompactSyntax.java:1856)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.PrimaryExpr(CompactSyntax.java:947)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.AnnotatedPrimaryExpr(CompactSyntax.java:891)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.UnaryExpr(CompactSyntax.java:1079)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.Expr(CompactSyntax.java:996)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.ListExpr(CompactSyntax.java:1475)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.PrimaryExpr(CompactSyntax.java:929)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.AnnotatedPrimaryExpr(CompactSyntax.java:891)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.UnaryExpr(CompactSyntax.java:1079)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.Expr(CompactSyntax.java:996)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.ElementExpr(CompactSyntax.java:1137)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.PrimaryExpr(CompactSyntax.java:917)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.AnnotatedPrimaryExpr(CompactSyntax.java:891)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.UnaryExpr(CompactSyntax.java:1079)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.Expr(CompactSyntax.java:996)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.Define(CompactSyntax.java:1618)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.Definition(CompactSyntax.java:1590)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.GrammarComponent(CompactSyntax.java:1561)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.GrammarBody(CompactSyntax.java:1547)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.TopLevelGrammar(CompactSyntax.java:747)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.Input(CompactSyntax.java:442)
    at org.kohsuke.rngom.parse.compact.CompactSyntax.parse(CompactSyntax.java:135)
    at org.kohsuke.rngom.parse.compact.CompactParseable.parse(CompactParseable.java:55)
    at com.sun.tools.xjc.ModelLoader.loadRELAXNG(ModelLoader.java:606)
    at com.sun.tools.xjc.ModelLoader.loadRELAXNGCompact(ModelLoader.java:595)
    at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:166)
    at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:119)
    at org.jvnet.mjiip.v_2_2.XJC22Mojo.loadModel(XJC22Mojo.java:50)
    at org.jvnet.mjiip.v_2_2.XJC22Mojo.doExecute(XJC22Mojo.java:40)
    at org.jvnet.mjiip.v_2_2.XJC22Mojo.doExecute(XJC22Mojo.java:28)
    at org.jvnet.jaxb2.maven2.RawXJC2Mojo.doExecute(RawXJC2Mojo.java:488)
    at org.jvnet.jaxb2.maven2.RawXJC2Mojo.execute(RawXJC2Mojo.java:311)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
glassfishrobot commented 9 years ago

lexi said: This is most probably due to com.sun.msv.datatype.xsd.ngimpl.DataTypeLibraryImpl missing from the classpath.

glassfishrobot commented 9 years ago

lexi said: Ok, so how it seems, for RelaxNG to work on these schemas, it needs a datatype library for XML Schema. This was a part of xsdlib or msv in the past and in modern days could only be found in com.sun.xml.bind:jaxb-extra-osgi. Which exists in 2.2.11 version. But is somehow labelled for OSGi and is not under the new groupId.

Adding com.sun.xml.bind:jaxb-extra-osgi to the classpath solves this particular problem. The compilation still fails but for other reasons.

What is not clear to me is what is happening here. Why does RelaxNG Datatype library only appear in jaxb-extra-osgi? What does it have to do with OSGI at all? Why isn't it in the new group id? what are the plans here? I have a not so good feeling about this.

glassfishrobot commented 9 years ago

becke.ch said: I've the same issue: OS: Distributor ID: Ubuntu Description: Ubuntu 14.04.2 LTS Release: 14.04 Codename: trusty

JDK: jdk-8u45-linux-x64.tar.gz

Running: /jdk1.8.0_45/bin/xjc -relaxng-compact datatypes.rnc ... parsing a schema... [ERROR] datatype library "http://www.w3.org/2001/XMLSchema-datatypes" not recognized line 9 of file:/ws/app/becke-ch--edoc--s0-v1/eclipse/becke-ch--epub--s0-0-v1--core/src/main/resources/ch/becke/epub__s0_0_v1/core/structure/metainf/mod/datatypes.rnc ... etc.

And the rnc file can be found here: http://www.idpf.org/epub/301/schema/mod/datatypes.rnc

glassfishrobot commented 9 years ago

File: georss.rnc Attached By: lexi

glassfishrobot commented 9 years ago

Was assigned to yaroska

glassfishrobot commented 7 years ago

This issue was imported from java.net JIRA JAXB-1065