以前に XML 文書のフォーマット「入力編」「出力編」というのをやりました*1。
今回から何回かにわたって、それらからよく使いそうなものを「拙者の独断と偏見」で取捨選択して統合を試みてみます(一覧)。
XMLFormat と OutputFormat
SAX, StAX, DOM, JDOM, dom4j などから XML 文書のフォーマットに設定できるプロパティを集めていると、いろいろゴチャ混ぜになっている感じがするので(拙者が勝手にゴチャ混ぜにしているのも多々ありますが)、まずは(唐突かも知れませんが)それらのプロパティを次のように2つに分類します:
- XMLFormat : XML 文書のどんな「オブジェクトモデル」に対しても設定できるフォーマット
- OutputFormat*2 : 「テキストファイル」としての XML 文書に対して設定できるフォーマット
ここで、XML 文書の「オブジェクトモデル」とは、DOM, JDOM, dom4j のようなメモリー展開されたツリーモデルはもちろん、XMLEventReader, XMLEventWriter で扱う XMLEvent の列や、java.io.File オブジェクトで指定されるファイルの内容(テキスト)としての XML 文書なども含めます*3。 テキストファイルとしての XML 文書とは、テキストファイル(これも XML 文書のオブジェクトモデルの1つと思う)として表された XML 文書のことです。
まぁ要は、OutputFormat は XMLFormat の1種 (OutputFormat is a kind of XMLFormat) で、さらにテキストファイル形式独自のフォーマットプロパティが追加されていると思ってください。
XMLFormat と OutputFormat の具体例
各フォーマットに分類されるプロパティの具体例を幾つか見てみましょう。 詳しくは次回以降。
XMLFormat の具体例
XMLFormat のプロパティには、以下のようなものがあります:
- namespaceAware (SAX, DOM)
- ignoringComments (DOM)
- trimText (dom4j)
OutputFormat の具体例
OutputFormat にあるプロパティは、XMLFormat のプロパティに加えて、以下のようなものがあります: