public abstract class XMLInputFactory extends Object
XMLOutputFactory
, XMLEventReader
, XMLStreamReader
, EventFilter
, XMLReporter
, XMLResolver
, XMLEventAllocator
Modifier and Type | Field and Description |
---|---|
static String |
ALLOCATOR
该属性用于设置/获取分配器的实现
|
static String |
IS_COALESCING
需要解析器来合并相邻字符数据部分的属性
|
static String |
IS_NAMESPACE_AWARE
该属性用于打开/关闭命名空间支持,这是为了支持XML 1.0文档,只有真正的设置必须被支持
|
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的属性
|
Modifier | Constructor and Description |
---|---|
protected |
XMLInputFactory() |
Modifier and Type | Method and Description |
---|---|
abstract XMLEventReader |
createFilteredReader(XMLEventReader reader, EventFilter filter)
创建一个过滤的事件读取器,将过滤器包裹在事件读取器周围
|
abstract XMLStreamReader |
createFilteredReader(XMLStreamReader reader, StreamFilter filter)
创建一个过滤的阅读器,将过滤器包裹在阅读器周围
|
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)
从阅读器创建一个新的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)
从阅读器创建一个新的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)
从阅读器创建一个新的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 |
newFactory()
创建一个新的工厂实例。
|
static XMLInputFactory |
newFactory(String factoryId, ClassLoader classLoader)
创建一个新的工厂实例。
|
static XMLInputFactory |
newInstance()
以与
newFactory() 方法完全相同的方式创建工厂的新实例。
|
static XMLInputFactory |
newInstance(String factoryId, ClassLoader classLoader)
已弃用
该方法已被弃用,以保持API的一致性。
所有newInstance方法已被替换为相应的newFactory方法。
替换
newFactory(java.lang.String, java.lang.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上设置的解析器。
|
public static final String IS_NAMESPACE_AWARE
public static final String IS_VALIDATING
public static final String IS_COALESCING
public static final String IS_REPLACING_ENTITY_REFERENCES
public static final String IS_SUPPORTING_EXTERNAL_ENTITIES
public static final String SUPPORT_DTD
public static final String REPORTER
public static final String RESOLVER
public static final String ALLOCATOR
public static XMLInputFactory newInstance() throws FactoryConfigurationError
newFactory()
方法完全相同的方式创建工厂的新实例。
FactoryConfigurationError
- 如果此工厂的实例无法加载
public static XMLInputFactory newFactory() throws FactoryConfigurationError
这个静态方法创建一个新的工厂实例。 此方法使用以下有序查找过程来确定要加载的XMLInputFactory实现类:
ServiceLoader
类定义的服务提供商加载工具,尝试使用default loading mechanism定位并加载服务的实现 :服务提供商加载工具将使用current thread's context class loader尝试加载服务。 如果上下文类加载器为null, 那么将使用system class loader 。 一旦应用程序获得了对XMLInputFactory的引用,它可以使用工厂来配置和获取流实例。
请注意,这是一种替代不推荐使用的newInstance()方法的新方法。 相对于不推荐使用的方法,此替换方法没有定义行为更改。
FactoryConfigurationError
-在以下情况下service configuration error或者如果实现不可用或不能被实例化。
public static XMLInputFactory newInstance(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
newFactory(java.lang.String, java.lang.ClassLoader)
方法定义行为没有变化。
factoryId
- 找到工厂的名称,与属性名称相同
classLoader
- classLoader使用
FactoryConfigurationError
- 如果此工厂的实例无法加载
public static XMLInputFactory newFactory(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
此方法使用以下有序查找过程来确定要加载的XMLInputFactory实现类:
factoryId
。 factoryId
。 factoryId
是“javax.xml.stream.XMLInputFactory”,请使用由ServiceLoader
类定义的服务提供程序加载工具来尝试使用指定的ClassLoader查找和加载服务的ClassLoader
。 如果classLoader
为空,则将适用default loading mechanism :即,服务提供者加载工具将使用current thread's context class loader尝试加载服务。 如果上下文类加载器为null, 那么将使用system class loader 。 FactoryConfigurationError
。 请注意,这是一种替代已弃用的newInstance(String factoryId, ClassLoader classLoader)
方法的新方法。 相对于不推荐使用的方法,此替换方法没有定义行为更改。
factoryId
- 要查找的工厂名称,与属性名称相同
classLoader
- classLoader使用
FactoryConfigurationError
-在以下情况下service configuration error或者如果实现不可用或不能被实例化。
FactoryConfigurationError
- 如果此工厂的实例无法加载
public abstract XMLStreamReader createXMLStreamReader(Reader reader) throws XMLStreamException
reader
- 要读取的XML数据
XMLStreamException
public abstract XMLStreamReader createXMLStreamReader(Source source) throws XMLStreamException
source
- 要阅读的来源
UnsupportedOperationException
- 如果此XMLInputFactory不支持此方法
XMLStreamException
public abstract XMLStreamReader createXMLStreamReader(InputStream stream) throws XMLStreamException
stream
- 要读取的InputStream
XMLStreamException
public abstract XMLStreamReader createXMLStreamReader(InputStream stream, String encoding) throws XMLStreamException
stream
- 要读取的InputStream
encoding
- 流的字符编码
XMLStreamException
public abstract XMLStreamReader createXMLStreamReader(String systemId, InputStream stream) throws XMLStreamException
systemId
- 流的系统ID
stream
- 要读取的InputStream
XMLStreamException
public abstract XMLStreamReader createXMLStreamReader(String systemId, Reader reader) throws XMLStreamException
systemId
- 流的系统ID
reader
- 要读取的InputStream
XMLStreamException
public abstract XMLEventReader createXMLEventReader(Reader reader) throws XMLStreamException
reader
- 要读取的XML数据
XMLStreamException
public abstract XMLEventReader createXMLEventReader(String systemId, Reader reader) throws XMLStreamException
systemId
- 输入的系统ID
reader
- 要读取的XML数据
XMLStreamException
public abstract XMLEventReader createXMLEventReader(XMLStreamReader reader) throws XMLStreamException
reader
- 要读取的XMLStreamReader(可能不会被修改)
XMLStreamException
public abstract XMLEventReader createXMLEventReader(Source source) throws XMLStreamException
source
- 要阅读的来源
UnsupportedOperationException
- 如果此XMLInputFactory不支持此方法
XMLStreamException
public abstract XMLEventReader createXMLEventReader(InputStream stream) throws XMLStreamException
stream
- 要读取的InputStream
XMLStreamException
public abstract XMLEventReader createXMLEventReader(InputStream stream, String encoding) throws XMLStreamException
stream
- 要读取的InputStream
encoding
- 流的字符编码
XMLStreamException
public abstract XMLEventReader createXMLEventReader(String systemId, InputStream stream) throws XMLStreamException
systemId
- 流的系统ID
stream
- 要从中读取的InputStream
XMLStreamException
public abstract XMLStreamReader createFilteredReader(XMLStreamReader reader, StreamFilter filter) throws XMLStreamException
reader
- 读者过滤
filter
- 适用于读者的过滤器
XMLStreamException
public abstract XMLEventReader createFilteredReader(XMLEventReader reader, EventFilter filter) throws XMLStreamException
reader
- 事件读者包装
filter
- 应用于事件读取器的过滤器
XMLStreamException
public abstract XMLResolver getXMLResolver()
public abstract void setXMLResolver(XMLResolver resolver)
resolver
- 解析器用于解析引用
public abstract XMLReporter getXMLReporter()
public abstract void setXMLReporter(XMLReporter reporter)
reporter
- 用于报告非致命错误的解析器
public abstract void setProperty(String name, Object value) throws IllegalArgumentException
实现JAXP 1.5或更高版本的所有实现都需要支持XMLConstants.ACCESS_EXTERNAL_DTD
属性。
访问外部DTD,外部实体引用仅限于属性指定的协议。 如果访问被解析,由于该属性的限制时否认, XMLStreamException
将被抛出XMLStreamReader.next()
或XMLEventReader.nextEvent()
方法。
name
- 属性的名称(可能不为空)
value
- 该属性的值
IllegalArgumentException
- 如果不支持该属性
public abstract Object getProperty(String name) throws IllegalArgumentException
name
- 属性的名称(可能不为空)
IllegalArgumentException
- 如果不支持该属性
public abstract boolean isPropertySupported(String name)
name
- 属性的名称(可能不为空)
public abstract void setEventAllocator(XMLEventAllocator allocator)
allocator
- 用户定义的分配器
public abstract XMLEventAllocator getEventAllocator()