2012-02-23 14 views
0

コンポーネントからwsdlを生成するモデリングツールを使用しています。このツールは複数のwsdlファイルと必要なすべてのwsdlをインポートする1​​つのwsdlを生成します(いくつかはいくつかのWebサービスで必要な共通オブジェクトです)。私はすべてのファイルを1つにまとめたxslを書いたが、これはいくつかのwsdlが複数回、場合によってはそれ自身の子として含まれる結果となった。 これは、インポート要素を処理するテンプレートです:同じスタイルシートをインポートできない

<xsl:template match="wsdl:import"> 
    <xsl:apply-templates select="document(@location)"/> 
</xsl:template> 

ファイルがすでにインポートされ、もしそうなら、それを無視してきた場合、私はテストする方法をしたいと思います。 xslでこれを行う方法はありますか?ありがとう。詳細については

+0

あなたは、実証するために使用することができます小さな例(2-3小規模なXML文書のソースXMLを、提供してもらえ問題)。私はこの問題を解決する方法を知っていますが、自分の語彙を使って答えを表現したいと思います。 –

+0

Dimitre、私はここにコードサンプルを貼り付けようとしましたが、私はできませんでした。 xmlを電子メールで送る方法はありますか?ありがとう。 – bretter

答えて

0
<xsl:key name="imports-by-location" match="wsdl:import" use="@location"/> 

<xsl:template match="wsdl:import"> 
    <xsl:if test="generate-id() = generate-id(key('imports-by-location', @location))"> 
     <xsl:apply-templates select="document(@location)"/> 
    </xsl:if> 
</xsl:template> 

、参照muenchian方法(例えばhttp://www.jenitennison.com/xslt/grouping/muenchian.html

+0

これですべてのインポートが無視されます。同じ結果でテストで '='を '!='に変更しようとしました。 – bretter

+0

デバッグとは何ですか? penartur

+0

<デバッグのxmlns:XSD = "http://www.w3.org/2001/XMLSchema" のxmlns:XS = "http://www.w3.org/2001/XMLSchema"> N1000A N1000A bretter

関連する問題