Análisis sintáctico xml eventos con el saxofón

La palabra evento evoca todo tipo de imágenes. Para una nonprogrammer, un evento es simplemente “algo que sucede.” Si está acostumbrado a tratar con ventanas y marcos en Java, entonces es probable que pensar en un evento como un acontecimiento que despierta una pieza de código. Por ejemplo, haga clic en el ratón de un usuario o de pulsaciones de teclas se despierta el código que establece una opción y muestra un cuadro de OK. El clic o pulsación de tecla en sí se llama una evento porque ocurre independientemente del programa en ejecución. Solamente 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.

Video: Dúo Saxo-Piano para eventos

la programación dirigida por eventos

SAX son programas evento conducido. Por ejemplo, se obtiene en la cama para dormir bien por la noche. Se llega a establecer su reloj de alarma y luego instalarse, cierra los ojos, y quede inconsciente por varias horas. Entonces ocurre un evento importante: Una cierta hora del día llega. Cuando tiene lugar el evento, 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 usted no quiere perderse ningún negocio importante. Antes de salir de la oficina, le dice a su ayudante, “Llámame si algo importante se acerca.” La emisión de esta orden es similar a configurar el reloj de alarma. Usted está diciendo a su asistente (su despertador) para despertarle si un evento se lleva a cabo. Haciendo de esta solicitud a su asistente (o para su 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, se puede buscar el no-actividad de tiempo libre, haciendo caso omiso de todos los negocios de bienes hasta que algún evento ocurre. Entonces . . .

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

"Hola. Esta es su asistente. Tengo las cifras de ventas para el primer trimestre. Son 1 millón, 4 millones y 2 millones “.

"Veamos. Eso es un total de 7 millones “, dice usted. “Voy a señalar que en mi Palm Pilot. Gracias “. Finalizarla.

Momentos después, se obtiene otra llamada. “El presidente de los Bucks grandes, Inc., quiere cerrar el trato. Están hablando de 10 millones de dólares “.

“Hmm,” responde. “Eso va a llevar nuestra años de la fecha de ingreso hasta 17 Megabucks. Voy a almacenar esa información en mi aplicación de hoja de cálculo. Gracias por llamar."

Video: boquillas de saxofon como elegirlas

Cada una de estas interacciones se conoce como una llamar 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 ocurre un evento, 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 los subprogramas de Java).

La esencia de la programación orientada a eventos

la programación dirigida por eventos consta de tres partes:

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

Existen dos tipos de código

distinguiendo 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í, esperando a 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 registro. El código pasiva empieza a dejarse registrada con alguna otra pieza de código.

Para concretar esta noción de registro, pensar en un ejemplo del mundo en 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 se vuelven 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 SAX espera a los clics del ratón. En su lugar, el código 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 trozo de código que se escribe - el llamado entrenador de animales. (Su controlador puede extender una clase DefaultHandler previamente escrito.)
    El manejador es como el ejecutivo millones de dólares en la sección anterior.
  • Un trozo de código que normalmente no se escribe - la analizador. El analizador tiene un papel como el de ayudante del ejecutivo. El API Java 1.4 tiene un analizador incorporado. Se crea una ejemplo de este analizador, y luego se registra el controlador con esa instancia analizador. En efecto, le dice a la instancia para volver a llamar el controlador cada vez 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 está parcheado juntos en algunas formas peculiares. Durante el desarrollo de la versión 2 SAX, algunos expertos en tecnología tenían un festival de Maquillaje-new-nombres. Lo que normalmente se llama un “analizador” se materializa en una interfaz Java XMLReader llamado. Antes había una clase llamada org.xml.sax.Parser, pero la clase tiene obsoleto (Lo que significa que usted debe raspar la suela de su zapato). Para hacer las cosas un poco más complicadas, aún 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 de registro-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 clic de botón. 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 controlador. A continuación, le toca al controlador para hacer algo acerca de este interesante encuentro.

Artículos Relacionados