La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Álvaro Salido Fernández

Presentaciones similares


Presentación del tema: "Álvaro Salido Fernández"— Transcripción de la presentación:

1 Álvaro Salido Fernández
XML CREATIVO Álvaro Salido Fernández

2 ¿Qué era eso del XML? Metalenguaje Lenguaje de marcas = tags
reglas define Metalenguaje Lenguaje de marcas = tags Estructura : tags, atributos Datos no XML : Entity Formato no XML: Notation dar Formato a XML: Transformaciones de XML a HTML : XSL XSL: especificación W3C para aplicar formato a XML lenguajes

3 Objetos y XML Objeto es un espécimen de una clase.
Clase es un conjunto de atributos y métodos propios generales. Objeto tiene algunos atributos y métodos de su clase. XML permite Formatear objetos.

4 Transformaciones XSL Xpath  Rutas de directorios Xquery  MySQL
XSL-FO  CSS 1º Crear una hoja de estilos XSL (plantillas) 2º Crear plantilla XSL : una por cada fragmento a formatear Match “nodo a partir del cual se aplica la transformación” Path : rutas de nodos, texto y atributos Query : selects Fo : formato de cada plantilla : margin, padding, etc…

5 Estructura XSL

6 Convertir XML en PDF utilizando Doc Book, XSL-FO y FOP
Doc Book: predefine las etiquetas y la estructura de un documento XML para ser Doc Book. Es una DTD predefinida. Artículos divididos en secciones. Libros divididos en capítulos. DTD y esquema. EXTENSIÓN “.xml” SUBLENGUAJE XML

