JavaTM 2 Platform
Standard Ed. 6

javax.xml.transform
類別 TransformerFactory

java.lang.Object
  繼承者 javax.xml.transform.TransformerFactory
直接已知子類別:
SAXTransformerFactory

public abstract class TransformerFactory
extends Object

TransformerFactory 實例可用於創建 TransformerTemplates 物件。

確定要創建的哪一個 Factory 實作被命名為 "javax.xml.transform.TransformerFactory" 的系統屬性。此屬性命名了 TransformerFactory 抽象類別的一個具體子類別。如果未定義此屬性,則使用平臺預設的屬性。


建構子摘要
protected TransformerFactory()
          預設建構子受到有意保護。
 
方法摘要
abstract  Source getAssociatedStylesheet(Source source, String media, String title, String charset)
          通過與給定標準比對的 xml 樣式表的處理指令 獲取與 XML Source 文檔關聯的樣式表規範(或多個規範)。
abstract  Object getAttribute(String name)
          允許使用者在底層實作上檢索指定屬性。
abstract  ErrorListener getErrorListener()
          獲取 TransformerFactory 的錯誤事件處理程序。
abstract  boolean getFeature(String name)
          尋找功能值。
abstract  URIResolver getURIResolver()
          獲取在轉換過程中預設用於解析 document()、xsl:import 或 xsl:include 中所使用的 URI 的物件。
static TransformerFactory newInstance()
          獲取 TransformerFactory 的新實例。
static TransformerFactory newInstance(String factoryClassName, ClassLoader classLoader)
          根據類別名稱獲得一個新 TransformerFactory 實例。
abstract  Templates newTemplates(Source source)
          將 Source 處理為 Templates 物件,後者是源的編譯後表示形式。
abstract  Transformer newTransformer()
          創建執行從 SourceResult 的複製的新 Transformer
abstract  Transformer newTransformer(Source source)
          將 Source 處理為 Transformer Object
abstract  void setAttribute(String name, Object value)
          允許使用者設置底層實作上的指定屬性。
abstract  void setErrorListener(ErrorListener listener)
          設置此 TransformerFactory 的錯誤事件偵聽器,它將用於轉換指令的處理,而不用於轉換本身。
abstract  void setFeature(String name, boolean value)
          設置通過此處理器創建的此 TransformerFactoryTransformerTemplate 的功能。
abstract  void setURIResolver(URIResolver resolver)
          設置在轉換過程中預設用於解析 document()、xsl:import 或 xsl:include 中所使用的 URI 的物件。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

TransformerFactory

protected TransformerFactory()
預設建構子受到有意保護。

方法詳細資訊

newInstance

public static TransformerFactory newInstance()
                                      throws TransformerFactoryConfigurationError

獲取 TransformerFactory 的新實例。此靜態方法創建新的處理器實例。此方法使用以下順序的尋找程序來確定要載入的 TransformerFactory 實作類別:

在應用程序已獲取對 TransformerFactory 的參考後,它可以使用處理器來配置和獲取轉換器實例。

返回:
新的 TransformerFactory 實例,永遠不能為 null。
拋出:
TransformerFactoryConfigurationError - 如果實作不可用或不能被實例化。

newInstance

public static TransformerFactory newInstance(String factoryClassName,
                                             ClassLoader classLoader)
                                      throws TransformerFactoryConfigurationError

根據類別名稱獲得一個新 TransformerFactory 實例。當類別路徑中有多個提供者時此功能很有用。它給了應用程序更多的控制權,因為它能指定應該載入哪個提供者。

在應用程序已獲取對 TransformerFactory 的參考後,它可以使用處理器來配置和獲取轉換器實例。

疑難解答提示

設置 jaxp.debug 系統屬性將導致此方法將許多除錯訊息列印到 System.err,以說明其執行的操作以及在何處尋找這些操作。

如有問題,請嘗試:

 java -Djaxp.debug=1 YourProgram ....
 

參數:
factoryClassName - 完全限定處理器類別名稱,提供 javax.xml.transform.TransformerFactory 的實作。
classLoader - 用來載入處理器類別的 ClassLoader。如果為 null,則使用當前 Thread 的上下文 classLoader 來載入處理器類別。
返回:
新 TransformerFactory 實例,永遠不能為 null。
拋出:
TransformerFactoryConfigurationError - 如果 factoryClassNamenull,或者不能載入或實例化處理器類別。
從以下版本開始:
1.6
另請參見:
newInstance()

newTransformer

public abstract Transformer newTransformer(Source source)
                                    throws TransformerConfigurationException

Source 處理為 Transformer ObjectSource 是遵守 XSL Transformations (XSLT) Version 1.0 的 XSLT 文檔。必須注意的是,在多個 Thread 共時運行中不能使用此 Transformer。不同 Thread 可以共時使用不同的 TransformerFactories

參數:
用於創建 - Transformer 的 XSLT 文檔的源 Source。XML Source 的範例包括 DOMSourceSAXSourceStreamSource
返回:
可用於在單個 Thread 中執行轉換的 Transformer 物件,永遠不能返回 null
拋出:
TransformerConfigurationException - 如果當解析 Source 時發生錯誤,或不能創建 Transformer 實例。
另請參見:
XSL Transformations (XSLT) Version 1.0

