XML Library 1.0

org.koiroha.xml.parser
クラス AbstractSAXParserFactory

java.lang.Object
  上位を拡張 javax.xml.parsers.SAXParserFactory
      上位を拡張 org.koiroha.xml.parser.AbstractSAXParserFactory
直系の既知のサブクラス:
HTMLParserFactory

public abstract class AbstractSAXParserFactory
extends SAXParserFactory

SAX パーサファクトリの抽象実装クラスです。

導入されたバージョン:
2009/03/31 Java2 SE 5.0
バージョン:
$Revision: 1.5 $ $Date: 2010/02/24 13:59:38 $
作成者:
torao

フィールドの概要
protected  Map<String,Boolean> feature
          このファクトリから生成されるパーサの機能です。
 
コンストラクタの概要
protected AbstractSAXParserFactory()
          コンストラクタは何も行いません。
 
メソッドの概要
 boolean getFeature(String name)
          このファクトリインスタンスに設定されている機能を参照します。
 Schema getSchema()
          このファクトリから生成されるパーサが使用するスキーマを参照します。
protected  String guessEncodingFromPrereadSampling(byte[] binary, int length)
          ストリームの内容からエンコーディングを決定するために guessInpuSource(InputStream, String, int) から呼び出されます。
protected  String guessEncodingFromPrereadSampling(String sample)
          バイナリストリームの文字エンコーディングを推測するために guessEncodingFromPrereadSampling(byte[], int) から呼び出されます。
 InputSource guessInpuSource(InputStream in, String charset, int maxLength)
          指定されたバイナリストリームの内容から文字エンコーディングを決定し、解析に使用可能な入力 ソースとして返します。
 boolean isNamespaceAware()
          このファクトリから生成されるパーサが名前空間を認識するかどうかを参照します。
 boolean isValidating()
          このファクトリから生成されるパーサが DTD 検証を行うかどうかを参照します。
 boolean isXIncludeAware()
          このファクトリから生成されるパーサが XInclude を認識するかどうかを参照します。
 void setFeature(String name, boolean value)
          指定された機能の有効/無効を切り替えます。
 void setNamespaceAware(boolean awareness)
          このファクトリから生成されるパーサが名前空間を認識するかどうかを設定します。
 void setSchema(Schema schema)
          このファクトリから生成されるパーサが使用するスキーマを設定します。
 void setValidating(boolean awareness)
          このファクトリから生成されるパーサが DTD 検証を行うかどうかを設定します。
 void setXIncludeAware(boolean state)
          XInclude の有効性を設定します。
 
クラス javax.xml.parsers.SAXParserFactory から継承されたメソッド
newInstance, newSAXParser
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

feature

protected final Map<String,Boolean> feature
このファクトリから生成されるパーサの機能です。

コンストラクタの詳細

AbstractSAXParserFactory

protected AbstractSAXParserFactory()
コンストラクタは何も行いません。

メソッドの詳細

getFeature

public boolean getFeature(String name)
                   throws SAXNotRecognizedException
このファクトリインスタンスに設定されている機能を参照します。機能名に対する設定が行われて いない場合は false を返します。

定義:
クラス SAXParserFactory 内の getFeature
パラメータ:
name - 機能名
戻り値:
機能が有効な場合 true
例外:
SAXNotRecognizedException - 指定された名前の機能名を使用できない場合

setFeature

public void setFeature(String name,
                       boolean value)
                throws SAXNotRecognizedException,
                       SAXNotSupportedException
指定された機能の有効/無効を切り替えます。

定義:
クラス SAXParserFactory 内の setFeature
パラメータ:
name - 機能名
value - 機能を有効にする場合 true
例外:
SAXNotRecognizedException - 指定された名前の機能名を使用できない場合
SAXNotSupportedException - 指定された七前の機能をサポートしていない場合

isNamespaceAware

public boolean isNamespaceAware()
このファクトリから生成されるパーサが名前空間を認識するかどうかを参照します。

オーバーライド:
クラス SAXParserFactory 内の isNamespaceAware
戻り値:
名前空間を認識する場合 true

setNamespaceAware

public void setNamespaceAware(boolean awareness)
このファクトリから生成されるパーサが名前空間を認識するかどうかを設定します。

オーバーライド:
クラス SAXParserFactory 内の setNamespaceAware
パラメータ:
awareness - 名前空間を認識する場合 true

