Acasă Finanțe personale Parsarea evenimentelor XML cu SAX-dummies

Parsarea evenimentelor XML cu SAX-dummies

Cuprins:

Video: What does Pars Defect in the lumbosacral region signify? - Dr. Hanume Gowda 2024

Video: What does Pars Defect in the lumbosacral region signify? - Dr. Hanume Gowda 2024
Anonim

Cuvântul eveniment implică toate tipurile de imagini. Pentru un nonprogrammer, un eveniment este doar "ceva ce se întâmplă. "Dacă sunteți obișnuiți să vă ocupați de ferestre și cadre în Java, probabil că vă gândiți la un eveniment ca la un eveniment care trezește o bucată de cod. De exemplu, clicul sau apăsarea pe tastă de către un utilizator afișează codul care stabilește o opțiune și afișează o casetă OK. Clicul sau apăsarea de taste în sine se numește un eveniment deoarece se întâmplă independent de programul în execuție. Doar utilizatorul știe când va apăsa acel buton. Și când butonul este apăsat, o parte din programul Java se trezește și se ocupă de situație. Acest scenariu se numește programare condusă de evenimente .

Programarea bazată pe evenimente

Programele SAX sunt conduse de evenimente . De exemplu, te duci în pat pentru un somn bun. Ajungeți să vă setați ceasul deșteptător și apoi să vă așezați, să vă închideți ochii și să deveniți inconștient pentru câteva ore. Apoi, un eveniment important se întâmplă: Se ajunge la un anumit moment al zilei. Când evenimentul are loc, ceasul deșteptător intră în modul "trezire" - și vă face să vă agitați de somnul odihnitor.

Iată un alt scenariu. Sunteți un director ocupat și veți ieși de câteva ore, dar nu doriți să pierdeți o afacere importantă. Înainte de a părăsi biroul, îi spui asistentului tău: "Sună-mă dacă vine ceva important. "Emiterea acestei comenzi este asemănătoare cu setarea ceasului deșteptător. Spuneți asistentului dvs. (ceasul deșteptător) să vă trezească dacă are loc un eveniment. Efectuarea acestei solicitări către asistentul dvs. (sau la ceasul deșteptător) se numește înregistrare . În oricare scenariu, te înregistrezi cu un serviciu de trezire. După ce te-ai înregistrat, poți să-ți urmărești lipsa de activitate, ignorând toată afacerea reală până când se întâmplă ceva. Apoi …

Inel, inel. Telefonul tău se holbează la tine. "Buna? „

„Bună ziua. Acesta este asistentul tău. Am cifrele de vânzări pentru primul trimestru. Sunt 1 milion, 4 milioane și 2 milioane. "

" Să vedem. Acesta este un total de 7 milioane ", spune tu. "O voi remarca pe PalmPilot. Mulțumiri. " Ai închis telefonul.

Câteva momente mai târziu, primiți un alt apel. "Președintele Big Bucks, Inc. vrea să încheie această afacere. Vorbeau 10 milioane de dolari. „

" Hmm, "răspundeți. "Asta va aduce veniturile noastre anuale până la 17 megabiți. Voi păstra aceste informații în aplicația mea de calcul tabelar. Multumesc pentru apel. "

Fiecare din aceste interacțiuni este cunoscută sub numele de apel invers .La începutul zilei, când v-ați înregistrat dorința cu asistentul, ați solicitat un apel invers. Apoi, de fiecare dată când are loc un eveniment, asistentul face o invitație de a vă anunța despre eveniment. În termeni de programare Java, asistentul apelează una dintre multele dvs. metode (unul dintre subprogramele dvs. Java).

Esența programării bazate pe evenimente

Programarea bazată pe evenimente are trei părți:

  • Înregistrare: Înregistrați-vă dorința de a fi notificată ori de câte ori apare un eveniment. Înregistrați această dorință cu o altă bucată de cod - un alt obiect, de obicei ceva importat (cum ar fi o bucată de cod care face parte din API-ul altcuiva). Acest obiect urmărește apoi, din spatele scenei, apariția evenimentului pe care l-ați specificat.
  • Evenimentul apare: Se întâmplă un eveniment specific.
  • Callback: Cealaltă bucată de cod efectuează un apel invers. Una dintre metodele tale este chemată.

