Parsing eventos xml com sax

A palavra evento

evoca todos os tipos de imagens. Para uma nonprogrammer, um evento é apenas “algo que acontece.” Se você está acostumado a lidar com janelas e quadros em Java, então você provavelmente pensar em um evento como uma ocorrência que acorda um pedaço de código. Por exemplo, clique do mouse do usuário ou keystroke acorda o código que define uma opção e exibe uma caixa OK. O clique ou keystroke em si é chamado de evento porque acontece independentemente do programa em execução. Somente o usuário sabe quando ele ou ela vai pressionar esse botão. E quando o botão fica pressionado, alguma parte do programa de Java simplesmente acorda e lida com a situação. Este cenário é chamado programação orientada a eventos.

Video: XML Parsers | Parsing XML using DOM and SAX Parsers | Edureka

programação orientada a eventos

programas SAX são event-driven. Por exemplo, você ir para a cama para uma boa noite de sono. Você chegar a mais para definir o seu despertador e, em seguida, instalar-se, feche os olhos e ficar inconsciente por várias horas. Em seguida, um evento importante acontece: um determinado momento do dia chega. Quando o evento ocorre, o despertador entra em seu modo “wake up” - e faz uma barulheira terrível para agitar-lo fora de seu sono repousante.

Aqui está um outro cenário. Você é um executivo ocupado e você vai ficar de fora por várias horas, mas você não quer perder nenhum negócio importante. Antes de deixar o escritório, você dizer ao seu assistente, “Chame-me se alguma coisa importante vem à tona.” A emissão deste modo é semelhante a configurar o despertador. Você está dizendo seu assistente (o seu despertador) para acordá-lo se um evento ocorre. Fazendo este pedido para o seu assistente (ou para o seu despertador) é chamado cadastro. Em qualquer cenário, você registrar-se com um serviço de despertar. Depois de ter registrado, você pode prosseguir a sua não-atividade de lazer, ignorando todo o negócio real até algum evento acontece. Então . . .

Toque Toque. Seu telefone celular está gritando para você. "Olá?"

Video: XML and Java tutorial: Creating a SAX event handler class | lynda.com

"Olá. Este é o seu assistente. Eu tenho os números de vendas para o primeiro trimestre. Eles são 1 milhão, 4 milhões e 2 milhões.”

"Vamos ver. Isso é um total de 7 milhões “, você diz. “Vou observar isso no meu PalmPilot. Obrigado.”Você desligar.

Vários momentos depois, você recebe outra chamada. “O presidente da Big Bucks, Inc., quer fechar o negócio. Eles estão falando de 10 milhões de dólares.”

“Hmm”, você responde. “Isso vai trazer a nossa receita no ano-to-date para 17 megabucks. Vou guardar essa informação no meu aplicativo de planilha. Obrigado por ligar “.

Video: XML and Java tutorial: How SAX works | lynda.com

Cada uma destas interacções é conhecido como um ligue de volta. No começo do dia, quando você registrou o seu desejo com o assistente, que solicitou um callback. Então, sempre que um evento ocorre, o assistente faz uma chamada de retorno para notificá-lo sobre o evento. Em termos de programação Java, o assistente chama um de seus muitos métodos (um de seus subprogramas Java).

A essência da programação orientada a eventos



programação orientada a eventos tem três partes:

  • Cadastro: Você registrar o seu desejo de ser notificado sempre que um evento ocorrer. Você registrar este desejo com outro pedaço de código - outro objeto, geralmente algo que você importou (como um pedaço de código que é parte de outra pessoa API). Este objeto, em seguida, relógios, por trás dos bastidores, para a ocorrência do evento especificado.
  • ocorrência do evento: Um evento específico acontecer.
  • Ligue de volta: O outro pedaço de código executa uma chamada de retorno. Um de seus métodos é chamado.

Dois tipos de código

A distinção entre ativo código e passiva código é útil:

  • código ativo tem um método principal. código ativo, uma vez que ele começa a correr, toma o centro do palco. código ativo contém o segmento de execução que controla o jogo totalmente.

Video: Learn XML SAX and DOM parsing in 16 minutes

  • código passivo apenas se senta lá, esperando para ser chamado. Uma classe Dice passivo não faz nada até que algum outro código chama Dice.roll ().

Agora, você pode pensar que o código passiva é tudo que você precisa para programação orientada a eventos, mas não é. Para manipulação de eventos, você precisa esta etapa de registro. O código passiva começa por se registrado com algum outro pedaço de código.

Para firmar essa noção de registo, pensar em um exemplo do mundo na tela de ratos, janelas e botões. Você cria uma janela ou quadro. Você quer que seu quadro para responder a cliques do mouse, para que emita o seguinte comando:

button.addMouseListener (este);

Este comando registra o seu quadro com o botão. O comando diz, com efeito, Sempre que um evento de mouse acontece, chamar um dos métodos de manipulação do rato do quadro. Mais tarde, quando o usuário clica o mouse, o quadro fica um callback. O computador chama o método mouseClicked do quadro.

eventos SAX

Claro, SAX é orientada a eventos, mas isso não significa que um programa SAX espera por cliques do mouse. Em vez disso, o código SAX segue o modelo de registo-event-callback descrito nos últimos parágrafos. Cada programa SAX tem duas peças indispensáveis ​​de código:

  • Um pedaço de código que você escreve - o chamado treinador. (O seu manipulador pode estender uma classe DefaultHandler pré-escrita.)
    O manipulador é como o executivo de milhões de dólares na seção anterior.
  • Um pedaço de código que você normalmente não escrever - o parser. O analisador desempenha um papel como o de assistente do executivo. O Java 1.4 API tem um analisador built-in. Você cria uma instância deste analisador, em seguida, você registrar seu manipulador com essa instância do analisador. Com efeito, você diga a instância para chamar de volta seu manipulador sempre que um evento ocorre.

Nada tendo a ver com XML é novo, e ainda está em um estado de fluxo. Devido a isso, a terminologia é remendado juntos em alguns aspectos peculiares. Ao desenvolver SAX versão 2, alguns técnicos teve um festival de make-up-novos nomes. O que é normalmente chamado de “parser” está incorporada em uma interface Java XMLReader nomeado. Costumava haver uma classe chamada org.xml.sax.Parser, mas a classe tem descontinuada (O que significa que você deve raspar-lo na parte inferior do seu sapato). Para tornar as coisas um pouco mais complicado, ainda há outra ferramenta de análise, javax.xml.parsers.SAXParser. Você usa esse SAXParser para se fazer um XMLReader. Com alguma sorte, você vai rapidamente se acostumar a esta terminologia complicada. Por enquanto, lembre-se que o que é chamado de “parser” é geralmente uma instância de XMLReader.

O cenário registro-and-callback é o que faz SAX-evento dirigido. Agora, o engraçado é que, um evento SAX não é tangível. Um evento SAX não vai lembrá-lo de uma tecla ou um clique de botão. Em SAX, o analisador verifica um documento XML a partir de cima para baixo. Sempre que o analisador encontra algo interessante, o analisador dispara um evento e chama o manipulador. Então, cabe ao manipulador de fazer algo sobre esse encontro interessante.


Publicações relacionadas