Altova StyleVision 2023 Enterprise Edition

A un método de instancia se le pasa un objeto Java como primer argumento de la llamada a método. Dicho objeto Java suele crearse usando una función de extensión (por ejemplo, una llamada a un constructor) o un parámetro o una variable de hoja de estilos. Un ejemplo de código XSLT de este tipo sería:

 

<xsl:stylesheet version="1.0" exclude-result-prefixes="date"

  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

  xmlns:date="java:java.util.Date"

  xmlns:jlang="java:java.lang"> 

  <xsl:param name="CurrentDateselect="date:new()"/>

  <xsl:template match="/">

      <enrollment institution-id="Altova School" 
                date="{date:toString(\$CurrentDate)}" 

                type="{jlang:Object.toString(jlang:Object.getClass( date:new() ))}">

      </enrollment>

  </xsl:template>

</xsl:stylesheet>

 

En el ejemplo anterior el valor del nodo enrollment/@type se crea de la siguiente manera:

 

1.Se crea un objeto con un constructor para la clase java.util.Date (con el constructor date:new()).

2.Este objeto Java se pasa como argumento del método jlang.Object.getClass.

3.El objeto que obtiene el método getClass se pasa como argumento al método jlang.Object.toString.

 

El resultado (el valor de @type) será una cadena con este valor: java.util.Date.

 

En teoría, un campo de instancia es diferente de un método de instancia porque al campo de instancia no se pasa como argumento un objeto Java propiamente dicho. En su lugar se pasa como argumento un parámetro o variable. Sin embargo, el parámetro o la variable puede contener el valor devuelto por un objeto Java. Por ejemplo, el parámetro CurrentDate toma el valor que devolvió un constructor para la clase java.util.Date. Este valor se pasa después como argumento al método de instancia date:toString a fin de suministrar el valor de /enrollment/@date.

 

© 2017-2023 Altova GmbH