Buscar
Social
Ofertas laborales ES
domingo
mar032002

Java con estilo

Uno de los mayores problemas de desarrollo en grupo y con herramientas tipo CVS es el estilo del código que escribimos. Con esta herramienta opensource, que puede ejecutarse desde Ant, podremos asegurarnos de que nuestro código sigue las reglas que hayamos determinado.


También se disponen de módulos para JBuilder, Netbeans, Emacs JDE, y se esperan que lleguen más.
domingo
mar032002

Tomcat 4.0.3 y problema de seguridad

Pocos días después de la liberación de 4.0.2, se ha liberado la versión 4.0.3 de Tomcat. Esta nueva versión es exactamente igual que la anterior, salvo un importante detalle, y es que resuelve un fallo de seguridad detectado en la versión anterior, por lo que se recomienda la actualización inmediata.


Si, Tomcat también tiene fallos, pero al menos los corrigen enseguida.
sábado
mar022002

Base de datos nativa XML

Otro de los proyectos de la fundación Apache, Xindice, ha hecho pública la versión RC2 de su desarrollo.


Xindice es una base de datos nativa de XML, esto es, una base de datos pensada para almacenar XML, ya que las tradicionales base de datos relacionales no son del todo apropiadas.
viernes
mar012002

XML desde java hecho fýcil: JDOM (Parte 2)

JAVA+XML = JDOM (Parte 2)


Introducción


En el articulo anterior a esta serie presentamos la API JDOM así como mostramos una aplicación que haciendo uso de dicha API permitía leer documentos XML con enorme facilidad. En este articulo, presentaremos nuevos métodos que nos ayudaran a crear documentos XML de una manera igualmente sencilla.

Ventajas de JDOM



  • En JDOM no hace falta usar factorías ni otros modelos avanzados de programación para crear un Document, cosa que si hay que hacer en DOM.


  • DOM no tiene una manera estándar de crear Document, cada parser tiene implementada sus métodos específicos, siendo nuestros programas dependientes del parser utilizado. Es muy cierto que para ello Sun ideo la API JAXP para solventar este problema, pero tiene el incoveniente de que no todos los parses tienen soporte JAXP.


  • Como el Node de DOM es siempre construido a través del método factoría de su padre Document, se presenta el viejo problema del huevo y la gallina, ya que un Element tiene que ser construido con un Document, pero un Document no debería existir sin un Element que haga de root.


  • Con SAX no la comparamos en este aspecto ya que dicha API es solo de lectura.

Métodos útiles


A continuación vamos a mostrar una serie de métodos que a mi juicio me parecen básicos.


clase Element:

Element(String nombre): Constructor para crear etiquetas, el parámetro será lógicamente el nombre de la etiqueta.

setText(String texto): para darle un contenido a dicha etiqueta.

addContent(Element hijo): el parámetro será el hijo que queremos que cuelgue de un determinado elemento.

addAttribute(String atributo,String valor): Para añadir un atributo.

removeAttribute(String atributo): Para borrar un determinado atributo.





clase Document:
Document(Element root): Constructor para crear un documento, el parámetro será el elemento que hará de root.

setRootElement(Element nuevoRoot): Para cambiar de elemento que haga de root.



La siguiente clase sirve para darle salida al Document ya sea en pantalla, fichero,... Los métodos que más nos interesan son:


clase XMLOutputter:
XMLOutputter(String sangria,Boolean nuevaLinea): En el primer parámetro indicaremos el String que queramos de sangría, y como segundo parámetro diremos si queremos o no meter nueva linea.

output(Document doc, OutputStream out): Lo utilizaremos para escribir el documento en un fichero dado.




Ten en cuenta que...


Si vamos a utilizar un Element y deseamos hacer una especie de plantilla, una idea sería crear una clase que extendiese a Element y personalizasemos ahí lo que quisieramos, para que quede claro lo que quiero decir valga este ejemplo:

<autor>
<nombre>Javier Teso</nombre>
<email>jte_job@hotmail.com</email>
<edad>23</edad>
</autor>

Vamos a hacer una plantilla personalizada con mis años, veamos:

import org.jdom.*;

public class Yo extends Element{
public Yo(int year) {
super("autor");
addContent(new Element("nombre").setText("Javier Teso"));
addContent(new Element("email").setText("jabotxa@latinmail.com"));
addContent(new Element("edad").setText(Integer.toString(year)));
}
}

asi en nuestro programa hariamos:

...

elementoCualquiera.addContent(new Autor(23));

...

Proyecto Crear.java


Para verlo todo mas claro hagamos un documento XML desde cero.

import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;

public class Crear {

public static void main(String[] args) {

//Creamos un elemento root
Element root=new Element("javahispano");

//Creamos un hijo para el root
Element articulo=new Element("articulo");
Element titulo=new Element("titulo").setText("Articulo sobre Jdom");
titulo.setAttribute("valoracion","5");
Yo javi=new Yo(23);

//Fíjate bien en como podemos enlazar 2 hijos de una forma mas compacta
articulo.addContent(titulo).addContent(javi);

//Si quisieramos cambiar el elemento javi por otro javi con 24 años
Yo javimas=new Yo(24);
articulo.removeContent(javi);
articulo.addContent(javimas);

root.addContent(articulo);
Document doc=new Document(root);//Creamos el documento

//Vamos a almacenarlo en un fichero y ademas lo sacaremos por pantalla
try{
XMLOutputter out=new XMLOutputter(" ",true);
FileOutputStream file=new FileOutputStream("ejemplo.xml");
out.output(doc,file);
file.flush();
file.close();
out.output(doc,System.out);
}catch(Exception e){e.printStackTrace();}
}
}

Conclusión


Espero que a lo largo de estos dos artículos haya sido capaz de haceros llegar una idea de la funcionalidad que esta API nos ofrece, animamos a los lectores interesados que visiten la web del jdom: www.jdom.org para que descubran por si mismos otros aspectos de la API, como puede ser el trabajo con Namespaces, PI, ..., la verdad, creo que merece la pena.













Javier Teso, actualmente está cursando 5º de Ing. Informática de San Sebastián.



Para cualquier duda o comentario: jte_job_ARROBA_hotmail.com ó jabotxa_ARROBA_latinmail.com



lunes
feb252002

BEA saca la versión BETA de WebLogic Server 7.0

Como bien indica el título, BEA ha puesto a disposición del público en general la versión BETA de su servidor de aplicaciones que incorpora grandes novedades, la más importante, su compatibilidad J2EE 1.3. Os lo podéis descargar aquí