javax.xml.stream

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

public abstract class XMLOutputFactory
     
extends Object

定义用于获取 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。

从以下版本开始:
1.6
另请参见:
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
 

字段详细信息

IS_REPAIRING_NAMESPACES

public static final String IS_REPAIRING_NAMESPACES
用于设置输出端上默认前缀的属性。

另请参见:
常量字段值
构造方法详细信息

XMLOutputFactory

protected XMLOutputFactory()
方法详细信息

newInstance

public static XMLOutputFactory newInstance()
                                    throws FactoryConfigurationError
创建一个新的工厂实例。

抛出:
FactoryConfigurationError - 如果此工厂的实例无法加载

newInstance

public static XMLInputFactory newInstance(String factoryId,
                                          ClassLoader classLoader)
                                   throws FactoryConfigurationError
创建一个的新工厂实例。

参数:
factoryId - 要查找的工厂的名称,与属性名称相同
classLoader - 要使用的类加载器
返回:
工厂实现
抛出:
FactoryConfigurationError - 如果此工厂的实例无法加载

createXMLStreamWriter

public abstract XMLStreamWriter createXMLStreamWriter(Writer stream)
                                               throws XMLStreamException
创建一个写入到 writer 的新 XMLStreamWriter。

参数:
stream - 要向其写入 XMLStreamWriter 的 writer
抛出:
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 - 要向其写入 XMLStreamWriter 的流
encoding - 要使用的编码
抛出:
XMLStreamException

createXMLStreamWriter

public abstract XMLStreamWriter createXMLStreamWriter(Result result)
                                               throws XMLStreamException
创建一个写入到 JAXP 结果的新 XMLStreamWriter。此方法是可选的。

参数:
result - 要向其写入 XMLStreamWriter 的结果
抛出:
UnsupportedOperationException - 如果此 XMLOutputFactory 不支持此方法
XMLStreamException

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(Result result)
                                             throws XMLStreamException
创建一个写入到 JAXP 结果的新 XMLEventWriter。此方法是可选的。

参数:
result - 要向其写入 XMLEventWriter 的结果
抛出:
UnsupportedOperationException - 如果此 XMLOutputFactory 不支持此方法
XMLStreamException

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(OutputStream stream)
                                             throws XMLStreamException
创建一个写入到流的新 XMLEventWriter。

参数:
stream - 要向其写入 XMLEventWriter 的流
抛出:
XMLStreamException

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(OutputStream stream,
                                                    String encoding)
                                             throws XMLStreamException
创建一个写入到流的新 XMLEventWriter。

参数:
stream - 要向其写入 XMLEventWriter 的流
encoding - 要使用的编码
抛出:
XMLStreamException

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(Writer stream)
                                             throws XMLStreamException
创建一个写入到 writer 的新 XMLEventWriter。

参数:
stream - 要向其写入 XMLEventWriter 的流
抛出:
XMLStreamException

setProperty

public abstract void setProperty(String name,
                                 Object value)
                          throws IllegalArgumentException
允许用户在底层实现上设置特定功能/属性。

参数:
name - 属性的名称
value - 属性的值
抛出:
IllegalArgumentException - 如果属性不受支持

getProperty

public abstract Object getProperty(String name)
                            throws IllegalArgumentException
获取底层实现上的功能/属性

参数:
name - 属性的名称
返回:
属性的值
抛出:
IllegalArgumentException - 如果属性不受支持

isPropertySupported

public abstract boolean isPropertySupported(String name)
查询此工厂支持的属性集合。

参数:
name - 属性的名称(不可以为 null)
返回:
如果此属性受支持,则返回 true,否则返回 false