JavaTM 2 Platform
Standard Ed. 6

javax.xml.validation
類別 TypeInfoProvider

java.lang.Object
  繼承者 javax.xml.validation.TypeInfoProvider

public abstract class TypeInfoProvider
extends Object

此類別提供了對 ValidatorHandler 所確定的型別資訊的存取。

某些網要語言(例如 W3C XML Schema)鼓勵驗證器報告它分派給每個屬性/元素的“型別”。那些希望存取此型別資訊的應用程序可以調用此“介面”上的方法來存取這樣的型別資訊。

此“介面”的實作可以通過 ValidatorHandler.getTypeInfoProvider() 方法獲取。

從以下版本開始:
1.5
另請參見:
TypeInfo

建構子摘要
protected TypeInfoProvider()
          派生類別的建構子。
 
方法摘要
abstract  TypeInfo getAttributeTypeInfo(int index)
          返回指定的當前元素屬性的不可變的 TypeInfo 物件。
abstract  TypeInfo getElementTypeInfo()
          返回當前元素的不可變的 TypeInfo 物件。
abstract  boolean isIdAttribute(int index)
          如果指定屬性確定為 ID,則返回 true
abstract  boolean isSpecified(int index)
          如果屬性是通過驗證器添加的,則返回 false
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

TypeInfoProvider

protected TypeInfoProvider()
派生類別的建構子。

建構子不執行任何動作。

方法詳細資訊

getElementTypeInfo

public abstract TypeInfo getElementTypeInfo()

返回當前元素的不可變的 TypeInfo 物件。

該方法只能由 ContentHandler(應用程序將其設置為 ValidatorHandler)的 startElement 事件或 endElement 事件調用。

當正在執行 W3C XML 網要驗證時,在元素具有 union 型別的情況下,對 startElement 事件調用 getElementTypeInfo() 所返回的 TypeInfo 將是 union 型別。endElement 事件的調用所返回的 TypeInfo 將是實際用來驗證元素的數字型別。

返回:
表示當前元素型別的不可變的 TypeInfo 物件。注意,調用者保持對所獲得的 TypeInfo 的參考時間可能要長於回調作用時間。否則,如果由於某種原因驗證器不能確定當前元素的型別(例如,如果驗證器正從較早的錯誤中恢復),則此方法返回 null。
拋出:
IllegalStateException - 如果從其他 ContentHandler 方法調用了此方法。

getAttributeTypeInfo

public abstract TypeInfo getAttributeTypeInfo(int index)
返回指定的當前元素屬性的不可變的 TypeInfo 物件。

該方法只能由 ContentHandler(應用程序將其設置為 ValidatorHandler)的 startElement 事件調用。

參數:
index - 屬性的索引。傳遞給 startElement 回調的 Attributes 物件的相同索引。
返回:
表示指定屬性型別的不可變的 TypeInfo 物件。注意,調用者保持對所獲得的 TypeInfo 的參考時間可能要長於回調作用時間。否則,如果驗證器無法確定型別,則此方法返回 null。
拋出:
IndexOutOfBoundsException - 如果索引無效。
IllegalStateException - 如果從其他 ContentHandler 方法調用了此方法。

isIdAttribute

public abstract boolean isIdAttribute(int index)
如果指定屬性確定為 ID,則返回 true

屬性如何“確定為 ID”的準確方式取決於網要語言。在 W3C XML 網要中,這意味著實際的屬性型別為內置的 ID 型別或其派生型別。

DocumentBuilder 使用此資訊來正確地實作 Attr.isId()

該方法只能由 ContentHandler(應用程序將其設置為 ValidatorHandler)的 startElement 事件調用。

參數:
index - 屬性的索引。傳遞給 startElement 回調的 Attributes 物件的相同索引。
返回:
如果指定屬性的型別為 ID,則返回 true。
拋出:
IndexOutOfBoundsException - 如果索引無效。
IllegalStateException - 如果從其他 ContentHandler 方法調用了此方法。

isSpecified

public abstract boolean isSpecified(int index)
如果屬性是通過驗證器添加的,則返回 false

此方法為 DocumentBuilder 提供了所需的資訊,以確定 DOM 階層樹應從 Attr.getSpecified() 方法返回的內容。

該方法只能由 ContentHandler(應用程序將其設置為 ValidatorHandler)的 startElement 事件調用。

驗證器的通用指導原則是:如果屬性最初就在管線中存在,則返回 true,如果它是通過驗證器添加的,則返回 false。

參數:
index - 屬性的索引。傳遞給 startElement 回調的 Attributes 物件的相同索引。
返回:
如果在驗證器處理輸入之前屬性已存在,則返回 true,如果屬性是通過驗證器添加的,則返回 false
拋出:
IndexOutOfBoundsException - 如果索引無效。
IllegalStateException - 如果從其他 ContentHandler 方法調用了此方法。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only