Hjem Personlig finansiering Parsing XML-hendelser med SAX-dummies

Parsing XML-hendelser med SAX-dummies

Innholdsfortegnelse:

Video: Como usar Butter Knife en Eventos - Inyeccion de Dependencias 04 2025

Video: Como usar Butter Knife en Eventos - Inyeccion de Dependencias 04 2025
Anonim

Ordet hendelsen konfronterer alle slags bilder. For en nonprogrammer er et arrangement bare "noe som skjer. "Hvis du er vant til å håndtere vinduer og rammer i Java, tenker du sannsynligvis på et arrangement som en forekomst som vekker et stykke kode. For eksempel våkner brukerens museklikk eller tastetrykk opp koden som angir et alternativ og viser en OK-boks. Klikk eller tastetrykk i seg selv kalles en hendelse fordi det skjer uavhengig av programmet som kjører. Bare brukeren vet når han eller hun vil trykke på den knappen. Og når knappen blir trykket, blir en del av Java-programmet bare våknet opp og håndterer situasjonen. Dette scenariet kalles hendelsesdrevet programmering .

Eventdrevet programmering

SAX-programmer er hendelsesdrevet . For eksempel kommer du inn i sengen for en god natts søvn. Du kommer over for å stille vekkerklokke og deretter slå seg inn, lukke øynene og bli bevisstløs i et antall timer. Deretter skjer en viktig hendelse: En bestemt tid på dagen kommer. Når hendelsen skjer, går vekkerklokken i sin "våkne" modus - og gjør en forferdelig dukkert for å røre deg ut av din avslappende søvn.

Her er et annet scenario. Du er opptatt, og du vil være ute i flere timer, men du vil ikke gå glipp av noen viktig forretning. Før du forlater kontoret, forteller du assistenten din: «Ring meg hvis noe viktig kommer opp. "Utstedelse av denne bestillingen er besluttet på å stille inn vekkerklokken. Du forteller assistenten din (vekkerklokke) for å vekke deg hvis en hendelse skjer. Gjør denne forespørselen til assistenten din (eller til vekkerklokken din) kalles registrering . I begge scenarier registrerer du deg selv med en wakeup-tjeneste. Etter at du har registrert, kan du forfølge din avslappende ikke-aktivitet, ignorerer all ekte virksomhet til en viss hendelse skjer. Så …

Ring, ring. Din mobiltelefon er hollering på deg. "Hallo? “

“Hei. Dette er din assistent. Jeg har salgstallene for første kvartal. De er 1 million, 4 millioner og 2 millioner. "

" La oss se. Det er totalt 7 millioner, sier du. "Jeg skal notere det på min PalmPilot. Takk. " Legg på.

Flere øyeblikk senere får du en annen samtale. "Presidenten til Big Bucks, Inc., ønsker å lukke denne avtalen. De snakker 10 millioner dollar. “

"Hmm," svarer du. "Det vil gi våre årlige inntekter opptil 17 megabukker. Jeg lagrer den informasjonen i regnearkprogrammet mitt. Takk for at du ringte. "

Hver av disse interaksjonene er kjent som en tilbakeringing .Tidligere på dagen, da du registrerte ditt ønske med assistenten, ba du om tilbakeringing. Deretter, når en hendelse finner sted, gjør assistenten en tilbakeringing for å varsle deg om hendelsen. I programmeringsvilkårene for Java kaller assistenten en av dine mange metoder (en av Java-delprogrammer).

Essensen av hendelsesdrevet programmering

Eventdrevet programmering har tre deler:

  • Registrering: Du registrerer ditt ønske om å bli varslet når en hendelse oppstår. Du registrerer dette ønsket med et annet stykke kode - et annet objekt, vanligvis noe du har importert (for eksempel et stykke kode som er en del av andres API). Dette objektet ser da, fra bak kulissene, for forekomsten av hendelsen du angav.
  • Hendelseshendelse: En spesiell hendelse skjer.
  • Tilbakering: Det andre stykket kode utfører en tilbakeringing. En av metodene dine blir kalt.

