使用XJC和XMLCatalog使用相对路径

时间:2012-07-27 11:14:48

标签: xml xjc xmlcatalog

我使用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的解决方法?

1 个答案:

答案 0 :(得分:0)

我使用相对路径进行的网络搜索未成功。

最后,我最终编写了一个编辑目录文件的ant任务。

详细信息该任务编辑目录文件的xml:base属性,并将绝对路径插入目录文件。然后我将目录保存为例如catalog_temp.xml并获取所有带有XPath的nextCatalog节点,这些节点将像第一个一样进行递归编辑。

执行XJC后,我再次执行我的ant任务,删除所有已编辑的(catalog_temp.xml)目录。