|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.xml.validation.Validator
public abstract class Validator
Schema と照合して XML ドキュメントをチェックするプロセッサです。
バリデータオブジェクトはスレッドに対して安全ではなく、再入不可能です。つまり、アプリケーション側で、どのような場合でも 1 つの Validator オブジェクトが複数のスレッドから使用されることがないようにする必要があります。また、validate メソッドが呼び出されている間、アプリケーションは再帰的に validate メソッドを呼び出すことができません。
| コンストラクタの概要 | |
|---|---|
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
これは null の result を持つ validate(Source source, Result result) の簡易メソッドです。
source - 検証される XML。XML ドキュメントまたは
XML 要素であることが必要で null は不可。下位互換性のために、
ドキュメントと要素以外のすべての検証結果は
実装に依存している。
実装は、入力を認識し処理するか、
IllegalArgumentException をスローする必要がある
IllegalArgumentException - Source
が検証を実装できない XML アーティファクトである場合
(処理命令など)
SAXException - ErrorHandler が SAXException をスローした場合、
または致命的エラーが検出され ErrorHandler が正常に復帰した
場合
IOException - バリデータが
SAXSource を処理中で、
基本となる XMLReader が
IOException をスローした場合
NullPointerException - source が
null の場合validate(Source source, Result result)
public abstract void validate(Source source,
Result result)
throws SAXException,
IOException
指定された入力を検証し、追加された検証結果を指定された出力に送ります。
このメソッドは受け付ける Source/Result の型に関して、次の制約を設けています。
受け付ける Source / Result |
||||
|---|---|---|---|---|
StreamSource |
SAXSource |
DOMSource |
StAXSource |
|
null |
OK | OK | OK | OK |
StreamResult |
OK | IllegalArgumentException |
IllegalArgumentException |
IllegalArgumentException |
SAXResult |
IllegalArgumentException |
OK | IllegalArgumentException |
IllegalArgumentException |
DOMResult |
IllegalArgumentException |
IllegalArgumentException |
OK | IllegalArgumentException |
StAXResult |
IllegalArgumentException |
IllegalArgumentException |
IllegalArgumentException |
OK |
1 つの Source を別の種類の Result に検証するには、恒等変換を使用します (TransformerFactory.newTransformer() を参照)。
検証で発見されたエラーは指定された ErrorHandler に送られます。
ドキュメントが有効である、またはドキュメントにいくらかのエラーがあるが、それらはすべて致命的でなく、ErrorHandler で例外がスローされていない場合、メソッドは正常に復帰します。
source - 検証される XML。XML ドキュメントまたは
XML 要素であることが必要で null は不可。下位互換性のために、
ドキュメントと要素以外のすべての検証結果は
実装に依存している。
実装は、入力を認識し処理するか、
IllegalArgumentException をスローする必要があるresult - 拡張された可能性のある XML を受け取る Result
オブジェクト。呼び出し側で必要がなければ、このパラメータは null
も可。
DOMResult が使用され、バリデータが DOMSource から DOMResult へ同じ DOM ノードを渡すだけのときは (source.getNode()==result.getNode() の場合)、DOM ツリー全体がコピーされるか、ソースで指定されたノードが変更されることがある
IllegalArgumentException - Result の型が
Source の型と一致しない場合、または Source
が検証を実装できない XML アーティファクトである場合
(処理命令など)
SAXException - ErrorHandler が
SAXException をスローした場合、
または致命的エラーが発見され ErrorHandler が正常に復帰した
場合
IOException - バリデータが
SAXSource を処理中で、
基本となる XMLReader が
IOException をスローした場合
NullPointerException - source パラメータが null の場合validate(Source source)public abstract void setErrorHandler(ErrorHandler errorHandler)
validate メソッドの呼び出しで発生したエラーを受け取るように ErrorHandler を設定します。
エラーハンドラを使用して、検証時のエラー処理プロセスをカスタマイズできます。ErrorHandler を設定すると、検証で発見されたエラーはまず ErrorHandler に送られます。
エラーハンドラはハンドラから SAXException をスローして、検証をただちに中断することができます。または、エラーを画面に出力したり、ErrorHandler から正常に戻って検証を続行させたりすることもできます。
Throwable が ErrorHandler からスローされると、validate メソッドの呼び出し元には同じ Throwable オブジェクトがスローされます。
Validator は、最初に ErrorHandler へ報告してからでないと、SAXException をスローすることができません。
ErrorHandler が null の場合、実装は次の ErrorHandler が設定されたかのように動作します。
class DraconianErrorHandler implementsErrorHandler{ public void fatalError(SAXParseExceptione ) throwsSAXException{ throw e; } public void error(SAXParseExceptione ) throwsSAXException{ throw e; } public void warning(SAXParseExceptione ) 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{ publicLSInputresolveResource( 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 Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。