JavaTM 2 Platform
Standard Ed. 6

org.xml.sax.helpers
類別 DefaultHandler

java.lang.Object
  繼承者 org.xml.sax.helpers.DefaultHandler
所有已實作的介面:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler
直接已知子類別:
DefaultHandler2

public class DefaultHandler
extends Object
implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler

SAX2 事件處理程序的預設基礎類別。

此模組(包括源程式碼和文檔)位於公共域中,對該模組不提供擔保有關更多資訊,請參閱http://www.saxproject.org

此類別可用作 SAX2 應用程序的有用基礎類別:它提供四個核心 SAX2 處理程序類別中的所有回調的預設實作:

應用程序編寫者可以在他們僅需實作部分介面時擴展此類別;當應用程序尚未提供其自己的處理程序時解析器編寫者可通過實例化此類別來提供預設的處理程序。

此類別替換不推薦使用的 SAX1 HandlerBase 類別。

從以下版本開始:
SAX 2.0
另請參見:
EntityResolver, DTDHandler, ContentHandler, ErrorHandler

建構子摘要
DefaultHandler()
           
 
方法摘要
 void characters(char[] ch, int start, int length)
          接收元素中字元資料的通知。
 void endDocument()
          接收文檔結束的通知。
 void endElement(String uri, String localName, String qName)
          接收元素結束的通知。
 void endPrefixMapping(String prefix)
          接收名稱空間映射結束的通知。
 void error(SAXParseException e)
          接收可恢復的解析器錯誤的通知。
 void fatalError(SAXParseException e)
          報告嚴重的 XML 解析錯誤。
 void ignorableWhitespace(char[] ch, int start, int length)
          接收元素內容中可忽略空白的通知。
 void notationDecl(String name, String publicId, String systemId)
          接收註釋宣告的通知。
 void processingInstruction(String target, String data)
          接收處理指令的通知。
 InputSource resolveEntity(String publicId, String systemId)
          解析外部實體。
 void setDocumentLocator(Locator locator)
          接收文檔事件的 Locator 物件。
 void skippedEntity(String name)
          接收跳過的實體的通知。
 void startDocument()
          接收文檔開始的通知。
 void startElement(String uri, String localName, String qName, Attributes attributes)
          接收元素開始的通知。
 void startPrefixMapping(String prefix, String uri)
          接收名稱空間映射開始的通知。
 void unparsedEntityDecl(String name, String publicId, String systemId, String notationName)
          接收未解析實體宣告的通知。
 void warning(SAXParseException e)
          接收解析器警告的通知。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

DefaultHandler

public DefaultHandler()
方法詳細資訊

resolveEntity

public InputSource resolveEntity(String publicId,
                                 String systemId)
                          throws IOException,
                                 SAXException
解析外部實體。

將始終返回 null,因此解析器將使用 XML 文檔中提供的系統標識符。此方法實作 SAX 預設的行為:應用程序編寫者可以在子類別中覆寫它以便進行諸如目錄尋找或 URI 重定向之類別的特定轉換。

指定者:
介面 EntityResolver 中的 resolveEntity
參數:
publicId - 公共標識符,如果沒有可用的,則為 null。
systemId - 在 XML 文檔中提供的系統標識符。
返回:
新的輸入源,或返回 null,以要求預設的行為。
拋出:
IOException - 如果在設置新的輸入源時發生錯誤。
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
EntityResolver.resolveEntity(java.lang.String, java.lang.String)

notationDecl

public void notationDecl(String name,
                         String publicId,
                         String systemId)
                  throws SAXException
接收註釋宣告的通知。

預設情況下,不執行任何操作。如果應用程序編寫者希望追蹤在文檔中宣告的註釋,則可以在子類別中覆寫此方法。

指定者:
介面 DTDHandler 中的 notationDecl
參數:
name - 註釋名稱。
publicId - 註釋公共標識符,如果沒有可使用的則為 null。
systemId - 註釋系統標識符。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
DTDHandler.notationDecl(java.lang.String, java.lang.String, java.lang.String)

unparsedEntityDecl

public void unparsedEntityDecl(String name,
                               String publicId,
                               String systemId,
                               String notationName)
                        throws SAXException
