パフォーマンスと精度の両方で推奨できる XML 検証ツールはどれですか。それぞれがシステムの重大な問題です。次の要件があります。
- xmllintではありません(以下を参照)。
- リラックスNG対応
- Perl と簡単に統合できます (これはオプションですが、あると便利です)
なぜxmllintではないのですか?(これは背景です。必要に応じてスキップできます)
XML を検証するために RelaxNG を使用する大規模な Perl システムがあります。コンパクトなRelaxNG形式とtrangを使用して、標準のRelaxNG形式に変換します。次に、 xmllintを介して実際の検証を行います。
問題が発生するのはそのときです。xmllint には、検証エラーを誤って報告するという問題が定期的に発生します。誤検知や誤検知は発生しませんが、ドキュメントの検証に失敗した場合、xmllint は特定のエラーに対して間違った要素または属性を報告することがよくあります。エラーが正しい場合もありますが (「要素 'bar' が表示されるとは予想していませんでした)、それは以前のエラーが報告されていないためです ('bar' は必須であるが欠落している要素 'foo' に続くはずでしたが、xmllint はそうではないためです」)。これは xmllint の長年の問題であり、最新バージョンでさえ同じ問題を抱えていることに注意してください. 私たちはしばしば巨大な XML 文書を持っており、エラーを誤って報告すると、クライアントと開発者の両方に多くの悲しみをもたらします.