我正在使用maven-jaxb2-plugin,我的.xsd文件属于maven依赖项。文档显示您在maven依赖项中指定.xsd,如此
<schema>
<!-- Specifies a schema from the Maven artifact. -->
<dependencyResource>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin-tests-po</artifactId>
<!-- Version of the artifact. May be omitted.
The plugin will then try to find the version using
the dependencyManagement and dependencies of the project. -->
<version>${project.version}</version>
<!-- Path of the resource within the artifact. -->
<resource>purchaseorder.xsd</resource>
</dependencyResource>
</schema>
我想在依赖的.jar文件中的所有.xsd文件上运行xjc。 .xsd文件位于.jar文件中的不同目录中。我试过这个
<resource>**/*.xsd</resource>
但是这个例外失败
org.xml.sax.SAXParseException; schema_reference.4: Failed to read schema document 'maven:com.dg:XSD:jar::5.0.3.4!/**/*.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
当它们位于不同的目录中时,有没有办法在mvn依赖项中指定所有.xsd文件?
另外,xjc可以在一组.xsd文件中排序一个依赖关系树,其中一个.xsd文件依赖于另一个.xsd文件可能依赖于另一个。...
感谢。
答案 0 :(得分:0)
当它们位于不同的目录中时,有没有办法在mvn依赖项中指定所有.xsd文件?
不,目前您必须指定单个架构文件。您不需要指定所有这些,只需指定“根”。 为此,请随意file an issue。
另外,xjc可以在一组.xsd文件中排序一个依赖关系树,其中一个.xsd文件依赖于另一个.xsd文件可能依赖于另一个。...
是的,XJC递归地解析了模式依赖性。您可以编译大型深层架构林I'm doing this routinely。