To typer kode

Skille mellom aktiv kode og passiv kode er nyttig:

  • Aktiv kode har en hovedmetode. Aktiv kode, når den begynner å kjøre, tar midtpunktet. Aktiv kode inneholder tråden av kjøring som styrer hele ballspillet.
  • Passiv kode sitter bare der og venter på å bli kalt. En passiv terningsklasse gjør ingenting før noen annen kode kaller terninger. rull().

Nå kan du tro at passiv kode er alt du trenger for hendelsesdrevet programmering, men det er det ikke. For hendelsehåndtering trenger du dette registreringssteget. Den passive koden starter ved å bli registrert med et annet stykke kode.

For å fastslå dette begrepet om registrering, tenk på et eksempel fra musen, vinduene og knappene på skjermen. Du lager et vindu eller en ramme. Du vil at rammen skal svare på museklikk, slik at du utsteder følgende kommando:

-knappen. addMouseListener (this);

Denne kommandoen registrerer rammen med knappen. Kommandoen sier i virkeligheten Når en mushendelse skjer, ring en av rammens mushåndteringsmetoder . Senere, når brukeren klikker musen, får rammen en tilbakeringing. Datamaskinen kaller rammens museklikkmetode.

SAX-hendelser

Visst, SAX er hendelsesdrevet, men dette betyr ikke at et SAX-program venter på museklikk. I stedet følger SAX-koden den register-event-tilbakeringingsmodellen som er beskrevet i de siste flere avsnittene. Hvert SAX-program har to uunnværlige kodenheter:

  • Et stykke kode du skriver - kalt handler . (Handleren din kan forlenge en forhåndskrevet DefaultHandler-klasse.)
  • Handler er som million dollar utøver i forrige avsnitt.
  • Et stykke kode som du vanligvis ikke skriver - parser . Parseren spiller en rolle som lederens assistent. Java 1. 4 API har en innebygd parser. Du oppretter et eksempel av denne parseren, og du registrerer deretter handleren din med den parser-forekomsten. I virkeligheten fortelle du at eksempelet skal ringe tilbake handleren din når en hendelse skjer.

Alt som har å gjøre med XML er nytt, og er fortsatt i en tilstand av flux. På grunn av dette er terminologien lappet sammen på noen spesielle måter. Mens du utviklet SAX versjon 2, hadde noen techies en make-up-new-names festival. Det som vanligvis kalles en "parser" er innebygd i et Java-grensesnitt som heter XMLReader. Det pleide å være en klasse som heter org. xml. sax. Parser, men klassen ble avskrevet (som betyr at du skal skrape den av bunnen av skoen din). For å gjøre ting litt mer komplisert, er det fortsatt et annet analyseverktøy, javax. xml. parsere. SAXParser. Du bruker denne SAXParseren til å lage en XMLReader. Med noe hell vil du raskt bli vant til denne innviklede terminologien. For nå, husk at det som kalles en "parser" er vanligvis en forekomst av XMLReader.

Register-and-callback-scenariet er det som gjør SAX-hendelsesdrevet. Nå er det morsomt, en SAX-begivenhet er ikke håndgripelig. En SAX-hendelse vil ikke minne deg om et tastetrykk eller en knappeklikk. I SAX skanner parseren et XML-dokument fra topp til bunn. Når parseren møter noe interessant, brenner parseren av en hendelse og ringer håndtereren. Så er det opp til handleren å gjøre noe med dette interessante møtet.

Parsing XML-hendelser med SAX-dummies

Redaktørens valg

Vis resultatene i forhold til et målområde i Excel-oversiktspanelet - dummies

Vis resultatene i forhold til et målområde i Excel-oversiktspanelet - dummies

Noen ganger trenger du målserier i Excel-oversikten og rapportene dine. I enkelte bedrifter er et mål ikke en verdi - det er en rekke verdier. Det vil si at målet er å holde seg innenfor et definert målområde. Tenk deg at du klarer en liten bedrift som selger esker med kjøtt. En del av jobben din er å ...

