2

他の 2 つのスキーマをインポートする複雑なスキーマがあります。同じ複雑なスキーマから JAXB クラスを生成したいと考えています。IDEとコマンドラインの両方で試しました。しかし、クラスを生成できません。

 parsing a schema...

[エラー] src-resolve: 名前 'act:Activity' を (n) 'type definition' コンポーネントに解決できません。ファイルの 22 行目:/C:/Program%20Files/IBM/SDP/runtimes/base_v7/bin/Request.xsd

コマンドラインから上記のエラーが発生します。

このスキーマからクラスを生成する方法。XJC はインポートをサポートしていますか?

どんなポインタも役に立ちます。

4

1 に答える 1

0

JAXB の XJC ユーティリティは間違いなくインポートとインクルードをサポートしています。最初に確認することは、インポート/インクルード ファイルに解決可能な有効なシステム ID が含まれていることです。そうでない場合は、XJC がセカンダリ XML スキーマを見つけられるように、スキーマ カタログを利用できます。

スキーマ カタログ - TR9401 形式

-- Match address.xsd by URL --
SYSTEM "http://www.example.com/address/address.xsd" "imports/address.xsd"

-- Match phone-number.xsd by namespace URI --
PUBLIC "http://www.example.com/phone-number" "imports/phone-number.xsd"

スキーマ カタログ - OASIS XML カタログ形式

<!DOCTYPE catalog
    PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
           "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">

    <system
        systemId="http://www.example.com/address/address.xsd"
        uri="imports/address.xsd"/>
    <public
        publicId="http://www.example.com/phone-number"
        uri="imports/phone-number.xsd"/>

</catalog>

XJCコール

スキーマ カタログは、-catalogフラグを使用して参照されます。

xjc -d out -catalog catalog.cat customer.xsd

詳細については

于 2013-10-24T14:24:55.947 に答える