JavaTM 2 Platform
Standard Ed. 6

javax.xml.stream
類別 XMLInputFactory

java.lang.Object
  繼承者 javax.xml.stream.XMLInputFactory

public abstract class XMLInputFactory
extends Object

定義用於獲取串流的處理器的抽象實作。下表定義此規範的標準屬性。每個屬性隨每個實作所要求的支持級別的不同而不同。所要求的支持級別在“必需”欄中做了描述。

配置參數
屬性名 行為 返回型別 預設值 必需
javax.xml.stream.isValidating開啟/關閉特定於實作的 DTD 驗證BooleanFalse
javax.xml.stream.isNamespaceAware開啟/關閉用於支持 XML 1.0 的名稱空間處理BooleanTrueTrue(必需)/ False (可選)
javax.xml.stream.isCoalescing要求處理器組合相臨的字元資料BooleanFalse
javax.xml.stream.isReplacingEntityReferences用它們的替換文本替換內部實體參考並將它們作為字元報告BooleanTrue
javax.xml.stream.isSupportingExternalEntities解析外部解析的實體Boolean未指定
javax.xml.stream.supportDTD使用此屬性請求不支持 DTD 的處理器BooleanTrue
javax.xml.stream.reporter設置/獲取 XMLReporter 的 impljavax.xml.stream.XMLReporterNull
javax.xml.stream.resolver設置/獲取 XMLResolver 介面的 impljavax.xml.stream.XMLResolverNull
javax.xml.stream.allocator設置/獲取 XMLEventAllocator 介面的 impljavax.xml.stream.util.XMLEventAllocatorNull

從以下版本開始:
1.6
另請參見:
XMLOutputFactory, XMLEventReader, XMLStreamReader, EventFilter, XMLReporter, XMLResolver, XMLEventAllocator

欄位摘要
static String ALLOCATOR
          用於設置/獲取分派器實作的屬性。
static String IS_COALESCING
          要求解析器組合相鄰字元資料部分的屬性。
static String IS_NAMESPACE_AWARE
          用於開啟/關閉名稱空間支持的屬性,該屬性用於支持 XML 1.0 文檔,只有 true 設置是必須受支持的。
static String IS_REPLACING_ENTITY_REFERENCES
          要求解析器用它們的替換文本替換內部實體參考並將它們報告為字元。
static String IS_SUPPORTING_EXTERNAL_ENTITIES
          要求解析器解析外部解析實體的屬性。
static String IS_VALIDATING
          用於開啟/關閉特定於實作的驗證的屬性。
static String REPORTER
          用於設置/獲取 XMLReporter 介面實作的屬性。
static String RESOLVER
          用於設置/獲取 XMLResolver 實作的屬性。
static String SUPPORT_DTD
          要求解析器支持 DTD 的屬性。
 
建構子摘要
protected XMLInputFactory()
           
 
方法摘要
abstract  XMLEventReader createFilteredReader(XMLEventReader reader, EventFilter filter)
          創建過濾的事件 reader,它用過濾器包裹事件 reader。
abstract  XMLStreamReader createFilteredReader(XMLStreamReader reader, StreamFilter filter)
          創建過濾的 reader,它用過濾器包裹 reader。
abstract  XMLEventReader createXMLEventReader(InputStream stream)
          根據 java.io.InputStream 創建一個新 XMLEventReader。
abstract  XMLEventReader createXMLEventReader(InputStream stream, String encoding)
          根據 java.io.InputStream 創建一個新 XMLEventReader。
abstract  XMLEventReader createXMLEventReader(Reader reader)
          根據 reader 創建一個新 XMLEventReader。
abstract  XMLEventReader createXMLEventReader(Source source)
          根據 JAXP 源創建一個新 XMLEventReader。
abstract  XMLEventReader createXMLEventReader(String systemId, InputStream stream)
          根據 java.io.InputStream 創建一個新 XMLEventReader。
abstract  XMLEventReader createXMLEventReader(String systemId, Reader reader)
          根據 reader 創建一個新 XMLEventReader。
abstract  XMLEventReader createXMLEventReader(XMLStreamReader reader)
          根據 XMLStreamReader 創建一個新 XMLEventReader。
abstract  XMLStreamReader createXMLStreamReader(InputStream stream)
          根據 java.io.InputStream 創建一個新 XMLStreamReader。
