|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectorg.xml.sax.helpers.DefaultHandler
org.xml.sax.ext.DefaultHandler2
public class DefaultHandler2
此類別擴展 SAX2 基本處理程序類別,以支持 SAX2 LexicalHandler、DeclHandler 和 EntityResolver2 擴展。除了覆寫原始 SAX1 resolveEntity() 方法之外,僅返回添加的處理程序方法。子類別可能在逐個方法的基礎上覆寫每個事情。
此模組(包括源程式碼和文檔)在公共域中,同時 沒有擔保。
註:此類別可能仍知道 ContentHandler.setDocumentLocator() 調用可能被傳遞一個 Locator2 物件,並且 ContentHandler.startElement() 調用被傳遞一個 Attributes2 物件。
| 建構子摘要 | |
|---|---|
DefaultHandler2()
建構忽略所有解析事件的處理程序。 |
|
| 方法摘要 | |
|---|---|
void |
attributeDecl(String eName,
String aName,
String type,
String mode,
String value)
報告屬性型別宣告。 |
void |
comment(char[] ch,
int start,
int length)
報告文檔的任何位置的 XML 註釋。 |
void |
elementDecl(String name,
String model)
報告元素型別宣告。 |
void |
endCDATA()
報告 CDATA 節的結束。 |
void |
endDTD()
報告 DTD 宣告的結束。 |
void |
endEntity(String name)
報告實體的結束。 |
void |
externalEntityDecl(String name,
String publicId,
String systemId)
報告解析的外部實體宣告。 |
InputSource |
getExternalSubset(String name,
String baseURI)
告知解析器如果在文檔文本中沒有宣告任何外部子集,則不應使用任何外部子集。 |
void |
internalEntityDecl(String name,
String value)
報告內部實體宣告。 |
InputSource |
resolveEntity(String publicId,
String systemId)
使用 null 實體名稱和基 URI 調用 EntityResolver2.resolveEntity()。 |
InputSource |
resolveEntity(String name,
String publicId,
String baseURI,
String systemId)
告知解析器根據 baseURI 解析 systemId,並從產生的絕對 URI 讀取實體文本。 |
void |
startCDATA()
報告 CDATA 節的開始。 |
void |
startDTD(String name,
String publicId,
String systemId)
報告 DTD 宣告的開始(如果存在)。 |
void |
startEntity(String name)
報告一些內部和外部 XML 實體的開始。 |
| 從類別 org.xml.sax.helpers.DefaultHandler 繼承的方法 |
|---|
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning |
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 建構子詳細資訊 |
|---|
public DefaultHandler2()
| 方法詳細資訊 |
|---|
public void startCDATA()
throws SAXException
LexicalHandler 複製的描述通過常規 characters 事件報告 CDATA 節的內容;此事件僅用於報告邊界。
LexicalHandler 中的 startCDATASAXException - 應用程序可能引發一個異常。LexicalHandler.endCDATA()
public void endCDATA()
throws SAXException
LexicalHandler 複製的描述
LexicalHandler 中的 endCDATASAXException - 應用程序可能引發一個異常。LexicalHandler.startCDATA()
public void startDTD(String name,
String publicId,
String systemId)
throws SAXException
LexicalHandler 複製的描述此方法主要用於報告 DOCTYPE 宣告的開始;如果文檔沒有任何 DOCTYPE 宣告,則不調用此方法。
通過 DTDHandler 或 DeclHandler 事件報告的所有宣告必須在 startDTD 和 endDTD 事件之間出現。可以假設宣告屬於內部 DTD 子集,除非它們在 startEntity 和 endEntity 事件之間出現。也應該在 startDTD 和 endDTD 事件之間,以事件出現的原始順序(邏輯)報告 DTD 的註釋和處理指令;但是,它們不需要出現在相對於 DTDHandler 或 DeclHandler 事件的正確位置。
注意,start/endDTD 事件將出現在 ContentHandler 的 start/endDocument 事件中,並在第一個 startElement 事件之前。
LexicalHandler 中的 startDTDname - 文檔型別名稱。publicId - 用於外部 DTD 子集的已宣告的公共標識符,如果沒有宣告,則為 null。systemId - 用於外部 DTD 子集的已宣告的系統公共標識符,如果沒有宣告,則為 null。(注意,這不能根據文檔基 URI 解析)
SAXException - 應用程序可能引發一個異常。LexicalHandler.endDTD(),
LexicalHandler.startEntity(java.lang.String)
public void endDTD()
throws SAXException
LexicalHandler 複製的描述此方法主要用於報告 DOCTYPE 宣告的結束;如果文檔沒有任何 DOCTYPE 宣告,則不調用此方法。
LexicalHandler 中的 endDTDSAXException - 應用程序可能引發一個異常。LexicalHandler.startDTD(java.lang.String, java.lang.String, java.lang.String)
public void startEntity(String name)
throws SAXException
LexicalHandler 複製的描述參數實體(包括外部 DTD 子集)的報告是可選的,報告 LexicalHandler 事件的 SAX2 驅動程序不能實作它;可以使用 http://xml.org/sax/features/lexical-handler/parameter-entities 功能查詢或控制參數實體的報告。
使用其正規名稱報告常規實體,參數實體具有置於其名稱前的 "%",並且外部 DTD 子集具有偽實體名 "[dtd]"。
在 SAX2 驅動程序提供這些事件時,所有其他事件必須在開始/結束實體事件中正確巢狀。不存在對來自 DeclHandler 或 DTDHandler 的事件進行正確排序的 附加要求。
注意,跳過的實體將通過 skippedEntity 事件(是 ContentHandler 介面的一部分)報告。
由於 SAX 使用的串流事件模型,不能在任何環境下報告某些實體邊界:
將預設擴展上述實體,而不指示原始實體邊界的位置。
還要注意,不報告字元參考(實際上它不是實體)的邊界。
必須正確巢狀所有 start/endEntity 事件。
LexicalHandler 中的 startEntityname - 實體的名稱。如果是參數實體,則名稱將以 "%" 開頭,如果是外部 DTD 子集,則將是 "[dtd]"。
SAXException - 應用程序可能引發一個異常。LexicalHandler.endEntity(java.lang.String),
DeclHandler.internalEntityDecl(java.lang.String, java.lang.String),
DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)
public void endEntity(String name)
throws SAXException
LexicalHandler 複製的描述
LexicalHandler 中的 endEntityname - 正在結束的實體名稱。
SAXException - 應用程序可能引發一個異常。LexicalHandler.startEntity(java.lang.String)
public void comment(char[] ch,
int start,
int length)
throws SAXException
LexicalHandler 複製的描述此回調將用於文檔元素內外的註釋,包括外部 DTD 子集中的註釋(如果讀取)。必須在 start/endDTD 和 start/endEntity 事件內部正確巢狀 DTD 中的註釋(如果已使用)。
LexicalHandler 中的 commentch - 保存註釋中的字元的陣列。start - 陣列中的開始位置。length - 使用的陣列中的字元數。
SAXException - 應用程序可能引發一個異常。
public void attributeDecl(String eName,
String aName,
String type,
String mode,
String value)
throws SAXException
DeclHandler 複製的描述將僅報告屬性的有效(第一個)宣告。型別將是以下字元串之一:"CDATA"、"ID"、"IDREF"、"IDREFS"、"NMTOKEN"、"NMTOKENS"、"ENTITY"、"ENTITIES"、移除所有空格的帶有分隔符 "|" 的加上括號的標記組,或後跟一個空格再跟隨移除所有空白的加上括號的標記組的單詞 "NOTATION"。
值將是報告給應用程序、被適當標準化的值,它帶有實體和擴展的字元參考。
DeclHandler 中的 attributeDecleName - 關聯元素的名稱。aName - 屬性的名稱。type - 表示屬性型別的字元串。mode - 表示屬性預設網要("#IMPLIED"、"#REQUIRED" 或 "#FIXED")的字元串,如果不應用上述網要,則為 null。value - 表示屬性的預設值的字元串,如果不存在,則為 null。
SAXException - 應用程序可能引發一個異常。
public void elementDecl(String name,
String model)
throws SAXException
DeclHandler 複製的描述內容模型將由字元串 "EMPTY"、字元串 "ANY" 或用括號括起來的組組成,可以選擇後面跟隨一個出現指示符。將使模型標準化,以便完全解析所有的參數實體,並移除所有的空白,並將包括括號。其他標準化(例如,移除多餘的括號或簡化出現指示符)是由解析器決定的。
DeclHandler 中的 elementDeclname - 元素型別名稱。model - 作為標準化字元串的內容模型。
SAXException - 應用程序可能引發一個異常。
public void externalEntityDecl(String name,
String publicId,
String systemId)
throws SAXException
DeclHandler 複製的描述將僅報告每個實體的有效(第一個)宣告。
如果系統標識符是 URL,則解析器必須在將它傳遞給應用程序之前完全解析它。
DeclHandler 中的 externalEntityDeclname - 實體的名稱。如果是參數實體,則名稱以 "%" 開頭。publicId - 實體的公共標識符,如果沒有給定,則為 null。systemId - 實體的系統標識符。
SAXException - 應用程序可能引發一個異常。DeclHandler.internalEntityDecl(java.lang.String, java.lang.String),
DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
public void internalEntityDecl(String name,
String value)
throws SAXException
DeclHandler 複製的描述將僅報告每個實體的有效(第一個)宣告。將擴展值中的所有參數實體,但不擴展常規實體。
DeclHandler 中的 internalEntityDeclname - 實體的名稱。如果是參數實體,則名稱以 "%" 開頭。value - 實體的替換文本。
SAXException - 應用程序可能引發一個異常。DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String),
DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
public InputSource getExternalSubset(String name,
String baseURI)
throws SAXException,
IOException
EntityResolver2 中的 getExternalSubsetname - 標識文檔根元素。此名稱來自 DOCTYPE 宣告(如果可用),或來自實際的根元素。baseURI - 文檔的基 URI,充當選擇外部子集的附加提示。這總是一個絕對 URI,除非由於向 XMLReader 提供了一個不帶 URI 的 InputSource 而使它為 null 時。
SAXException - 任何 SAX 異常,可能包裹另外的異常。
IOException - 可能指示創建新的 InputStream 或 Reader 失敗,或非法 URL。
public InputSource resolveEntity(String name,
String publicId,
String baseURI,
String systemId)
throws SAXException,
IOException
DefaultHandler.resolveEntity() 方法以調用此方法,所以有時可以使用 null 名稱 和 baseURI 以及已經絕對化的 systemId 調用此方法。
EntityResolver2 中的 resolveEntityname - 標識正被解析的外部實體。外部子集的 "[dtd]",或者以 "%" 開頭用來指示參數實體的名稱,或者常規實體的名稱。在由 SAX2 解析器調用時,它永不能為 null。publicId - 被參考的外部實體的公共標識符(按照 XML 規範的要求標準化),如果不提供任何內容,則為 null。baseURI - 關於解釋哪個相對 systemID 的 URI。這總是一個絕對 URI,除非它為 null(可能因為向 XMLReader 提供了一個不帶 URI 的 InputSource)。XML 規範定義了此 URI,它是與開始相關宣告的 "<" 相關聯的 URI。systemId - 參考的外部實體的系統標識符;相對 URI 或絕對 URI。由 SAX2 解析器調用時,它從不能為 null;此類別解析器僅解析宣告的實體和任何外部子集。
SAXException - 任何 SAX 異常,可能包裹另外的異常。
IOException - 可能指示創建新的 InputStream 或 Reader 失敗,或非法 URL。
public InputSource resolveEntity(String publicId,
String systemId)
throws SAXException,
IOException
EntityResolver2.resolveEntity()。為使用此類別,只需覆寫該方法。
EntityResolver 中的 resolveEntityDefaultHandler 中的 resolveEntitypublicId - 公共標識符,如果沒有可用的,則為 null。systemId - 在 XML 文檔中提供的系統標識符。
SAXException - 任何 SAX 異常,可能包裹另外的異常。
IOException - 特定於 Java 的 IO 異常,可能是由於為 InputSource 創建新的 InputStream 或 Reader 所導致的。EntityResolver.resolveEntity(java.lang.String, java.lang.String)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。