Hi, I have a test case that uses a set of WSDLs and schemas with multiple imports using relative URIs.
ie: A.wsdl imports B.xsd that imports C.xsd, all are located in the same directory. In A.wsdl: <xsd:import namespace="http://foo" schemaLocation="./B.xsd"/> In B.xsd: <xsd:import namespace="http://foo/bar" schemaLocation="./C.xsd"/> Code generation works fine, however I have a problem at runtime where the server fails to initialize with the following exception: java.lang.RuntimeException: org.apache.ws.commons.schema.XmlSchemaException: /[my project path]/C.xsd (No such file or directory) The problem is that the URI for importing C.xsd is incorrectly determined. In the example above, C.xsd would actually be located in /[my project path]/target/test/wsdl/C.xsd I see the following behavior in org.apache.cxf.resource.URIResolver: For A imports B, we create a URIResolver with the following parameters: baseUriStr = "file:[path to A]/A.wsdl" (correct) uriStr = "./B.xsd" Then tryFileSystem(baseUriStr, uriStr) is invoked and B.xsd is correctly resolved. Now for B import C, we create a URIResolver with the following parameters: baseUriStr = "./B.xsd" uriStr = "./C.xsd" The value for the base URI being set to a relative path, we fail to resolve C.xsd. tryFileSystem ends up calling tryClasspath("./C.xsd"), which in turn calls tryRemote(), which aborts on a MalformedURLException. I simplified my test case a bit in an effort to isolate the issue, but I get the same problem when using relative URIs to import schemas from different directories. Should I file a bug report for this, or am I doing something wrong ? This use case was working before the switch from XmlSchema 1.0.2 to 1.1 Best regards, Michael