abstract  XMLStreamReader createXMLStreamReader(InputStream stream, String encoding)
          根據 java.io.InputStream 創建一個新 XMLStreamReader。
abstract  XMLStreamReader createXMLStreamReader(Reader reader)
          根據 reader 創建一個新 XMLStreamReader。
abstract  XMLStreamReader createXMLStreamReader(Source source)
          根據 JAXP 源創建一個新 XMLStreamReader。
abstract  XMLStreamReader createXMLStreamReader(String systemId, InputStream stream)
          根據 java.io.InputStream 創建一個新 XMLStreamReader。
abstract  XMLStreamReader createXMLStreamReader(String systemId, Reader reader)
          根據 java.io.InputStream 創建一個新 XMLStreamReader。
abstract  XMLEventAllocator getEventAllocator()
          獲取用此處理器創建的串流所使用的分派器。
abstract  Object getProperty(String name)
          從底層實作獲取功能/屬性的值。
abstract  XMLReporter getXMLReporter()
          要在此處理器實例創建的任何 XMLStreamReader 或 XMLEventReader 上進行設置的報告器。
abstract  XMLResolver getXMLResolver()
          要在此處理器實例創建的任何 XMLStreamReader 或 XMLEventReader 上進行設置的解析器。
abstract  boolean isPropertySupported(String name)
          查詢此處理器支持的屬性集合。
static XMLInputFactory newInstance()
          創建一個新的處理器實例。
static XMLInputFactory newInstance(String factoryId, ClassLoader classLoader)
          創建一個新的處理器實例。
abstract  void setEventAllocator(XMLEventAllocator allocator)
          為事件設置一個使用者定義的事件分派器。
abstract  void setProperty(String name, Object value)
          允許使用者在底層實作上設置特定功能/屬性。
abstract  void setXMLReporter(XMLReporter reporter)
          要在此處理器實例創建的任何 XMLStreamReader 或 XMLEventReader 上進行設置的報告器。
abstract  void setXMLResolver(XMLResolver resolver)
          要在此處理器實例創建的任何 XMLStreamReader 或 XMLEventReader 上進行設置的解析器。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

IS_NAMESPACE_AWARE

public static final String IS_NAMESPACE_AWARE
用於開啟/關閉名稱空間支持的屬性,該屬性用於支持 XML 1.0 文檔,只有 true 設置是必須受支持的。

另請參見:
常數欄位值

IS_VALIDATING

public static final String IS_VALIDATING
用於開啟/關閉特定於實作的驗證的屬性。

另請參見:
常數欄位值

IS_COALESCING

public static final String IS_COALESCING
要求解析器組合相鄰字元資料部分的屬性。

另請參見:
常數欄位值

IS_REPLACING_ENTITY_REFERENCES

public static final String IS_REPLACING_ENTITY_REFERENCES
要求解析器用它們的替換文本替換內部實體參考並將它們報告為字元。

另請參見:
常數欄位值

IS_SUPPORTING_EXTERNAL_ENTITIES

public static final String IS_SUPPORTING_EXTERNAL_ENTITIES
要求解析器解析外部解析實體的屬性。

另請參見:
常數欄位值

SUPPORT_DTD

public static final String SUPPORT_DTD
要求解析器支持 DTD 的屬性。

另請參見:
常數欄位值

REPORTER

public static final String REPORTER
用於設置/獲取 XMLReporter 介面實作的屬性。

另請參見:
常數欄位值

RESOLVER

public static final String RESOLVER
用於設置/獲取 XMLResolver 實作的屬性。

另請參見:
常數欄位值

ALLOCATOR

public static final String ALLOCATOR
用於設置/獲取分派器實作的屬性。

另請參見:
常數欄位值
建構子詳細資訊

XMLInputFactory

protected XMLInputFactory()
方法詳細資訊

newInstance

public static XMLInputFactory newInstance()
                                   throws FactoryConfigurationError
