XMLの論考: XMLエディターの総まとめ: 第1回

JavaおよびMacOS用の製品を再び取り上げる

Davidが以前XMLエディターの商用ツールのカテゴリーを調査してから1年半がたちましたが、その後のXMLエディター商用ツールの進歩をDavidが2回連載で調べていきます。これらのツールは、概してテキスト・エディターの表面的なラッパーであったものから、XML指向のテクノロジーを使う作業プロセスをかなり簡単にできる具体的な開発環境へと進歩しています。この第1回の記事では、JavaおよびMacOSアプリケーションを調べます。具体的には、Morphon TechnologiesのMorphon 2.0.5、SyncROの <oXygen/> 1.2.1、およびElfDataのXML Editor 1.14を取り上げます。

David Mertz, Ph.D (mertz@gnosis.cx), Author, Gnosis Software, Inc.

Photo of David MertzDavid Mertz氏は多くの分野で活躍しています。ソフトウェア開発や、それについて著述もしています。その他、学術政策理念について分野を問わず、関係する雑誌に記事も書いています。かなり以前には、超限集合論、ロジック、モデル理論などを研究していました。その後、労働組合組織者として活動していました。そして、David Mertz氏自身は人生の半ばにもまだ達していないと思っているので、これから何かほかの仕事をするかもしれません。



2002年 8月 01日

以前 (参考文献を参照) XMLエディターを調べましたが、その後大きく変わってきています。大きな進歩が見られますので、利用できるいくつかのエディターの新しい機能と特徴の詳細をこの2回の連載で紹介します。この連載で検討しようとしていた9つのエディターのうち、XMLmind XML Editor (XXE) とVervet LogicのXML Proの2つは入手できませんでした。その他の7つについての記事は、各製品の特性を詳細に紹介するために2回に分けて掲載します。この第1回では、JVMとMacOSを対象とするツールを (私の観点で、つまり私のiBookで実行できるプログラムを) 調べていきます。製品の調査の時点では、流通しているLinux/Unix向けのエディターで、ここで検討するXMLエディターのレベルに近いものは見つかりませんでした。もちろん、Javaベースのツールは、Javaが使用可能であればLinuxでも他のプラットフォームでも問題なく動作します。

ここでは、一般的なテキスト・エディターをはじめ、(X)Emacsのような何でもかんでもというようなエディターや、もっと地味ですがカスタマイズできて個人で好まれるテキスト・エディターなどの検討は、意図的に除外します。

このまとめでは、次の製品を取り上げます。

  • Morphon TechnologiesのMorphon 2.0.5
  • SyncROの <oXygen/> 1.2.1
  • ElfDataのXML Editor 1.14
  • AltovaのXML-Spy 4.4
  • Wattle SoftwareのXMLWriter
  • NetBryx TechnologiesのEditML Pro 2.6.
  • Corel XMetal 3

最初の2つのMorphonと <oXygen/> はJavaテクノロジー・ベースのアプリケーションですが、これらはOSX 10.1.5と最新のApple HotSpot Java 1.3.1が動作するiBookラップトップ上でテストしました。ここでスペックに言及したのは、それが応答性に対する私の印象におそらく関係するからです。UIのパフォーマンスは長い間Javaアプリケーションの弱点でした。XML Editorも同じiBook上でテストしましたが、これはREALBasicで書かれたネイティブのMacOSアプリケーションです。今回は、これらの製品を検討します。

XML-Spy、XMLWriter、EditML Pro、およびXMetalはすべて、Win32ネイティブ・アプリケーションです (詳細は次回に説明します)。これらは当然、Windowsマシン上でテストしました。具体的には、Pentium-IIプロセッサー (366MHz) 搭載のWin98ラップトップです。iBook上でのテストで見つかったUIの速度の問題は、これらの製品には当てはまりませんでした。Win32アプリケーションのほうが高速で応答性も優れていました。おそらくこれは、(オペレーティング・システムやCPUの違いが原因ではなく) コンパイルされた言語とインタープリットされる言語の違いによるものです。その解釈に関して、これ以上のコメントは必要ないでしょう。

