cxf-codgen-plugin cannot resolve xs:group element referenced in an XSD
----------------------------------------------------------------------

                 Key: CXF-2599
                 URL: https://issues.apache.org/jira/browse/CXF-2599
             Project: CXF
          Issue Type: Bug
          Components: Tooling
    Affects Versions: 2.2.5
         Environment: $ mvn --version
Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500)
Java version: 1.6.0
Java home: D:\Program Files\IBM\RAD75\jdk\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows xp" version: "5.1 build 2600 service pack 3" arch: "x86" 
Family: "windows"

            Reporter: Craig Tataryn
            Priority: Critical
         Attachments: runtime schemas.jpg

In an attempt to isolate XSDs from WSDLs such that we have one and only one 
Maven module containing XSDs I have run into the following problem when running 
cxf-codegen-plugin from a module separated from the XSD module:

{code:title=stack trace}
[INFO] Schema Error : src-resolve: Cannot resolve the name 
'InfrastructureRootElements' to a(n) 'group' component.

[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Schema Error : 
src-resolve: Cannot resolve the name 'InfrastructureRootElements' to a(n) 
'group' component.
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
        at 
org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:599)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: Schema Error : 
src-resolve: Cannot resolve the name 'InfrastructureRootElements' to a(n) 
'group' component.
        at 
org.apache.cxf.maven_plugin.WSDL2JavaMojo.processWsdl(WSDL2JavaMojo.java:482)
        at 
org.apache.cxf.maven_plugin.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:387)
        at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
        ... 17 more
Caused by: org.apache.cxf.tools.common.ToolException: Schema Error : 
src-resolve: Cannot resolve the name 'InfrastructureRootElements' to a(n) 
'group' component.
        at 
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.validateSchema(JAXBDataBinding.java:667)
        at 
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.addSchemas(JAXBDataBinding.java:399)
        at 
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:313)
        at 
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:576)
        at 
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:228)
        at 
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:128)
        at 
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:271)
        at 
org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
        at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
        at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
        at 
org.apache.cxf.maven_plugin.WSDL2JavaMojo.processWsdl(WSDL2JavaMojo.java:479)
        ... 20 more
Caused by: org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 
'InfrastructureRootElements' to a(n) 'group' component.
        at 
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown 
Source)
        at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at 
org.apache.xerces.impl.xs.traversers.XSDHandler.reportSchemaError(Unknown 
Source)
        at 
org.apache.xerces.impl.xs.traversers.XSDHandler.getGlobalDecl(Unknown Source)
        at 
org.apache.xerces.impl.xs.traversers.XSDGroupTraverser.traverseLocal(Unknown 
Source)
        at 
org.apache.xerces.impl.xs.traversers.XSDAbstractParticleTraverser.traverseSeqChoice(Unknown
 Source)
        at 
org.apache.xerces.impl.xs.traversers.XSDAbstractParticleTraverser.traverseSequence(Unknown
 Source)
        at 
org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.processComplexContent(Unknown
 Source)
        at 
org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(Unknown
 Source)
        at 
org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseGlobal(Unknown
 Source)
        at 
org.apache.xerces.impl.xs.traversers.XSDHandler.traverseSchemas(Unknown Source)
        at org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(Unknown 
Source)
        at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(Unknown Source)
        at org.apache.xerces.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)
        at org.apache.xerces.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)
        at org.apache.xerces.jaxp.validation.XMLSchemaFactory.newSchema(Unknown 
Source)
        at javax.xml.validation.SchemaFactory.newSchema(Unknown Source)
        at 
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.validateSchema(JAXBDataBinding.java:662)
        ... 30 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8 minutes 35 seconds
[INFO] Finished at: Wed Dec 30 12:11:35 CST 2009
[INFO] Final Memory: 31M/156M
[INFO] ------------------------------------------------------------------------
{code}

If the XSDs are located within the *same* project that is running 
cxf-codegen-plugin, everything works fine.  It's only when the XSDs are being 
referenced from the classpath that this problem occures.

The error above originates when parsing FICR_IN110304CA.xsd, it references a 
schema named FICR_MT510401.xsd and within that schema (on line 105) there is an 
xs:group element like so:
{{<xs:group ref="InfrastructureRootElements"/>}}

InfrastructureRootElements is supposed to be imported via the statement on line 
86 of that same schema:
{{<xs:include schemaLocation="../coreschemas/infrastructureRoot.xsd"/>}}

I've attached a sample project which replicates the problem.  unzip the project 
and execute a {{mvn clean install}} within the CXFSchemaRefProblemPom directory.

I've also attached a variables view of the schema references loaded at runtime 
from my IDE when this error occures.  The reference to infrastructureRoot.xsd 
looks to be proper to me.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to