|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.xml.validation.Validator
public abstract class Validator
根據 Schema
檢查 XML 文檔的處理器。
Validator 物件不是執行緒安全的,也不能重入。換句話說,應用程序負責確保在任意給定時刻不能有多個執行緒同時使用 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)
設置 ErrorHandler 以接收在 validate 方法調用期間遇到的錯誤。 |
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 source, Result result)
(result
為 null
)的一個便捷方法。
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 |
要驗證一個 Source
並輸出到另一種型別的 Result
中,請使用恆等轉換器(參見 TransformerFactory.newTransformer()
)。
將驗證中發現的錯誤發送到指定的 ErrorHandler
。
如果文檔有效,或者文檔包含某些錯誤但無致命錯誤且 ErrorHandler
不拋出任何異常,則該方法正常返回。
source
- 要驗證的 XML。該參數必須為 XML 文檔或 XML 元素,不可以為 null。為了向後相容,試圖驗證文檔或元素以外的任何內容的所得結果都由實作決定。實作必須能識別並處理輸入,否則將拋出 IllegalArgumentException。result
- 接收(可能是擴充的)XML 的 Result
物件。如果調用者不需要它,則此參數可以為 null。注意,當使用 DOMResult
時,驗證器可以只是將來自 DOMSource
的相同 DOM 節點傳遞到 DOMResult
(在這種情況下,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)
ErrorHandler
以接收在 validate
方法調用期間遇到的錯誤。
錯誤處理程序可用於自定義驗證期間的錯誤處理過程。當設置 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. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。