よいエディターの条件

さまざまな理由から、XMLエディターが必要になることがあります。私が好む製品が、専門分野に特化した皆さんのニーズには適していなかったり、私があまり感心しないものが皆さんのニーズにはぴったり合うという可能性は十分にあります。私が捜し求めたことをここでお知らせしておきます。

XML文書は、一般的には、一般的文章 (prose) 型とデータ中心型の2つに分けられます。一般的文章の文書はXMLのルーツのSGMLを受け継いでいます。一般的文章の形式には通常、どのようなときにセクション、サブセクション、段落、章、グラフィックス、および他の項目が相互にネスト可能かという規則を複数持つことになります。通常は、個々の語句に対して、文字中心型のマークアップをインラインで使用します (太字、強調、引用、リンクなど)。たとえばDocBookは広く使われており有名ですが、別の例としてはIBMのdeveloperWorks の記事の内部形式があります (テストには両方を使用しました)。一方、データ中心型の文書の場合、それ自体には テキストはほとんどありませんが、数値と単純名のテーブルのような構造がネストされて含まれています。データ中心型XMLは多くの場合、RDBMSの表によく似ており、そのようなデータベースで生成されることもあります。XMLを列と行として表示できることは、データ中心型XMLにとってしばしば重要な点になります。

これらの一般的な型とは別に、XMLの特殊な方言が表面に出てきます。これらの多くは、SOAP、XML-RPC、WSDL、RDFなど、データ中心型のものです。ここで検討するXMLエディターはすべて、カスタムDTDをある程度は処理できますが、特定のニーズではカスタマイズをもっと限定する必要がある場合があります。同じようなことが、DocBook、LegalXML、TEIのような特に複雑な一般的文章の形式にも当てはまる場合があります。一般にXMLエディターは、扱うDTDやW3C XMLスキーマに準拠する妥当なXML文書の作成と変更が、大幅に簡単になるものであるべきです。

私はどちらかと言えば一般的文章の文書を編集するほうです。したがってここでは、テスト・ケースとしてIBM developerWorks用の記事を使用し、ほとんどの場合に、もっと複雑なDocBook形式のものでも試してみました。また、私はたくさんのプラットフォーム上で作業しています。現在特に関心があるのは、私の新しいiBook (およびその下に置いているUnix OS) 上で使う一連のツールを見つけることです。Windowsのみのツールは、クロスプラットフォームのものに比べると、どちらかと言えば私に興味を起こさせないのです。


Morphon TechnologiesのMorphon 2.0.5

MorphonはJavaテクノロジー・ベースのXMLエディターで、一般的文章のXML文書をワード・プロセッサーのように表示します。私の好みに合っていることなのですが、Morphonは、Java 1.1以上であれば (それ以前のバージョンのJavaの場合はSwingをインストール) どんなプラットフォームでも動作します。これを、すでに述べたように、MacOSX iBookでテストしました。

500MHz G3と豊富なメモリーという環境で、Morphonの動作は、残念ながらJavaにおけるUI応答性の不足をやはり無視できないほど遅いものでした。Morphonは使いものになりますが、このことには注意してください。些細なことですが、Morphonのルック・アンド・フィールのオプションは、(<oXygen/> のような) いくつかのJavaアプリケーションほどにはMac UIになじまないようです。しかし、このことがどうしても非常に気になるのは、Mac純正主義の人たちだけでしょう。

Morphonはベータ版で調べたのですが、以前の比較の記事 (参考文献を参照) 以来、機能と安定度の両面ですばらしく進歩していました。しかし残念なことに、Morphonを使っていると、不安定/半フリーズ状態になる可能性がまだあります。このアプリケーションのクローズや再起動を簡単に行えないほどひどい状態になるわけではありませんが、おそらく、たまにそのようなことを行う必要があるでしょう。また、CSS-Editorではいくつかのダイアログと情報ボックスにおいて、Zオーダー(画面の重ね合わせの順序)が変です。メインCSS-Editorを使えるようにするには、これらは完全に隠蔽されるかクローズされなければなりません。これらは単純に逆方向にプッシュされるべきです。もし、これに対処できるような大型画面を使ったらどうなのだろうと思うのですが、ラップトップにはありません。