創建一個新的處理器實例。此 static 方法創建一個新的處理器實例。此方法按照以下尋找過程順序來確定要載入的 XMLInputFactory 實作類別:使用 javax.xml.stream.XMLInputFactory 系統屬性。使用 JRE 目錄中的屬性檔案 "lib/stax.properties"。此配置檔案是標準的 java.util.Properties 格式,且包含實作類別的完全限定名,其中實作類別的鍵是上文定義的系統屬性。如果 Services API(在 JAR 規範中進行了詳細描述)可用,可以使用它來確定類別名稱。Services API 將在運行時可用的 jar 檔案 META-INF/services/javax.xml.stream.XMLInputFactory 中尋找類別名稱。平臺預設的 XMLInputFactory 實例。應用程序獲取對 XMLInputFactory 的參考後,它可以使用處理器來配置和獲取串流實例。

拋出:
FactoryConfigurationError - 如果此處理器的實例無法載入

newInstance

public static XMLInputFactory newInstance(String factoryId,
                                          ClassLoader classLoader)
                                   throws FactoryConfigurationError
創建一個新的處理器實例。

參數:
factoryId - 要尋找的處理器的名稱,與屬性名稱相同
classLoader - 要使用的類別載入器
返回:
處理器實作
拋出:
FactoryConfigurationError - 如果此處理器的實例無法載入

createXMLStreamReader

public abstract XMLStreamReader createXMLStreamReader(Reader reader)
                                               throws XMLStreamException
根據 reader 創建一個新 XMLStreamReader。

參數:
reader - 要從中讀取 XMLStreamReader 的 XML 資料
拋出:
XMLStreamException

createXMLStreamReader

public abstract XMLStreamReader createXMLStreamReader(Source source)
                                               throws XMLStreamException
根據 JAXP 源創建一個新 XMLStreamReader。此方法是可選的。

參數:
source - 要從中讀取 XMLStreamReader 的源
拋出:
UnsupportedOperationException - 如果 XMLInputFactory 不支持此方法
XMLStreamException

createXMLStreamReader

public abstract XMLStreamReader createXMLStreamReader(InputStream stream)
                                               throws XMLStreamException
根據 java.io.InputStream 創建一個新 XMLStreamReader。

參數:
stream - 要從中讀取 XMLStreamReader 的 InputStream
拋出:
XMLStreamException

createXMLStreamReader

public abstract XMLStreamReader createXMLStreamReader(InputStream stream,
                                                      String encoding)
                                               throws XMLStreamException
根據 java.io.InputStream 創建一個新 XMLStreamReader。

參數:
stream - 要從中讀取 XMLStreamReader 的 InputStream
encoding - 串流的字元編碼
拋出:
XMLStreamException

createXMLStreamReader

public abstract XMLStreamReader createXMLStreamReader(String systemId,
                                                      InputStream stream)
                                               throws XMLStreamException
根據 java.io.InputStream 創建一個新 XMLStreamReader。

參數:
systemId - 串流的系統 ID
stream - 要從中讀取 XMLStreamReader 的 InputStream
拋出:
XMLStreamException

createXMLStreamReader

public abstract XMLStreamReader createXMLStreamReader(String systemId,
                                                      Reader reader)
                                               throws XMLStreamException
根據 java.io.InputStream 創建一個新 XMLStreamReader。

參數:
systemId - 串流的系統 ID
reader - 要從中讀取 XMLStreamReader 的 InputStream
拋出:
XMLStreamException

createXMLEventReader

public abstract XMLEventReader createXMLEventReader(Reader reader)
                                             throws XMLStreamException
根據 reader 創建一個新 XMLEventReader。

參數:
reader - 要從中讀取 XMLEventReader 的 XML 資料
拋出:
XMLStreamException

createXMLEventReader

public abstract XMLEventReader createXMLEventReader(String systemId,
                                                    Reader reader)
                                             throws XMLStreamException
根據 reader 創建一個新 XMLEventReader。

參數:
systemId - 輸入的系統 ID
reader - 要從中讀取 XMLEventReader 的 XML 資料
拋出:
XMLStreamException

createXMLEventReader

public abstract XMLEventReader createXMLEventReader(XMLStreamReader reader)
                                             throws XMLStreamException
根據 XMLStreamReader 創建一個新 XMLEventReader。在被用來建構此方法返回的 XMLEventReader 實例後,MLStreamReader 不得再次使用。

參數:
reader - 要從中讀取資料的 XMLStreamReader (不能修改)
返回:
新 XMLEventReader
拋出:
XMLStreamException

createXMLEventReader

