JavaTM 2 Platform
Standard Ed. 6

org.xml.sax.ext
介面 DeclHandler

所有已知實作類別:
DefaultHandler2

public interface DeclHandler

用於 DTD 宣告事件的 SAX2 擴展處理程序。

此模組(包括源程式碼和文檔)在公共域中,同時 沒有擔保有關更多資訊,請參閱http://www.saxproject.org

這是 SAX2 的一個可選擴展處理程序,以提供有關 XML 文檔中 DTD 宣告的更完整資訊。不需要 XML 閱讀器識別此處理程序,它不是僅核心 SAX2 分發的一部分。

注意,已經通過 DTDHandler 介面報告與資料相關的 DTD 宣告(未解析的實體和註釋)。

如果將宣告處理程序與詞法處理程序一起使用,則在 startDTDendDTD 事件之間將發生所有事件。

要為 XML 閱讀器設置 DeclHandler,使用帶有屬性名稱 http://xml.org/sax/properties/declaration-handlersetProperty 方法以及將此介面(或 null)實作為該值的物件。如果閱讀器不報告宣告事件,則嘗試註冊處理程序時,它將拋出 SAXNotRecognizedException

從以下版本開始:
SAX 2.0 (extensions 1.0)

方法摘要
 void attributeDecl(String eName, String aName, String type, String mode, String value)
          報告屬性型別宣告。
 void elementDecl(String name, String model)
          報告元素型別宣告。
 void externalEntityDecl(String name, String publicId, String systemId)
          報告解析的外部實體宣告。
 void internalEntityDecl(String name, String value)
          報告內部實體宣告。
 

方法詳細資訊

elementDecl

void elementDecl(String name,
                 String model)
                 throws SAXException
報告元素型別宣告。

內容模型將由字元串 "EMPTY"、字元串 "ANY" 或用括號括起來的組組成,可以選擇後面跟隨一個出現指示符。將使模型標準化,以便完全解析所有的參數實體,並移除所有的空白,並將包括括號。其他標準化(例如,移除多餘的括號或簡化出現指示符)是由解析器決定的。

參數:
name - 元素型別名稱。
model - 作為標準化字元串的內容模型。
拋出:
SAXException - 應用程序可能引發一個異常。

attributeDecl

void attributeDecl(String eName,
                   String aName,
                   String type,
                   String mode,
                   String value)
                   throws SAXException
報告屬性型別宣告。

將僅報告屬性的有效(第一個)宣告。型別將是以下字元串之一:"CDATA"、"ID"、"IDREF"、"IDREFS"、"NMTOKEN"、"NMTOKENS"、"ENTITY"、"ENTITIES"、移除所有空格的帶有分隔符 "|" 的加上括號的標記組,或後跟一個空格再跟隨移除所有空白的加上括號的標記組的單詞 "NOTATION"。

值將是報告給應用程序、被適當標準化的值,它帶有實體和擴展的字元參考。

參數:
eName - 關聯元素的名稱。
aName - 屬性的名稱。
type - 表示屬性型別的字元串。
mode - 表示屬性預設網要("#IMPLIED"、"#REQUIRED" 或 "#FIXED")的字元串,如果不應用上述網要,則為 null。
value - 表示屬性的預設值的字元串,如果不存在,則為 null。
拋出:
SAXException - 應用程序可能引發一個異常。

internalEntityDecl

void internalEntityDecl(String name,
                        String value)
                        throws SAXException
報告內部實體宣告。

將僅報告每個實體的有效(第一個)宣告。將擴展值中的所有參數實體,但不擴展常規實體。

參數:
name - 實體的名稱。如果是參數實體,則名稱以 "%" 開頭。
value - 實體的替換文本。
拋出:
SAXException - 應用程序可能引發一個異常。
另請參見:
externalEntityDecl(java.lang.String, java.lang.String, java.lang.String), DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)

externalEntityDecl

void externalEntityDecl(String name,
                        String publicId,
                        String systemId)
                        throws SAXException
報告解析的外部實體宣告。

將僅報告每個實體的有效(第一個)宣告。

如果系統標識符是 URL,則解析器必須在將它傳遞給應用程序之前完全解析它。

參數:
name - 實體的名稱。如果是參數實體,則名稱以 "%" 開頭。
publicId - 實體的公共標識符,如果沒有給定,則為 null。
systemId - 實體的系統標識符。
拋出:
SAXException - 應用程序可能引發一個異常。
另請參見:
internalEntityDecl(java.lang.String, java.lang.String), DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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