|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjavax.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(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 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。