接收未解析實體宣告的通知。

預設情況下,不執行任何操作。應用程序編寫者可以在子類別中覆寫此方法,以便追蹤在文檔中宣告的未解析實體。

指定者:
介面 DTDHandler 中的 unparsedEntityDecl
參數:
name - 實體名稱。
publicId - 實體公共標識符,如果不可用,則為 null。
systemId - 實體系統標識符。
notationName - 相關聯的註釋的名稱。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)

setDocumentLocator

public void setDocumentLocator(Locator locator)
接收文檔事件的 Locator 物件。

預設情況下,不執行任何操作。如果應用程序編寫者希望存儲定位器以用於其他的文檔事件,則可以在子類別中覆寫此方法。

指定者:
介面 ContentHandler 中的 setDocumentLocator
參數:
locator - 用於所有 SAX 文檔事件的定位器。
另請參見:
ContentHandler.setDocumentLocator(org.xml.sax.Locator), Locator

startDocument

public void startDocument()
                   throws SAXException
接收文檔開始的通知。

預設情況下,不執行任何操作。應用程序編寫者可以在子類別中覆寫此方法,以便在文檔的開始採取特定的措施(如分派階層樹的根節點或創建輸出檔案)。

指定者:
介面 ContentHandler 中的 startDocument
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ContentHandler.startDocument()

endDocument

public void endDocument()
                 throws SAXException
接收文檔結束的通知。

預設情況下,不執行任何操作。應用程序編寫者可以在子類別中覆寫此方法,以便在文檔的結束處採取特定的操作(如,結束階層樹或關閉輸出檔案)。

指定者:
介面 ContentHandler 中的 endDocument
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ContentHandler.endDocument()

startPrefixMapping

public void startPrefixMapping(String prefix,
                               String uri)
                        throws SAXException
接收名稱空間映射開始的通知。

預設情況下,不執行任何操作。應用程序編寫者可以在子類別中覆寫此方法,以便在每個名稱空間前綴範圍的開始處採取特定的操作(如存儲前綴映射)。

指定者:
介面 ContentHandler 中的 startPrefixMapping
參數:
prefix - 正在宣告的名稱空間前綴。
uri - 映射到前綴的名稱空間 URI。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ContentHandler.startPrefixMapping(java.lang.String, java.lang.String)

endPrefixMapping

public void endPrefixMapping(String prefix)
                      throws SAXException
接收名稱空間映射結束的通知。

預設情況下,不執行任何操作。應用程序編寫者可以在子類別中覆寫此方法,以便在每個前綴映射的結束處採取特定的操作。

指定者:
介面 ContentHandler 中的 endPrefixMapping
參數:
prefix - 正在宣告的名稱空間前綴。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ContentHandler.endPrefixMapping(java.lang.String)

startElement

public void startElement(String uri,
                         String localName,
                         String qName,
                         Attributes attributes)
                  throws SAXException
接收元素開始的通知。

預設情況下,不執行任何操作。應用程序編寫者可以在子類別中覆寫此方法,以便在每個元素的開始處採取特定的操作(如,分派新的階層樹節點或將輸出寫入檔案)。

指定者:
介面 ContentHandler 中的 startElement
參數:
uri - 名稱空間 URI,如果元素沒有任何名稱空間 URI,或者沒有正在執行名稱空間處理,則為空字元串。
localName - 本地名稱(不帶前綴),如果沒有正在執行名稱空間處理,則為空字元串。
qName - 限定的名稱(帶有前綴),如果限定的名稱不可用,則為空字元串。
attributes - 附加到元素的屬性。如果沒有屬性,則它將是空的 Attributes 物件。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ContentHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)

endElement

public void endElement(String uri,
                       String localName,
                       String qName)
                throws SAXException
接收元素結束的通知。

預設情況下,不執行任何操作。應用程序編寫者可以在子類別中覆寫此方法,以便在每個元素的結束處採取特定的操作(如,結束階層樹節點或將輸出寫入檔案)。

