属性名称 | 行为 | 返回类型 | 默认值 | 必需 |
---|---|---|---|---|
javax.xml.stream.isRepairingNamespaces | 在输出端默认前缀 | 布尔值 | False | 是 |
以下段落描述了命名空间和前缀修复算法:
可以使用以下代码行设置属性:setProperty("javax.xml.stream.isRepairingNamespaces", Boolean.TRUE);
此属性指定了写入器默认的命名空间前缀声明。默认值为false。
如果写入器isRepairingNamespaces,它将为当前StartElement上的任何属性创建一个命名空间声明,该属性当前在范围内没有命名空间声明。如果StartElement具有uri但未指定前缀,则将分配前缀,如果前缀未在当前StartElement的父级中声明,则将在当前StartElement上声明它。如果defaultNamespace已绑定且在范围内,并且默认命名空间与属性或StartElement QName的URI匹配,则不会分配前缀。
如果元素或属性名称具有前缀,但未绑定到任何命名空间URI,则在序列化期间将删除前缀。
如果同一开始或空元素标记中的元素和/或属性名称绑定到不同的命名空间URI并且使用相同的前缀,则元素或第一个出现的属性保留原始前缀,后续属性的前缀将替换为绑定到这些属性的命名空间URI的新前缀。
如果元素或属性名称使用绑定到与该元素的父级的命名空间上下文中继承的不同URI的前缀,并且当前元素的上下文中没有命名空间声明,则将添加此类命名空间声明。
如果元素或属性名称绑定到前缀,并且存在将该前缀绑定到不同URI的命名空间声明,则如果从该元素的父级上下文中继承了正确的映射,则将删除该命名空间声明,或将其更改为使用该前缀的元素或属性的命名空间URI。
- 自版本:
- 1.6
- 参见:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract XMLEventWriter
createXMLEventWriter
(OutputStream stream) 创建一个写入到流的新XMLEventWriterabstract XMLEventWriter
createXMLEventWriter
(OutputStream stream, String encoding) 创建一个写入到流的新XMLEventWriterabstract XMLEventWriter
createXMLEventWriter
(Writer stream) 创建一个写入到写入器的新XMLEventWriterabstract XMLEventWriter
createXMLEventWriter
(Result result) 创建一个写入到JAXP结果的新XMLEventWriterabstract XMLStreamWriter
createXMLStreamWriter
(OutputStream stream) 创建一个写入到流的新XMLStreamWriterabstract XMLStreamWriter
createXMLStreamWriter
(OutputStream stream, String encoding) 创建一个写入到流的新XMLStreamWriterabstract XMLStreamWriter
createXMLStreamWriter
(Writer stream) 创建一个写入到写入器的新XMLStreamWriterabstract XMLStreamWriter
createXMLStreamWriter
(Result result) 创建一个写入到JAXP结果的新XMLStreamWriterabstract Object
getProperty
(String name) 获取底层实现的功能/属性abstract boolean
isPropertySupported
(String name) 查询此工厂支持的属性集。static XMLOutputFactory
创建XMLOutputFactory
内置系统默认实现的新实例。static XMLOutputFactory
创建工厂的新实例。static XMLOutputFactory
newFactory
(String factoryId, ClassLoader classLoader) 创建工厂的新实例。static XMLOutputFactory
以与newFactory()
方法完全相同的方式创建工厂的新实例。static XMLInputFactory
newInstance
(String factoryId, ClassLoader classLoader) 已弃用。此方法已被弃用,因为它返回了一个错误类的XMLInputFactory实例。abstract void
setProperty
(String name, Object value) 允许用户在底层实现上设置特定功能/属性。
-
Field Details
-
IS_REPAIRING_NAMESPACES
用于在输出端设置前缀默认值的属性- 参见:
-
-
Constructor Details
-
XMLOutputFactory
protected XMLOutputFactory()保护构造函数,防止实例化。请改用newFactory()
。
-
-
Method Details
-
newDefaultFactory
创建XMLOutputFactory
内置系统默认实现的新实例。- 返回:
-
XMLOutputFactory
内置系统默认实现的新实例。 - 自版本:
- 9
-
newInstance
以与newFactory()
方法完全相同的方式创建工厂的新实例。- 返回:
-
XMLOutputFactory
的一个实例 - 抛出:
-
FactoryConfigurationError
- 如果无法加载此工厂的实例
-
newFactory
创建工厂的新实例。此方法使用XMLOutputFactory
实现类的JAXP查找机制来确定要加载的实现类。一旦应用程序获得对
XMLOutputFactory
的引用,就可以使用工厂来配置和获取流实例。- 返回:
-
XMLOutputFactory
的一个实例 - 抛出:
-
FactoryConfigurationError
- 如果存在服务配置错误或者实现不可用或无法实例化。
-
newInstance
@Deprecated(since="1.7") public static XMLInputFactory newInstance(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError Deprecated.This method has been deprecated because it returns an instance of XMLInputFactory, which is of the wrong class. Use the new methodnewFactory(java.lang.String, java.lang.ClassLoader)
instead.创建工厂的新实例。- 参数:
-
factoryId
- 要查找的工厂的名称,与属性名称相同 -
classLoader
- 要使用的类加载器 - 返回:
- 工厂实现
- 抛出:
-
FactoryConfigurationError
- 如果无法加载此工厂的实例
-
newFactory
public static XMLOutputFactory newFactory(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError 创建工厂的新实例。如果classLoader参数为null,则使用ContextClassLoader。此方法使用以下有序查找过程来确定要加载的XMLOutputFactory实现类:
- 使用由
factoryId
标识的系统属性的值。 -
使用配置文件中设置的属性
factoryId
的值,默认情况下为jaxp.properties。如果文件存在并且文件中指定了属性factoryId
,则其值将用作实现类。 -
如果
factoryId
为"javax.xml.stream.XMLOutputFactory",则使用由ClassLoader
指定的ServiceLoader
类定义的服务提供程序加载机制,尝试定位和加载使用指定ClassLoader
的服务的实现。如果classLoader
为null,则将应用默认加载机制:即,服务提供程序加载设施将使用当前线程的上下文类加载器来尝试加载服务。如果上下文类加载器为null,则将使用系统类加载器。 -
否则,抛出一个
FactoryConfigurationError
。
- API注释:
-
此处定义的factoryId参数与其他JAXP工厂的参数不一致,其他工厂的第一个参数是提供工厂实现的完全限定类名。
请注意,这是一个替代了已弃用的
newInstance(String factoryId, ClassLoader classLoader)
方法的新方法。原始方法错误地定义为返回XMLInputFactory。 - 参数:
-
factoryId
- 要查找的工厂的名称,与属性名称相同 -
classLoader
- 要使用的类加载器 - 返回:
- 工厂实现
- 抛出:
-
FactoryConfigurationError
- 如果存在服务配置错误或者实现不可用或无法实例化。
- 使用由
-
createXMLStreamWriter
创建一个写入到写入器的新XMLStreamWriter- 参数:
-
stream
- 要写入的写入器 - 返回:
-
XMLStreamWriter
的一个实例 - 抛出:
-
XMLStreamException
- 如果发生错误
-
createXMLStreamWriter
public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream) throws XMLStreamException 创建一个写入到流的新XMLStreamWriter- 参数:
-
stream
- 要写入的流 - 返回:
-
XMLStreamWriter
的一个实例 - 抛出:
-
XMLStreamException
- 如果发生错误
-
createXMLStreamWriter
public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream, String encoding) throws XMLStreamException 创建一个写入到流的新XMLStreamWriter- 参数:
-
stream
- 要写入的流 -
encoding
- 要使用的编码 - 返回:
-
XMLStreamWriter
的实例 - 抛出:
-
XMLStreamException
- 如果发生错误
-
createXMLStreamWriter
创建一个新的XMLStreamWriter,用于写入JAXP结果。此方法是可选的。- 参数:
-
result
- 要写入的结果 - 返回:
-
XMLEventWriter
的实例 - 抛出:
-
UnsupportedOperationException
- 如果此方法不受XMLOutputFactory支持 -
XMLStreamException
- 如果发生错误
-
createXMLEventWriter
创建一个新的XMLEventWriter,用于写入JAXP结果。此方法是可选的。- 参数:
-
result
- 要写入的结果 - 返回:
-
XMLEventWriter
的实例 - 抛出:
-
UnsupportedOperationException
- 如果此方法不受XMLOutputFactory支持 -
XMLStreamException
- 如果发生错误
-
createXMLEventWriter
创建一个新的XMLEventWriter,用于写入流- 参数:
-
stream
- 要写入的流 - 返回:
-
XMLEventWriter
的实例 - 抛出:
-
XMLStreamException
- 如果发生错误
-
createXMLEventWriter
public abstract XMLEventWriter createXMLEventWriter(OutputStream stream, String encoding) throws XMLStreamException 创建一个新的XMLEventWriter,用于写入流- 参数:
-
stream
- 要写入的流 -
encoding
- 要使用的编码 - 返回:
-
XMLEventWriter
的实例 - 抛出:
-
XMLStreamException
- 如果发生错误
-
createXMLEventWriter
创建一个新的XMLEventWriter,用于写入写入器- 参数:
-
stream
- 要写入的流 - 返回:
-
XMLEventWriter
的实例 - 抛出:
-
XMLStreamException
- 如果发生错误
-
setProperty
允许用户在底层实现上设置特定功能/属性。- 参数:
-
name
- 属性的名称 -
value
- 属性的值 - 抛出:
-
IllegalArgumentException
- 如果不支持该属性
-
getProperty
获取底层实现的功能/属性- 参数:
-
name
- 属性的名称 - 返回:
- 属性的值
- 抛出:
-
IllegalArgumentException
- 如果不支持该属性
-
isPropertySupported
查询此工厂支持的属性集。- 参数:
-
name
- 属性的名称(不能为空) - 返回:
- 如果支持该属性则返回true,否则返回false
-