xsdをマーシャリングしアンマーシャルしたいと思っています。私は1つのxsdファイルが含まれているA.jarと言っている瓶を持っている1.xsdを言う。 JAXBを使用して検証しようとしていますが、失敗します。 1.xsdは、異なるjar(B. jar)に存在する3つのスキーマをインポートしています。 1.xsdがそれを検証している間に、異なるjar(B.jar)に属するインポートされたファイルを読み取ることができるように検証する方法を教えてください。検証中に別の場所(Jar)からXSDスキーマを読み取る方法
答えて
両方のjarがクラスパス上で利用可能であると仮定すると、スキーマファイルが異なるjarに分散されているかどうかはそれほど重要ではありません。 1つのスキーマが別のスキーマをインポートまたは含む場合、重要なことはパスを解決できることです。
A.jar
とB.jar
に存在するmy.project.schemas
というパッケージがあるとします。 A.jar
のパッケージには、1.xsd
が含まれています。これは、B.jar
の同じパッケージに2.xsd
をインポートします。 1.xsd
でimport要素は次のようになります場合は...
<xs:import namespace="https://www.example.com" schemaLocation="2.xsd" />
それが動作するはずです。リゾルバは他のスキーマの位置を管理し、指定されたschemaLocation
は相対パスであるため、リゾルバは同じパッケージが異なる場所に存在するとみなします。
パッケージが異なると状況がさらに複雑になることがあります。その場合、適切なファイルを参照するためにパッケージ階層を上または下に移動する必要のある相対パスを使用する必要があります(例:がmy.project.schemas
のメンバーである場合はadditional/2.xsd
)。別のオプションはuse a custom resolverです。これにより、外部リソースの呼び出しをインターセプトしてプログラムで解決することができます。
最後に、Schema
オブジェクトhas a method that accepts an array of sourcesの作成に使用されるSchemaFactory
に注意してください。スキーマファイルごとにSource
を作成し、すべてをSchema
オブジェクトを作成するために工場に提供すると、場所の問題を回避できます。実際には、schemaLocation
属性を省略することができます。これは、指定されたすべてのスキーマで必要な参照が見つかる可能性があるためです。
以前は、JAXBを使用して、異なるパッケージ間でスキーマを使用しなければならなかったマーシャラー/アンマーシャラーを検証しました。これは、さまざまなjarにまたがっている可能性があります。ファクトリメソッドにスキーマごとにSource
を提供する最後の解決策が、私の好ましいアプローチでした。
- 1. RubyでのXSDスキーマ検証
- 2. 別の場所からプロパティファイルからの読み取り値
- 3. xsdスキーマに対してbig xmlを検証する方法は?
- 4. SpringのPayloadValidatingInterceptorで複数のXSDスキーマを検証する方法
- 5. XSDスキーマを検証しますか?
- 6. スキーマに対するXML(.xsd)フィード検証
- 7. JavaのXSD(XMLスキーマ)のみを検証する
- 8. XSDスキーマを使用したXml検証
- 9. XSDを使用してXSDスキーマを検証する
- 10. リモートサーバー上のJarファイルからファイルを読み取る方法
- 11. XMLから値を読み取り、XMLスキーマを検証する最も良い方法
- 12. カスタムの場所、つまり.NETのデータベースからapp.configを読み取る方法
- 13. 特定の場所からEOFにテキストファイルを読み取るC#
- 14. クラスパスからのXSDに対してSpring XMLスキーマを検証する
- 15. Schematronの検証(.sch)にスキーマの検証(.xsd)を含める[逆の方法ではない]
- 16. XSDスキーマに対してXMLファイルを検証し、すべての検証エラーをリストする方法
- 17. 現在の場所から地図を読み込む方法
- 18. JARディレクトリからプロパティファイルを読み取る
- 19. 特定のXSDスキーマに対してXMLを検証する
- 20. WSDLファイルでXsdスキーマの場所が見つかりません
- 21. タグを持つ.xsd(スキーマ)をスキーマバリデータを使用して検証する方法
- 22. スキーマを使用した寄木細工データの読み込み/ XSDを使用したXMLの検証
- 23. C#でファイルの場所がわからない場合、テキストファイルからデータを読み取る方法は?
- 24. ロードXSDスキーマは、私のjarファイル内の
- 25. jarファイル内のXSDスキーマの参照
- 26. svnフォルダをある場所から別の場所に移動する方法
- 27. xsdスキーマ検証エラーを修正するには?
- 28. xsdスキーマ検証エラーを修正するには?
- 29. デフォルトのDBOスキーマにないSQLサーバーデータベーステーブルからデータを読み取る方法
- 30. XSDまたはRelaxNGの検証時にエラーのxpathの場所を確認する方法は?
"JAXBを使用して検証しようとしていますが、失敗します" - どのように失敗するのですか、関連するコードスニペットやエラーメッセージを表示できますか? – gareththegeek