4.3. Transformant DocBook

4.3.1. Validar el document DocBook.
4.3.2. Transformant a codi HTML.

4.3.1. Validar el document DocBook.

Abans de començar el procés de transformació, ens hem d'assegurar que treballem amb un document font que siga correcte, per tal que les fulles d'estil puguen aplicar les transformacions sense cap problema. És condició necessària que el document siga XML ben format, és a dir que compleixca amb totes les regles definides a la recomanació W3C per al llenguatge XML. Si l'analitzador encarregat de llegir el document XML i passar la informació en forma d'arbre al processador troba algun error, llançarà una excepció i s'aturarà el procés. Però a més de treballar amb un document ben format, aquest ha de ser vàlid respecte al esquema associat, ha de seguir l'estructura i utilitzar les etiquetes allí definits.

Com que els processadors XSLT no validen el document, és convenient realitzar aquesta tasca abans de començar el procés de transformació, ja que les fulles d'estil esperen trobar documents vàlids i ben formats.

En el cas que el document estiga ben format però no siga vàlid, l'analitzador no trobarà cap error i la transformació continuarà amb normalitat, però les fulles d'estil es poden trobar amb una situació inesperada i el resultat pot ser un codi no vàlid i amb errors.

Existeixen moltes opcions per a realitzar aquesta tasca, el processador Xalan n'implementa una en l'arxiu xalansamples.jarque haurem d'incloure al CLASSPATH.

Per a validar amb Xalan només hem d'escriure a la línia de comandaments el següent:

Exemple 4.5. Validar un document XML amb Xalan.

java Validate arxiu.xml


El document XML ha de tenir la definició DOCTYPE correctament implementada, indicant la localització de l'esquema associat per a que el validador puga accedir i fer les comprovacions. Per al nostre cas, com que hem instal·lat l'esquema DTD de DocBook localment al disc dur per a un accés més eficient, la declaració DOCTYPE deu ser com la següent:

Exemple 4.6. Exemple de declaració DOCTYPE per a un document DocBook.

<DOCTYPE book SYSTEM "-//OASIS//DTD DocBook XML V4.5//EN"
		"file:///C:/docbook-dtd/xml/4.5/docbookx.dtd">
			


4.3.2. Transformant a codi HTML.

Una vegada tenim un document en format DocBook, vàlid i ben format, podem passar a transformar-lo. Per a poder fer vàries proves i no haver d'escriure cada vegada el comandament per a la transformació és convenient crear un arxiu per lots a Window XP. Creem un arxiu de text amb extensió .bat en la carpeta on tenim el document DocBook i escrivim allí el comandament per a la transformació en una sola línia, i el comandament pause; per a poder comprovar l'eixida i que la finestra no es tanque. Per a transformar a codi HTML en un sol arxiu utilitzant el processador Saxon amb l'analitzador Xerces quedaria de la següent manera (suposant que les fulles d'estil estan localitzades a c:\docbook-xsl):

Exemple 4.7. Comandament per a transformar DocBook a HTML amb Saxon i Xerces.

java 
	-Djavax.xml.parsers.DocumentBuilderFactory=\
		org.apache.xerces.jaxp.DocumentBuilderFactoryImpl \
	-Djavax.xml.parsers.SAXParserFactory=\
		org.apache.xerces.jaxp.SAXParserFactoryImpl \
	com.icl.saxon.StyleSheet \
	document.xml \
	c:\docbook-xsl\html\docbook.xsl
	pause;
			


De igual manera només s'ha de canviar la fulla d'estil per a transformar a HTML en varis fitxers o per a transformar a XSL:FO.