3

ランタイム クラス パスに含まれる jar ファイル内にある xml スキーマ (xsd) ファイルがあります。私の Wsdl では、jar ファイル内の場所を指定してスキーマをインポートする必要があります。

XML カタログを使用しようとしましたが、使用しているサーバー (websphere) が xml カタログ参照を解決しません。

4

3 に答える 3

3

jar ファイルに含まれるすべてのファイルには、独自の URL があります。たとえば、jar ファイルの絶対パス名 (Windows の場合) の場合:

C:\project\jars\somestuff.jar

およびその jar に含まれるスキーマのパス名 (jar のルートからの相対パス):

/xml/schemas/myschema.xsd

スキーマ ファイルへの完全な URL は次のようになります。

jar:file:/C:/project/jars/somestuff.jar!/xml/schemas/myschema.xsd

また、XML スキーマに、その jar にもある他のスキーマへの参照が含まれている場合は、相対パス名 (指定されたスキーマに関連する) を使用できます。

たとえば、myschema.xsdその jar で見つかった別のスキーマをインポートするとします。

/xml/schemas/general/types.xsd

次に、<xs:import>要素は次のように指定できます。

<xs:import namespace="http://www.company.org/general/types"
           schemaLocation="general/types.xsd"/>

これによりtypes.xsd、同じjarファイルからロードされます。

于 2013-07-17T16:29:00.047 に答える
0

スキーマにファイルとしてアクセスすることはできません。ストリームとしてアクセスする必要があります。

Schema schema = schemaFactory.newSchema(new StreamSource(new InputStreamReader(getClass().getResourceAsStream("/xml/schemas/general/types.xsd"))));
于 2020-01-13T06:59:09.063 に答える