この記事はこの連載の第1回の続編であり、前回取り上げなかった4つのXMLエディターを調べます。ここで取り上げているエディターはすべてWin32に限定された製品です。これらのエディターはWINEやSoftWindows、あるいはそれらに類似したもののもとでも動作すると考えられますが、これに関してはテストもしていませんし調査の対象にもしていません。
前回調べたXMLエディターは、JavaとMacOSのアプリケーションでした。皆さんが使っているプラットフォームに応じて、該当するほうの記事をご覧ください。
具体的には、前回は、いずれもJava用のMorphonと <oXygen/>、そしてMacOS用のElfDataのXML Editorを調べました。今回は続編として次のものを評価します。
- AltovaのXML Spy
- Wattle SoftwareのXMLwriter
- NetBryx TechnologiesのEditML Pro
- CorelのXMetal
前回行った検討では、全体的にエディターのユーザー・インターフェースの応答性が1つの問題でした。Javaでは遅くなるという問題ですが、(ElfDataで使われている) REALBasicもその点では同様です。今回テストを行ったネイティブWin32製品は、Pentium II 366 MHzプロセッサーで64 MBのRAMという、まさにほどほどの構成のWin98ラップトップでも、すべてが非常に高速であるということをお知らせできるのはうれしいことです。安定性 が気になるときがあり、変換と妥当性検査も必ずしも速くないのですが、これらの製品の通常のインターフェースでは目立った一時停止はありませんでした。
第1回でも述べたように、一般的テキスト・エディターの検討はここでは意図的に除外します。それらの製品の中には、XML構文のあらゆるものを盛り込めて、テンプレートを作成できたりメニューをカスタマイズできる特長をもつ、かなり優れたものもあります。また、テキスト・エディター的な処理に関しては、専門分野に特化した新興のXMLエディターよりもテキスト・エディターの方が、総体的に高度で洗練された方法で処理します。XMLを現在のテキスト・エディターで編集することに満足されているなら、それはそれで必ずしも悪いことではありません。しかしXMLエディターの中には、一般的ないくつかの作業を非常に簡単にするものが実際にあります (そのような作業が多い場合は、カスタム・ツールに多少のお金を使うだけの価値はあります)。
一連のXMLエディターの検討を通して、私なりに引き出した特質があります。XML文書は一般的には、一般的文章 (prose) 型とデータ中心型の2つに分けられます。それぞれのタイプの文書を編集するときの要件は幾分異なります。
一般的文章の文書はXMLのルーツのSGMLを受け継いでいます。一般的文章の形式には通常、どのようなときにセクション、サブセクション、段落、章、グラフィックス、そして他の項目が相互に内部でネスト可能かという規則が複数あります。通常は、個々の語句に対して、文字中心型のマークアップをインラインで使用します (太字、強調、引用、リンクなど)。たとえばDocBookは広く使われており有名ですが、別の例としてはIBMのdeveloperWorks の記事の内部形式があります (テストには両方を使用しました)。
一方、データ中心型の文書の場合、それ自体には テキストはほとんどありませんが、数値と単純名のテーブルのような構造がネストされて含まれています。データ中心型XMLは多くの場合、RDBMSの表によく似ており、そのようなデータベースで生成されることもあります。XMLを列と行として表示できることは、データ中心型XMLにとってしばしば重要なことになります。
XMLエディターの中には、異なる文書タイプに適応できるモードとビューがあるものがあります。また、広く使われているXMLの方言を扱ったり、XML文書でよく使われる他のテクニックを扱う特殊な機能があるものもあります。使用にあたって特殊な要件がある場合は、製品がそのニーズに合うようにカスタマイズされているかどうかを考慮してください。少なくともほとんどのXMLエディターは、新規のDTDに対して自身を自動的にカスタマイズすることができます。ただし、その場合のカスタマイズのレベルは製品によってさまざまであることは言うまでもありません。
Wattle SoftwareのXMLwriter 1.21
2001年の私の記事でXMLwriterを取り上げましたが、今回再び調べてみると (バージョン1.21)、それ以来ほとんど変わっていないことが分かりました。近々予定されているバージョン2.0でかなりの更新が行われるように思えます。Wattleの担当者が私にそのETAを示したのですが、この記事を書いている時点でその日付をすでに過ぎています。開発の状況を気にかけておくことにします。
XMLwriterは、基本的にはテキスト・エディターによく似たものですが、XML特有のものがいくつか付け加えられています。文書を編集できる唯一のビューがテキストのビューです。ここでは構文が強調表示されます (図1 を参照)。プレビュー・モードとして、折りたためるツリー、CSSの表示、およびXSLT変換ビューがあり、これらにはMSXMLとInternet ExplorerのDLLが使用されます。これらのプレビューのすべてのビューには、組み込みのInternet Explorerのペインがすべてそのまま使われます。ただしInternet Explorerは、やはりインラインのCSS要素を正しくレンダリングしません (MozillaとOperaはこれを完全に行います)。このため、一般的文章の文書でのビューの有用性はかなり低くなります。(X)HTMLをターゲットにしたXSLTシートを開発済みでしたら、もちろんうまく表示されます。XMLwriterは、データ中心型の編集はまったくサポートしていません。
図1. XMLwriterエディター
XMLwriterには、妥当性検査と整形式の検査のオプション、XSLT変換のオプション、ブラウザー・プレビューのオプション、そしてプロジェクト (XML、XSL、CSS、スキーマなど関連ファイルのコレクション) の概念があり、テキスト・エディターの機能の域を超えています。しかし私が調べた他のほとんどの製品に比べると、付加機能が不十分です。TagBarは要素を挿入するツールとしてはあまり気が利いていません。属性を入力するときのヘルプがありませんし、妥当性検査は実際に完全に入力したあとで行われます。また検索ダイアログもひどく大ざっぱです (正規表現、XPathでの検索がありませんし、要素/属性/値を特定する検索もありません)。XMLwriterでできるほとんどすべてのことは、フリー・プログラマーによるjEditのような一般的エディターのほうがうまくできます。
XMLwriterバージョン1.21の価格は約40米ドルです。バージョン2.0がどういう価格になるのか私には分かりません。
NetBryx Technologies EditML Pro 2.6
EditML Proも、もう一つのかなりシンプルなWin32 XMLエディターですが、これはXMLwriterよりも多少洗練されています。これもXMLwriterと同様、MSXMLとInternet ExplorerのDLLの、シン・ラッパーと言ったものですが、それらのいろいろなバグも付きまといます。残念なことに、EditML Pro自体のバグも多少抱えています。たとえば「DTD Element View」ペインは、それをディセーブルしようとしているにもかかわらず、ずっと開いたままでした (その振る舞いは、評判の悪い面倒なMicrosoft Officeのpaperclipの振る舞いを取り入れているのかもしれません)。
EditML Proには複数のビューがあり、それぞれがXML文書に関連したウィンドウにタブ付きペインで配置されます。複数の文書の管理にはMDIスタイルのインターフェースが使われ、各ウィンドウにはそれぞれのタブが付いています。大半のツールと同様に、構文が強調表示される基本的な「SourceView」ペインがあります。「PreView」(組み込みのInternet Explorer) ペインと「DTDView」ペインもあります。しかしメインのビューはテーブル付きツリー ビューです。文書の構造が一方のペインに、折りたためるツリー階層で表示され、属性や要素の本体がもう一方のペインのテーブルに表示されます。長い属性値や本体テキストを編集するときは、3つ目のテーブル付きツリーを使います。
図2. EditML Proエディター
EditML Proのテーブル付きツリーのビューはデータ中心型文書の編集には便利ですが、一般的文章の文書の場合は実際にはそうもいきません。インラインのマークアップが子要素として扱われることは技術的には正しいのですが、問題はPCDATAノードと子要素ノードの間の関係を判別できないことです。たとえば図2 で、<author> 要素にはテキストが含まれており、内部のそのテキストは子の<img> と<a> です。しかしこのビューでは、そのテキストに関連したimageとanchorがどこに 現れるのかまったく判別できません。
EditML Proには便利なツールが組み込まれています。次のことができます。
- XML文書からDTDまたはW3C XML Schemaを自動的に生成する (自動的にできることの限界はあります)。
- DTDからW3CまたはMicrosoftスキーマに変換する。
- 妥当性検査とXSLT変換を行う。
- XPath検索機能を使う。この機能はかなり有効です。この機能の構成にダイアログを使いたい場合のために、"XPath Query Builder" も付けられています (私にはその利点が分かりませんでしたが)。
- 「SourceView」で単純テキスト検索を行う。
シングル・ユーザー・バージョンのEditML Proの価格は75米ドルです。
XML Spyは簡単に言えば、とても見栄えがする製品です。もっと正確に言えば、関連製品のコレクションといったところです。以前のバージョンのXML Spyを2001年に調べたときはかなり気に入っていたのですが、それ以降Altovaは戸惑うほどの豊富な機能を追加しています。何事もそうであるように、支払ったものを手に入れるのは当然ですが。XML Spyは、今回調べた他のツールの1つを除いてかなり高額な製品です (XMetalも似たような価格で、幾つかの機能は類似しています)。XMLを時々かじってみる程度の開発者にとってはXML Spyはおそらく過剰なものでしょう。しかし (Windowsプラットフォームで) 日常的にさまざまなXMLテクノロジーを扱う開発者にとっては、これはインストールしておくべき素晴らしいツールです。さまざまなXMLテクノロジーが紹介されている印刷物もうまくまとめられています。(検討用に私に送られてきた資料ですが、その資料はAltovaのWebサイトから無料でダウンロードできます。)
XML Spy IDEでは、デフォルトで多数のペインが開きます。プロジェクトに関する情報、現在の属性、挿入可能な要素、および各種情報のペインが、中央の事実上のワークエリアに無理に押し込まれています。これらすべてのペインを収めて、さらに十分に広いワークエリアとそこでの各種タブ付きビューを表示するには、1024x768の表示では不十分です。21インチのモニターならこれらを全部吸収できるかもしれません。一方この製品をVGA画面で使うことは、それを想像するだけでゾッとします。幸いにも、これらのペインはすべて、選択的または全体的にオフに切り替えることができます。
図3. XML Spyエディター
XML Spy IDEのメインのワークエリアには各種のビューが表示されます。私が調べた他のあらゆるXMLエディターの、ほとんどスーパーセットと言えるものです。次のビューが表示されます。
- 標準テキスト・ビュー
- 文書エディター・ビュー
- ブラウザー・ビュー (おなじみの組み込みInternet Explorerの、欠点のあるCSS/ツリー・ビューだけの表示)
- スキーマ設計ビュー
- デフォルトの高機能グリッド・ビュー
デフォルトの表示は図3 のようになります。ここでは、副要素の折りたたみ、本体と属性の編集、ノード種類の識別化が可能です。
高機能グリッド・ビューは、サブノードの表示がツリーよりもテーブルのほうがよいときを気を利かして判断します (その選択はオーバーライドできます)。この高機能グリッドは一般的文章の編集には最適とは言えませんが、それでもEditML Proと対比すると、インラインの文字レベルのマークアップの識別と編集が容易です。一般的文章のXML文書の場合は、おそらく文書エディター・ビューを使うことになるでしょう。ここではXSLTスタイル・シートが使われて、ワード・プロセッサー風の表示フォーマットになります。文書エディター・ビューにグラフィック・アイコンを埋め込んで、タグの開始場所と終了場所を示すようにすることもできます (XMetalから借用されている概念)。この文書エディター・ビューは、私だったらXSLTよりもCSSを使っていたと思いますが、XML Spy Suiteを全部揃えると、XSLTを手動で調整しなくてもXSLT Designerを使って印刷のビューを作成することができます。
XML Spyのユーティリティーは豊富で、うまく構成されています。次のことができます。
- XSLT変換を行う。
- XMLからDTDとスキーマを生成する。あるいはそれらの間の相互変換を行う。
- XPathsをもとに検索して、一致したものを複数表示する (<oXygen/> と同様)。
- カーソル位置のXPathを抽出する。
- 本体のテキスト、属性、値、またはコメントをもとに検索する。ただし正規表現での検索はありません。
- テキスト・ビューで、許可される要素のインプレース・ポップアップを使う (これも <oXygen/> と同様)。
- 整形式と妥当性の検査を簡単に行う。
- 挿入のダイアログに従うことで、編集時の文書の妥当性を保持する。
XML Spyの機能とユーザー・インターフェースは素晴らしいのですが、製品として安定性の面で注意が必要な問題が幾つかあります。たまにですが、(OSとInternet Explorerの現行のパッチがインストールしてある私のWin98r2テスト・マシンで) IDEとXSLT Designerがフリーズしてしまい、手動で強制終了する必要があります (保存できない)。追加のApache FOPサポートをインストールしてPDF/PS出力を生成しようとしましたが、うまくいきませんでした。さらに言えば、このアクションの試みも、やはりXML Spy IDEをフリーズさせることの1つなのです (直感的にはこの問題は私のJavaのインストールと何か関係があるような気もしますが、そのために動作しない 可能性はあっても、アプリケーションをロックさせることはないはずです)。
シングル・ユーザー・バージョンのXML Spy Suiteの価格は399米ドルです。他のコンポーネントを付けないでXML Spy IDEを単独で購入することも可能です。この場合の価格は199米ドルです。他のコンポーネントを別々に購入することもできます。
私がXMetal 3のコピーを何とか手に入れることができたのは、今回取り上げた他の製品の調査をすべて終えた後でした。ですから、XMetalを他のツールと機能ごとに直接比較することはできていません。2001年のまとめの記事ではSoftquadのXMetalを調べましたが、その後SoftquadはCorelに買収されました。私はこの製品を気に入っていました。洗練されていて便利なワード・プロセッサー風のビュー (埋め込んだグラフィック・タグを表示できる) がその主な理由です。XMetalのバージョン2と3は、大きくは変わっていませんでした。
XMetalは、私が調べたすべての製品の中で価格が最も高く、そして他の製品とは幾分違うユーザーを対象にしています。XMetalは実際には汎用のXML編集ツールを狙っているのではなく、スクリプト可能な編集環境を目的としています。私の見たところでは、Corelは次のようなことを見込んでいます。つまり、開発者がXMetalを使ってカスタムの複合編集アプリケーションを作成し、それらのアプリケーションは、あまり技術的ではないユーザーに送達されるとします。その場合、根底にあるXMLはユーザーには隠蔽されていますが、カスタムのマクロ、ボタン、メニュー、そして他のインターフェースが設定されています。XML Spyも同じように使うことができますが、Altovaはそこまで焦点を絞っていません。XMetalの今回の評価は単にXML編集環境として行い、アプリケーション開発のフレームワークでのXMetalの評価は行っていません。
XMetalの基本インターフェースは、XML Spyによく似ています。プロジェクト、リソース、挿入可能な要素、そして属性値が、各種のペインを使って表示されます。メインの文書ウィンドウに、次の4つのビューを表示できます。
- テキスト・ビュー
- ワード・プロセッサー・ビュー
- タグ付きワード・プロセッサー・ビュー (図4 を参照)
- Internet Explorerベースのプレビュー
私が特に気に入っているのは、表示フォントの選択と構造タグの両方が同時に見えるオプションです。MorphonとXML Spyにも、同じような情報を伝えるオプションがあります。
図4. Corel XMetalエディター
メインの文書ウィンドウとは別に、ナビゲーションできるツリー・ウィンドウを開くことができます。このウィンドウには文書の階層が表示されます。Morphonと同様に、またXML Spyとは違って、XMetalではグラフィカル表示の構成にCSSを使用します。なお、CSSのスタイルをナビゲーションして選択するためのツールが付属しています。私はXSLTを使うアプローチよりも、CSSを使うこの方法が好きです。さらに、CSSのビューのためにInternet Explorerを組み込んでいる他のツールと違って、XMetalはインラインのCSS要素を (編集可能ビューで) 正しく表示します。
便利な編集ビュー以外では、アプリケーションをカスタム・プログラムにするつもりがないと、XMetalはあまり有用ではなくなります。XMetalにはその環境の記述が複数の言語で書かれた分厚い解説書が付いてくるのですが、XSLTの操作のための組み込みの便宜的メニュー、高機能検索、PS/PDFへのFOP出力、そしてXMLの特殊な方言が欠けています。基本的な妥当性検査と整形式の検査は、ある程度行われます。APIはいろいろと記述するには十分なものですが、これは開発プロジェクトであり、すぐに使えるツールではないので注意してください。XMetalのカスタマイズという焦点の範囲内でも、495米ドルという価格だったら、もっと優れた便利なものが幾つか組み込まれていてもいいのではないかと思います。
開発者が現在入手できるXMLエディターの範囲はかなり広がっています。XML SpyやXMetalのようなハイエンドのツールは、XMLテクノロジーを使って作業するプログラマーのための開発環境全体を提供します。かつてXMLに関する作業用にあったらいいのにと思っていたあらゆるものが、今はメニューになっています。特にXML Spyがそうです。Morphon、XMetal、そしてXML Spyでは、XMLをワード・プロセッサーのような表示で使うこともできます。ローエンドのツールでさえ、XML文書のカスタムの作成と変更の大きな助けになります。ローエンドのツールの中で私が好きなのはおそらく、複数のOSプラットフォームで動作して格安で購入できるJavaベースのツール <oXygen/> でしょう。
- この連載の第1回の記事をお読みください。JavaとMacOSのアプリケーションを調べています。具体的には、Morphon TechnologiesのMorphon 2.0.5、SyncROの <oXygen/> 1.2.1、そしてElfDataのXML Editor 1.14を取り上げています (developerWorks 2002年8月)。
- Read Davidによる以前のXMLエディターの比較のまとめXMLの論考: 第6回 さまざまなエディター (developerWorks 2001年1月) をお読みください。
- Wattle SoftwareのXMLwriterの詳細は、http://xmlwriter.net/でご覧ください。
- NetBryx TechnologiesのEditML Proの詳細は、http://www.editml.com/でご覧ください。
- AltovaのXML Spyの詳細は、http://www.xmlspy.com/でご覧ください。
- Corel (旧Softquad) のXMetalの詳細は、http://www.xmetal.com/でご覧ください。
- オープン・ソース・プログラマーによるテキスト・エディターjEditは、http://www.jedit.org/ で入手できます。
- XSLのW3C仕様の中の形式設定オブジェクトをお読みください。
- XML Proについての情報を、Vervet LogicのWebサイトでご覧になれます。
- XMLに関する参考文献が、dW XMLゾーン に多数あります。
-
IBM Certified Developer in XML and related technologies をご覧ください。XMLと関連テクノロジーの分野のIBM認定開発者になりましょう。
- David Mertzの 「XMLの論考」 コラムの他の記事をご覧ください。
- XML文書をオブジェクトとして'Python 的に'取り組む
- XML文書をオブジェクトとして "Python 風" に処理する方法 (II)
- XMLの派生語であるDocBookの紹介
- DocBookのXML版を楽しむ
- XSLTを使ってDocBook文書を変換する方法
- さまざまなエディター
- W3C XML SchemaとDocument Type Definitions (DTD) の比較
- XMLを階層モデル、リレーショナル・モデル、オブジェクト指向モデルに適応させる
- SQL照会からのDTDおよびXML文書の生成
- XML文書を索引付けする
- xml_pickleおよびxml_objectifyの再考: オープン・ソースのレッスンと常識
- Pythonモジュールxml2sqlおよびdtd2sqlの使用: DTDおよびXML文書からのSQLステートメントの生成
- XMLと圧縮: 文書のエントロピーの調査
- DOM、SAX、およびXSLTの限界を超える: XML用のHaXml関数型プログラミング
- オブジェクト・モデルとしてのXML-RPC: 大衆のためのデータ・バンドルか
- もう1つのPython/XMLツール・セット4Suite: 体重400キロのゴリラのようなPython XMLツールの紹介
- PYX入門: 行指向のXML
- REXMLライブラリー: Rubyプログラミング言語におけるXML処理
- 続・XMLと圧縮: ブロック・レベルのアルゴリズムとリソース負荷
- gnosis.xml.validityライブラリーによって妥当性を確保する: OOPデータをXMLの規則に押し込む
- XMLエディターの総まとめ: 第1回: JavaおよびMacOS用の製品を再び取り上げる