Slicer Tilpasninger for Slicers på Excel Dashboard - dummies

Slicer Tilpasninger for Slicers på Excel Dashboard - dummies

Hvis du skal bruke slicers på en Excel-dashbordet, bør du gjøre litt formatering for å få dine skiver til å passe til temaet og oppsettet på instrumentpanelet. Følgende diskusjon dekker noen formateringsjusteringer du kan gjøre til dine skiver. Størrelse og plassering av skiver En skiver oppfører seg som en standard Excel ...

Enkel statistikk i Excel Data Analyse - dummies

Enkel statistikk i Excel Data Analyse - dummies

Excel gir flere praktiske, brukervennlige verktøy for å analysere informasjon som du lagrer i et bord, inkludert noen raske og skitne statistiske verktøy. Se på følgende enkle bord. En enkel dagligvareliste. Et av de smaleste og raskeste verktøyene som Excel gir, er muligheten til enkelt å beregne summen, gjennomsnittet, antall, minimum og maksimum av ...

Redaktørens valg

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Filtrene kategorien er trolig den mest interessante og en nyttig kategori som er levert av dialogboksen QuickBooks Modify Report. Filtre-fanen lar deg sette opp filtre som du kan bruke til å angi hvilken informasjon som oppsummeres i rapporten. For å bruke Filtrer-fanen velger du først feltet du vil ha ...

Bruk skjermfeltet til å modifisere QuickBooks 2012-rapporter - dummies

Bruk skjermfeltet til å modifisere QuickBooks 2012-rapporter - dummies

Hvis du klikker Tilpass rapport- QuickBooks viser dialogboksen Endre rapport, som du kan bruke til å tilpasse en rapport. Når du tilpasser en rapport, endrer du rapportens utseende, layout og informasjonen som den oppsummerer. Dialogboksen Endre rapport ser annerledes ut for ulike rapporttyper. Likevel, hvis du ser forbi ...

Slik bruker du QuickBooks for din hvite papir forretningsplan - dummies

Slik bruker du QuickBooks for din hvite papir forretningsplan - dummies

QuickBooks kan hjelpe deg skriv en hvit-papir forretningsplan. Folk skriver ofte en forretningsplan for hvitt papir når de vet at de trenger en strategisk plan, men ikke ønsker å ta de harde beslutningene som er nødvendige for en strategisk plan. Personen i denne konfronten skriver en lang hvit-papir forretningsplan for å camouflere den fraværende strategiske planen. ...

Redaktørens valg

Canon 60D elektronisk nivåfunksjon - dummies

Canon 60D elektronisk nivåfunksjon - dummies

Ikke hvert fotografi må være nivå med horisonten. Imidlertid lider mange typer bilder (landskap, bybilder og arkitektonisk fotografi) sterkt når kameraet er vippet. Den gammeldags løsningen for å utjevne kameraet ditt er å bruke et boble- eller åndnivå (funnet i fotobutikker) for å kontrollere kameraets justering med ...

Kamerainnstillingsdisplayet på et Canon EOS Rebel T3-serie Kamera-dummies

Kamerainnstillingsdisplayet på et Canon EOS Rebel T3-serie Kamera-dummies

På din Canon Rebel T3 eller T3i, kan du se en samling av tilleggsinnstillingsdata via kamerainnstillingsdisplayet. Denne skjermen er bare et informasjonsverktøy, men; Du kan ikke justere noen av de rapporterte innstillingene fra denne skjermen. For å vise skjermbildet Kamerainnstillinger på T3i, vis først innstillingsinnstillingene ...

Canon EOS 70D Kameraoppsett - dummies

Canon EOS 70D Kameraoppsett - dummies

Her er en oversikt over knappene, ringer og andre eksterne kontroller på Canon EOS 70D-kameraet ditt. Objektivet vist i de følgende figurene er Canon EF-S 18-135mm IS (bildestabiliseringsmodell) som selges med kameraet; Andre linser kan variere.