java.lang.Object javax.xml.stream.XMLOutputFactory
public abstract class XMLOutputFactory
定义用于获取 XMLEventWriter 和 XMLStreamWriter 的工厂抽象实现。下表定义此规范的标准属性。每个属性随每个实现所要求的支持级别的不同而不同。所要求的支持级别在“必需”栏中做了描述。
配置参数 | ||||
---|---|---|---|---|
属性名 | 行为 | 返回类型 | 默认值 | 必需 |
javax.xml.stream.isRepairingNamespaces | 默认输出端前缀 | Boolean | False | 是 |
以下段落描述了名称空间和前缀修复算法:
属性可以使用以下代码行进行设置:setProperty("javax.xml.stream.isRepairingNamespaces",new Boolean(true|false));
此属性指定 writer 默认名称空间前缀声明。默认值为 false。
如果 writer 是 RepairingNamespaces,则对于任何当前在范围内不具有名称空间声明的属性,它都将在当前的 StartElement 上创建名称空间声明。如果 StartElement 具有 URI,但没有指定前缀,则为其分配一个前缀;如果前缀未在当前 StartElement 的父级中声明,则它将在当前的 StartElement 上声明。如果 defaultNamespace 被绑定,而且在范围内默认名称空间与属性的 URI 或 StartElement QName 相匹配,则不分配任何前缀。
如果元素或属性名称具有前缀,但没有绑定到任何名称空间 URI,则前缀将在序列化时被删除。
如果同一个开始或空元素标记中的元素和/或属性名称被绑定到不同的名称空间 URI,而且使用相同的前缀,则元素或第一个出现的属性将保留原始前缀,而在它之后的属性将用绑定到这些属性名称空间 URI 的新前缀替换它们的前缀。
如果元素或属性名称使用一个绑定到 URI 的前缀,而该 URI 不是从该元素父级的名称空间上下文中继承的,并且在当前元素的上下文中没有名称空间声明,那么将添加一个这样的名称空间声明。
如果元素或属性名称被绑定到一个前缀,而且有一个将此前缀绑定到不同 RUI 的名称空间声明,那么该名称空间声明将被删除(如果从该元素的父上下文中继承了正确的映射),或者被更改为使用该前缀的元素或属性的名称空间 URI。
XMLInputFactory
,
XMLEventWriter
,
XMLStreamWriter
字段摘要 | |
---|---|
static String |
IS_REPAIRING_NAMESPACES 用于设置输出端上默认前缀的属性。 |
构造方法摘要 | |
---|---|
protected |
XMLOutputFactory() |
方法摘要 | |
---|---|
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) 创建一个写入到 writer 的新 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) 创建一个写入到 writer 的新 XMLStreamWriter。 |
abstract Object |
getProperty(String name) 获取底层实现上的功能/属性 |
abstract boolean |
isPropertySupported(String name) 查询此工厂支持的属性集合。 |
static XMLOutputFactory |
newInstance() 创建一个新的工厂实例。 |
static XMLInputFactory |
newInstance(String factoryId, ClassLoader classLoader) 创建一个的新工厂实例。 |
abstract void |
setProperty(String name, Object value) 允许用户在底层实现上设置特定功能/属性。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
public static final String IS_REPAIRING_NAMESPACES
构造方法详细信息 |
---|
protected XMLOutputFactory()
方法详细信息 |
---|
public static XMLOutputFactory newInstance() throws FactoryConfigurationError
FactoryConfigurationError
- 如果此工厂的实例无法加载
public static XMLInputFactory newInstance(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
factoryId
- 要查找的工厂的名称,与属性名称相同
classLoader
- 要使用的类加载器
FactoryConfigurationError
- 如果此工厂的实例无法加载
public abstract XMLStreamWriter createXMLStreamWriter(Writer stream) throws XMLStreamException
stream
- 要向其写入 XMLStreamWriter 的 writer
XMLStreamException
public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream) throws XMLStreamException
stream
- 要向其写入 XMLStreamWriter 的流
XMLStreamException
public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream, String encoding) throws XMLStreamException
stream
- 要向其写入 XMLStreamWriter 的流
encoding
- 要使用的编码
XMLStreamException
public abstract XMLStreamWriter createXMLStreamWriter(Result result) throws XMLStreamException
result
- 要向其写入 XMLStreamWriter 的结果
UnsupportedOperationException
- 如果此 XMLOutputFactory 不支持此方法
XMLStreamException
public abstract XMLEventWriter createXMLEventWriter(Result result) throws XMLStreamException
result
- 要向其写入 XMLEventWriter 的结果
UnsupportedOperationException
- 如果此 XMLOutputFactory 不支持此方法
XMLStreamException
public abstract XMLEventWriter createXMLEventWriter(OutputStream stream) throws XMLStreamException
stream
- 要向其写入 XMLEventWriter 的流
XMLStreamException
public abstract XMLEventWriter createXMLEventWriter(OutputStream stream, String encoding) throws XMLStreamException
stream
- 要向其写入 XMLEventWriter 的流
encoding
- 要使用的编码
XMLStreamException
public abstract XMLEventWriter createXMLEventWriter(Writer stream) throws XMLStreamException
stream
- 要向其写入 XMLEventWriter 的流
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
- 属性的名称(不可以为 null)