MorphonにはXML文書の複数のビューがあります。生のXMLソース・コードはプレビュー・モードで見ることができます (変更は行えません)。メイン・ビューはワード・プロセッサーのような画面で、CSSを利用して表示を構成します。以前に述べたように、表示を構成する方法としては、XSLTやカスタム形式よりもCSSのほうが適していると思います (それがCSSが作り出された目的なのですから)。ワード・プロセッサーのようなビューのほかに、Morphonにはネストされたボックス の構造をしたビューがあります。その概念としては、各要素本体はラベルの付いた囲いの長方形か、ラベルの付いた下線によってマークされます。フォントや色などはやはりCSSによって判別されますが、メイン・ビューには文書の (タイポグラフィーが強調している) 意味と構造を同時に表示するという非常に優れた機能があります。メイン・ビューを使っている間は、折りたためるツリー・ビューを選び、これを利用して目的の文書に進むこともできます。このツリー・・ビューを利用すると各要素本体の最初の数語が表示されるので、これも便利です。

図1. The Morphon XML editor
図1. The Morphon XML editor

Morphonでは、ワード・プロセッサーのようなビューを厳密に使用すれば、妥当でないXML文書が作成される可能性は最初から基本的にはありません。この方法は、妥当性検査のステップが分かれていて単に問題を強調表示するだけのアプリケーションよりもシームレスです。コンテキストに依存したダイアログとメニューにより、指定の位置に挿入できるものが示されます。MorphonにはXSLTプロセッサーが組み込まれており、DocBookを (X)HTMLに変換する場合のデフォルトのXSLT定義がいくつか用意されています。他のDTDやスタイルシートも簡単に利用することができます。

XML文書の検索は、正規表現の複数の異なる形式 (posix、sed、perlなど) またはプレーン・テキストを使って行います。テキスト、属性値、属性名、要素名で検索することができます。しかし、いくつかのツールと違って、最もXML指向のスタイルと思えるXPathでの検索はMorphonでは行えません。ただしMorphonでは、現行カーソル位置にXPathが表示 されます。

Morphonの標準版の価格は150ドル、学術研究ライセンスの場合は75ドルです。サイト・ライセンスのレートはさまざまです。


SyncRO <oXygen/> 1.2.1

今回の検討の中で、私は<oXygen/> がとても気に入りました。<oXygen/> は、他のいくつかの製品に比べるといろいろな意味でその範囲の広さは劣りますが、組み込まれているものは非常によく考え抜かれいて役に立ちます。<oXygen/> はMorphonと同様、JavaベースのXMLエディターです。今回はこれを500MHzのiBookでテストしました。なお、<oXygen/> を実行するには、比較的新しいバージョンのJavaが必要になります。1.4が推奨されており、1.3は必須です。

理由はともあれ、<oXygen/> の動作はMorphonほど遅くはありませんでした。まだJavaテクノロジーは素晴らしく速いというわけではありませんが、このプログラムを使った作業は一貫して快適でした。速度が向上した1つ理由は、<oXygen/> の表示フォーマット (ワード・プロセッサーのようなビューではなくXMLソース) は、ずっと簡単だからです。しかし <oXygen/> は、(プルダウン・メニューの展開やダイアログのオープンのようなまったくありふれたことだけでなく)、妥当性検査やXSLT/FO (形式設定オブジェクト) の変換のような、表示以外のことでも速いのです。

<oXygen/> エディターは安定していてうまく構成されていますが、このエディターはXML編集のための完全カスタム・インターフェースというよりは、むしろ拡張テキスト・エディターととらえるのが最もふさわしいでしょう。しかしこの単純なインターフェースの範囲内では、付加機能は非常に役に立ちます。インターフェースおよび付加されているものは、文書作成者やデータ入力者ではなく、はっきりとプログラマーのほうに合わせられています。変換されたXML文書の (X)HTML出力をプレビューし、XML形式を拡張することができますが、編集できるのは基本的には構文が強調表示されているXMLテキストだけです。

