JavaTM 2 Platform
Standard Ed. 5.0

javax.xml.validation
クラス Validator

java.lang.Object
  上位を拡張 javax.xml.validation.Validator

public abstract class Validator
extends Object

Schema と照合して XML ドキュメントをチェックするプロセッサです。

バリデータはスレッドセーフでなく、再入不可能なオブジェクトです。つまり、アプリケーション側で常に複数のスレッドから 1 つの Validator オブジェクトが使用されないように確認する必要があり、validate メソッドが呼び出されている間、アプリケーションは再帰的に validate メソッドを呼び出すことができません。

validate(javax.xml.transform.Source) および validate(javax.xml.transform.Source, javax.xml.transform.Result) メソッドが Source インスタンスを取得するとき、 Source インスタンスは SAXSource または DOMSource である必要があります。

導入されたバージョン:
1.5

コンストラクタの概要
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
 

コンストラクタの詳細

Validator

protected Validator()
派生クラスのコンストラクタです。

このコンストラクタは何も行いません。

派生クラスでは、null ErrorHandler および null LSResourceResolverValidator オブジェクトを作成する必要があります。

メソッドの詳細

reset

public abstract void reset()

この Validator を元の設定にリセットします。

Validator は、Schema.newValidator() で作成された時点の状態にリセットされます。reset() は、既存の Validator の再使用を許可するように設定されているため、新しい Validator の作成に関連するリソースを節約できます。

Validator をリセットした場合、同じ LSResourceResolver または ErrorHandler Object を持つことは保証されません。たとえば、Object.equals(Object obj) などです。機能的に同じ LSResourceResolverErrorHandler を持つことは保証されます。


validate

public void validate(Source source)
              throws SAXException,
                     IOException
指定された入力を検証します。

このメソッドは次の簡易メソッドにすぎません。


 validate(source,null);
 

例外:
SAXException
IOException
関連項目:
setErrorHandler(ErrorHandler)

validate

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 - ErrorHandlerSAXException をスローした場合、または致命的エラーが発見され ErrorHandler が正常に戻った場合
IOException - バリデータが SAXSource を処理中で、基本となる XMLReaderIOException をスローした場合
NullPointerException - source パラメータが null の場合
関連項目:
validate(Source)

setErrorHandler

public abstract void setErrorHandler(ErrorHandler errorHandler)
validate メソッドの呼び出しで発生したエラーを受け取るように ErrorHandler を設定します。

エラーハンドラを使用して、検証時のエラー処理プロセスをカスタマイズできます。ErrorHandler を設定すると、検証で発見されたエラーはまず ErrorHandler に送られます。

エラーハンドラはハンドラから SAXException をスローして、検証をただちに中断することができます。または、エラーを画面に出力したり、ErrorHandler から正常に戻って検証を続行させたりすることもできます。

ErrorHandler から Throwable がスローされた場合、validate メソッドの呼び出し側に同じ Throwable オブジェクトがスローされます。

ValidatorErrorHandler に最初に報告する前に SAXException をスローできません。

ErrorHandler が null の場合、実装は次の ErrorHandler が設定されているかのように動作します。


 class DraconianErrorHandler implements ErrorHandler {
     public void fatalError( SAXParseException e ) throws SAXException {
         throw e;
     }
     public void error( SAXParseException e ) throws SAXException {
         throw e;
     }
     public void warning( SAXParseException e ) throws SAXException {
         // noop
     }
 }
 

新しい Validator オブジェクトが作成されると、最初にこのフィールドは null に設定されます。

パラメータ:
errorHandler - 設定する新しいエラーハンドラ。このパラメータは null も可

getErrorHandler

public abstract ErrorHandler getErrorHandler()
この Validator に設定された現在の ErrorHandler を取得します。

戻り値:
このメソッドは setErrorHandler(ErrorHandler) メソッドによって最後に設定されたオブジェクト、またはこの Validator が作成されてから、そのメソッドが呼び出されていない場合は null を返す
関連項目:
setErrorHandler(ErrorHandler)

setResourceResolver

public abstract void setResourceResolver(LSResourceResolver resourceResolver)
検証時のリソース解決をカスタマイズするように LSResourceResolver を設定します。

Validator は検証時に外部リソースを検索する必要がある場合に LSResourceResolver を使用しますが、厳密に「外部リソースの検索」を構成するものは、スキーマ言語により異なります。

LSResourceResolver が null の場合、実装は次の LSResourceResolver が設定されているかのように動作します。


 class DumbLSResourceResolver implements LSResourceResolver {
     public LSInput resolveResource(
         String publicId, String systemId, String baseURI) {
         
         return null; // always return null
     }
 }
 

LSResourceResolverRuntimeException (またはその派生クラスのインスタンス) をスローすると、Validator は構文解析を中止し、validate メソッドの呼び出し側は同じ RuntimeException を受け取ります。

新しい Validator オブジェクトが作成されると、最初にこのフィールドは null に設定されます。

パラメータ:
resourceResolver - 設定する新しいリソースリゾルバ。このパラメータは null も可

getResourceResolver

public abstract LSResourceResolver getResourceResolver()
この Validator に設定された現在の LSResourceResolver を取得します。

戻り値:
このメソッドは setResourceResolver(LSResourceResolver) メソッドによって最後に設定されたオブジェクト、またはこの Validator が作成されてから、そのメソッドが呼び出されていない場合は null を返す
関連項目:
setErrorHandler(ErrorHandler)

getFeature

public boolean getFeature(String name)
                   throws SAXNotRecognizedException,
                          SAXNotSupportedException
機能フラグの値を検索します。

機能名は完全修飾 URI です。Validator は機能名を認識できますが、一時的にその値を返すことはできません。機能の値によっては、検証の実行前、実行中、実行後などの特定のコンテキストでしか使用できない場合があります。

独自の URI に基づいて作成された名前を使って、実装者が独自の機能を作成することもできます (推奨)。

パラメータ:
name - 機能名。null 以外の完全修飾 URI で表される
戻り値:
機能の現在の値 (true または false)
例外:
SAXNotRecognizedException - 機能の値を割り当て、または取得できない場合
SAXNotSupportedException - Validator が機能名を認識するだけで、現時点ではその値を判断できない場合
NullPointerException - name パラメータが null の場合
関連項目:
setFeature(String, boolean)

setFeature

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)

setProperty

public void setProperty(String name,
                        Object object)
                 throws SAXNotRecognizedException,
                        SAXNotSupportedException
プロパティ値を設定します。

プロパティ名は完全修飾 URI です。Validator はプロパティ名を認識できますが、現在の値を変更することはできません。プロパティの値によっては、検証の実行前、実行中、実行後などの特定のコンテキストでのみ不変または可変である場合があります。

Validator は特定のプロパティ名の設定を認識する必要はありません。

パラメータ:
name - プロパティ名。null 以外の完全修飾 URI で表される
object - 要求されたプロパティ値
例外:
SAXNotRecognizedException - プロパティの値を割り当て、または取得できない場合
SAXNotSupportedException - Validator がプロパティ名を認識するだけで要求された値を設定できない場合
NullPointerException - name パラメータが null の場合

getProperty

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

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。