|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.xml.validation.Validator
public abstract class Validator
Schema
と照合して XML ドキュメントをチェックするプロセッサです。
バリデータはスレッドセーフでなく、再入不可能なオブジェクトです。つまり、アプリケーション側で常に複数のスレッドから 1 つの Validator
オブジェクトが使用されないように確認する必要があり、validate メソッドが呼び出されている間、アプリケーションは再帰的に validate メソッドを呼び出すことができません。
validate(javax.xml.transform.Source)
および validate(javax.xml.transform.Source, javax.xml.transform.Result)
メソッドが Source
インスタンスを取得するとき、 Source
インスタンスは SAXSource
または DOMSource
である必要があります。
コンストラクタの概要 | |
---|---|
protected |
Validator()
派生クラスのコンストラクタです。 |
メソッドの概要 | |
---|---|
abstract ErrorHandler |
getErrorHandler()
この Validator に設定された現在の ErrorHandler を取得します。 |
boolean |
getFeature(String name)
機能フラグの値を検索します。 |
Object |
getProperty(String name)
プロパティ値を検索します。 |
abstract LSResourceResolver |
getResourceResolver()
この Validator に設定された現在の LSResourceResolver を取得します。 |
abstract void |
reset()
この Validator を元の設定にリセットします。 |
abstract void |
setErrorHandler(ErrorHandler errorHandler)
validate メソッドの呼び出しで発生したエラーを受け取るように ErrorHandler を設定します。 |
void |
setFeature(String name,
boolean value)
機能フラグの値を設定します。 |
void |
setProperty(String name,
Object object)
プロパティ値を設定します。 |
abstract void |
setResourceResolver(LSResourceResolver resourceResolver)
検証時のリソース解決をカスタマイズするように LSResourceResolver を設定します。 |
void |
validate(Source source)
指定された入力を検証します。 |
abstract void |
validate(Source source,
Result result)
指定された入力を検証し、追加された検証結果を指定された出力に送ります。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
protected Validator()
このコンストラクタは何も行いません。
派生クラスでは、null ErrorHandler
および null LSResourceResolver
の Validator
オブジェクトを作成する必要があります。
メソッドの詳細 |
---|
public abstract void reset()
この Validator
を元の設定にリセットします。
Validator
は、Schema.newValidator()
で作成された時点の状態にリセットされます。reset()
は、既存の Validator
の再使用を許可するように設定されているため、新しい Validator
の作成に関連するリソースを節約できます。
Validator
をリセットした場合、同じ LSResourceResolver
または ErrorHandler
Object
を持つことは保証されません。たとえば、Object.equals(Object obj)
などです。機能的に同じ LSResourceResolver
や ErrorHandler
を持つことは保証されます。
public void validate(Source source) throws SAXException, IOException
このメソッドは次の簡易メソッドにすぎません。
validate(source,null);
SAXException
IOException
setErrorHandler(ErrorHandler)
public abstract void validate(Source source, Result result) throws SAXException, IOException
このメソッドは受け付ける Source
/Result
の型に関して、次の制約を設けています。
Source
/Result
SAXSource | DOMSource | |
null | OK | OK |
SAXResult | OK | エラー |
DOMResult | エラー | OK |
StreamSource
インスタンスは許可されません。 StreamSource
を処理するか、または 1 つの Source
を別の種類の Result
に検証するには、恒等変換を使用します (TransformerFactory.newTransformer()
を参照)。
検証で発見されたエラーは指定された ErrorHandler
に送られます。
ドキュメントが有効である、またはドキュメントにいくらかのエラーがあるが、それらはすべて致命的でなく、ErrorHandler
で例外がスローされていない場合、メソッドは正常に戻ります。
source
- 検証される XML。null は不可result
- 拡張された可能性のある XML を受け取る Result
オブジェクト。呼び出し側で必要がなければ、このパラメータは null も可。DOMResult
が使用され、バリデータが DOMSource
から DOMResult
へ同じ DOM を渡すだけのときは (source.getNode()==result.getNode() の場合)、DOM ツリー全体がコピーされるか、ソースで指定されたノードが変更されることがある
IllegalArgumentException
- Result
の型が Source
の型と一致しない場合、または指定されたソースが SAXSource
でも DOMSource
でもない場合
SAXException
- ErrorHandler
が SAXException
をスローした場合、または致命的エラーが発見され ErrorHandler
が正常に戻った場合
IOException
- バリデータが SAXSource
を処理中で、基本となる XMLReader
が IOException
をスローした場合
NullPointerException
- source パラメータが null の場合validate(Source)
public abstract void setErrorHandler(ErrorHandler errorHandler)
validate
メソッドの呼び出しで発生したエラーを受け取るように ErrorHandler
を設定します。
エラーハンドラを使用して、検証時のエラー処理プロセスをカスタマイズできます。ErrorHandler
を設定すると、検証で発見されたエラーはまず ErrorHandler
に送られます。
エラーハンドラはハンドラから SAXException
をスローして、検証をただちに中断することができます。または、エラーを画面に出力したり、ErrorHandler
から正常に戻って検証を続行させたりすることもできます。
ErrorHandler
から Throwable
がスローされた場合、validate
メソッドの呼び出し側に同じ Throwable
オブジェクトがスローされます。
Validator
は ErrorHandler
に最初に報告する前に SAXException
をスローできません。
ErrorHandler
が null の場合、実装は次の ErrorHandler
が設定されているかのように動作します。
class DraconianErrorHandler implementsErrorHandler
{ public void fatalError(SAXParseException
e ) throwsSAXException
{ throw e; } public void error(SAXParseException
e ) throwsSAXException
{ throw e; } public void warning(SAXParseException
e ) throwsSAXException
{ // noop } }
新しい Validator
オブジェクトが作成されると、最初にこのフィールドは null に設定されます。
errorHandler
- 設定する新しいエラーハンドラ。このパラメータは null も可public abstract ErrorHandler getErrorHandler()
Validator
に設定された現在の ErrorHandler
を取得します。
setErrorHandler(ErrorHandler)
メソッドによって最後に設定されたオブジェクト、またはこの Validator
が作成されてから、そのメソッドが呼び出されていない場合は null を返すsetErrorHandler(ErrorHandler)
public abstract void setResourceResolver(LSResourceResolver resourceResolver)
LSResourceResolver
を設定します。
Validator
は検証時に外部リソースを検索する必要がある場合に LSResourceResolver
を使用しますが、厳密に「外部リソースの検索」を構成するものは、スキーマ言語により異なります。
LSResourceResolver
が null の場合、実装は次の LSResourceResolver
が設定されているかのように動作します。
class DumbLSResourceResolver implementsLSResourceResolver
{ publicLSInput
resolveResource( String publicId, String systemId, String baseURI) { return null; // always return null } }
LSResourceResolver
が RuntimeException
(またはその派生クラスのインスタンス) をスローすると、Validator
は構文解析を中止し、validate
メソッドの呼び出し側は同じ RuntimeException
を受け取ります。
新しい Validator
オブジェクトが作成されると、最初にこのフィールドは null に設定されます。
resourceResolver
- 設定する新しいリソースリゾルバ。このパラメータは null も可public abstract LSResourceResolver getResourceResolver()
Validator
に設定された現在の LSResourceResolver
を取得します。
setResourceResolver(LSResourceResolver)
メソッドによって最後に設定されたオブジェクト、またはこの Validator
が作成されてから、そのメソッドが呼び出されていない場合は null を返すsetErrorHandler(ErrorHandler)
public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException
機能名は完全修飾 URI です。Validator
は機能名を認識できますが、一時的にその値を返すことはできません。機能の値によっては、検証の実行前、実行中、実行後などの特定のコンテキストでしか使用できない場合があります。
独自の URI に基づいて作成された名前を使って、実装者が独自の機能を作成することもできます (推奨)。
name
- 機能名。null 以外の完全修飾 URI で表される
SAXNotRecognizedException
- 機能の値を割り当て、または取得できない場合
SAXNotSupportedException
- Validator
が機能名を認識するだけで、現時点ではその値を判断できない場合
NullPointerException
- name パラメータが null の場合setFeature(String, boolean)
public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException
機能を使用して、Validator
がスキーマを構文解析する方法を制御できますが、Validator
は特定のプロパティ名を認識する必要はありません。
機能名は完全修飾 URI です。Validator
は機能の値を表示できますが、現在の値を変更することはできません。機能の値によっては、検証の実行前、実行中、実行後などの特定のコンテキストでのみ不変または可変である場合があります。
name
- 機能名。null 以外の完全修飾 URI で表されるvalue
- 機能の要求された値 (true または false)
SAXNotRecognizedException
- 機能の値を割り当て、または取得できない場合
SAXNotSupportedException
- Validator
が機能名を認識するだけで要求された値を設定できない場合
NullPointerException
- name パラメータが null の場合getFeature(String)
public void setProperty(String name, Object object) throws SAXNotRecognizedException, SAXNotSupportedException
プロパティ名は完全修飾 URI です。Validator
はプロパティ名を認識できますが、現在の値を変更することはできません。プロパティの値によっては、検証の実行前、実行中、実行後などの特定のコンテキストでのみ不変または可変である場合があります。
Validator
は特定のプロパティ名の設定を認識する必要はありません。
name
- プロパティ名。null 以外の完全修飾 URI で表されるobject
- 要求されたプロパティ値
SAXNotRecognizedException
- プロパティの値を割り当て、または取得できない場合
SAXNotSupportedException
- Validator
がプロパティ名を認識するだけで要求された値を設定できない場合
NullPointerException
- name パラメータが null の場合public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
プロパティ名は完全修飾 URI です。Validator
はプロパティ名を認識できますが、一時的にその値を返すことはできません。プロパティの値によっては、検証の実行前、実行中、実行後などの特定のコンテキストでしか使用できない場合があります。
Validator
は特定のプロパティ名を認識する必要はありません。
独自の URI に基づいて作成された名前を使って、実装者が独自のプロパティを作成することもできます (推奨)。
name
- プロパティ名。null 以外の完全修飾 URI で表される
SAXNotRecognizedException
- プロパティの値を割り当て、または取得できない場合
SAXNotSupportedException
- XMLReader がプロパティ名を認識するだけで、現時点ではその値を判断できない場合
NullPointerException
- name パラメータが null の場合setProperty(String, Object)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。