図2. The <oXygen/> editor
図2. The <oXygen/> editor

私が <oXygen/> について本当に気に入っているものに「コード洞察(code insight)」機能があります。私が調べたツールの大半は、タグと属性項目に関して、コンテキストに依存した何らかのプロンプト表示を行います。それらの中では <oXygen/> が最も優れています。開始の不等号括弧を入力すると、使用できるタグのリストがカーソルの真下にポップアップ表示され、名前が部分的に完成するとそれをもとに強調表示の部分が移動します。タグが選択されると必要な属性が組み込まれます。開かれているタグの内、カーソル位置で終了できるものも選択項目の中に含まれています。最もよい結果を得るためにコード洞察ではDTDまたはXMLスキーマが利用されますが、それらを利用できない場合、<oXygen/> はXML自体に基づいて文書構造を推測します。必要であれば、推測されたこの構造をDTDとして保存することもできます。

もう一つの良いところは、DocBookとXHTML用に組み込まれているXSLTスタイルシートです。標準XSLT変換のほかに、<oXygen/> には組み込みFOプロセッサーがあります。これを利用すると、XML文書から、印刷可能なPDFやPS文書を生成することができます。検討した他のツールの中でこれができるのはXML-Spyだけです。ただしXML-Spyの場合はそのために追加のツールをダウンロードする必要があるのですが、今回のテストの期間中にそれを入手して作業することはできませんでした。<oXygen/> は魅力的なPDFを生成しましたが、そのための努力は特に必要ありませんでした。

<oXygen/> の検索機能はユニークで巧妙です。テキストの基本的な検索方法 (大文字小文字の区別の有無、語全体、タグ内など) は、非常に標準的なものです。正規表現での検索がないことが目立ちます。<oXygen/> を際立たせているのは、そのXPath検索機能です。他のツールの中にもXPathを複合できるものがありますが、<oXygen/> の場合は一致したものをすべてペイン内にリスト表示し、その一致リストを使って文書の各部分にナビゲートして強調表示します。これは本当に便利であり、まさにXMLの精神です。

<oXygen/> の単一ユーザー・コピーの場合の価格は適度な65ドル、スチューデント・バージョンの場合は25ドルです。サイト・ライセンスもあります。


ElfDataのXML Editor 1.14

XML EditorはMacOSネイティブ・アプリケーション (MacOS 8/9/X用) であり、REALBasicで書かれています。私の認識では、REALBasicは最近Windowsに移植されたか、あるいはその移植が進行中です。したがって、おそらくElfDataもそのプラットフォームに移植することを決定すると思われます。

REALBasic言語に関して私はよく知らないのですが、その速度はJavaの速度と似ているような気がします。XML Editorは、快適に作業できるくらい高速だが、コンパイルされたネイティブのアプリケーションと比べるとそれよりも明確に遅いという点では、<oXygen/> と肩を並べます。

XML EditorにあるXML文書のビューは、XMLソース・ビューと拡張ツリー・ビュー の2つです。1番目に挙げたビューでは、皆さんの予想通り、テキスト・エディターに構文が強調表示されます。XMLソース・ビューは <oXygen/> のものによく似ていますが、この場合は、構造化されたインデントを使う、ソースを飾るオプションがありません。一方XML Editorのデフォルトのビューは、拡張ツリー・ビューです。これはMorphonのツリー・ペインによく似ています。ツリー・ビューでは、XML文書はMacOSの「ファインダ」でのリストのビューのスタイルで表示されます。各行には、要素、コメント、宣言、または処理命令が並び、左にはノードの型を示すアイコンがあります。子ノードを含む要素は拡張表示と縮小表示が可能です。各行には要素の属性や本体についての情報も、そこに収まるだけ含まれています。XML Editorの美的な1つの特性によって使いやすさがかなり向上しています。つまり、行は1行おきに (罫のある用紙のように) ライト・グレーの陰影が付けられており、ナビゲーションのときに目を順応させるのが容易です。