指定者:
介面 ContentHandler 中的 endElement
參數:
uri - 名稱空間 URI,如果元素沒有任何名稱空間 URI,或者沒有正在執行名稱空間處理,則為空字元串。
localName - 本地名稱(不帶前綴),如果沒有正在執行名稱空間處理,則為空字元串。
qName - 限定的名稱(帶有前綴),如果限定的名稱不可用,則為空字元串。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws SAXException
接收元素中字元資料的通知。

預設情況下,不執行任何操作。應用程序編寫者可以覆寫此方法,以便對每塊字元資料採取特定的措施(如將該資料添加到節點或緩衝區,或者將該資料列印到檔案)。

指定者:
介面 ContentHandler 中的 characters
參數:
ch - 字元。
start - 字元陣列中的開始位置。
length - 從字元陣列中使用的字元數。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ContentHandler.characters(char[], int, int)

ignorableWhitespace

public void ignorableWhitespace(char[] ch,
                                int start,
                                int length)
                         throws SAXException
接收元素內容中可忽略空白的通知。

預設情況下,不執行任何操作。應用程序編寫者可以覆寫此方法,以便對每塊可忽略的空白採取特定的措施(如將資料添加到節點或緩衝區,或者將資料列印到檔案)。

指定者:
介面 ContentHandler 中的 ignorableWhitespace
參數:
ch - 空白字元。
start - 字元陣列中的開始位置。
length - 從字元陣列中使用的字元數。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ContentHandler.ignorableWhitespace(char[], int, int)

processingInstruction

public void processingInstruction(String target,
                                  String data)
                           throws SAXException
接收處理指令的通知。

預設情況下,不執行任何操作。應用程序編寫者可以在子類別中覆寫此方法,以便對每個處理指令採取特定的措施,如設置狀態變數或調用其他的方法。

指定者:
介面 ContentHandler 中的 processingInstruction
參數:
target - 處理指令目標。
data - 處理指令資料,如果未提供,則為 null。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ContentHandler.processingInstruction(java.lang.String, java.lang.String)

skippedEntity

public void skippedEntity(String name)
                   throws SAXException
接收跳過的實體的通知。

預設情況下,不執行任何操作。應用程序編寫者可以在子類別中覆寫此方法,以便對每個處理指令採取特定的措施,如設置狀態變數或調用其他的方法。

指定者:
介面 ContentHandler 中的 skippedEntity
參數:
name - 跳過的實體的名稱。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ContentHandler.processingInstruction(java.lang.String, java.lang.String)

warning

public void warning(SAXParseException e)
             throws SAXException
接收解析器警告的通知。

預設實作不執行任何操作。應用程序編寫者可以在子類別中覆寫此方法,以便對每個警告採取特定的措施,如在日誌檔案中插入訊息,或者將它列印到終端機。

指定者:
介面 ErrorHandler 中的 warning
參數:
e - 被編碼為異常的警告資訊。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ErrorHandler.warning(org.xml.sax.SAXParseException), SAXParseException

error

public void error(SAXParseException e)
           throws SAXException
接收可恢復的解析器錯誤的通知。

預設實作不執行任何操作。應用程序編寫者可以在子類別中覆寫此方法,以便對每個錯誤採取特定的措施,如在日誌檔案中插入訊息,或者將它列印到終端機。

指定者:
介面 ErrorHandler 中的 error
參數:
e - 被編碼為異常的錯誤資訊。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ErrorHandler.warning(org.xml.sax.SAXParseException), SAXParseException

fatalError

public void fatalError(SAXParseException e)
                throws SAXException
報告嚴重的 XML 解析錯誤。

預設的實作拋出 SAXParseException。如果應用程序編寫者需要對每個嚴重的錯誤採取特定的措施(如將所有的錯誤收集到一個報告中),則可以在子類別中覆寫此方法:當調用此方法時,無論哪種情況,應用程序都必須停止所有的常規處理,這是因為文檔已不再可靠,並且解析器再也不能報告解析事件。

指定者:
介面 ErrorHandler 中的 fatalError
參數:
e - 被編碼為異常的錯誤資訊。
拋出:
SAXException - 任何 SAX 異常,可能包裹另外的異常。
另請參見:
ErrorHandler.fatalError(org.xml.sax.SAXParseException), SAXParseException

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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