|
Buscador
Secciones
Otras zonas
Foros
Ganamos
Registro
|
|
| Paquete | Descripción |
|---|---|
| org.xml.sax | Define los interfaces SAX. El nombre "org.xml" es el prefijo de paquete que fue seleccionado por el grupo que definió el API SAX. Este paquete también define HandlerBase -- una implementación por defecto de la clase base para varios de los "handlers" definidos por los interfaces, así como una clase InputSource, que encapsula información que nos dice de dónde vienen los datos XML. |
| org.xml.sax.helpers | Este paquete forma parte de SAX. Define la clase ParserFactory, que nos permite adquirir un ejemplar de un analizador especificando un nombre en un string o usando el valor definido por la propiedad del sistema org.xml.sax.parser. Este paquete también proporciona implementaciones para otros dos interfaces definidos en org.xml.sax, pero estas clases no son necesarias cuando se usan los anlizadores XML SAX Java de Sun. |
| javax.xml.parsers | Define la clase SAXParserFactory que devuelve el SAXParser. También define la clase ParserConfigurationException para reportar errores. |
| com.sun.xml.parser | Contiene el analizador Java XML com.sun.xml.parser.Parser), el analizador de validación (com.sun.xml.parser.ValidatingParser), y una entidad de resolución. El nombre totalmente cualificado de cualquiera de los analizadores puede ser enviado a la factoría de analizadores para obtener un ejemplar. El analizador sin validación genera errores si un documento no está bien formateado, y hace algún proceso del DTD (si existe) pero no chequea para asegurarse de que el documento obedece todas las restricciones definidas por el DTD. El analizador de validación, por otro lado, chequea para asegurarse que se obedecen dichas restricciones. |
|
Nota Técnica:
Todos los analizadores sin validación no son iguales! Aunque sea necesario un analizador de validación para procesar todas las entidades externas referenciadas desde dentro de un documento, algo de ese proceso es opcional para una analizador sin validación. Con dicho analizador, una sección almacenada externamente del DTD que sea "incluida" en el documento actual usando una referencia de entidad podría no ser procesada. Además, no se requiere que un analizador sin validación identifique los caracteres en blanco ignorables (aunque un analizador de validación si debe hacerlo). En este caso, los caracteres en blanco que pueden ser legitimamente ignorados serían devueltos como parte normal del stream de caracteres. El analizador sin validación de la librería Java XML de Sun implementa estos dos comportamientos opcionales -- procesa todas las entidades externas e identifica todos los espacios en blanco ignorables. |
Otros Interfaces SAXAdemás de la APIS descritos aquí, los APIs SAX definen otros cuantos interfaces que podremos querer usar cuando escribamos una aplicación SAX, así como un paquete de utilidades con un buen número de clases que son útiles para construir aplicaciones del mundo real.
Los APIs "Document Object Model" (DOM)El siguiente diagrama nos muestra los APIs JAXP en acción.

Usamos la clase javax.xml.parsers.DocumentBuilderFactory para obtener un ejemplar DocumentBuilder (superior izquierda), y usamos esto para producir un Document (un DOM) que cumple la especificación DOM (inferior derecha). De hecho, el constructor que obtenemos está determinado por la propiedad del sistema, javax.xml.parsers.DocumentBuilderFactory, que selecciona la implementación de la factoría que se usa para producir el constructor. (El valor por defecto de la plataforma puede sobreescribirse desde la línea de comandos).
Podemos usar el método newDocument() para crear un Documento vacío que implemente el interface org.w3c.dom.Document. De forma alternativa, podemos usar uno de los métodos analizadores del constructor para crear un Documento desde datos XML existentes. El resultado es un árbol DOM como el que vemos en la esquina inferior derecha del diagrama.
PaquetesLa implementación de DOM está definida en los siguientes paquetes.
| Paquete | Descripción |
|---|---|
| org.w3c.dom | Define los interfaces de programación DOM para documentos XML (y, opcionalmente HTML), según lo especificado por W3C. |
| javax.xml.parsers | Define la clase DocumentBuilderFactory y la clase DocumentBuilder, que devuelve un objeto que implementa el interface Document W3C. La factoría que se usa para crear el constructor está determinada por la propiedad del sistema javax.xml.parsers, que puede ser seleccionada desde la línea de comandos o sobreescrita cuando llamamos al método newInstance. Este paquete también define la clase ParserConfigurationException para reportar errores. |
| com.sun.xml.tree | La implementación Java XML de Sun de las librerías DOM, incluyendo las clases XmlDocument, XmlDocumentBuilder, y TreeWalker. |
Implementación de Referencia de Project XEsta sección muestra cómo la implementación de referencia combina los APIs SAX y DOM.

|
Nota:
El material que queda en esta sección es específico de Project X, la implementación de referencia de Sun para el JAXP estándard. El material de esta sección no forma parte del estándard. Como no forma parte del estándard JAXP, las funcionalidades descritas aquí podrían muy bien ser implementadas de forma diferente en otros analizadores. Además, como los estándards evolucionan, las futuras versiones de la implementación de referencia JAXP podrían emplear diferentes mecanismos para conseguir los mismos objetivos. |
IntroducciónEn la implementación de referencia de Sun, el API DOM se construye sobre el API SAX como se ve en el siguiente diagrama.

La implementación que hace Sun del API DOM usa las librerías SAX para leer en los datos XML y construye el árbol de objetos de datos que constituye el DOM. Esta implementación también proporciona un marco de trabajo para ayudarnos a sacar el árbol de objetos como datos XML.
ImplementaciónEl siguiente diagrama muestra cómo opera el DocumentBuilder de Sun detrás de la escena.

La sección del diagrama que hay dentro de las líneas onduladas naranjas muestra qué hace la implementación de referencia de Sun cuando analizamos datos XML existentes.
El DocumentBuilder por defecto, crea un objeto que implementa el interface DocumentHandler de SAX. Entonces envía ese objeto a uno de los analizadores SAX (Parser o ValidatingParser, dependiendo de como estuviera configurada la factoría del constructor). Cuando se analiza la fuente de entrada, el DocumentHandler crea un objeto Document.
|
Nota:
Para controlar otros aspectos del comportamiento del analizador, usamos los métodos setErrorHandler y setEntityResolver de DocumentBuilder. Esta clase no implementa un método setDTDHandler. Sólo la mostramos aquí porque forma parte del analizador SAX. |
¿Dónde podemos ir ahora?En este punto, tenemos suficiente información para empezar a ojear las librerías XML a nuestro aire. Los siguientes pasos dependen de lo que queramos conseguir. Podríamos querer ir a.
| Leer comentarios (25) | |
| Escribir comentario | |
| Puntuación: |
|
| Votar | |
| Recomendar este tutorial | |
| Estadísticas |
Copyright © 1999-2007
Programación en castellano.
Todos los derechos reservados.
Formulario de Contacto -
Datos legales -
Publicidad
Mantenida por: Claudio y
Dani.
Hospedaje web y servidores dedicados linux por Ferca Network
red internet: jugar gratis | amor | navidad 2009 | registro de dominios |
servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados