|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object org.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
中的 startCDATA
SAXException
- 應用程序可能引發一個異常。LexicalHandler.endCDATA()
public void endCDATA() throws SAXException
LexicalHandler
複製的描述
LexicalHandler
中的 endCDATA
SAXException
- 應用程序可能引發一個異常。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
中的 startDTD
name
- 文檔型別名稱。publicId
- 用於外部 DTD 子集的已宣告的公共標識符,如果沒有宣告,則為 null。systemId
- 用於外部 DTD 子集的已宣告的系統公共標識符,如果沒有宣告,則為 null。(注意,這不能根據文檔基 URI 解析)
SAXException
- 應用程序可能引發一個異常。LexicalHandler.endDTD()
,
LexicalHandler.startEntity(java.lang.String)
public void endDTD() throws SAXException
LexicalHandler
複製的描述此方法主要用於報告 DOCTYPE 宣告的結束;如果文檔沒有任何 DOCTYPE 宣告,則不調用此方法。
LexicalHandler
中的 endDTD
SAXException
- 應用程序可能引發一個異常。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
中的 startEntity
name
- 實體的名稱。如果是參數實體,則名稱將以 "%" 開頭,如果是外部 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
中的 endEntity
name
- 正在結束的實體名稱。
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
中的 comment
ch
- 保存註釋中的字元的陣列。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
中的 attributeDecl
eName
- 關聯元素的名稱。aName
- 屬性的名稱。type
- 表示屬性型別的字元串。mode
- 表示屬性預設網要("#IMPLIED"、"#REQUIRED" 或 "#FIXED")的字元串,如果不應用上述網要,則為 null。value
- 表示屬性的預設值的字元串,如果不存在,則為 null。
SAXException
- 應用程序可能引發一個異常。public void elementDecl(String name, String model) throws SAXException
DeclHandler
複製的描述內容模型將由字元串 "EMPTY"、字元串 "ANY" 或用括號括起來的組組成,可以選擇後面跟隨一個出現指示符。將使模型標準化,以便完全解析所有的參數實體,並移除所有的空白,並將包括括號。其他標準化(例如,移除多餘的括號或簡化出現指示符)是由解析器決定的。
DeclHandler
中的 elementDecl
name
- 元素型別名稱。model
- 作為標準化字元串的內容模型。
SAXException
- 應用程序可能引發一個異常。public void externalEntityDecl(String name, String publicId, String systemId) throws SAXException
DeclHandler
複製的描述將僅報告每個實體的有效(第一個)宣告。
如果系統標識符是 URL,則解析器必須在將它傳遞給應用程序之前完全解析它。
DeclHandler
中的 externalEntityDecl
name
- 實體的名稱。如果是參數實體,則名稱以 "%" 開頭。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
中的 internalEntityDecl
name
- 實體的名稱。如果是參數實體,則名稱以 "%" 開頭。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
中的 getExternalSubset
name
- 標識文檔根元素。此名稱來自 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
中的 resolveEntity
name
- 標識正被解析的外部實體。外部子集的 "[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
中的 resolveEntity
DefaultHandler
中的 resolveEntity
publicId
- 公共標識符,如果沒有可用的,則為 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。