XML の検証

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  ユーザーマニュアル > メニューコマンド > XML メニュー >

XML の検証

ic_validate        F8

XML 検証(F8)」コマンドにより、DTD や XML スキーマ、またはその他のスキーマに対して XML ドキュメントの検証を行うことができます。 テキストビューから他のビューへの切り替えが行われた際にも、検証は自動的に行われます。 ファイルが開かれたり保存されたときに、自動的にドキュメントの検証が行われるよう指定することもできます(「ツール | オプション | ファイル」)。「検証」コマンドでは、検証が行われる前に整形式のチェックも行われます。そのため、「検証」コマンドを使用する前に 整形式のチェック を行う必要はありません。

 

ドキュメントが有効な場合、メッセージウィンドウ内に検証の成功メッセージが表示されます。

valid

そうでない場合、エラーの内容がメッセージウィンドウに表示されます(以下のスクリーンショットを参照)。リンクをクリックすることで、XML ファイル内のエラーが発見された箇所へジャンプすることができます。エラー メッセージの詳細と、XMLSpy のスマートフィックス を使用して検証エラーをフィックスする方法に関しては次のセクションを参照してください。

 

検証エラーとそのフィックス

「テキストビュー」または「グリッドビュー」にて検証が行われると、スキーマ内にある情報をベースに、修正の候補(スマートフィックス)が表示されます。スマートフィックスのオプションを参照するには、「スマートフィックスを表示」ボタンをクリックしてください(上のスクリーンショットを参照)。スマートフィックスの候補がメッセージウィンドウ内のペインに表示されます(以下のスクリーンショットを参照)。 これらの提案を表示しない場合、 「スマートフィックスを非表示」 をクリックします。(一致しない開始と終了タグなどの)整形式のエラーが存在する場合、これらのエラーは検証エラーの前に表示されます。ですから(整形式 エラーがすべて修正された後) 「表示/非表示 スマートフィックス」 ボタンは検証エラーが発生すると有効化されます。

Click to expand/collapse

スマートフィックスを適用するには、以下を行います (i) ダブルクリックする (ii) 「フィックス」 または 「フィックス + 検証」 オプションを選択してをクリックします(下のスクリーンショットを参照)。 「フィックス + 検証」コマンドは、固定されたエラー以外にも次のエラーが存在する場合はそのエラーをフィックスします。

ValidateXMLAutoFix

テキストビュー内では、2つの検証エラーの追加インジケーターが存在します (下のスクリーンショットを参照): (i) 行番号マージン内の赤い感嘆符 アイコン、および、 (ii) (ウィンドウの右の)スクロールバー内の赤い四角いマーカー。

TextViewValErrorIndicators

感嘆符 アイコンの横の電球 アイコンは、スマートフィックスアイコンです(上のスクリーンショット参照) 。マウスをポイントすると、エラーの原因の全てのスマートフィックスが表示されます(下のスクリーンショットを参照)。適用するスマートフィックスを選択します。

TextViewValErrorSmartFixes

メモ::出力ウィンドウには9つのタブがあります。検証の結果はアクティブなタブに表示されます。そのため、最初のタブにて整形式のチェックを行った後、2つ目のタブに切り替えて、別のドキュメント検証を行うといったことができます。2番目のドキュメントを検証するために、チェックを実行する前に、タブ2(または、タブ3)に切り替えます。タブを切り替えない場合、 タブ-1 (またはアクティブな タブ)が最新の検証のフォーミュラにより上書きされます。

 

プロジェクトウィンドウからの検証

検証コマンドはアクティブなプロジェクト内部にあるファイル、フォルダー、またはファイルのグループに対しても適用することができます。目的のファイルやフォルダーをプロジェクトウィンドウにて(クリックにより)選択し、メニューオプションから「XML | XML 検証」を選択するか、「F8」 を押下してください。プロジェクト内の妥当ではないファイルがメインウィンドウに表示され、ファイルが妥当でない旨のメッセージが表示されます。

 

XML ドキュメントの検証

XML ファイルを検証するには、XML ドキュメントをメインウィンドウにてアクティブな状態にした後、「XML | 検証」をクリックするか、「F8」 キーを押下します。XML ファイルから参照されているスキーマに対して XML ドキュメントが検証されます。参照が無い場合、エラーメッセージがメッセージウィンドウに表示されます。XML ドキュメントが開かれている場合、スキーマもメモリ内に保管されます(DTD/スキーマメニュー以下にある フラッシュメモリキャッシュ を参照ください)。

 

スキーマドキュメンテーション (DTD と XML スキーマ)の検証

XMLSpy では、DTD や XML スキーマといった広く使用されているスキーマがサポートされます。スキーマドキュメントの検証を行うには、ドキュメントをメインウィンドウにてアクティブにして、「XML | 検証」をクリックするか、「F8」  キーを押下します。

 

検証メッセージ

メッセージには以下の2種類があります:

 

スキーマ(DTD または XML スキーマ)が妥当な場合、検証に成功した旨のメッセージがメッセージウィンドウに表示されます。
スキーマが妥当で無い場合、エラーメッセージがメッセージウィンドウに表示されます(以下のスクリーンショットを参照)。

Click to expand/collapse

