javax.xml.stream

接口
异常
错误
java.lang.Object
  继承者 javax.xml.stream.XMLInputFactory

public abstract class XMLInputFactory
     
extends Object

定义用于获取流的工厂的抽象实现。下表定义此规范的标准属性。每个属性随每个实现所要求的支持级别的不同而不同。所要求的支持级别在“必需”栏中做了描述。

配置参数
属性名 行为 返回类型 默认值 必需
javax.xml.stream.isValidating 开启/关闭特定于实现的 DTD 验证 Boolean False
javax.xml.stream.isNamespaceAware 开启/关闭用于支持 XML 1.0 的名称空间处理 Boolean True True(必需)/ False (可选)
javax.xml.stream.isCoalescing 要求处理器组合相临的字符数据 Boolean False
javax.xml.stream.isReplacingEntityReferences 用它们的替换文本替换内部实体引用并将它们作为字符报告 Boolean True
javax.xml.stream.isSupportingExternalEntities 解析外部解析的实体 Boolean 未指定
javax.xml.stream.supportDTD 使用此属性请求不支持 DTD 的处理器 Boolean True
javax.xml.stream.reporter 设置/获取 XMLReporter 的 impl javax.xml.stream.XMLReporter Null
javax.xml.stream.resolver 设置/获取 XMLResolver 接口的 impl javax.xml.stream.XMLResolver Null
javax.xml.stream.allocator 设置/获取 XMLEventAllocator 接口的 impl javax.xml.stream.util.XMLEventAllocator Null

从以下版本开始:
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()
获取用此工厂创建的流所使用的分配器。