7 <. ELEMENT article (((title|titleabbrev|subtitle). , (info)
<!ELEMENT article (((title|titleabbrev|subtitle)*, (info)?), (glossary|bibliography|index|toc|appendix|acknowledgements|colophon)*, (((itemizedlist|orderedlist|procedure|simplelist|variablelist|segmentedlist|glosslist|bibliolist|calloutlist|qandaset|example|figure|table|equation|informalexample|informalfigure|informaltable|informalequation|sidebar|blockquote|address|epigraph|mediaobject|screenshot|task|productionset|constraintdef|msgset|screen|literallayout|programlistingco|screenco|programlisting|synopsis|bridgehead|remark|revhistory|indexterm|funcsynopsis|classsynopsis|methodsynopsis|constructorsynopsis|destructorsynopsis|fieldsynopsis|cmdsynopsis|caution|important|note|tip|warning|anchor|para|formalpara|simpara|annotation)+, ((((section)+, (simplesect)*)|(simplesect)+|((sect1)+, (simplesect)*)|(refentry)+))?)|((section)+, (simplesect)*)|(simplesect)+|((sect1)+, (simplesect)*)|(refentry)+), (glossary|bibliography|index|toc|appendix|acknowledgements|colophon)*)> <!ELEMENT title (#PCDATA|inlinemediaobject|remark|superscript|subscript|xref|link|olink|anchor|biblioref|alt|annotation|indexterm|abbrev|acronym|date|emphasis|footnote|footnoteref|foreignphrase|phrase|quote|wordasword|firstterm|glossterm|coref|trademark|productnumber|productname|database|application|hardware|citation|citerefentry|citetitle|citebiblioid|author|person|personname|org|orgname|editor|jobtitle|replaceable|package|parameter|termdef|nonterminal|systemitem|option|optional|property|inlineequation|tag|markup|token|symbol|literal|code|constant| |uri|guiicon|guibutton|guimenuitem|guimenu|guisubmenu|guilabel|menuchoice|mousebutton|keycombo|keycap|keycode|keysym|shortcut|accel|prompt|envar|filename|command|computeroutput|userinput|function|varname|returnvalue|type|classname|exceptionname|interfacename|methodname|modifier|initializer|ooclass|ooexception|oointerface|errorcode|errortext|errorname|errortype)*> <!ELEMENT section (((title|titleabbrev|subtitle)*, (info)?), (((itemizedlist|orderedlist|procedure|simplelist|variablelist|segmentedlist|glosslist|bibliolist|calloutlist|qandaset|example|figure|table|equation|informalexample|informalfigure|informaltable|informalequation|sidebar|blockquote|address|epigraph|mediaobject|screenshot|task|productionset|constraintdef|msgset|screen|literallayout|programlistingco|screenco|programlisting|synopsis|bridgehead|remark|revhistory|indexterm|funcsynopsis|classsynopsis|methodsynopsis|constructorsynopsis|destructorsynopsis|fieldsynopsis|cmdsynopsis|caution|important|note|tip|warning|anchor|para|formalpara|simpara|annotation)+, ((((section)+, (simplesect)*)|(simplesect)+|(refentry)+))?)|((section)+, (simplesect)*)|(simplesect)+|(refentry)+), (glossary|bibliography|index|toc)*)>

8 Convertir XML en PDF utilizando Doc Book, XSL-FO y FOP
XSL-FO: lenguaje de objetos de formateo XSL para generar documentos en formato PDF a partir de nuestros documentos XML. Las características de la página. Los párrafos. Las listas. Las tablas. Los enlaces. etc. EXTENSIÓN “.fo” o dentro de una plantilla de XSL

9 XSL-FO Páginas y Regiones

10 XSL-FO Bloques de contenido Output
"Blocks" of content "Flow" into "Pages" of the output media. XSL-FO output is normally nested inside <fo:block> elements, nested inside <fo:flow> elements, nested inside <fo:page-sequence> elements: <fo:page-sequence> <fo:flow flow-name="xsl-region-body"> <fo:block> <!-- Output goes here --> </fo:block> </fo:flow> </fo:page-sequence> Block Area Attributes Blocks are sequences of output in rectangular boxes: <fo:block border-width="1mm"> This block of output will have a one millimeter border around it.

11 Convertir XML en PDF utilizando Doc Book, XSL-FO y FOP
FOP: El FOP (Formatting Object to PDF) es el primer procesador de objetos de formateo XSL que apareció. Empezó a ser desarrollada en solitario por James Tauber pero posteriormente se incorporo al "Apache XML Project" lo que está acelerando su desarrollo. versión: Fop DEV-src.zip que se puede obtener en la siguiente dirección: Prerrequisitos Como ya hemos dicho es una aplicación en Java por lo que para poder utilizarla el único requisito necesario es tener instalado la máquina virtual Java.

12 Convertir XML en PDF utilizando Doc Book, XSL-FO y FOP
A partir de aquí tenemos dos posibilidades: Generar el PDF en dos pasos: Transformar el fichero gastrono.xml el formato XSL-FO mediante la XSLT anterior y cualquier procesador XSLT. Si por ejemplo utilizamos el XT xt articulo.xml articulo.xsl articulo.fo Transformar el resultado a PDF utilizando el FOP como ya sabemos: Fop articulo.fo articulopdf.pdf O generarlo en un único paso utilizando el FOP de la siguiente manera: Fop -xsl articulo.xsl -xml articulo.xml -pdf articulopdf.pdf

13 Usando FOP de Apache para realizar transformaciones
D:\1ASIR\XML\fop-1.1-src\fop- 1.1\src\java\org\apache\fop\tools\anttasks

14 Usando FOP de Apache para realizar transformaciones

15 Resultado

16 ANEXO Proceso Prerequisitos
Como ya hemos dicho es una aplicación en Java por lo que para poder utilizarla el único requisito necesario es tener instalado la máquina virtual Java. basta con el Java 1.1.x o superior. como mínimo la versión del JDK, ya que para las versiones 1.1.x hay algunos ejemplos que dan problemas. Instalación descomprimir el fichero crea una gran cantidad de directorios con todo lo necesario para empezar a trabajar y ver su funcionamiento: ejemplos, documentación, ficheros bat, etc.

17 ANEXO Proceso Funcionamiento
Para probar que todo nos funciona correctamente podemos realizar los siguientes pasos: Dentro de la carpeta raiz del FOP, mediante el intérprete de comandos nos situamos en el archivo fop Si todo el proceso anterior ha funcionado correctamente significara que ya tenemos todo perfectamente instalado para trabajar con el FOP. Y para convertir nuestro documento hola.fo, lo colocamos en el directorio raiz de la aplicación y ejecutamos el fichero Fop.bat de la siguiente manera: Fop hola.fo hola.pdf Lo cual nos genera el siguiente fichero PDF: Hola.fo en formato PDF

18 ANEXO Proceso Pero con la anterior expresión sólo hemos ejecutado la opción más sencilla que nos ofrece la aplicación. También podríamos utilizar el FOP directamente como browser de ficheros XSL-FO. No tendríamos más que ejecutar el comando anterior de la siguiente manera: Fop hola.fo -awt Obteniendo el siguiente resultado: Hola.fo visualizado en browser del FOP. También podríamos convertir al formato MIF, TXT, etc. Para terminar esta sección simplemente un comentario. Es importante que os fijéis que el documento PDF lo hemos generado directamente desde el fichero hola.fo. Para el ejemplo lo he escrito directamente a mano. Pero como ya he dicho anteriormente se trata de un fichero XML que podríamos haber generado desde otro fichero XML mediante una XSLT. Es decir, la conversión de nuestro XML original a PDF hubiese constado de dos partes: Conversión XML original a XSL-FO mediante XSLT y un procesador XSLT. Conversión de XSL-FO a PDF mediante el procesador FOP. El FOP nos permite también realizar esta acción en un único paso (el FOP lleva incorporado el procesador XSLT Xalan). Si suponemos que nuestro documento inicial se llama hola.xml, mediante la siguiente instrucción lo hubiesemos podido realizar: Fop -xsl hola.xsl -xml hola.xml -pdf hola.pdf

19 Fuentes de inspiración
XML : Manual Imprescindible. Juan Diego Gutiérrez Gallardo. Anaya Multimedia (2005) fo_y_fop_73


Descargar ppt "Álvaro Salido Fernández"

Presentaciones similares


Anuncios Google