|
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, 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 内の getFeaturename - 機能名
SAXNotRecognizedException - 指定された名前の機能名を使用できない場合
public void setFeature(String name,
boolean value)
throws SAXNotRecognizedException,
SAXNotSupportedException
SAXParserFactory 内の setFeaturename - 機能名value - 機能を有効にする場合 true
SAXNotRecognizedException - 指定された名前の機能名を使用できない場合
SAXNotSupportedException - 指定された七前の機能をサポートしていない場合public boolean isNamespaceAware()
SAXParserFactory 内の isNamespaceAwarepublic void setNamespaceAware(boolean awareness)
SAXParserFactory 内の setNamespaceAwareawareness - 名前空間を認識する場合 truepublic boolean isValidating()
SAXParserFactory 内の isValidatingpublic void setValidating(boolean awareness)
SAXParserFactory 内の setValidatingawareness - DTD 検証を行う場合 truepublic void setXIncludeAware(boolean state)
SAXParserFactory 内の setXIncludeAwarestate - XInclude を有効にする場合 truepublic boolean isXIncludeAware()
SAXParserFactory 内の isXIncludeAwarepublic void setSchema(Schema schema)
SAXParserFactory 内の setSchemaschema - スキーマ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 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||