El uso de Ant es relativamente sencillo, si alguna vez a programado en C, Ant es considerado el Make de Java; através de diversas secciones se definen acciones que deben ser llevadas acabo las cuales pueden incluir dependencias, creaciones y/o eliminación de formatos.
Las estructuras disponibles en Ant son muy poderosas ya que permiten ejecución de tareas extensas através de comandos simples; el archivo principal de Ant que puede ser considerado medular es llamado build.xml, dentro de éste se describen las ejecuciones que deben ser llevadas acabo por Ant.
A continuación se describe el contenido de este archivo para transformar XML através de "XSL Stylesheets" a diversos formatos:
El siguiente archivo es utilizado con Ant para la generación de diversos
documentos generados a partir de XML.
En el directorio donde coloque este archivo (build.xml), asegúrese
de generar un directorio llamado
|
<?xml version="1.0"?> <project default="init" basedir="."> <!-- La sección anterior indica que se trata de un archivo XML Se abre el elemento project el cual indica que la fuente de todo documento será el directorio actual. --> <!-- ======================================================== --> <!-- IDENTIFICAR CLASSPATH --> <!-- Se define la ubicación de los archivos que --> <!-- que deben ser incluidos al compilar --> <!-- En este caso se apunta hacia un directorio que --> <!-- que contiene los archivos JAR de Xalan, --> <!-- Xerces y Fop --> <!-- ======================================================== --> <path id="classpath"> <fileset dir="./lib"> <include name="*.jar"/> </fileset> </path> <!-- ========================================================= --> <!-- PROPIEDADES DE INICIALIZACION --> <!-- Esta primer tarea (target) llamado init es ejecutada --> <!-- al arranque de Ant, esto es , con simplemente --> <!-- ejecutar el comando ant se invocan sus --> <!-- acciones, que en este caso son simplemente de --> <!-- imprimir un mensaje y realizar tareas de configuración --> <!-- ========================================================= --> <target name="init"> <tstamp/> <property name="nombre" value="Transformacion de Documentos"/> <echo message="------------------- ${nombre} ----------------"/> <property name="debug" value="on"/> <property name="optimize" value="off"/> <property name="deprecation" value="off"/> <property name="build.compiler" value="modern"/> <property name="target.vm" value="1.4"/> </target> <!-- ====================================================== --> <!-- TRANSFORMAR XML A HTML --> <!-- Esta tarea (target) produce un documento HTML --> <!-- a partir de los archivos indicados, sus parámetros --> <!-- no merecen mucha explicación, son lo --> <!-- suficientemente descriptivos --> <!-- ====================================================== --> <target name="html" depends="init"> <echo message="-------------- Transformando XML a HTML --------------"/> <xslt in="productos.xml" style="productos2HTML.xsl" out="productos.html" destdir="."/> </target> <!-- ====================================================== --> <!-- TRANSFORMAR XML A WML --> <!-- En esta tarea (target) se genera un archivo para --> <!-- WML utilizado en aparatos inalámbricos, sus --> <!-- parámetros son idénticos a los definidos --> <!-- anteriormente para HTML --> <!-- ====================================================== --> <target name="wml" depends="init"> <echo message="-------------- Transformando XML a WML --------------"/> <xslt in="productos.xml" style="productos2WML.xsl" out="productos.wml" destdir="."/> </target> <!-- =======================================================--> <!-- TRANSFORMAR XML A PDF --> <!-- La primer sección de esta tarea (target) no dista --> <!-- mucho de las anteriores, sin embargo este primer --> <!-- paso solo genera un archivo FOP, dicho archivo debe --> <!-- ser pasado por la conversión FOP a PDF , esto se --> <!-- realiza através de un taskdef el cual es --> <!-- aplicado al directamente al archivo en cuestión --> <!-- =======================================================--> <target name="pdf" depends="init"> <echo message="-------------- Transformando XML a PDF --------------"/> <xslt in="productos.xml" style="productos2PDF.xsl" out="productos.fo" destdir="."/> <taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop"> <classpath refid="classpath"/> </taskdef> <fop fofile="productos.fo" outfile="./productos.pdf"/> </target> <!-- ============================================================= --> <!-- TRANSFORMAR TODO --> <!-- Esta tarea (target) automatiza la creación de los --> <!-- pasos anteriores, agregando los valores de tareas (targets) --> <!-- al parámetro depends --> <!-- ============================================================= --> <target name="todo" depends="html,wml,pdf"> </target> <!-- ============================================================= --> <!-- LIMPIAR TODO --> <!-- Esta tarea (target) simplemente elimina todos los archivos --> <!-- que pudieron ser creados mediante este archivo de Ant --> <!-- ============================================================= --> <target name="limpiar" depends="init" > <delete file="productos.pdf"/> <delete file="productos.fo"/> <delete file="productos.wml"/> <delete file="productos.html"/> </target> <!-- Se cierra el elemento proyecto --> </project> |
template
, XPath, Condicionales y Ciclos en XSL.