newTransformer

public abstract Transformer newTransformer()
                                    throws TransformerConfigurationException

創建執行從 SourceResult 的複製的新 Transformer。即 "identity transform"。

返回:
可用於在單個進程中執行轉換的 Transformer 物件,永遠不能返回 null。
拋出:
TransformerConfigurationException - 當不能創建 Transformer 實例時。

newTemplates

public abstract Templates newTemplates(Source source)
                                throws TransformerConfigurationException
將 Source 處理為 Templates 物件,後者是源的編譯後表示形式。然後此 Templates 物件可由多個執行緒共時使用。創建 Templates 物件允許 TransformerFactory 執行轉換指令的詳細性能優化,而不影響運行時轉換。

參數:
source - 保持 URL、輸入串流等的物件。
返回:
可用於轉換目的的 Templates 物件,永遠不能返回 null
拋出:
TransformerConfigurationException - 當對建構 Templates 物件進行解析失敗時。

getAssociatedStylesheet

public abstract Source getAssociatedStylesheet(Source source,
                                               String media,
                                               String title,
                                               String charset)
                                        throws TransformerConfigurationException

通過與給定標準比對的 xml 樣式表的處理指令 獲取與 XML Source 文檔關聯的樣式表規範(或多個規範)。注意,可能返回幾個樣式表,在這種情況下它們作為導入列表或單個樣式表中的層疊列表來使用。

參數:
source - XML 源文檔。
media - 要比對的介質屬性。可以為 null,此時將使用首選的 template(即 alternate = no)。
title - 要比對的標題屬性值。可以為 null。
charset - 要比對的字元集屬性值。可以為 null。
返回:
適合傳遞給 TransformerFactorySource Object
拋出:
TransformerConfigurationException - 如果 source 的解析過程中發生錯誤,則拋出 Exception
另請參見:
與 1.0 版本的 XML 文檔關聯的樣式表

setURIResolver

public abstract void setURIResolver(URIResolver resolver)
設置在轉換過程中預設用於解析 document()、xsl:import 或 xsl:include 中所使用的 URI 的物件。

參數:
resolver - 實作 URIResolver 介面的物件,或為 null。

getURIResolver

public abstract URIResolver getURIResolver()
獲取在轉換過程中預設用於解析 document()、xsl:import 或 xsl:include 中所使用的 URI 的物件。

返回:
通過 setURIResolver 設置的 URIResolver。

setFeature

public abstract void setFeature(String name,
                                boolean value)
                         throws TransformerConfigurationException

設置通過此處理器創建的此 TransformerFactoryTransformerTemplate 的功能。

功能名稱是完全限定的 URI。實作可以定義它們自己的功能。如果它創建的此 TransformerFactoryTransformerTemplate 不支持該功能,則拋出 TransformerConfigurationExceptionTransformerFactory 可以公開功能值,但不能更改其狀態。

所有實作必須支持 XMLConstants.FEATURE_SECURE_PROCESSING 功能。當功能為以下情況時:

參數:
name - 功能名稱。
value - 功能狀態為 truefalse
拋出:
TransformerConfigurationException - 如果它創建的此 TransformerFactoryTransformerTemplate 不支持此功能。
NullPointerException - 如果 name 參數為 null。

getFeature

public abstract boolean getFeature(String name)
尋找功能值。

功能名稱為完全限定的 URI。實作可以定義其自己的功能。如果其創建的 TransformerFactoryTransformerTemplate 不支持該功能,則返回 falseTransformerFactory 可以公開功能值,但不能更改其狀態。

參數:
name - 功能名稱。
返回:
功能的當前狀態,truefalse
拋出:
NullPointerException - 如果 name 參數為 null。

setAttribute

public abstract void setAttribute(String name,
                                  Object value)
允許使用者設置底層實作上的指定屬性。此上下文中的屬性定義為實作所提供的一個選項。如果底層實作不識別該屬性,則拋出 IllegalArgumentException

參數:
name - 屬性名稱。
value - 屬性值。
拋出:
IllegalArgumentException - 當實作不能識別屬性時。

getAttribute

public abstract Object getAttribute(String name)
允許使用者在底層實作上檢索指定屬性。如果底層實作不識別該屬性,則拋出 IllegalArgumentException

參數:
name - 屬性名稱。
value - 屬性值。
拋出:
IllegalArgumentException - 當實作不能識別屬性時。

setErrorListener

public abstract void setErrorListener(ErrorListener listener)
設置此 TransformerFactory 的錯誤事件偵聽器,它將用於轉換指令的處理,而不用於轉換本身。如果 ErrorListener 偵聽器為 null,則拋出 IllegalArgumentException

參數:
listener - 新錯誤偵聽器。
拋出:
IllegalArgumentException - 當 listenernull 時。

getErrorListener

public abstract ErrorListener getErrorListener()
獲取 TransformerFactory 的錯誤事件處理程序。

返回:
當前錯誤處理程序,它永遠不應為 null。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only