JavaでXMLSchemaを検証し、無効なコンテンツモデルがあるとSAXParseExceptionsをスローします。SAXParseExceptionをJavaで効果的に使用する方法
私はこれらの例外を使用して検証が失敗した場所を強調しますが、SAXParseExceptionsはあまりにも低レベルなようです。
たとえば、列挙に失敗した場合、提供された値が1つの例外でコンテンツモデルと一致せず、次に適用される要素と一致しないという妥当性エラーが発生します。
私は、関連するエラーを一緒にマージし、例外テキストを使用可能な例外プロパティに解析するために少し抽象化したユーティリティを用意する必要があると考えています。
これは合理的なアプローチですか、それとも何か不足しているのでしょうか、あるいはライブラリやヘルパークラスですか?
更新@timgilbert、応答に感謝します。例えば
、SAXParseExceptionのは、私は私のために重要な事は
- 要素 'en' と、この例外が適用されるあるt'internet
cvc-pattern-valid: Value 'en' is not facet-valid with respect to pattern '([a-zA-Z]{1,8})(-[a-zA-Z0-9]{1,8})*'
で見つかりました。なぜexception.getElement()か何かを呼び出すことができないのですが、問題の要素に対してXPathを使用しないのはなぜですか?メモリ内の文書に行と列の番号よりも便利です!
- パターンの検証に失敗しました。なぜ失敗の可能性のある列挙型や適切な型への参照のようなものが得られないのでしょうか?
- 検証が失敗した実際のパターン。私が
に私が行うことができるようにしたいものの一例をマージする必要があり、問題の原因となった「エン」要素の値を伝えるために、次のスロー別の例外があることでしょう
私はおそらく、 'reference-to-element'のことで間違っていると思います。おそらく、検証の一環としてドキュメントの恒等変換を行うべきでしょう。私がCSSで選ぶことができる検証エラー属性を使った変換。しかし、メッセージを解析してよりフレンドリーにする必要がある場合は、まだ助けにならないでしょう。
Re:tight binding、javax.xml.validation.Validator.validate()throws org.xml.sax.SAXExceptionとにかく - ではない私は離れて結合を仮定から得ることができるかどうかはわかり...
乾杯
+1、私はちょうど今朝早く同じ種類の問題に遭遇しました。投稿していただきありがとうございます。 –
問題はありません、私がばかではないことがうれしいです! – Brabster
私は非常に似た問題があります。これらのエラーをよりユーザーフレンドリーにするソリューションを見つけましたか? – Turismo