isValidating

public boolean isValidating()
このファクトリから生成されるパーサが DTD 検証を行うかどうかを参照します。

オーバーライド:
クラス SAXParserFactory 内の isValidating
戻り値:
DTD 検証を行う場合 true

setValidating

public void setValidating(boolean awareness)
このファクトリから生成されるパーサが DTD 検証を行うかどうかを設定します。

オーバーライド:
クラス SAXParserFactory 内の setValidating
パラメータ:
awareness - DTD 検証を行う場合 true

setXIncludeAware

public void setXIncludeAware(boolean state)
XInclude の有効性を設定します。

オーバーライド:
クラス SAXParserFactory 内の setXIncludeAware
パラメータ:
state - XInclude を有効にする場合 true

isXIncludeAware

public boolean isXIncludeAware()
このファクトリから生成されるパーサが XInclude を認識するかどうかを参照します。

オーバーライド:
クラス SAXParserFactory 内の isXIncludeAware
戻り値:
XInclude が有効な場合 true

setSchema

public void setSchema(Schema schema)
このファクトリから生成されるパーサが使用するスキーマを設定します。

オーバーライド:
クラス SAXParserFactory 内の setSchema
パラメータ:
schema - スキーマ

getSchema

public Schema getSchema()
このファクトリから生成されるパーサが使用するスキーマを参照します。

オーバーライド:
クラス SAXParserFactory 内の getSchema
戻り値:
スキーマ

guessInpuSource

public InputSource guessInpuSource(InputStream in,
                                   String charset,
                                   int maxLength)
                            throws IOException
指定されたバイナリストリームの内容から文字エンコーディングを決定し、解析に使用可能な入力 ソースとして返します。この機能はストリームを先読みすることに注意してください。メソッドは ストリームから最大 maxLength バイトのバイナリデータを読み込み guessEncodingFromPrereadSampling(byte[], int) に渡してエンコーディングを 推測します。先読みしたバイナリデータは SequenceInputStream で元の ストリームと連結され入力ストリームに設定されます。

HTTP によって取得した内容のエンコーディングは Content-Type で指定されている charset 属性よりコンテンツ内に記述されている XML 宣言や HTML の META 要素を優先した方が、 多くの場合により良い結果を得られます。

返値の入力ソースには InputSource.getCharacterStream()InputSource.getEncoding() が設定されています。

パラメータ:
in - 入力ストリーム
charset - デフォルトのエンコーディング
maxLength - ストリームから先読みする最大バイトサイズ
戻り値:
推測した入力ソース
例外:
IOException - ストリームからの先読みに失敗した場合
UnsupportedEncodingException - 指定された charset が認識できない場合
関連項目:
Xml.getCharset(String)

guessEncodingFromPrereadSampling

protected String guessEncodingFromPrereadSampling(byte[] binary,
                                                  int length)
ストリームの内容からエンコーディングを決定するために guessInpuSource(InputStream, String, int) から呼び出されます。このクラスの メソッドでは先読みバッファ内の最初の 2 バイトが Unicode の Byte Order Mark (BOM) かどうかを評価し、BOM でない場合は guessEncodingFromPrereadSampling(String) を呼び出します。

サブクラスでこのメソッドをオーバーライドして先読みした内容からエンコーディングを推測する 事が出来ます。

パラメータ:
binary - 先読みしたバッファ
length - バッファ内の有効文字の長さ
戻り値:
推測したエンコーディング

guessEncodingFromPrereadSampling

protected String guessEncodingFromPrereadSampling(String sample)
バイナリストリームの文字エンコーディングを推測するために guessEncodingFromPrereadSampling(byte[], int) から呼び出されます。 引数 sample は先読みしたバイナリを us-ascii でエンコーディングした文字列です。

このクラスでは先読みした文字列内から XML 宣言を参照してその encoding 値を返します。 文字列内に XML 宣言が存在しない場合は null を返します。XML 宣言が存在し encoding 指定が省略されている場合は XML 仕様に基づいて UTF-8 と判定します。

このメソッドをサブクラスでオーバーライドして先読みした内容からエンコーディングを推測する 事が出来ます。

パラメータ:
sample - 先読みした文字列
戻り値:
内容から推測した文字エンコーディング

koiroha.org by takami torao