修飾子 | コンストラクタと説明 |
---|---|
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(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
はプロパティー名を認識できますが、現在の値を変更することはできません。プロパティーの値によっては、検証の実行前、実行中、実行後などの特定のコンテキストでのみ不変または可変である場合があります。
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, 2013, Oracle and/or its affiliates. All rights reserved.