接口 | 描述 |
---|---|
ErrorListener |
提供自定义的错误处理,实现这个接口,使用
setErrorListener 法登记与
Transformer 实现实例。
|
Result |
实现此接口的对象包含生成转换结果树所需的信息。
|
Source |
一个实现此接口的对象包含作为源输入(XML源或转换指令)所需的信息。
|
SourceLocator |
此接口主要用于报告在XML源代码或转换指令中发生的错误的报告的目的。
|
Templates |
实现此接口的对象是被处理的转换指令的运行时表示。
|
URIResolver |
一个实现这个接口的对象可以被处理器称为转一个URI用于document(),XSL:进口,或是包含到源对象。
|
类 | 描述 |
---|---|
OutputKeys |
提供可以用于设置变压器的输出属性的字符串常量,或从变压器或模板对象检索输出属性。
|
Transformer |
这个抽象类的一个实例可以将一个源树转换成一个结果树。
|
TransformerFactory |
一个transformerfactory实例可以用来创建
Transformer 和
Templates 对象。
|
异常 | 描述 |
---|---|
TransformerConfigurationException |
表示严重的配置错误。
|
TransformerException |
该类指定在转换过程中发生的异常情况。
|
Error | 描述 |
---|---|
TransformerFactoryConfigurationError |
当有配置与变压器工厂存在的问题时。
|
该软件包定义了用于处理变换指令的通用的接口,并执行从源到结果的转换。这些接口SAX或DOM标准有无依赖性,并努力使尽可能少的假设对于电源和转换结果的细节。它通过定义Source
和Result
接口。
定义用户的具体类,API定义了基层发现接口专业。这些接口在javax.xml.transform.sax
,javax.xml.transform.dom
发现,和javax.xml.transform.stream
。
该API允许混凝土TransformerFactory
对象从静态函数TransformerFactory.newInstance()
创建。
这个API中定义了两个接口的对象称为Source
和Result
。为了将源和结果对象传递给接口,必须使用具体的类。三具体表现为每个对象定义:StreamSource
和StreamResult
,SAXSource
和SAXResult
,和DOMSource
和DOMResult
。每个对象定义一个特征字符串(这是我的一个URL的形式),它可以通过TransformerFactory.getFeature(java.lang.String)
看看源或结果对象给定类型的支持。例如,测试是否有domsource和StreamResult是支持的,你可以用下面的测试。
TransformerFactory tfactory = TransformerFactory.newInstance();
if (tfactory.getFeature(DOMSource.FEATURE) && tfactory.getFeature(StreamResult.FEATURE)) {
...
}
Namespaces目前一些有问题的地区在处理XML对象。合格的名字出现在XML标记前缀的名称。但前缀本身不持身份。相反,它是这些内容映射到他们持有的身份。因此,当通过一个合格的名称如“XYZ:foo”中的java程序,必须提供一种手段,Map“XYZ”命名空间。
一个解决办法是创建一个“属性”对象包含命名空间URI,以及前缀、本地名称,但这并不总是最佳的解决方案,如,例如,你想使用独特的字符串在字典对象的钥匙。没有一个字符串表示形式也难以指定命名空间的身份一个XML文档的上下文之外。
为了通过命名空间值变换,例如设置属性或在Transformer
对象参数时,该规范定义了一个字符串”属性“对象参数是由两部分组成的字符串,用花括号括起来的命名空间URI({ }),其次是本地名称。如果将有一个空的URI,那么字符串对象只包含本地名称。应用程序可以安全地检查一个非空URI通过测试看看名称的第一个字符是一个“{”字符。
例如,如果一个URI和本地从<< XYZ元素定义了名称:foo xmlns:XYZ =“http:/ / XYZ。foo。COM /亚/巴兹.html”/>,然后合格的名称将是“{ HTTP:/ / XYZ。foo。COM /亚/巴兹HTML } foo”。请注意前缀丢失了。
结果树流序列化可以与Transformer.setOutputProperties(java.util.Properties)
和Transformer.setOutputProperty(java.lang.String, java.lang.String)
方法控制。这些属性仅适用于流的结果,他们有没有效果时,其结果是一个DOM或SAX事件流。
那场比赛的XSLT specification for xsl:output attributes可以从OutputKeys
类引用字符串。其他字符串可以被指定为。如果变压器不识别输出的关键,一个IllegalArgumentException
抛出,除非关键的名字是namespace qualified。输出的密钥名称是命名空间限定的,尽管它们可能会被一些实现忽略,但它们总是被允许的。
如果所有的理想是源于一个结果的简单的身份转换,然后TransformerFactory
提供无参数的TransformerFactory.newTransformer()
方法。此方法创建一个变压器,有效地将源复制到结果中。这种方法可以用来创建一个DOM或SAX事件创建一个XML或HTML DOM或SAX事件流。
转换中的“转换”接口抛出三种特殊的异常。一个TransformerFactoryConfigurationError
平行于FactoryConfigurationError
,及时引发的transformerfactory配置存在的问题。此错误通常会被当转换工厂类指定“javax. XML。变换。transformerfactory”系统属性不能被发现或实例化。
一个TransformerConfigurationException
可能抛出如果因为任何原因,变压器不能创建。一个transformerconfigurationexception可能如果在转换指令语法错误抛出,例如当TransformerFactory.newTransformer(javax.xml.transform.Source)
叫做。
TransformerException
是一般例外一个转型过程中出现的。变压器异常可能把另一个例外,如果任何的TransformerException.printStackTrace()
方法调用它,它会产生一个列表的堆栈转储,从最新的。变压器异常也提供了一个SourceLocator
对象表示在源树或变换指令错误发生。TransformerException.getMessageAndLocation()
可谓与位置信息得到一个错误信息,并TransformerException.getLocationAsString()
可谓得到公正的位置的字符串。
变换的警告和错误发送到ErrorListener
,此时应用可能会报告错误或警告,并决定把一个非致命错误的异常
。的ErrorListener
可能通过设置,都与转换指令语法错误的错误报告TransformerFactory.setErrorListener(javax.xml.transform.ErrorListener)
,或通过Transformer.setErrorListener(javax.xml.transform.ErrorListener)
报告在转型过程中出现的错误。在对象的ErrorListener
永远有效,non-null
,是否设置的应用程序或由处理器提供的默认实现。由处理器提供的默认实现将所有报告和错误警告System.err
不抛出任何异常
s。应用强烈鼓励登记和使用ErrorListener
s确保适当的行为的警告和错误。
该API提供了引用在样式表的指示或在转换中被调用的应用程序URI的方式解决。这可以通过创建一个类实现的URIResolver
接口完成,其方法之一,URIResolver.resolve(java.lang.String, java.lang.String)
,和使用这类设置的转换指令或TransformerFactory.setURIResolver(javax.xml.transform.URIResolver)
或Transformer.setURIResolver(javax.xml.transform.URIResolver)
URI分辨率变换。的URIResolver.resolve
方法需要两个字符串参数,发现在样式表的URI指令或内置的转换过程的一部分,和的基URI对第一个参数是绝对需要绝对URI。返回的Source
对象必须通过变压器可以使用,在其实现的功能说明。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.