配置ant以使用Apache XML解析程序

时间:2016-08-12 15:16:07

标签: xml ant

我一直在尝试使用apache xml解析器获取ant(9.6和9.7)来解析XML URI查找。我显然已经犯了一些我忽略的错误。如果有人能在这里看到我错误配置的内容,我将不胜感激。

ant在任何情况下似乎都不使用解析器。我错误配置了什么?

我有以下内容:

的build.xml

<project basedir="." name="testme">

  <xslt
    style="input.xsl"
    in="input.xml"
    out="output.xml">


    <xmlcatalog>
      <catalogpath>
        <pathelement 
        location="${basedir}${file.separator}catalog.xml"/>
      </catalogpath>
    </xmlcatalog>        
  </xslt>  
</project>

的catalog.xml

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"   
  prefer="public">
  <uri name="input.xsl" uri="test-input.xsl"/>
  <uri name="input.xml" uri="test-input.xml"/>    
</catalog>

当前目录包含test-input.xsl和test-input.xml。 我的主目录中有一个.antrc文件,其中只包含以下行:

ANT_OPTS=-Dxml.catalog.verbosity=99

resolver.jar位于我主目录的.ant/lib子目录中。我也尝试将它放在ant自己的lib目录中。

运行ant我可以看到verbosity属性已设置,因此使用目录的任何活动都应转储为标准错误。运行ant -debug表明它根本没有尝试使用解析器(堆栈跟踪中没有它的迹象)。构建失败,并显示.../input.xml does not exist消息。

我做错了什么(和/或被误解了)?

1 个答案:

答案 0 :(得分:0)

自己回答这个问题以供将来参考。解析器仅在 xml验证和xslt任务中使用。所以......

<xslt
    style="input.xsl"
    in="input.xml"
    out="output.xml">
…
</xslt>

会导致解析程序用于xsl:import中的任何xsl:includeinput.xsl语句,但ant不会使用解析程序查找stylein中引用的文档Messages属性。