- Subclases conocidas directas:
SAXTransformerFactory
public abstract class TransformerFactory
extends Object
Se puede utilizar una instancia de TransformerFactory para crear Transformer
y Templates
objetos.
La propiedad del sistema que determina qué implementación de fábrica crear se denomina "javax.xml.transform.TransformerFactory"
. Esta propiedad nombra una subclase concreta del TransformerFactory
clase abstracta. Si la propiedad no está definida, se utiliza una plataforma predeterminada.
- Ya que:
- 1,5
Resumen del constructor
Modificador | Constructor | Descripción |
---|---|---|
protected |
TransformerFactory() |
El constructor predeterminado está protegido a propósito. |
Resumen del método
Modificador y tipo | Método | Descripción |
---|---|---|
abstract Source |
getAssociatedStylesheet(Source source, |
Obtenga las especificaciones de la hoja de estilo asociadas con el XML Source documento a través del instrucción de procesamiento de hoja de estilo xml que coincidan con los criterios dados. |
abstract Object |
getAttribute(String name) |
Permite al usuario recuperar atributos específicos de la implementación subyacente. |
abstract ErrorListener |
getErrorListener() |
Obtenga el controlador de eventos de error para TransformerFactory. |
abstract boolean |
getFeature(String name) |
Busque el valor de una característica. |
abstract URIResolver |
getURIResolver() |
Obtenga el objeto que se utiliza de forma predeterminada durante la transformación para resolver los URI utilizados en document (), xsl: import o xsl: include. |
static TransformerFactory |
newDefaultInstance() |
Crea una nueva instancia del TransformerFactory implementación predeterminada del sistema incorporada. |
static TransformerFactory |
newInstance() |
Obtenga una nueva instancia de TransformerFactory . |
static TransformerFactory |
newInstance(String factoryClassName, |
Obtenga una nueva instancia de TransformerFactory del nombre de la clase de fábrica. |
abstract Templates |
newTemplates(Source source) |
Procese la fuente en un objeto de plantillas, que es una representación compilada de la fuente. |
abstract Transformer |
newTransformer() |
Crear un nuevo Transformer que realiza una copia del Source al Result , es decir, el “transformación de identidad“. |
abstract Transformer |
newTransformer(Source source) |
Procesar el Source en un Transformer Object . |
abstract void |
setAttribute(String name, |
Permite al usuario establecer atributos específicos en la implementación subyacente. |
abstract void |
setErrorListener(ErrorListener listener) |
Establezca el detector de eventos de error para TransformerFactory, que se utiliza para el procesamiento de instrucciones de transformación, y no para la transformación en sí. |
abstract void |
setFeature(String name, |
Establecer una función para esto TransformerFactory y Transformer s o Template s creado por esta fábrica. |
abstract void |
setURIResolver(URIResolver resolver) |
Establezca un objeto que se utilice de forma predeterminada durante la transformación para resolver los URI utilizados en document (), xsl: import o xsl: include. |
Métodos declarados en la clase java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Detalles del constructor
El constructor predeterminado está protegido a propósito.
Detalles del método
newDefaultInstance
publicstaticTransformerFactorynewDefaultInstance()
Crea una nueva instancia del TransformerFactory
implementación predeterminada del sistema incorporada.
- Devoluciones:
- Una nueva instancia del
TransformerFactory
implementación predeterminada del sistema incorporada. - Ya que:
- 9
nueva instancia
publicstaticTransformerFactorynewInstance()throwsTransformerFactoryConfigurationError
Obtenga una nueva instancia de TransformerFactory
. Este método estático crea una nueva instancia de fábrica.
Este método utiliza el siguiente procedimiento de búsqueda ordenada para determinar la TransformerFactory
clase de implementación para cargar:
- Utilizar el
javax.xml.transform.TransformerFactory
propiedad del sistema. -
Utilice el archivo de configuración “jaxp.properties”. El archivo está en estándar
Properties
formato y normalmente se encuentra en elconf
directorio de la instalación de Java. Contiene el nombre completo de la clase de implementación y la clave es la propiedad del sistema definida anteriormente.La implementación de JAXP lee el archivo jaxp.properties solo una vez y sus valores se almacenan en caché para uso futuro. Si el archivo no existe cuando se hace el primer intento de leerlo, no se realizan más intentos para verificar su existencia. No es posible cambiar el valor de ninguna propiedad en jaxp.properties después de que se haya leído por primera vez.
-
Utilice la función de carga del proveedor de servicios, definida por el
ServiceLoader
class, para intentar localizar y cargar una implementación del servicio utilizando el mecanismo de carga predeterminado: la función de carga del proveedor de servicios utilizará el cargador de clases de contexto del hilo actual para intentar cargar el servicio. Si el cargador de clases de contexto es nulo, se utilizará el cargador de clases del sistema. -
De lo contrario, se devuelve la implementación predeterminada del sistema.
Una vez que una aplicación ha obtenido una referencia a un TransformerFactory
puede usar la fábrica para configurar y obtener instancias de transformadores.
- Devoluciones:
- nueva instancia de TransformerFactory, nunca nula.
- Lanza:
TransformerFactoryConfigurationError
– Lanzado en caso de error de configuración del servicio o si la implementación no está disponible o no se puede instanciar.
nueva instancia
publicstaticTransformerFactory newInstance(String factoryClassName,ClassLoader classLoader)throwsTransformerFactoryConfigurationError
Obtenga una nueva instancia de TransformerFactory
del nombre de la clase de fábrica. Esta función es útil cuando hay varios proveedores en la ruta de clases. Le da más control a la aplicación, ya que puede especificar qué proveedor debe cargarse.
Una vez que una aplicación ha obtenido una referencia a un TransformerFactory
puede usar la fábrica para configurar y obtener instancias de transformadores.
Sugerencia para la resolución de problemas
Establecer el jaxp.debug
La propiedad del sistema hará que este método imprima muchos mensajes de depuración para System.err
sobre lo que está haciendo y hacia dónde está mirando.
Si tiene problemas, intente:
java -Djaxp.debug=1 YourProgram ....
- Parámetros:
factoryClassName
– nombre de clase de fábrica totalmente calificado que proporciona implementación dejavax.xml.transform.TransformerFactory
.classLoader
–ClassLoader
utilizado para cargar la clase de fábrica. Sinull
ActualThread
El cargador de clases de contexto se utiliza para cargar la clase de fábrica.- Devoluciones:
- nueva instancia de TransformerFactory, nunca nula.
- Lanza:
TransformerFactoryConfigurationError
– sifactoryClassName
esnull
, o la clase de fábrica no se puede cargar, instanciar.- Ya que:
- 1,6
- Ver también:
newInstance()
nuevo transformador
publicabstractTransformer newTransformer(Source source)throwsTransformerConfigurationException
Procesar el Source
en un Transformer
Object
. los Source
es un documento XSLT que cumple con Transformaciones XSL (XSLT) Versión 1.0. Se debe tener cuidado de no utilizar este Transformer
en múltiples Thread
s ejecutándose al mismo tiempo. Diferente TransformerFactories
puede ser utilizado al mismo tiempo por diferentes Thread
s.
- Parámetros:
source
–Source
del documento XSLT utilizado para crearTransformer
. Ejemplos de XMLSource
s incluyenDOMSource
,SAXSource
, yStreamSource
.- Devoluciones:
- A
Transformer
objeto que se puede utilizar para realizar una transformación en un soloThread
, Nuncanull
. - Lanza:
TransformerConfigurationException
– Lanzado si hay errores al analizar elSource
o no es posible crear unTransformer
ejemplo.- Ver también:
- Transformaciones XSL (XSLT) Versión 1.0
nuevo transformador
publicabstractTransformernewTransformer()throwsTransformerConfigurationException
Crear un nuevo Transformer
que realiza una copia del Source
al Result
, es decir, el “transformación de identidad“.
- Devoluciones:
- Un objeto Transformer que se puede usar para realizar una transformación en un solo hilo, nunca nulo.
- Lanza:
TransformerConfigurationException
– Cuando no es posible crear unTransformer
ejemplo.
newTemplates
publicabstractTemplates newTemplates(Source source)throwsTransformerConfigurationException
Procese la fuente en un objeto de plantillas, que es una representación compilada de la fuente. Este objeto de plantillas se puede utilizar simultáneamente en varios subprocesos. La creación de un objeto Templates permite a TransformerFactory realizar una optimización detallada del rendimiento de las instrucciones de transformación, sin penalizar la transformación en tiempo de ejecución.
- Parámetros:
source
– Un objeto que contiene una URL, flujo de entrada, etc.- Devoluciones:
- Un objeto Templates que se puede utilizar con fines de transformación, nunca
null
. - Lanza:
TransformerConfigurationException
– Cuando falla el análisis para construir el objeto Plantillas.
getAssociatedStylesheet
publicabstractSource getAssociatedStylesheet(Source source,String media,String title,String charset)throwsTransformerConfigurationException
Obtenga las especificaciones de la hoja de estilo asociadas con el XML Source
documento a través del instrucción de procesamiento de hoja de estilo xml que coincidan con los criterios dados. Tenga en cuenta que es posible devolver varias hojas de estilo, en cuyo caso se aplican como si fueran una lista de importaciones o cascadas en una sola hoja de estilo.
- Parámetros:
source
– El documento fuente XML.media
– El atributo de medios que se va a comparar. Puede ser nulo, en cuyo caso se utilizarán las plantillas preferidas (es decir, alternate = no).title
– El valor del atributo de título que debe coincidir. Puede ser nulo.charset
– El valor del atributo charset para que coincida. Puede ser nulo.- Devoluciones:
- A
Source
Object
apto para pasar alTransformerFactory
. - Lanza:
TransformerConfigurationException
– UnException
se lanza si se produce un error durante el análisis delsource
.- Ver también:
- Asociación de hojas de estilo con documentos XML Versión 1.0
setURIResolver
publicabstractvoid setURIResolver(URIResolver resolver)
Establezca un objeto que se utilice de forma predeterminada durante la transformación para resolver los URI utilizados en document (), xsl: import o xsl: include.
- Parámetros:
resolver
– Un objeto que implementa la interfaz URIResolver, o nulo.
getURIResolver
publicabstractURIResolvergetURIResolver()
Obtenga el objeto que se utiliza de forma predeterminada durante la transformación para resolver los URI utilizados en document (), xsl: import o xsl: include.
- Devoluciones:
- El URIResolver que se configuró con setURIResolver.
setFeature
publicabstractvoid setFeature(String name,boolean value)throwsTransformerConfigurationException
Establecer una función para esto TransformerFactory
y Transformer
s o Template
s creado por esta fábrica.
Los nombres de las funciones están completamente calificados URI
s. Las implementaciones pueden definir sus propias características. Un TransformerConfigurationException
se lanza si esto TransformerFactory
o la Transformer
s o Template
Los s que crea no pueden admitir la función. Es posible que un TransformerFactory
para exponer un valor de característica pero no poder cambiar su estado.
Todas las implementaciones son necesarias para admitir XMLConstants.FEATURE_SECURE_PROCESSING
característica. Cuando la característica es:
true
: la implementación limitará el procesamiento XML para ajustarse a los límites de implementación y se comportará de manera segura según lo definido por la implementación. Los ejemplos incluyen la resolución de funciones y hojas de estilo definidas por el usuario. Si el procesamiento de XML está limitado por razones de seguridad, se informará mediante una llamada al registrado.ErrorListener.fatalError(TransformerException exception)
. VersetErrorListener(ErrorListener listener)
.false
: la implementación procesará XML de acuerdo con las especificaciones XML sin tener en cuenta los posibles límites de implementación.
- Parámetros:
name
– Nombre de la función.value
– Es el estado de la característicatrue
ofalse
.- Lanza:
TransformerConfigurationException
– si estoTransformerFactory
o laTransformer
s oTemplate
Los s que crea no pueden admitir esta función.NullPointerException
– Si elname
el parámetro es nulo.
getFeature
publicabstractboolean getFeature(String name)
Busque el valor de una característica.
Los nombres de las funciones están completamente calificados URI
s. Las implementaciones pueden definir sus propias características. false
se devuelve si esto TransformerFactory
o la Transformer
s o Template
Los s que crea no pueden admitir la función. Es posible que un TransformerFactory
para exponer un valor de característica pero no poder cambiar su estado.
- Parámetros:
name
– Nombre de la función.- Devoluciones:
- El estado actual de la función,
true
ofalse
. - Lanza:
NullPointerException
– Si elname
el parámetro es nulo.
setAttribute
publicabstractvoid setAttribute(String name,Object value)
Permite al usuario establecer atributos específicos en la implementación subyacente. Un atributo en este contexto se define como una opción que proporciona la implementación. Un IllegalArgumentException
se lanza si la implementación subyacente no reconoce el atributo.
Todas las implementaciones que implementan JAXP 1.5 o posterior son necesarias para admitir el XMLConstants.ACCESS_EXTERNAL_DTD
y XMLConstants.ACCESS_EXTERNAL_STYLESHEET
propiedades.
-
El acceso a DTD externas en el archivo de origen está restringido a los protocolos especificados por el
XMLConstants.ACCESS_EXTERNAL_DTD
propiedad. Si se deniega el acceso durante la transformación debido a la restricción de esta propiedad,TransformerException
será arrojado porTransformer.transform(Source, Result)
.El acceso a DTD externas en la hoja de estilo está restringido a los protocolos especificados por el
XMLConstants.ACCESS_EXTERNAL_DTD
propiedad. Si se deniega el acceso durante la creación de un nuevo transformador debido a la restricción de esta propiedad,TransformerConfigurationException
será arrojado por elnewTransformer(Source)
método.El acceso a la referencia externa establecida por la instrucción de procesamiento de la hoja de estilo, el elemento Importar e Incluir está restringido a los protocolos especificados por el
XMLConstants.ACCESS_EXTERNAL_STYLESHEET
propiedad. Si se deniega el acceso durante la creación de un nuevo transformador debido a la restricción de esta propiedad,TransformerConfigurationException
será arrojado por elnewTransformer(Source)
método.El acceso al documento externo a través de la función de documento XSLT está restringido a los protocolos especificados por la propiedad. Si se deniega el acceso durante la transformación debido a la restricción de esta propiedad,
TransformerException
será arrojado por elTransformer.transform(Source, Result)
método.
- Parámetros:
name
– El nombre del atributo.value
– El valor del atributo.- Lanza:
IllegalArgumentException
– Cuando la implementación no reconoce el atributo.
getAttribute
publicabstractObject getAttribute(String name)
Permite al usuario recuperar atributos específicos de la implementación subyacente. Un IllegalArgumentException
se lanza si la implementación subyacente no reconoce el atributo.
- Parámetros:
name
– El nombre del atributo.- Devoluciones:
- valor El valor del atributo.
- Lanza:
IllegalArgumentException
– Cuando la implementación no reconoce el atributo.
setErrorListener
publicabstractvoid setErrorListener(ErrorListener listener)
Establezca el detector de eventos de error para TransformerFactory, que se utiliza para el procesamiento de instrucciones de transformación, y no para la transformación en sí. Un IllegalArgumentException
se lanza si el ErrorListener
el oyente es null
.
- Parámetros:
listener
– El nuevo oyente de errores.- Lanza:
IllegalArgumentException
– Cuandolistener
esnull
getErrorListener
publicabstractErrorListenergetErrorListener()
Obtenga el controlador de eventos de error para TransformerFactory.
- Devoluciones:
- El controlador de errores actual, que nunca debe ser nulo.