Două tipuri de cod

Este utilă o distincție între codul activ și codul pasiv :

  • Codul activ are o metodă principală. Codul activ, odată ce începe să fie difuzat, se află pe scena centrală. Codul activ conține firul de execuție care controlează întregul joc cu mingea.
  • Codul pasiv stă acolo, așteptând să fie chemat. O clasă de zaruri pasive nu face nimic până când un alt cod cheamă Dice. rola ().

Acum, ați putea crede că codul pasiv este tot ce aveți nevoie pentru programarea bazată pe evenimente, dar nu este. Pentru manipularea evenimentului, aveți nevoie de acest pas de înregistrare. Codul pasiv incepe prin a fi inregistrat cu o alta bucata de cod.

Pentru a consolida această noțiune de înregistrare, gândiți-vă la un exemplu din lumea de pe ecran a șoarecilor, ferestrelor și butoanelor. Creați o fereastră sau un cadru. Doriți ca rama dvs. să răspundă clicurilor de mouse, pentru a emite următoarea comandă: butonul

. addMouseListener (aceasta);

Această comandă înregistrează cadrul dvs. cu butonul. Comanda spune, de fapt, Ori de câte ori se întâmplă un eveniment de mouse, apelați una dintre metodele de manipulare a mouse-ului de pe cadru . Mai târziu, când utilizatorul dă clic pe mouse, cadrul primește un apel invers. Calculatorul apelează metoda mouse-ului pentru cadru al mouse-uluiClicked.

Evenimente SAX

Sigur, SAX este condus de evenimente, dar acest lucru nu înseamnă că un program SAX așteaptă clicuri de mouse. În schimb, codul SAX urmează modelul registrului-eveniment-apel inversat descris în ultimele câteva paragrafe. Fiecare program SAX are două bucăți de cod indispensabil:

  • O bucată de cod pe care o scrieți - numită handler . (Handlerul dvs. poate extinde o clasă DefaultHandler pre-scris.)
  • Handlerul este ca executivul de milioane de dolari din secțiunea precedentă.
  • O bucată de cod pe care, în mod normal, nu o scrieți - parserul . Parserul joacă un rol ca cel al asistentului executivului. API-ul Java 1. 4 are un parser integrat. Creați o instanță a acestui parser și apoi înregistrați procedura de manipulare cu instanța parserului respectiv. De fapt, îi spuneți instanței să vă apeleze la handler ori de câte ori are loc un eveniment.

Orice ce are de a face cu XML este nou, și este încă într-o stare de flux. Din acest motiv, terminologia este patch-uri impreuna in unele moduri ciudate. În timp ce dezvolta SAX versiunea 2, unii tehnici au avut un festival de make-up-new-names. Ceea ce se numește în mod normal un "parser" este încorporat într-o interfață Java numită XMLReader. A fost o clasă numită org. XML. Sax. Parser, dar clasa a fost depreciată (ceea ce înseamnă că ar trebui să-l răsturnați de pe partea inferioară a pantofului tău). Pentru a face lucrurile un pic mai complicate, există încă un instrument de analiză, javax. XML. Derivatoare. SAXParser. Utilizați acest SAXParser pentru a vă face un XMLReader. Cu orice noroc, veți deveni rapid obișnuiți cu această terminologie complicată. Pentru moment, amintiți-vă că ceea ce se numește "parser" este de obicei o instanță a XMLReader.

Scenariul de înregistrare și de apel invers este ceea ce face SAX determinat de eveniment. Acum, amuzamentul este că un eveniment SAX nu este tangibil. Un eveniment SAX nu vă va reaminti de o apăsare de taste sau de un clic pe buton. În SAX, parserul scanează un document XML de sus în jos. Ori de câte ori parserul întâlnește ceva interesant, parserul declanșează un eveniment și îl sună pe handler. Apoi, depinde de manager să facă ceva despre această întâlnire interesantă.