図3. ElfData's XML Editor 1.14
図3. ElfData's XML Editor 1.14

メイン・ビューのウィンドウに加えて、XML Editorではコンテキストに依存したダイアログ・ウィンドウがいくつか表示されます。私はフローティング・ダイアログよりも区画化インターフェースのほうが好きなのですが、このスタイルも十分使えます。1つのフローティング・ダイアログには、そのとき選択している項目の属性または本体テキスト (どちらを選択しているかによる) が表示されます。このダイアログで属性やテキストを編集します。オプションの別のフローティング・ダイアログはホルダー です。このダイアログには、挿入できるタグのリストが表示されます。ホルダーはDTDから生成されるか手動で編集できますが、コンテキストに依存していないため、そのときの妥当な要素に挿入できるものは限定されません。ホルダーを使う挿入方法は整形式性は保持されますが、妥当性については保持されるとは限りません。

XML Editorには、さまざまな妥当性検査のオプションがあります。次の方法で妥当性検査を行えます。

  • 変更時 (文書の変更時に妥当性検査する)
  • マウス下 (マウスが置かれている要素を妥当性検査する)
  • グローバル
  • 選択
  • 複数の文書に対するバッチ・モード

ただし、妥当性検査が行われるのは常に事後であり、編集アクションの指示後ではありません。プラス面としては、XML Editorはデフォルトで高速 妥当性検査モードを使用しますが (厳密 オプションを使用)、この場合のXML Editorの妥当性検査の速度は、私が調べた他の製品での妥当性検査の速度よりもはるかに 速いものになっています (コマンド・ラインを使うツールも含めて)。高速妥当性検査では、きわどいケースではパラメタ実体宣言の微妙なものを正しく処理しない可能性がありますが、今回のテストではそのようなことは起こりませんでした。

マイナス面としてはXML Editorには変換機能がないということです。大ざっぱなブラウザー・プレビュー オプション以外にXSLTやCSSの表示はなく、FO処理ももちろんありません。XML Editorの検索機能もかなり基本的なものです。要素の中のテキスト、属性、本体などを検索できて、検索結果のリストを累積することができますが、正規表現のサポートとXPathのサポートはありません。

XML Editorの単一ユーザー・コピーの価格は、55ドルになります。


その他の製品

PixwareのXMLmind XML Editor (XXE) は、ワード・プロセッサーのような表示を構成するのにCSSを使うJavaベースのエディターのようです (ほとんどの製品はこの方法を使っていなのですが、私はこれが適切な 方法だと思っています)。しかし、この会社から返事をもらえませんでした。そして私は「商用だがマイルストーン・バージョンでのみ使用可能」というややこしいXXEの状況が分かったということを打ち明けなければなりません。画面コピーと説明からは期待が持てるのですが、これが出荷されている製品なのか、あるいは製品の単なる優れたアイデアなのか、私にはよく分かりません。

Vervet LogicのXML Proは、まだ生まれていないというより、忘れ去られているようです。そのWebページだけから判断すると、XML Proはデータ中心型XML文書に重点を置いたJavaベースのエディターのようです。要望に対する返事をこの会社からもらえませんでしたし、この会社のWebページはここ何年間か更新されていないようです (たとえばWindows互換バージョンには95、98、およびNT4.0があるとされていますが、ME、2000、およびXPといった各変形には互換性の有無に関して言及されていません)。


まとめ

ここで検討した3つの製品はいずれも、XMLを使う日々の作業を簡単にしてくれるものです。完全なものはありませんが、それぞれに独自の強みと便利さがあります。そしてこれらの製品のうち2つが100ドルをかなり下回る費用で入手できるので、その場合のリスクはほとんどありません。次回は、今回示したWin32製品について調べます。

参考文献

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=XML
ArticleID=241019
ArticleTitle=XMLの論考: XMLエディターの総まとめ: 第1回
publish-date=08012002