JavaのJDOMでのXML解析と編集
質問
私はこの問題に一週間苦労しています。 eBooksを編集できるプログラムをJavaで作成しようとしています。私が選んだ電子書籍形式は、XMLのようなファイルにデータを含むフィクションブックです。このファイルを開いて、jtextComponentでソースビューを生成できます。エディターのプレビューとSourceViewには、2つのToggleButtonsがあります。彼らはディスプレイに同じJTextComponentを使用しています。ユーザーがソースビューをクリックすると、選択したファイルソース(Plain XML)が表示されます。表示する必要があるデータを解析することにより、このソースからプレビューを生成します。ソースビューで何かを変更すると、そこから生成されたため、プレビューにも表示される場合、私の問題はこれを後方にする方法です。したがって、プレビューで何かを変更すると、ソースでも変更されます。
解決
これをJDOM固有の質問として見るのはちょっと難しいです。根底にある表現はほとんど何でもかまいません。通常、プレビューはまさにそれです。直接編集できない最終結果のビュー。ソースとWysiWygビューの両方を編集できるようにしたい場合は、モデルビューコントローラーパターンを調査する必要があります。
基礎となるXMLはあなたのモデルになります。 XMLエディタービューとWysiWygビュー(現在のプレビュー)の両方がビューとコントローラーになります。現在、これはXMLエディターの唯一のケースですが、プレビューはビューに過ぎません。
基礎となるXMLをプレビューから変更すると、各ノードを何らかの形で識別できない限り(ID属性など)。このカップリングを他の方向に行うには、プレビューにいくつかの追加の基礎データが必要です。
JDOMドキュメントがあなたの目的に最適なモデルであるとは確信していません。たぶん、JaxBのようなものを使用して単純なJavabeansを使用してモデルを表現する方が良いのかもしれません。だからあなたは取得します:
model: JavaBeans with JAXB annotations
^
|
(directly) +--------------------------------------+ (through JAXB)
| |
WYSIWYG editor: view + controller XML editor: view + controller
しかし、それは私の第一印象です。既存の編集者を調査して、これを行うための適切な方法を見つけます。 IDEが通常、複数のタイプのエディターが基礎となるデータモデルを変更できるため、IDEプラグイン/モジュールをチェックするのは興味深いかもしれません。