Hjem Personlig finansiering Parsing XML-arrangementer med SAX-dummies

Parsing XML-arrangementer med SAX-dummies

Indholdsfortegnelse:

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

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

Ordet begivenhed fremkalder alle slags billeder. For en nonprogrammer er en begivenhed bare "noget der sker. "Hvis du er vant til at håndtere vinduer og rammer i Java, så tænker du sandsynligvis på en begivenhed som en begivenhed, der vækker et stykke kode. For eksempel vågner en brugers museklik eller tastetryk den kode, der angiver en indstilling, og viser en OK-boks. Selve klik eller tastetryk kaldes en begivenhed , fordi det sker uafhængigt af det kørende program. Kun brugeren ved, hvornår han eller hun vil trykke på knappen. Og når knappen trykkes, vågner en del af Java-programmet lige op og håndterer situationen. Dette scenario kaldes hændelsesdrevet programmering .

Hændelsesdrevet programmering

SAX-programmer er hændelsesdrevne . For eksempel kommer du ind i sengen for en god nats søvn. Du kommer over for at indstille din vækkeur og derefter slå sig ned, lukke øjnene og blive bevidstløs i et antal timer. Så sker der en vigtig begivenhed: En bestemt tid på dagen ankommer. Når arrangementet finder sted, går vækkeuret i sin "wake up" -tilstand - og gør en forfærdelig dukke til at røre dig ud af din rolige søvn.

Her er et andet scenario. Du er en travl executive, og du vil være ude i flere timer, men du vil ikke gå glip af nogen vigtig forretning. Før du forlader kontoret, fortæller du din assistent: "Ring til mig, hvis noget vigtigt kommer op. "Udstedelse af denne ordre er beslægtet med at indstille vækkeuret. Du fortæller din assistent (dit vækkeur) for at vække dig op, hvis en begivenhed finder sted. Gør denne anmodning til din assistent (eller til din vækkeur) kaldes registrering . I begge scenarier registrerer du dig selv med en wakeup service. Når du har registreret, kan du forfølge din afslappede ikke-aktivitet, ignorere alle rigtige forretninger, indtil der sker en begivenhed. Så …

Ring, ring. Din mobiltelefon er hollering på dig. "Hej? ”

”Hej. Dette er din assistent. Jeg har salgstal for første kvartal. De er 1 million, 4 millioner og 2 millioner. "

" Lad os se. Det er i alt 7 millioner, "siger du. "Jeg noterer det på min PalmPilot. Tak. "Du hænger op.

Flere øjeblikke får du et andet opkald. "Præsidenten for Big Bucks, Inc., ønsker at lukke denne aftale. De taler 10 millioner dollars. ”

"Hmm," svarer du. "Det vil bringe vores årlige omsætning op til 17 megabukker. Jeg gemmer disse oplysninger i min regnearksapplikation. Tak for at kalde. "

Hver af disse interaktioner kaldes en tilbagekaldelse .Tidligere på dagen, da du registrerede dit ønske med assistenten, anmodede du om tilbagekald. Så når en begivenhed finder sted, gør assistenten en tilbagekald for at give dig besked om begivenheden. I Java-programmeringsbetingelser kalder assistenten en af ​​dine mange metoder (et af dine Java-underprogrammer).

Kernen i hændelsesdrevet programmering

Hændelsesdrevet programmering har tre dele:

  • Registrering: Du registrerer dit ønske om at blive underrettet, når en begivenhed opstår. Du registrerer dette ønske med et andet stykke kode - et andet objekt, normalt noget du har importeret (som et stykke kode, der er en del af en andens API). Dette objekt ser derefter bagfra scenerne for forekomsten af ​​den begivenhed, du har angivet.
  • Begivenhedshændelse: Der sker en specifik begivenhed.
  • Tilbagekald: Det andet stykke kode udfører en tilbagekaldelse. En af dine metoder bliver kaldt.

To typer af kode