Parsarea evenimentelor XML cu SAX-dummies

Alegerea editorilor

Elemente de bază ale electronicii: Folosind un Breadboard - manechine

Elemente de bază ale electronicii: Folosind un Breadboard - manechine

ÎN care puteți introduce componente și fire electronice. Un breadboard este ceea ce utilizați pentru a strânge împreună o versiune temporară a circuitului. Nu trebuie să lipiți fire sau altceva; în loc să vă îmbrăcați componentele și firele în interiorul ...

Electronice: Circuite integrate (IC) Pinouts - manechine

Electronice: Circuite integrate (IC) Pinouts - manechine

Mici circuite integrate din interiorul aparatului dvs. electronic. Pentru a determina ce pivot este care, te uiți în jos pe partea de sus a IC pentru marcajul de ceas, care este, de obicei, o mică crestătură în ambalaj, dar ar putea să fie în schimb un pic de dimple sau un alb ...

Electronice: Semiconductori doping - manechine

Electronice: Semiconductori doping - manechine

Diodele și tranzistoarele sunt fabricate din semiconductori precum siliciul și germaniul. Semiconductoarele pure nu vor conduce curentul electric, dar dacă dați un semiconductor prin adăugarea anumitor tipuri de impurități, cunoscute sub numele de dopanți, schimbați caracteristicile electrice ale semiconductorului și se va efectua atunci când se aplică o tensiune doar în ...

Alegerea editorilor

10 Mari resurse de calcul cloud - dummy

10 Mari resurse de calcul cloud - dummy

Lumea cloud computing continuă să evolueze rapid. Dacă doriți să păstrați la curent ultimele evoluții din lumea cloud computing, aici sunt zece resurse importante pentru a vă urmări.

4 Sfaturi pentru proiectarea aplicațiilor pentru serviciile web Amazon - dummies

4 Sfaturi pentru proiectarea aplicațiilor pentru serviciile web Amazon - dummies

Deoarece Amazon Web Services (AWS) atât de mult din ofertele de infrastructură tradiționale, încercarea de a aplica principiile tradiționale de proiectare a aplicațiilor nu are întotdeauna drept rezultat cele mai bune rezultate. Iată câteva puncte pe care trebuie să le țineți minte: Totul eșuează tot timpul: acestea sunt avertismentele AWS ale lui Amazon și ar trebui să fie și ale tale. În special, cazurile EC2 ...

Avantajele Cloud Computing for Networks

Avantajele Cloud Computing for Networks

Cloud computing este diferit - și, în multe feluri, mai bun - abordare a rețelei. Iată câteva dintre principalele avantaje ale trecerii la rețelele bazate pe cloud: Cost-eficiente: calculul bazat pe cloud este de obicei mai puțin costisitor decât calculul tradițional. Luați în considerare o aplicație tipică pentru server de fișiere: Pentru a implementa un server de fișiere, mai întâi trebuie să cumpărați un fișier ...

Alegerea editorilor

Cum se configurează gestionarea la distanță în dispozitivele Junos - dummies

Cum se configurează gestionarea la distanță în dispozitivele Junos - dummies

Pentru - gestionarea de la distanță la distanță, trebuie să decideți mai întâi ce interfață doriți ca interfață de gestionare. În general, traficul de gestionare nu este excesiv sau chiar substanțial, astfel încât alegerea oricăror dintre interfețele mai lentă de pe router este probabil să fie suficientă. Pe majoritatea dispozitivelor, o conexiune Fast Ethernet este mai mult decât suficientă pentru a gestiona traficul de management. ...

Modul de configurare a gateway-ului SRX Services - dummies

Modul de configurare a gateway-ului SRX Services - dummies

SRX Services Gateway utilizează portul serial al consolei RJ-45. La urma urmei, cineva trebuie să se afle de fapt la dispozitivul de instalare (instalarea hardware la distanță ar putea fi posibilă într-o zi, dar acest lucru este departe). Un alt motiv este faptul că accesul prin oricare dintre ...