我使用XJC,现在我想使用引用其他目录的XMLCataloges。问题是它在引用其他目录时应该能够使用相对路径而不是绝对路径。
此目录位于project1中,应引用project2中的catalog.xml文件。
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<public publicId="http://company.com/test"
uri="src/main/resources/test.xsd" />
<nextCatalog catalog="../project2/catalog.xml" /></catalog>
XJC调用如下所示:
<java fork="true" jar="${xjc-jar-file}">
<!-- folder where the generated files should be saved -->
<arg value="-d" />
<arg value="${target-folder}"/>
<arg value="-extension" />
<!-- catalog file -->
<arg value="-catalog" />
<arg value="${catalog-file}" />
<!-- current xsd file -->
<arg value="@{xsd-file}" />
</java>
我是否在目录文件中犯了错误,或者是否有使用此类目录与XJC的解决方法?
答案 0 :(得分:0)
我使用相对路径进行的网络搜索未成功。
最后,我最终编写了一个编辑目录文件的ant任务。
详细信息该任务编辑目录文件的xml:base属性,并将绝对路径插入目录文件。然后我将目录保存为例如catalog_temp.xml并获取所有带有XPath的nextCatalog节点,这些节点将像第一个一样进行递归编辑。
执行XJC后,我再次执行我的ant任务,删除所有已编辑的(catalog_temp.xml)目录。