1. ホーム
  2. xml

[解決済み】XML スキーマ(XSD)検証ツール?[クローズド]

2022-04-04 20:58:45

質問

現在、会社では、与えられたスキーマに基づきXMLファイルを生成するアプリケーションを作成しています。 スキーマは.XSDファイルで持っています。

生成されたXMLがスキーマと一致しているかどうかを確認するための自動テストに使用できるツールやライブラリはありますか?

スキーマチェッカーはバンドルしないので、開発者が開発中に使えればいいのですが、商用に適したフリーのツールを希望しています。

xmlファイルを生成し、テストの中で別のプログラムを呼び出して検証を行うことができるので、その必要はないと思いますが、開発言語はC++です。

どのように解決するのですか?

いろいろ調べた結果、ベストアンサーは ゼルセス XSDのすべてを実装しており、クロスプラットフォームで、広く使われているからです。私は githubの小さなJavaプロジェクト JREのデフォルトのパーサー(通常はXerces)を使って、コマンドラインから検証を行います。これは、Windows/Mac/Linuxで使用することができます。

また XercesのC++版 を使いたい場合は、そちらをご利用ください。 その StdInParseユーティリティ を使えば、コマンドラインから呼び出すことができます。また、下のコメント欄では、次のように指摘されています。 より完全なラッパーユーティリティ .

の一部である xmllint を使用することもできます。 libxml . すでにインストールされている方も多いかもしれません。使用例です。

xmllint --noout --schema XSD_FILE XML_FILE

一つ問題があるとすれば、libxmlはすべての仕様を実装しているわけではないので、問題にぶつかる可能性があることです :(

あるいは、Windowsなら msxml しかし、これを呼び出すには、次のような GUI 用のラッパーが必要です。 DDJの記事 . しかし、Windows ではほとんどの人が Notepad++ のような XML エディタを使用しているようです ( ネイトの回答 または XMLメモ帳2007 として 提案者:SteveC (ここでは触れませんが、いくつかの商用エディタもあります)。

最後に、プログラムによって、残念ながら結果が異なることがおわかりいただけると思います。これは、XSDの仕様が複雑であることが主な原因です。いくつかのツールでスキーマをテストしてみるとよいだろう。

アップデイト : で展開しました。 ブログ記事 .