JavaTM 2 Platform
Standard Ed. 6

org.xml.sax
類別 InputSource

java.lang.Object
  繼承者 org.xml.sax.InputSource

public class InputSource
extends Object

XML 實體的單一輸入源。

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

此類別允許 SAX 應用程序封裝有關單個物件中的輸入源的資訊,它可包括公共標識符、系統標識符、位元組串流(可能帶有指定的編碼)、基本 URI 和/ 或字元串流。

在以下兩種情況下應用程序可以將輸入源提供給解析器:作為 Parser.parse 方法的參數,或者作為 EntityResolver.resolveEntity 方法的返回值。

SAX 解析器將使用 InputSource 物件來確定如何讀取 XML 輸入。如果有字元串流可用,則解析器將直接讀取該串流,而忽略該串流中找到的任何文本編碼宣告。如果沒有字元串流,但卻有位元組串流,則解析器將使用該位元組串流,從而使用在 InputSource 中指定的編碼,或者另外(如果未指定編碼)通過使用某種諸如 XML 規範 中的演算法演算法自動探測字元編碼。如果既沒有字元串流,又沒有位元組串流可用,則解析器將嘗試打開到由系統標識符標識的資源的 URI 連接。

InputSource 物件屬於該應用程序:SAX 解析器將不會以任何方式修改它(它可以在必要時修改副本)。但是,作為解析終止清除的一部分,對位元組串流和字元串流的標準處理就是關閉這二者,因此在將此類別串流傳遞給解析器後應用程序不應嘗試重新使用它們。

從以下版本開始:
SAX 1.0
另請參見:
XMLReader.parse(org.xml.sax.InputSource), EntityResolver.resolveEntity(java.lang.String, java.lang.String), InputStream, Reader

建構子摘要
InputSource()
          零參數預設建構子。
InputSource(InputStream byteStream)
          使用位元組串流創建新的輸入源。
InputSource(Reader characterStream)
          使用字元串流創建新的輸入源。
InputSource(String systemId)
          使用系統標識符創建新的輸入源。
 
方法摘要
 InputStream getByteStream()
          獲取此輸入源的位元組串流。
 Reader getCharacterStream()
          獲取此輸入源的字元串流。
 String getEncoding()
          獲取位元組串流或 URI 的字元編碼。
 String getPublicId()
          獲取此輸入源的公共標識符。
 String getSystemId()
          獲取此輸入源的系統標識符。
 void setByteStream(InputStream byteStream)
          設置此輸入源的位元組串流。
 void setCharacterStream(Reader characterStream)
          設置此輸入源的字元串流。
 void setEncoding(String encoding)
          設置字元編碼(如果已知)。
 void setPublicId(String publicId)
          設置此輸入源的公共標識符。
 void setSystemId(String systemId)
          設置此輸入源的系統標識符。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

InputSource

public InputSource()
零參數預設建構子。

另請參見:
setPublicId(java.lang.String), setSystemId(java.lang.String), setByteStream(java.io.InputStream), setCharacterStream(java.io.Reader), setEncoding(java.lang.String)

InputSource

public InputSource(String systemId)
使用系統標識符創建新的輸入源。

應用程序可以使用 setPublicId 將公共標識符包括在內,也可以使用 setEncoding 來指定字元編碼(如果已知)。

如果系統標識符是 URL,則必須完整解析它(它不可以是相對 URL)。

參數:
systemId - 系統標識符 (URI)。
另請參見:
setPublicId(java.lang.String), setSystemId(java.lang.String), setByteStream(java.io.InputStream), setEncoding(java.lang.String), setCharacterStream(java.io.Reader)

InputSource

public InputSource(InputStream byteStream)
使用位元組串流創建新的輸入源。

應用程序編寫者必須使用 setSystemId() 為解析相對 URI 提供基,還可以使用 setPublicId 將公共標識符包括在內,並且可以使用 setEncoding 來指定物件的字元編碼。

參數:
byteStream - 套件含文檔的原始位元組串流。
另請參見:
setPublicId(java.lang.String), setSystemId(java.lang.String), setEncoding(java.lang.String), setByteStream(java.io.InputStream), setCharacterStream(java.io.Reader)

InputSource

