0

WSDLファイルからインラインスキーマを抽出したい。しかし、そのためにXSL変換を実行する方法がわかりません。そのようなスタイルシートを作成する上での助けは素晴らしいでしょう。

どうもありがとう、

4

2 に答える 2

0

これは私のために働いています:

<?xml-stylesheet type="text/xsl"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:s="http://www.w3.org/2001/XMLSchema" >

<xsl:output method="xml" />

<xsl:template match='text()' />

<xsl:template match="//s:schema">
    <xsl:copy-of select='.'/>
</xsl:template>    

</xsl:stylesheet>

インラインスキーマがhttp://www.w3.org/2001/XMLSchema名前空間を使用していることを前提としています。

于 2012-07-10T13:04:55.547 に答える
0

これは、wsdl に複数のスキーマ要素が含まれている場合にできること ですファイル。

Maven プラグインを使用して、Saxon で 2.0 xslt を実行できます ( http://www.mojohaus.org/xml-maven-plugin/examples/transform-saxon.htmlを参照) 。

次に、生成された *.xsd ファイルと SOAP エンベロープの公式定義をインポートするだけの小さなスキーマ ファイルを作成します。

<?xml version="1.0" encoding="UTF-8" ?>  
<xsd:schema attributeFormDefault="unqualified"       elementFormDefault="qualified" targetNamespace="http://your.company.com/dummy" xmlns:xsd="http://www.w3.org/2001/XMLSchema">                      
   <xsd:import namespace="http://<target namespace of the first xsd file>"  schemaLocation="file:///path/to/first.xsd"  />
   <xsd:import namespace="http://<target namespace of the second xsd file>" schemaLocation="file:///path/to/second.xsd"  />
    ...

   <xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="http://schemas.xmlsoap.org/soap/envelope/" />
</xsd:schema>

カスタム Resource Resolver を使用する場合、schemaLocation 属性は必要ありません。

于 2016-07-21T17:28:11.673 に答える