今回は文字データに関する XML イベント。
- Characters
StartDocument
Characters イベントを生成するメソッドは次の4つが定義されています:
createCharacters(String data) createSpace(String data) createCData(String data) createIgnorableSpace(String data)
設定できるパラメータ
パラメータ | 型 | デフォルト値 |
---|---|---|
data | String | - |
サンプル
各 createXxxx() メソッドの挙動を見てみましょう。
- Java コード:メソッド呼び出し(引数の指定)
- toString():生成された XMLEvent オブジェクトに対して toString() メソッドを呼び出した際に返される文字列
- XMLEventWriter:生成された XMLEvent オブジェクトに対して XMLEventWriter#add(XMLEvent) を呼び出した際に書き出される文字列
です。
Java コード | createCharacters("Character Data") | createCharacters(" ") |
---|---|---|
toString() | Character Data | |
XMLEventWriter | Character Data |
Java コード | createSpace("Character Data") | createSpace(" ") |
---|---|---|
toString() | Character Data | |
XMLEventWriter | Character Data |
Java コード | createCData("Character Data") | createCData(" ") |
---|---|---|
toString() | <![CDATA[Character Data]]> | <![CDATA[ ]]> |
XMLEventWriter | <![CDATA[Character Data]]> | <![CDATA[ ]]> |
Java コード | createIgnorableSpace("Character Data") | createIgnorableSpace(" ") |
---|---|---|
toString() | Character Data | |
XMLEventWriter | Character Data |
createXxxx() メソッドの引数が空白文字のみかどうかで少々挙動が変わるので注意。 上記のサンプルでの出力文字を見る分には特に問題はありませんが、Characters インターフェースに定義されている isXxxx() メソッドの返り値(boolean 値)がチョット混乱のもと。 ただし、これは実装に依存しているかも知れません(JavaDoc には挙動に関して特に何も書かれていないので)。
各 createXxxx() メソッドで返される Characters メソッドに対して isXxxx() メソッドを呼び出した返り値が true の場合「○」を書いてます(false の場合空欄):
isSpace() | isCData() | isIgnorableSpace() | |
---|---|---|---|
createCharacters("Character Data") | |||
createCharacters(" ") | ○ | ||
createSpace("Character Data") | |||
createSpace(" ") | ○ | ||
createCData("Character Data") | ○ | ||
createCData(" ") | ○ | ○ | |
createIgnorableSpace("Character Data") | |||
createIgnorableSpace(" ") | ○ | ○ |
createCharacters() と createSpace() は実質同じメソッドの様に見えます。