public InputSource(Reader characterStream)
使用字元串流創建新的輸入源。

應用程序編寫者必須使用 setSystemId() 為解析相對 URI 提供基,並且可以使用 setPublicId 將公共標識符包括在內。

字元串流不能包括位元組順序標記。

另請參見:
setPublicId(java.lang.String), setSystemId(java.lang.String), setByteStream(java.io.InputStream), setCharacterStream(java.io.Reader)
方法詳細資訊

setPublicId

public void setPublicId(String publicId)
設置此輸入源的公共標識符。

公共標識符始終為可選的:如果應用程序編寫者包括一個公共標識符,則將把它作為位置資訊的一部分提供。

參數:
publicId - 字元串形式的公共標識符。
另請參見:
getPublicId(), Locator.getPublicId(), SAXParseException.getPublicId()

getPublicId

public String getPublicId()
獲取此輸入源的公共標識符。

返回:
公共標識符,如果未提供,則返回 null。
另請參見:
setPublicId(java.lang.String)

setSystemId

public void setSystemId(String systemId)
設置此輸入源的系統標識符。

如果有位元組串流或字元串流,則系統標識符是可選的,但提供系統標識符非常有用,這是因為應用程序可以使用它解析相對 URI,並且可以將它包含在錯誤訊息和警告中(解析器僅在未指定位元組串流或字元串流時嘗試打開到 URI 的連接)。

如果應用程序知道系統標識符所指向的物件的字元編碼,則可以使用 setEncoding 方法來註冊編碼。

如果系統標識符是 URL,則必須完整解析它(它不可以是相對 URL)。

參數:
systemId - 字元串形式的系統標識符。
另請參見:
setEncoding(java.lang.String), getSystemId(), Locator.getSystemId(), SAXParseException.getSystemId()

getSystemId

public String getSystemId()
獲取此輸入源的系統標識符。

getEncoding 方法將返回所指向物件的字元編碼,如果未知,則返回 null。

如果系統 ID 是 URL,則將完整解析它。

返回:
系統標識符,如果未提供,則返回 null。
另請參見:
setSystemId(java.lang.String), getEncoding()

setByteStream

public void setByteStream(InputStream byteStream)
設置此輸入源的位元組串流。

如果還有指定的字元串流,則 SAX 解析器將忽略此操作,它將優先於打開自己 URI 連接而使用位元組串流。

如果應用程序知道位元組串流的字元編碼,則必須使用 setEncoding 方法設置它。

參數:
byteStream - 套件含 XML 文檔或其他實體的位元組串流。
另請參見:
setEncoding(java.lang.String), getByteStream(), getEncoding(), InputStream

getByteStream

public InputStream getByteStream()
獲取此輸入源的位元組串流。

getEncoding 方法將返回此位元組串流的字元編碼,如果未知,則返回 null。

返回:
位元組串流,如果未提供,則返回 null。
另請參見:
getEncoding(), setByteStream(java.io.InputStream)

setEncoding

public void setEncoding(String encoding)
設置字元編碼(如果已知)。

編碼必須是 XML 編碼宣告可接受的字元串(參見 "XML 1.0 recommendation" 的 4.3.3 節)。

當應用程序提供字元串流時,此方法無效。

參數:
encoding - 描述字元編碼的字元串。
另請參見:
setSystemId(java.lang.String), setByteStream(java.io.InputStream), getEncoding()

getEncoding

public String getEncoding()
獲取位元組串流或 URI 的字元編碼。當應用程序提供字元串流時,將忽略此值。

返回:
編碼,如果未提供,則返回 null。
另請參見:
setByteStream(java.io.InputStream), getSystemId(), getByteStream()

setCharacterStream

public void setCharacterStream(Reader characterStream)
設置此輸入源的字元串流。

如果有指定的字元串流,則 SAX 解析器將忽略任何位元組串流,並且不嘗試打開到系統標識符的 URI 連接。

參數:
characterStream - 套件含 XML 文檔或其他實體的字元串流。
另請參見:
getCharacterStream(), Reader

getCharacterStream

public Reader getCharacterStream()
獲取此輸入源的字元串流。

返回:
字元串流,如果未提供,則返回 null。
另請參見:
setCharacterStream(java.io.Reader)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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