JavaTM 2 Platform
Standard Ed. 6

org.xml.sax
介面 Locator

所有已知子介面:
Locator2
所有已知實作類別:
Locator2Impl, LocatorImpl

public interface Locator

用來將 SAX 事件與文檔位置關聯的介面。

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

如果 SAX 解析器為 SAX 應用程序提供位置資訊,要實作這一點,則需要先實作此介面,然後使用內容處理程序的 setDocumentLocator 方法將一個實例傳遞給應用程序。應用程序可以使用此物件獲取 XML 源文檔中其他任何 SAX 事件的位置。

注意,由該物件返回的結果僅在每個回調方法內有效:如果應用程序嘗試在其他任何時間,或在完成解析後使用定位器,則將接收到不可預知的結果。

不要求 SAX 解析器提供定位器,但強烈建議它提供定位器。如果解析器提供定位器,則必須在報告任何其他文檔事件之前提供它。如果在應用程序接收 startDocument 事件之前尚未設置定位器,則應用程序必須假定定位器不可用。

從以下版本開始:
SAX 1.0
另請參見:
ContentHandler.setDocumentLocator(org.xml.sax.Locator)

方法摘要
 int getColumnNumber()
          返回當前文檔事件結束處的列號。
 int getLineNumber()
          返回當前文檔事件結束處的行號。
 String getPublicId()
          返回當前文檔事件的公共標識符。
 String getSystemId()
          返回當前文檔事件的系統標識符。
 

方法詳細資訊

getPublicId

String getPublicId()
返回當前文檔事件的公共標識符。

返回值是文檔實體的公共標識符,或在其中出現觸發事件標記的外部解析實體的公共標識符。

返回:
包含公共標識符的字元串,如果沒有可用的,則返回 null。
另請參見:
getSystemId()

getSystemId

String getSystemId()
返回當前文檔事件的系統標識符。

返回值是文檔實體的系統標識符,或在其中出現觸發事件的標記的外部解析實體的系統標識符。

如果系統標識符是 URL,則解析器必須在將它傳遞給應用程序之前完整解析它。例如,必須始終以 file:... 的形式提供檔案。URL 和其他型別的相對 URI 也將根據它們的基來解析。

返回:
包含系統標識符的字元串,如果沒有可用的,則返回 null。
另請參見:
getPublicId()

getLineNumber

int getLineNumber()
返回當前文檔事件結束處的行號。行由行尾分隔,這在 XML 規範中定義。

警告:從該方法返回的值只是供診斷用的近似值;並不提供編輯源 XML 文檔的字元內容所需的充足資訊。在某些情況下,這些“行”號與將顯示為列的號比對,而在其他一些情況下,因內部實體擴展它們可以與源文本不比對。

在文檔實體或在其中出現觸發事件標記的外部解析實體中,返回值是行號的近似值。

如有可能,SAX 驅動器應該提供與文檔事件相關的文本之後的第一個字元的行位置。第一行就是 "line 1"。

返回:
行號,如果沒有可用的,則返回 -1。
另請參見:
getColumnNumber()

getColumnNumber

int getColumnNumber()
返回當前文檔事件結束處的列號。這是自最後一行結束後,從一開始的 Java char 值號。

警告:從該方法返回的值只是供診斷用的近似值;並不提供編輯源 XML 文檔的字元內容所需的充足資訊。例如,當行包括組合字元序列、寬字元、代理項對或雙向文本組合時,該值可能與文本編輯器中所顯示的列不一致。

在文檔實體或在其中出現觸發事件標記的外部解析實體中,返回值是列號的近似值。

如有可能,SAX 驅動器應該提供與文檔事件相關的文本之後的第一個字元的行位置。每行中的第一列就是 "column 1"。

返回:
列號,如果沒有可用的,則返回 -1。
另請參見:
getLineNumber()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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