At skelne mellem aktiv kode og passiv kode er nyttig:

  • Aktiv kode har en hovedmetode. Aktiv kode, når den begynder at køre, tager det centrale trin. Aktiv kode indeholder tråden af ​​eksekvering, der styrer hele boldspil.
  • Passiv kode sidder bare der og venter på at blive kaldt. En passiv terningsklasse gør ingenting før nogle andre kodeopkald terninger. rulle().

Nu tror du måske, at passiv kode er alt hvad du behøver for hændelsesdrevet programmering, men det er det ikke. For begivenhedshåndtering har du brug for dette registreringsstrin. Den passive kode begynder ved at blive registreret med et andet stykke kode.

Tænk på et eksempel fra mus, vinduer og knapper på skærmens verden for at fastslå denne forestillingsside. Du opretter et vindue eller en ramme. Du vil have din ramme til at reagere på museklik, så du udsteder følgende kommando:

-knappen. addMouseListener (dette);

Denne kommando registrerer din ramme med knappen. Kommandoen siger i virkeligheden Når en mushændelse sker, skal du ringe til en af ​​rammens mushåndteringsmetoder . Senere, når brugeren klikker på musen, får rammen et tilbagekald. Computeren kalder rammens mouseClicked metode.

SAX events

Visst, SAX er eventdrevet, men det betyder ikke, at et SAX-program venter på museklik. I stedet følger SAX-koden den register-event-callback-model, der er beskrevet i de sidste flere afsnit. Hvert SAX-program har to uundværlige stykker kode:

  • Et stykke kode, du skriver - kaldet handler . (Din håndterer kan udvide en forudskrevet DefaultHandler-klasse.)
  • Handleren er som million dollar-direktøren i det foregående afsnit.
  • Et stykke kode, som du normalt ikke skriver - parser . Parseren spiller en rolle som eksekutivets assistent. Java 1. 4 API har en indbygget parser. Du opretter et eksempel af denne parser, og derefter registrerer du din håndterer med den parser-forekomst. I virkeligheden fortæller du eksemplet at ringe til din handler, når en begivenhed finder sted.

Alt hvad der skal gøres med XML er nyt, og er stadig i en tilstand af flux. På grund af dette er terminologien patched sammen på nogle ejendommelige måder. Under udvikling af SAX version 2 havde nogle techies en make-up-new-names festival. Hvad der normalt kaldes en "parser" er indeholdt i en Java-grænseflade, der hedder XMLReader. Der plejede at være en klasse ved navn org. xml. sax. Parser, men klassen blev udskrevet (hvilket betyder at du skal skrabe det ud af bunden af ​​din sko). For at gøre tingene lidt mere komplicerede, er der stadig et andet parsningsværktøj, javax. xml. parsere. SAXParser. Du bruger denne SAXParser til at lave dig selv en XMLReader. Med held og lykke bliver du hurtigt vant til denne forfærdelige terminologi. For nu skal du huske at det, der kaldes en "parser", er normalt en forekomst af XMLReader.

Registret og tilbagekaldscenariot er det, der gør SAX event-driven. Nu er det sjovt, en SAX-begivenhed er ikke håndgribelig. En SAX-begivenhed minder dig ikke om et tastetryk eller en klik på knappen. I SAX scanner parseren et XML-dokument fra top til bund. Når parseren møder noget interessant, brænder parseren af ​​en begivenhed og kalder håndtereren. Så er det op til handleren at gøre noget ved dette interessante møde.

Parsing XML-arrangementer med SAX-dummies

Valg af editor

Fuld redigeringsfunktion i Photoshop Elements 10 - dummies

Fuld redigeringsfunktion i Photoshop Elements 10 - dummies

Fuld fotoredigeringsfunktion tilbyder bundter af værktøjer, som du kan bruge at redigere dine billeder, fra korrektionsværktøjer til fastsættelse af farve og klarhed til filtre, lag og meget mere for at ændre eksisterende fotos eller skabe helt originale billeder fra bunden. Men alle disse værktøjer gør også Komplet fotoredigeringstilstand kompleks. Du kan flytte ind i ...

