2016-08-12 18 views
0

私は、apache xmlリゾルバを使用してXML URIルックアップを解決するためにant(9.6と9.7)を取得しようとしていました。私は間違いを犯してしまいました。私がここで間違って設定したものを誰かが見ることができたら、私は感謝します。Apache XMLリゾルバを使用するantの設定

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> 

現在のディレクトリがテストinput.xslとテストの両方を含んでいない

<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> 

のcatalog.xml -input.xml。

ANT_OPTS=-Dxml.catalog.verbosity=99

resolver.jarは私のホームディレクトリの.ant/libサブディレクトリにあります。 は、私はちょうどラインが含まれている私のホームディレクトリに.antrcファイルを持っています。私はまた、ant自身のlibディレクトリに配置しようとしました。

antを実行する冗長性プロパティが設定されているため、カタログを使用しているすべてのアクティビティを標準エラーにダンプする必要があります。 ant -debugを実行すると、リゾルバをまったく使用しようとしていないことが示唆されます(スタックトレースではそれが何も表示されません)。ビルドに失敗し、.../input.xml does not existというメッセージが表示されます。

私は何が間違っている(および/または誤解した)のですか?

答えて

0

今後の参考としてこの回答にお答えください。リゾルバは、 xml validationおよびxsltタスク内でのみ使用されます。だから... ...

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

input.xslに任意のxsl:importまたはxsl:include文に使用されているリゾルバにつながるだろうが、アリはstyleまたはin属性のいずれかで参照された文書を検索するために、リゾルバを使用しません。

関連する問題