|
XML Library 1.0 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjavax.xml.parsers.SAXParserFactory
org.koiroha.xml.parser.AbstractSAXParserFactory
public abstract class AbstractSAXParserFactory
SAX パーサファクトリの抽象実装クラスです。
フィールドの概要 | |
---|---|
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 |
フィールドの詳細 |
---|
protected final Map<String,Boolean> feature
コンストラクタの詳細 |
---|
protected AbstractSAXParserFactory()
メソッドの詳細 |
---|
public boolean getFeature(String name) throws SAXNotRecognizedException
SAXParserFactory
内の getFeature
name
- 機能名
SAXNotRecognizedException
- 指定された名前の機能名を使用できない場合public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException
SAXParserFactory
内の setFeature
name
- 機能名value
- 機能を有効にする場合 true
SAXNotRecognizedException
- 指定された名前の機能名を使用できない場合
SAXNotSupportedException
- 指定された七前の機能をサポートしていない場合public boolean isNamespaceAware()
SAXParserFactory
内の isNamespaceAware
public void setNamespaceAware(boolean awareness)
SAXParserFactory
内の setNamespaceAware
awareness
- 名前空間を認識する場合 truepublic boolean isValidating()
SAXParserFactory
内の isValidating
public void setValidating(boolean awareness)
SAXParserFactory
内の setValidating
awareness
- DTD 検証を行う場合 truepublic void setXIncludeAware(boolean state)
SAXParserFactory
内の setXIncludeAware
state
- XInclude を有効にする場合 truepublic boolean isXIncludeAware()
SAXParserFactory
内の isXIncludeAware
public void setSchema(Schema schema)
SAXParserFactory
内の setSchema
schema
- スキーマpublic Schema getSchema()
SAXParserFactory
内の getSchema
public InputSource guessInpuSource(InputStream in, String charset, int maxLength) throws IOException
guessEncodingFromPrereadSampling(byte[], int)
に渡してエンコーディングを
推測します。先読みしたバイナリデータは SequenceInputStream
で元の
ストリームと連結され入力ストリームに設定されます。
HTTP によって取得した内容のエンコーディングは Content-Type で指定されている charset 属性よりコンテンツ内に記述されている XML 宣言や HTML の META 要素を優先した方が、 多くの場合により良い結果を得られます。
返値の入力ソースには InputSource.getCharacterStream()
と InputSource.getEncoding()
が設定されています。
in
- 入力ストリームcharset
- デフォルトのエンコーディングmaxLength
- ストリームから先読みする最大バイトサイズ
IOException
- ストリームからの先読みに失敗した場合
UnsupportedEncodingException
- 指定された charset が認識できない場合Xml.getCharset(String)
protected String guessEncodingFromPrereadSampling(byte[] binary, int length)
guessInpuSource(InputStream, String, int)
から呼び出されます。このクラスの
メソッドでは先読みバッファ内の最初の 2 バイトが Unicode の Byte Order Mark (BOM)
かどうかを評価し、BOM でない場合は guessEncodingFromPrereadSampling(String)
を呼び出します。
サブクラスでこのメソッドをオーバーライドして先読みした内容からエンコーディングを推測する 事が出来ます。
binary
- 先読みしたバッファlength
- バッファ内の有効文字の長さ
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 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |