2

サーバー側 Java のスキーマに対して XML ドキュメントを検証する場合、組み込みの JRE Xerces 実装と javax.xml.validation.Schema を使用します。正常に動作しますが、検証が失敗すると、Xerces はほとんど役に立たないエラー メッセージを表示します。次に例を示します。

cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'PopulatedStringType'

これらは、検証に失敗した XML ドキュメントの特定の部分を診断して追跡するのに時間がかかる場合があります。これはすべて、不十分なエラー メッセージが原因です。

私の質問は、スキーマに対して XML を検証する別の手段を使用していますか?

これはサーバー側 Java であるため、「XML Spy を使用する」などとは言わないでください。

4

5 に答える 5

2

検証用のハンドラーで、そのメッセージとともにSAXParseExceptionを受け取り、XMLファイルの列番号と行番号を受け取る必要があります。そうではないですか?

于 2008-10-04T01:09:29.437 に答える
0

Xercesエラーの解釈に問題があり、ドキュメント内のどこでルールに違反したかを強調するのに役立つものが必要な場合は、oXygenなどのXMLオーサリングツールを確認してください。

代替テキスト
(ソース:oxygenxml.com

スキーマをインスタンスXMLドキュメントに関連付けると、エディターはドキュメントの問題のある領域を強調表示し、違反の説明を提供します。

さらに、さまざまなエンジンを使用して検証を実行できます。

oXygenには、Xerces、LIBXML、XSV、Saxon SA、MSXML4.0、MSXML .NET、およびSQCのサポートが組み込まれています。

于 2009-05-30T23:59:45.087 に答える
0

Castorを使用します。

Castor は、Java[tm] 用のオープン ソース データ バインディング フレームワークです。これは、Java オブジェクト、XML ドキュメント、およびリレーショナル テーブル間の最短パスです。Castor は、Java から XML へのバインディング、Java から SQL への永続性などを提供します。

于 2008-10-02T15:22:01.023 に答える
0

検証パーサーと XSLT 2.0 を備えた xmlparserv2.jar を含むOracle の XDK (XML Development Kit)を使用します。JAXB API を使用するため、クラスパスに追加してインポートを変更するだけで済みます。完璧ではないエラーをスローしますが、あなたの例よりも簡単に理解できると思います。

于 2008-09-30T16:35:22.720 に答える
0

xmlstarlet (xmlstar.sourceforge.net/) は、コマンド ライン ツールキットです。特定の xml に対して Runtime.exec() を使用して実行できます (xml がファイル内にある限り)。

于 2008-09-30T16:52:37.627 に答える