Generelle blandingsformer i Photoshop Elements - dummies

Generelle blandingsformer i Photoshop Elements - dummies

Elementer spænder over 25 blandingstilstande. Blend modes påvirker hvordan farver interagerer mellem lag og også hvordan farver interagerer, når du anvender maling på et lag. Ikke alene gør blandingstilstande interessante effekter, men du kan også nemt anvende, redigere eller fjerne blandingsfunktioner uden at røre dine billedpixel. De forskellige blandingstilstande ...

Geometriske formindstillinger i Photoshop Elements - dummies

Geometriske formindstillinger i Photoshop Elements - dummies

Geometriindstillinger hjælpe med at definere, hvordan dine figurer ser ud. Klik på nedpegepilen i værktøjsindstillingerne i Elements for at få adgang til de geometriske indstillinger, der beskrives i det følgende. Rektangulære og afrundede rektangel geometriske indstillinger Her er geometriske indstillinger for rektangel og afrundede rektangelformer: Ubegrænset: Giver dig mulighed for at få fri tøj til at tegne en ...

Valg af editor

Sådan bygger du tabeller i HTML5 - dummies

Sådan bygger du tabeller i HTML5 - dummies

Sommetider indeholder din webside data bedst fremlagt i et bord . Du kan bruge HTML5's komplette bordsystem til at oprette tabeller som den i dette eksempel: Den grundlæggende struktur i et bord i HTML-format er rimeligt let at forstå; Tjek koden, der oprettede tabellen i eksemplet:

Hvordan man ændrer gentagne baggrunde på CSS3-steder - dummier

Hvordan man ændrer gentagne baggrunde på CSS3-steder - dummier

Der er situationer, hvor man kun vil en enkelt kopi af et baggrundsbillede på dit CSS3-websted. Det kan være, at billedet du har brugt er noget, der ikke gentager sig godt eller er stort nok til, at du virkelig ikke vil have det gentaget. Følgende procedure viser en teknik, du kan bruge til at fortælle ...

Hvordan man opbygger en webside skabelon fra scratch-dummies

Hvordan man opbygger en webside skabelon fra scratch-dummies

Standardværktøjet på tværs af digitalt agenturer og interne afdelinger til opbygning af website grafik er Adobe Photoshop. Selvom fyrværkeri er optimeret og målrettet til at producere web-grafiske kildefiler, er det bare ikke fanget, sandsynligvis på grund af den massive genoplæringsindsats ville det medføre, at hele afdelinger gør omskifteren. At oprette et nyt ...

Valg af editor

Sådan godkendes medlemmer til din LinkedIn Group - dummier

Sådan godkendes medlemmer til din LinkedIn Group - dummier

Som flere og flere mennesker finder ud af din ny LinkedIn-gruppe, og som medlemmer begynder at deltage, kan du opleve, at nogle af de personer, der har klikket på linket for at deltage, ikke er på din forhåndsgodkendte liste. Måske er de mennesker, du ikke har forstået var på LinkedIn, eller du var ikke klar over, at de var gyldige grupper ...

Hvordan man tilføjer billeder til kroppen i din LinkedIn-profil til Visual Social Marketing - dummies

Hvordan man tilføjer billeder til kroppen i din LinkedIn-profil til Visual Social Marketing - dummies

Ud over et profilbillede giver LinkedIn brugere mulighed for at forbedre de visuelle sociale markedsføringselementer i deres profiler ved at tilføje billeder til deres profilprofil. Du kan tilføje billeder til ethvert afsnit i din LinkedIn-profil. Tilføjelse af billeder til din profil kan hjælpe dig med at fortælle din historie visuelt og ...

Sådan tilføjer du en virksomhedsside til LinkedIn - dummies

Sådan tilføjer du en virksomhedsside til LinkedIn - dummies

, Når du har opfyldt kravene til oprettelse en virksomhedsside på LinkedIn, er det tid til at komme i gang ved at tilføje selskabets side til Linkedins system. For at oprette din virksomhedsside skal du blot følge disse trin: