public abstract class XMLOutputFactory extends Object
以下段落描述了命名空间和前缀修复算法:
该属性可以使用以下代码行设置: setProperty("javax.xml.stream.isRepairingNamespaces",new Boolean(true|false));
该属性指定作者默认命名空间前缀声明。 默认值为false。
如果作者是ReepairingNamespaces,它将为当前的StartElement创建一个名称空间声明,该属性当前不具有范围内的命名空间声明。 如果StartElement具有uri但未指定前缀,则将分配前缀,如果前缀尚未在当前StartElement的父项中声明,则它将在当前StartElement上声明。 如果defaultNamespace被绑定并且在范围内,并且默认命名空间与属性的URI或StartElement QName匹配,则不会分配前缀。
如果元素或属性名称具有前缀但未绑定到任何命名空间URI,则在序列化期间前缀将被删除。
如果同一起始或空元素标签中的元素和/或属性名称绑定到不同的命名空间URI并且使用相同的前缀,则元素或第一个发生属性保留原始前缀,并且以下属性的前缀替换为绑定到这些属性的命名空间URI的新前缀。
如果元素或属性名称使用绑定到与该元素的父元素的命名空间上下文不同的URI的前缀,并且在当前元素的上下文中没有命名空间声明,则会添加这样的命名空间声明。
如果元素或属性名称绑定到前缀,并且有一个命名空间声明将该前缀绑定到不同的URI,那么如果正确的映射从该元素的父上下文继承,则该名称空间声明被删除,或者更改为使用该前缀的元素或属性的命名空间URI。
XMLInputFactory
, XMLEventWriter
, XMLStreamWriter
Modifier and Type | Field and Description |
---|---|
static String |
IS_REPAIRING_NAMESPACES
用于在输出端设置前缀默认值的属性
|
Modifier | Constructor and Description |
---|---|
protected |
XMLOutputFactory() |
Modifier and Type | Method and Description |
---|---|
abstract XMLEventWriter |
createXMLEventWriter(OutputStream stream)
创建一个写入流的新XMLEventWriter
|
abstract XMLEventWriter |
createXMLEventWriter(OutputStream stream, String encoding)
创建一个写入流的新XMLEventWriter
|
abstract XMLEventWriter |
createXMLEventWriter(Result result)
创建一个写入JAXP结果的新的XMLEventWriter。
|
abstract XMLEventWriter |
createXMLEventWriter(Writer stream)
创建一个写入作者的新的XMLEventWriter
|
abstract XMLStreamWriter |
createXMLStreamWriter(OutputStream stream)
创建一个写入流的新XMLStreamWriter
|
abstract XMLStreamWriter |
createXMLStreamWriter(OutputStream stream, String encoding)
创建一个写入流的新XMLStreamWriter
|
abstract XMLStreamWriter |
createXMLStreamWriter(Result result)
创建一个写入JAXP结果的新XMLStreamWriter。
|
abstract XMLStreamWriter |
createXMLStreamWriter(Writer stream)
创建一个写入作者的新XMLStreamWriter
|
abstract Object |
getProperty(String name)
获取底层实现的功能/属性
|
abstract boolean |
isPropertySupported(String name)
查询此工厂支持的属性集。
|
static XMLOutputFactory |
newFactory()
创建一个新的工厂实例。
|
static XMLOutputFactory |
newFactory(String factoryId, ClassLoader classLoader)
创建一个新的工厂实例。
|
static XMLOutputFactory |
newInstance()
以与
newFactory() 方法完全相同的方式创建工厂的新实例。
|
static XMLInputFactory |
newInstance(String factoryId, ClassLoader classLoader)
已弃用
此方法已被弃用,因为它返回一个XMLInputFactory的实例,该实例是错误的类。
改用新方法
newFactory(java.lang.String, java.lang.ClassLoader) 。
|
abstract void |
setProperty(String name, Object value)
允许用户在底层实现上设置特定的功能/属性。
|
public static final String IS_REPAIRING_NAMESPACES
public static XMLOutputFactory newInstance() throws FactoryConfigurationError
newFactory()
方法完全相同的方式创建工厂的新实例。
FactoryConfigurationError
- 如果此工厂的实例无法加载
public static XMLOutputFactory newFactory() throws FactoryConfigurationError
这个静态方法创建一个新的工厂实例。 此方法使用以下有序查找过程来确定要加载的XMLOutputFactory实现类:
ServiceLoader
类定义的服务提供商加载工具尝试使用default loading mechanism定位并加载服务的实现 :服务提供商加载工具将使用current thread's context class loader来尝试加载服务。 如果上下文类加载器为null, 那么将使用system class loader 。 一旦应用程序获得了对XMLOutputFactory的引用,它可以使用工厂来配置和获取流实例。
请注意,这是一种替代不推荐使用的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 XMLOutputFactory newFactory(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
此方法使用以下有序查找过程来确定要加载的XMLOutputFactory实现类:
factoryId
。 factoryId
。 factoryId
是“javax.xml.stream.XMLOutputFactory”,请使用由ServiceLoader
类定义的服务提供程序加载工具来尝试使用指定的ClassLoader查找和加载服务的ClassLoader
。 如果classLoader
为空,则将适用default loading mechanism :即,服务提供商加载工具将使用current thread's context class loader尝试加载服务。 如果上下文类加载器为null, 那么将使用system class loader 。 FactoryConfigurationError
。 请注意,这是一种替代已弃用的newInstance(String factoryId, ClassLoader classLoader)
方法的新方法。 原始方法被错误地定义为返回XMLInputFactory。
factoryId
- 找到工厂的名称,与属性名称相同
classLoader
- classLoader使用
FactoryConfigurationError
-在以下情况下service configuration error或者如果实现不可用或不能被实例化。
public abstract XMLStreamWriter createXMLStreamWriter(Writer stream) throws XMLStreamException
stream
- 作者写信给
XMLStreamException
public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream) throws XMLStreamException
stream
- 要写的流
XMLStreamException
public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream, String encoding) throws XMLStreamException
stream
- 要写入的流
encoding
- 要使用的编码
XMLStreamException
public abstract XMLStreamWriter createXMLStreamWriter(Result result) throws XMLStreamException
result
- 要写的结果
UnsupportedOperationException
- 如果此XMLOutputFactory不支持此方法
XMLStreamException
public abstract XMLEventWriter createXMLEventWriter(Result result) throws XMLStreamException
result
- 要写的结果
UnsupportedOperationException
- 如果此XMLOutputFactory不支持此方法
XMLStreamException
public abstract XMLEventWriter createXMLEventWriter(OutputStream stream) throws XMLStreamException
stream
- 要写的流
XMLStreamException
public abstract XMLEventWriter createXMLEventWriter(OutputStream stream, String encoding) throws XMLStreamException
stream
- 要写的流
encoding
- 要使用的编码
XMLStreamException
public abstract XMLEventWriter createXMLEventWriter(Writer stream) throws XMLStreamException
stream
- 要写的流
XMLStreamException
public abstract void setProperty(String name, Object value) throws IllegalArgumentException
name
- 财产的名称
value
- 该属性的值
IllegalArgumentException
- 如果不支持该属性
public abstract Object getProperty(String name) throws IllegalArgumentException
name
- 物业的名称
IllegalArgumentException
- 如果不支持该属性
public abstract boolean isPropertySupported(String name)
name
- 属性的名称(可能不为空)