public abstract XMLEventReader createXMLEventReader(Source source)
                                             throws XMLStreamException
根據 JAXP 源創建一個新 XMLEventReader。對此方法的支持是可選的。

參數:
source - 要從中讀取 XMLEventReader 的源
拋出:
UnsupportedOperationException - 如果此 XMLInputFactory 不支持此方法
XMLStreamException

createXMLEventReader

public abstract XMLEventReader createXMLEventReader(InputStream stream)
                                             throws XMLStreamException
根據 java.io.InputStream 創建一個新 XMLEventReader。

參數:
stream - 要從中讀取 XMLEventReader 的 InputStream
拋出:
XMLStreamException

createXMLEventReader

public abstract XMLEventReader createXMLEventReader(InputStream stream,
                                                    String encoding)
                                             throws XMLStreamException
根據 java.io.InputStream 創建一個新 XMLEventReader。

參數:
stream - 要從中讀取 XMLEventReader 的 InputStream
encoding - 串流的字元編碼
拋出:
XMLStreamException

createXMLEventReader

public abstract XMLEventReader createXMLEventReader(String systemId,
                                                    InputStream stream)
                                             throws XMLStreamException
根據 java.io.InputStream 創建一個新 XMLEventReader。

參數:
systemId - 串流的系統 ID
stream - 要從中讀取 XMLEventReader 的 InputStream
拋出:
XMLStreamException

createFilteredReader

public abstract XMLStreamReader createFilteredReader(XMLStreamReader reader,
                                                     StreamFilter filter)
                                              throws XMLStreamException
創建過濾的 reader,它用過濾器包裹 reader。

參數:
reader - 要過濾的 reader
filter - 要應用到 reader 的過濾器
拋出:
XMLStreamException

createFilteredReader

public abstract XMLEventReader createFilteredReader(XMLEventReader reader,
                                                    EventFilter filter)
                                             throws XMLStreamException
創建過濾的事件 reader,它用過濾器包裹事件 reader。

參數:
reader - 要包裹的事件 reader
filter - 要應用到事件 reader 的過濾器
拋出:
XMLStreamException

getXMLResolver

public abstract XMLResolver getXMLResolver()
要在此處理器實例創建的任何 XMLStreamReader 或 XMLEventReader 上進行設置的解析器。


setXMLResolver

public abstract void setXMLResolver(XMLResolver resolver)
要在此處理器實例創建的任何 XMLStreamReader 或 XMLEventReader 上進行設置的解析器。

參數:
resolver - 要用於解析參考的解析器

getXMLReporter

public abstract XMLReporter getXMLReporter()
要在此處理器實例創建的任何 XMLStreamReader 或 XMLEventReader 上進行設置的報告器。


setXMLReporter

public abstract void setXMLReporter(XMLReporter reporter)
要在此處理器實例創建的任何 XMLStreamReader 或 XMLEventReader 上進行設置的報告器。

參數:
reporter - 要用來報告非嚴重錯誤的解析器

setProperty

public abstract void setProperty(String name,
                                 Object value)
                          throws IllegalArgumentException
允許使用者在底層實作上設置特定功能/屬性。底層實作不需要支持規範中每個屬性的每個設置,可以使用 IllegalArgumentException 來表示一個不受支持的屬性不能用指定的值進行設置。

參數:
name - 屬性的名稱(不可以為 null)
value - 屬性的值
拋出:
IllegalArgumentException - 如果屬性不受支持

getProperty

public abstract Object getProperty(String name)
                            throws IllegalArgumentException
從底層實作獲取功能/屬性的值。

參數:
name - 屬性的名稱(不可以為 null)
返回:
屬性的值
拋出:
IllegalArgumentException - 如果屬性不受支持

isPropertySupported

public abstract boolean isPropertySupported(String name)
查詢此處理器支持的屬性集合。

參數:
name - 屬性的名稱(不可以為 null)
返回:
如果此屬性受支持,則返回 true,否則返回 false

setEventAllocator

public abstract void setEventAllocator(XMLEventAllocator allocator)
為事件設置一個使用者定義的事件分派器。

參數:
allocator - 使用者定義的分派器

getEventAllocator

public abstract XMLEventAllocator getEventAllocator()
獲取用此處理器創建的串流所使用的分派器。


JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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