Análisis sintáctico eventos xml con saxo

La palabra evento

evoca todo tipo de imágenes. Para una nonprogrammer, un evento es sólo "algo que sucede." Si estás acostumbrado a tratar con ventanas y marcos en Java, entonces usted probablemente piense en un evento como un acontecimiento que despierta un trozo de código. Por ejemplo, haga clic en el ratón de un usuario o un golpe de teclado despierta el código que establece una opción y muestra un cuadro en Aceptar. El clic o pulsación de tecla en sí se denomina evento porque ocurre independientemente del programa en ejecución. Sólo el usuario sabe cuando él o ella se pulse ese botón. Y cuando se pulsa el botón, una parte del programa Java solo se despierta y se ocupa de la situación. Este escenario se llama programación orientada a eventos.

Programación dirigida por eventos

Programas SAX son event-driven. Por ejemplo, te metes en la cama para una buena noche de sueño. Se llega a configurar su reloj de alarma y luego instalarse, cierras los ojos y vuelves inconsciente durante varias horas. Luego de un evento importante sucede: Una cierta hora del día llega. Cuando el evento se lleva a cabo, el reloj de alarma entra en su modo "despertar" - y hace un estruendo horrible que remover de su sueño reparador.

Aquí hay otro escenario. Usted es un ejecutivo muy ocupado y va a estar fuera durante varias horas, pero no quieres perderte ninguna de negocios importante. Antes de salir de la oficina, le dice a su ayudante, "Llámame si nada importante se acerca." La emisión de esta orden es similar a la configuración de la alarma del reloj. Usted está diciendo a su asistente (su despertador) para que te despierte si un evento se lleva a cabo. Hacer esta solicitud a su asistente (o al reloj de alarma) se llama registro. En cualquiera de los casos, se está registrando un capricho con un servicio de despertador. Después de que se haya registrado, usted puede seguir su inactividad tranquilamente, ignorando todo negocio real hasta que suceda algún evento. Entonces . . .

Ring Ring. Su teléfono celular está gritando en usted. "¿Hola?"

"Hola. Este es su asistente. Tengo las cifras de ventas para el primer trimestre. Son 1,000,000, 4,000,000 y 2,000,000."

"Vamos a ver. Eso es un total de 7 millones de dólares", dice usted. "Voy a señalar en mi PalmPilot. Gracias." Cuelga.

Varios momentos después, se obtiene otra llamada. "El presidente de Big Bucks, Inc., quiere cerrar el trato. Están hablando de 10 millones de dólares."

"Hmm", responde. "Eso va a traer nuestros ingresos por año hasta la fecha a 17 Megabucks. Voy a almacenar esa información en mi aplicación de hoja de cálculo. Gracias por llamar."

Cada una de estas interacciones se conoce como una llama de vuelta. Temprano en el día, cuando se registró el deseo de su auxiliar, que ha solicitado una devolución de llamada. Entonces, cada vez que un evento se lleva a cabo, el asistente hace una devolución de llamada para notificarle sobre el evento. En términos de programación Java, el asistente llama a uno de sus muchos métodos (uno de sus subprogramas Java).

La esencia de la programación orientada a eventos

Programación dirigida por eventos consta de tres partes:

  • Registro: Usted registra su deseo de ser notificado cada vez que se produce un evento. Usted se registra este deseo con otra pieza de código - otro objeto, por lo general algo que has importado (como un trozo de código que es parte de otra persona de API). Este objeto continuación relojes, de detrás de las escenas, para la ocurrencia del evento que ha especificado.
  • Ocurrencia de eventos: Un evento específico ocurre.
  • Llama de vuelta: La otra pieza de código realiza una devolución de llamada. Uno de sus métodos es llamado.

Dos tipos de código

Distinguir entre activo código y pasivo código es útil:

  • Código activo tiene un método principal. Código activo, una vez que empieza a correr, toma el centro del escenario. Código activo contiene el hilo de ejecución que controla todo el juego de pelota.
  • Código pasiva sólo se sienta allí, a la espera de ser llamado. Una clase dados pasiva no hace nada hasta que algún otro código llama Dice.roll ().

Ahora, usted puede pensar que el código pasiva es todo lo que necesita para la programación orientada a eventos, pero no lo es. Para el manejo de eventos, es necesario este paso de registro. El código pasiva comienza siendo registrada con alguna otra pieza de código.

Para concretar esta noción de registro, pensar en un ejemplo del mundo en la pantalla de los ratones, ventanas y botones. Se crea una ventana o marco. Usted quiere que su marco para responder a los clics del ratón, por lo que se emite el siguiente comando:

button.addMouseListener (this);

Este comando registra su marco con el botón. El comando dice, en efecto, Cada vez que un evento de ratón ocurre, llame a uno de los métodos de manipulación del ratón del marco. Más tarde, cuando el usuario hace clic en el ratón, el marco para crear una devolución de llamada. El equipo llama al método mouseClicked del marco.

Eventos SAX

Claro, SAX es dirigido por eventos, pero esto no quiere decir que un programa de SAX espera clics del ratón. En su lugar, el código de SAX sigue el modelo de registro de eventos-devolución de llamada se describe en los últimos párrafos. Cada programa SAX tiene dos piezas indispensables de código:

  • Un pedazo de código que usted escribe - llamado el manejador. (Su controlador puede extender una clase DefaultHandler pre-escrito.)
    El controlador es como el ejecutivo de un millón de dólares en la sección anterior.
  • Un pedazo de código que normalmente no se escribe - la analizador. El analizador tiene un papel como el de asistente del ejecutivo. El Java 1.4 API tiene un analizador incorporado. Se crea una ejemplo de este analizador, y luego registrar su manejador con esa instancia analizador. En efecto, le dices a la instancia para volver a llamar a su manejador siempre que un evento tiene lugar.

Cualquier cosa que tenga que ver con XML es nuevo, y todavía está en un estado de flujo. Debido a esto, la terminología se parcheado juntos en algunas formas peculiares. Durante el desarrollo de SAX versión 2, algunos técnicos tenían un festival make-up-nuevos nombres. Lo que normalmente se llama un "analizador" se materializa en una interfaz Java llamado XMLReader. Solía ​​haber una clase llamada org.xml.sax.Parser, pero la clase tiene obsoleta (lo que significa que usted debe raspar la parte inferior de su zapato). Para hacer las cosas un poco más complicado, todavía hay otra herramienta de análisis, javax.xml.parsers.SAXParser. Se utiliza esta SAXParser para hacerse una XMLReader. Con un poco de suerte, se convertirá rápidamente acostumbrado a esta terminología complicada. Por ahora, recuerde que lo que se llama un "analizador" suele ser una instancia de XMLReader.

El escenario en registros y devolución de llamada es lo que hace SAX por eventos. Ahora lo curioso es, un evento SAX no es tangible. Un evento SAX no le recordará una tecla o un botón de clic. En SAX, el analizador escanea un documento XML de arriba a abajo. Cada vez que el analizador encuentra algo interesante, el analizador dispara un evento y llama al manejador. Luego, le toca al controlador de hacer algo acerca de este interesante encuentro.




» » » » Análisis sintáctico eventos xml con saxo