今回は XML 文書を(イベント・ベースで)解析する際などに使用する「XML イベント」のサブタイプを見ていきます。
XML イベントを表す型は javax.xml.stream.events.XMLEvent です。 全ての XML イベントはこのインターフェースを拡張しています。 具体的にサブインターフェースを列挙すると次のようになります:
- StartDocument
- EndDocument
- StartElement
- EndElement
- Namespace
- Attribute
- Characters
- Comment
- ProcessingInstruction
- EntityReference
- DTD
- EntityDeclaration
- NotationDeclaration
これらはすべて javax.xml.stream.events パッケージ内のインターフェースです。
以下で、各インターフェースに定義されている getter メソッドを見ていきましょう。 ただし
- EntityReference
- EntityDeclaration
- DTD
- NotationDeclaration
は省略します。
StartDocument
XML 文書の開始を通知する XML イベントです。
getter メソッド | 型 | 説明 |
---|---|---|
getSystemId() | String | この XML 文書のシステム識別子(ファイルの場合はファイルへのパスなど)を返します。 |
getVersion() | String | この XML 文書のバージョンを返します。 デフォルト値は "1.0" です。 |
getCharacterEncodingScheme() | String | この XML 文書のエンコーディングを返します。 デフォルト値は "UTF-8" です。 |
encodingSet() | boolean | この XML 文書にエンコーディングが宣言されているかを返します。 |
isStandalone(), standaloneSet() は省略。
EndDocument
XML 文書の終了を通知する XML イベントです。 固有の getter メソッドは定義されていません。
StartElement
要素の開始を通知する XML イベントです。
getter メソッド | 型 | 説明 |
---|---|---|
getName() | QName | この要素の名前を javax.xml.namespace.QName オブジェクトとして返します。 |
getAttributeByName(QName) | Attribute | この要素に付加されている属性を、引数の QName をキーにして取得します。 |
getAttributes() | java.util.Iterator | この要素に付加されている属性を Iterator として返します。 |
getNamespaceURI(String) | String | 引数の名前空間接頭辞に関連づけられている名前空間 URI を返します。 |
getNamspaces() | java.util.Iterator | この要素に付加されている名前空間宣言を Iterator として返します。 |
getNamespaceContext() | NamespaceContext | この要素の名前空間コンテキスト*1を返します。 |
EndElement
要素の終了を通知する XML イベントです。
getter メソッド | 型 | 説明 |
---|---|---|
getName() | QName | この要素の名前を javax.xml.namespace.QName オブジェクトとして返します。 |
getNamespeces() | java.util.Iterator | この終了タグでスコープから外れる名前空間宣言群を Iterator として返します。 |
Namespace
名前空間宣言を通知する XML イベントです。 この XML イベントは通常の XML 文書の解析では報告されません(StartElement イベントから取得します)。 XPath 式の評価結果(検索結果)などで報告される可能性があります。
getter メソッド | 型 | 説明 |
---|---|---|
getPrefix() | String | この名前空間宣言の名前空間接頭辞を返します。 |
getNamespaceURI() | String | この名前空間宣言の名前空間 URI を返します。 |
isDefaultNamespaceDeclaration() | boolean | この名前空間宣言がデフォルト名前空間宣言かどうかを返します。 |
Attribute
属性を通知する XML イベントです。 この XML イベントも Namespace イベント同様、通常の XML 文書の解析では報告されません(StartElement イベントから取得します)。 XPath 式の評価結果(検索結果)などで報告される可能性があります。
getter メソッド | 型 | 説明 |
---|---|---|
getName() | QName | この属性の名前を javax.xml.namespace.QName オブジェクトとして返します。 |
getValue() | String | この属性の属性値を返します。 |
getDTDType() | String | この属性の属性値の(DTD での)型を返します。 デフォルト値は "CDATA" です。 |
isSpecified() | boolean | この属性が文書中に記述されているか、スキーマ定義等によってデフォルト値を補われたものかを返します。 |
Characters
文字情報を通知する XML イベントです。 テキスト、CDATA セクション、無視可能な空白が含まれます。
getter メソッド | 型 | 説明 |
---|---|---|
getData() | String | 文字データの内容を返します。 |
isWhiteSpace() | boolean | この文字データが空白文字のみからできているかどうかを返します。 |
isCData() | boolean | この文字データが CDATA セクションかどうかを返します。 |
isIgnorableWhiteSpace() | boolean | この文字データが無視できる空白*2かどうかを返します。 |
Comment
コメントを通知する XML イベントです。
getter メソッド | 型 | 説明 |
---|---|---|
getText() | String | このコメントの内容を返します。 |
ProcessingInstruction
処理命令を通知する XML イベントです。」という処理命令に対して、ターゲットとは「xml-stylesheet」、データとは「type="text/xsl" href="stylesheet.xsl"」のことです。">*3
getter メソッド | 型 | 説明 |
---|---|---|
getTarget() | String | この処理命令のターゲットを返します。 |
getData() | String | この処理命令のデータを返します。 |