エラーメッセージは3つのパートから構成されます: 例えば、上のスクリーンショットでは、検証エラーを引き起こした可能性のある4つの理由についての詳細が報告されています。最初の理由は展開されており、3つの理由は折りたたまれています。それぞれの理由は3つの部分に分割されています:

 

1. エラーの説明:説明には関連する宣言や定義へのリンクが含まれます。特定のスキーマ定義に移動し、ドキュメントが無効な理由を確認することができます。

2. エラーの原因と、エラーが発生したノードへのフルパス: パス内のノードをクリックすることで、ドキュメント内の該当するノードがハイライトされます。

3. エラーの詳細: 更に詳細なエラーの情報と、該当する仕様の関連する段落へのリンクが含まれています。

 

メモ:検証がテキストビューで行われると、メッセージウィンドウのリンクをクリックすることで、関連した宣言や定義がテキストビューにてハイライトされます。検証がスキーマビューで行われると、関連する宣言や定義が、デザインウィンドウやスキーマビュー、または関連する入力ヘルパーにてハイライトされます。

 

カタログ

XMLSpy では OASIS XML カタログ機能のサブセットがサポートされます。カタログ機能により、一般的に使われているスキーマ(や、スタイルシートなどのファイル)が、XMLSpy によりローカルのユーザーフォルダーから取得されます。これにより全体的な処理スピードが向上し、(ネットワークに接続していない状態でも)ユーザーはオフラインで作業することができるようになり、(URI の変更はカタログファイル内部に限定されるので)ドキュメントのポータビリティーが向上します。XMLSpy のカタログ機能は以下のように動作します:

 

XMLSpy により、検索を行うカタログファイルのリストが含まれる RootCatalog.xml というファイルがロードされます。RootCatalog.xml ファイルにて nextCatalog 要素を加えることで、検索を行ないたいファイルを増やすこともできます。
RootCatalog.xml に収められたカタログファイルが検索され、カタログファイルで指定されたマッピングにより、URI が解決されます。エラーを起こす可能性があるため、マッピングの複製を行わないよう注意する必要があります。
XMLSpy では2つのカタログファイルが用意されています。これらの動作方法については XMLSpy のカタログセクションを参照ください。
XML ファイルの DOCTYPE ステートメントにおける PUBLIC ならびに SYSTEM 識別子はカタログの検索にて使用されます。広く使用されているスキーマでは、PUBLIC 識別子が既に定義されており、複数のコンピューターで XML ドキュメントが使用されている場合カタログファイル内部の URI を変更するだけで十分となります。

 

CustomCatalog.xml ファイル(または他のカスタムカタログファイル)を編集する場合、XMLSpy によるカタログが正しく行われるように、以下のサブセットだけを使用するようにしてください。サポートされているサブセットの各要素には xml:base 属性を含めることができ、その要素のベース URI を指定するのに使用することができます。

 

<catalog...>

...

<public publicId="PublicID of Resource" uri="URL of local file"/>

<system systemId="SystemID of Resource" uri="URL of local file"/>

<rewriteURI uriStartString="StartString of URI to rewrite" rewritePrefix="String to replace StartString"/>

<rewriteSystem systemIdStartString="StartString of SystemID" rewritePrefix="Replacement string to locate resource locally"/>

<uri name="filename" uri="URL of file identified by filename"/>

...

</catalog>

 

 

メモ:

 

%AltovaCommonFolder%\Schemas\schema フォルダー内の catalog.xml ファイルには、古いバージョンの XML 仕様を実装する DTD への参照が含まれています。これらスキーマを、XML スキーマドキュメントの検証に対して使用するべきではありません。参照された DTD ファイルは、古い勧告に従ったドキュメントの編集時に使用される XMLSpy の入力ヘルパーに対してのみ利用されます。
特定のスキーマに対してカスタムファイル拡張を作成すると、CustomeCatalog.xml に1行追加することで、インテリジェントな編集をその拡張子を持ったファイルに対しても使用することができるようになります(例えば、.myhtml という拡張子により、HTML DTD を使った HTML ファイルの検証を行うことができます)。この例に従うと、<spy:fileExtHelper ext="myhtml" uri="schemas/xhtml/xhtml1-transitional.dtd"/> という要素を <catalog> 要素の子要素として追加することになります。この操作により、XHTML 1.0 Transitional DTD に従う形で、自動補完や入力ヘルパーといったインテリジェントな編集機能を使いながら、.myhtml ファイルの編集を XMLSpy で行うことができるようになります。
カタログに関するより詳細な情報については、 XML カタログ仕様を参照下さい。

 

RaptorXML  2019 を使用して検証を自動化する

RaptorXML は、 XML 検証、XSLT 変換、と XQuery 変換のための Altova のスタンドアロンアプリケーションです。 Java プログラムと .NET 内の COM インターフェイスを使用して、アプリケーションコマンドラインから使用することができます。RaptorXML を使用すると、検証のタスクを自動化することもできます。例えば、 ドキュメントのセット上で検証を実行するために RaptorXML を呼び出すバッチファイルを作成し、テキストファイルに出力を送ることができます。 詳細に関しては、 RaptorXML ドキュメンテーション を参照ください。

 


(C) 2019 Altova GmbH