| 修飾子 | コンストラクタと説明 |
|---|---|
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)
指定された入力を検証し、追加された検証結果を指定された出力に送ります。
|
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はプロパティ名を認識できますが、現在の値を変更することはできません。プロパティの値によっては、検証の実行前、実行中、実行後などの特定のコンテキストでのみ不変または可変である場合があります。
JAXP 1.5またはそれ以降を実装する実装はすべて、XMLConstants.ACCESS_EXTERNAL_DTDおよびXMLConstants.ACCESS_EXTERNAL_SCHEMAプロパティをサポートしている必要があります。
ソースまたはスキーマ・ファイル内の外部DTDへのアクセスが、XMLConstants.ACCESS_EXTERNAL_DTDプロパティで指定されたプロトコルに制限されます。このプロパティの制限が原因で検証中にアクセスが拒否された場合は、validate(Source)メソッドによってSAXExceptionがスローされます。
schemaLocation属性によって設定された外部参照へのアクセスが、XMLConstants.ACCESS_EXTERNAL_SCHEMAプロパティで指定されたプロトコルに制限されます。このプロパティの制限が原因で検証中にアクセスが拒否された場合は、validate(Source)メソッドによってSAXExceptionがスローされます。
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) バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.