请参见:
描述
接口摘要 | |
---|---|
TemplatesHandler | 可用于将 SAX 解析事件(解析转换指令)处理为 Templates 对象的 SAX ContentHandler。 |
TransformerHandler | 侦听 SAX ContentHandler 解析事件,并将它们转换为 Result 的 TransformerHandler。 |
类摘要 | |
---|---|
SAXResult | 充当转换 Result 的持有者。 |
SAXSource | 充当 SAX 样式 Source 的持有者。 |
SAXTransformerFactory | 此类扩展了 TransformerFactory 以提供特定于 SAX 的工厂方法。 |
此包实现特定于 SAX2 的转换 API。它提供了允许从 ContentHandler
事件输入的类,还提供了生成 org.xml.sax.ContentHandler 事件的类。它还提供了用于将输入源设置为 XMLReader
,或使用 InputSource
作为源的方法。它还允许创建 XMLFilter
,这支持从其他转换“拉入”的转换,并使转换器通过多种形式作为 XMLReader
使用。
SAXSource
类允许设置用于“拉入”解析事件的 XMLReader
,以及用于指定 SAX 源的 InputSource
。
SAXResult
类允许设置用作来自转换的 SAX2 事件接收器的 ContentHandler
。
SAXTransformerFactory
扩展了 TransformerFactory
,以提供用于创建 TemplatesHandler
、TransformerHandler
和 XMLReader
实例的工厂方法。
要获取 SAXTransformerFactory
,调用者必须强制转换从 TransformerFactory.newInstance()
返回的 TransformerFactory
实例。
@link javax.xml.transform.sax.TransformerHandler} 接口允许从 SAX2 解析事件创建转换,这是 "push"(推)模型,而不是转换中通常发生的 "pull"(拉)模型。正常解析事件通过 ContentHandler
接口接收,词法事件(例如 startCDATA 和 endCDATA)通过 LexicalHandler
接口接收,标记禁用输出转义的开始或结束的事件通过 ContentHandler.processingInstruction(java.lang.String, java.lang.String)
接收,目标参数为 Result.PI_DISABLE_OUTPUT_ESCAPING
和 Result.PI_ENABLE_OUTPUT_ESCAPING
。如果要在 Transformer 处理程序中设置参数、输出属性或其他功能,则需要从 TransformerHandler.getTransformer()
获取 Transformer
引用,以及从该引用调用的方法。
TemplatesHandler
接口允许从 SAX2 解析事件创建 Templates
对象。当 ContentHandler
事件完成后,可以从 TemplatesHandler.getTemplates()
获取 Templates 对象。注意,应正常调用 TemplatesHandler.setSystemId(java.lang.String)
,以建立可以从其解析 URL 的基本系统 ID。
SAXTransformerFactory.newXMLFilter(javax.xml.transform.Source)
方法允许创建 XMLFilter
,它封装了 "pull" 转换的 SAX2 概念。以下阐释了互相形成链的几种转换。每个过滤器均指向一个父 XMLReader
,且通过调用链中最后的 reader 上的 XMLReader.parse(org.xml.sax.InputSource)
来引发最后的转换。