最終更新日: 2010年9月12日
32ビット版の「秀丸エディタ (秀まるおのホームページにて公開)」で編集中の文書が、XML文書かどうかを検証するためのマクロです。文書の検証には、MSXMLを用います。Windowsの日本語環境下でのみ使用できます。
Windows 95やWindows NT 4.0をご使用の場合、Internet Explorer 4.0以上をインストールする必要があるかもしれません。詳しくは、動作に必要なMSXMLのバージョンをご覧ください。
秀丸エディタで編集中の文書を保存してからxmlph.macを実行することで、XML文書かどうかの検証を行えます。
なお、xmlph_option.macを実行すると、オプション ダイアログ ボックスが開き、文書の検証動作を変更できます。以下に、オプション ダイアログ ボックスの説明を記します:
文書の妥当性を検証する:
チェックを入れると、文書がXML文書として妥当かどうかを検証します。チェックを外すと、文書が整形式のXML文書かどうかのみを検証します。標準では、チェックが入っています。
ただし、MSXMLの「XMLドキュメント オブジェクト」を使用する場合、このオプションの設定は無視します。常に、文書が整形式のXML文書かどうかのみを検証します。
文書外の定義を解決する:
チェックを入れると、文書の検証時に、文書外で定義されているリソースの検証も行います。標準では、チェックが入っています。
ただし、MSXMLの「XMLドキュメント オブジェクト」を使用する場合、このオプションの設定は無視します。常に、文書外で定義されているリソースの検証は行いません。
文書中のエラー位置に、カーソルを移動する:
チェックを入れると、文書の検証中にエラーを発見した場合、カーソルをそこへ移動します。
MSXMLの「DOMドキュメント オブジェクト」を用いて文書を検証する場合、文書が文書型定義(DTD)やスキーマに完全に合致しているかどうかを検証するには、「文書の妥当性を検証する」と「文書外の定義を解決する」にチェックを入れておく必要があります。
一方、MSXMLの「XMLドキュメント オブジェクト」は、「文書が整形式のXML文書かどうか」のみしか検証することができません。
文書の検証に用いるオブジェクト:
文書の検証に用いる、MSXMLの「XMLドキュメント オブジェクト」か「DOMドキュメント オブジェクト」の、プログラムID (ProgID) を入力します。WindowsにMSXMLバージョン6以下がインストールされている場合は、それらのProgIDをリストから選ぶこともできます。
たとえば、MSXMLバージョン6.0がWindowsにインストールされていて、これの「DOMドキュメント オブジェクト」を文書の検証に用いる場合は、リストからMsxml2.DOMDocument.6.0
という項目を選びます。
なお、ProgIDを何も指定しなかった場合 (空欄にした場合) は、MSXMLバージョン6以下がWindowsにインストールされているかどうかを検索し、もっともバージョンの大きいものを自動的に用います。
ちなみに、プログラムID (ProgID) とは、Windowsに登録されている、オートメーション オブジェクトの短い名前です。ProgIDは、servername.typenameという形式で記述し、半角文字で39字以内です。Visual BasicのCreateObject
関数や、JScriptのActiveXObject
関数でも、このProgIDを引数に用いますよね。
また、オートメーション オブジェクトとは、自身の機能をほかのプログラムに対して公開しているオブジェクトのことです。プログラムは、オートメーション オブジェクトを呼び出すことにより、そのオブジェクトが持つ機能を利用できます。
本マクロは、マイクロソフト社が公開しているMSXMLというライブラリにある、「XMLドキュメント」または「DOMドキュメント」というオートメーション オブジェクトを用います。
MSXMLは、Internet Explorer 4.0以上に付属しています。そのため、Windows 95やWindows NT 4.0をご使用の方は、Internet Explorer 4.0以上をインストールしておく必要があるかもしれません。
なお、インターネットに接続できるならば、MSXMLだけをマイクロソフト社のWWWサイトからダウンロードし、インストールすることもできます。
なお、文書の検証に用いるMSXMLの「XMLドキュメント」または「DOMドキュメント」の各オブジェクトを指定することもできます。そのためには、xmlph_option.macを実行して、オプション ダイアログ ボックスを開きます。詳しくは、3. 使用方法
の、文書の検証に用いるオブジェクト
をご覧ください。
何らかの媒体に転載する場合は、事後でも結構ですので、ご一報ください。