DTDパーサ

ひとまず、S2エディタでは次の機能を実装します。

  • ハイライト
  • 要素や属性の補完(クラス名、プロパティ名、メソッド名なども含む)
  • エディタからJavaエディタへリンク表示


XMLエディタで要素や属性の候補を表示するには
DTDやXMLSchemaなど、スキーマの情報を読み取ってモデル化する必要があります。
これは「component要素はclass,name,instance,autoBinding属性を持っている」といった情報になります。


EclipseのAntエディタでは自前のDTDパーサを使って、
スキーマの情報をモデル化していました。
S2エディタではdtdparserというライブラリを使うことにしました。
http://www.wutka.com/dtdparser.html


xercesについているDTDパーサも検討しましたが、
使い方が難しそうだったので、シンプルなほうを選びました。
あとDTDパーサへの依存を避けるために、
DTDのモデルはインターフェイスで定義することにします。


DTDから取得できる情報で汎用のXMLエディタの機能が備わります。
それプラスS2固有の補完が必要になります。
これは「class属性はJavaクラスのフルパッケージ名で補完する」などです。
S2固有の補完の実装はもう少し後になりそうです。


Kimujina Coreとの重複がないかがちょい心配ですが、
CoreではDTDの情報って読み込んでないですよね?