Hem Personliga finanser Parsing XML-händelser med SAX-dummies

Parsing XML-händelser med SAX-dummies

Innehållsförteckning:

Video: Rhaegar: was Jon’s father the true hero of Game of Thrones? 2024

Video: Rhaegar: was Jon’s father the true hero of Game of Thrones? 2024
Anonim

Ordet händelse visar upp alla typer av bilder. För en nonprogrammer är en händelse bara "något som händer. "Om du är van vid att hantera Windows och ramar i Java, tänker du förmodligen på en händelse som en händelse som väcker en del kod. Till exempel, en användares musklick eller knapptryckning väcker upp koden som anger ett alternativ och visar en OK-ruta. Klick eller knapptryckning i sig kallas en händelse eftersom det händer oberoende av det pågående programmet. Endast användaren vet när han eller hon trycker på den knappen. Och när knappen trycks ned vaknar en del av Java-programmet bara och hanterar situationen. Detta scenario kallas händelsesdriven programmering .

Händelsesdriven programmering

SAX-program är händelsesdrivna . Till exempel går du in i sängen för en god natts sömn. Du når över för att ställa in din väckarklocka och sedan slå sig in, stänga dina ögon och bli omedvetna om ett antal timmar. Då händer en viktig händelse: En viss tid på dagen anländer. När händelsen sker, går väckarklockan i sitt "vakna" -läge - och gör en hemsk mun för att röra dig ur din vilsam sömn.

Här är ett annat scenario. Du är en upptagen verkställande och du kommer att vara ute i flera timmar, men du vill inte sakna något viktigt företag. Innan du lämnar kontoret berättar du din assistent, "Ring mig om någonting viktigt kommer upp. "Utfärdande av denna order är relaterad till att väckarklockan ställs in. Du berättar din assistent (din väckarklocka) för att väcka dig om en händelse äger rum. Att göra denna begäran till din assistent (eller till din väckarklocka) heter registrering . I båda scenarierna registrerar du dig själv med en wakeup-tjänst. Efter att du har registrerat dig kan du fortsätta din avslappnade icke-verksamhet, ignorera alla verkliga affärer tills en händelse inträffar. Sedan …

Ring, ring. Din mobiltelefon höljer på dig. "Hallå? ”

”Hello. Det här är din assistent. Jag har försäljnings siffror för första kvartalet. De är 1 miljoner, 4 miljoner och 2 miljoner. "

" Låt oss se. Det är totalt 7 miljoner, säger du. "Jag noterar det på min PalmPilot. Tack. " Du lägger på.

Flera ögonblick senare får du ett nytt samtal. "Presidenten för Big Bucks, Inc., vill stänga den affären. De pratar 10 miljoner dollar. ”

"Hmm," svarar du. "Det kommer att ge våra årliga inkomster upp till 17 megabucker. Jag lagrar den informationen i min kalkylarksapplikation. Tack för att du ringde. "

Var och en av dessa interaktioner kallas en återuppringning .Tidigare på dagen, när du registrerade din önskan med assistenten, begärde du en återuppringning. Då, när en händelse äger rum, gör assistenten en återuppringning för att meddela dig om händelsen. I Java-programmeringsvillkoren ringer assistenten en av dina många metoder (ett av dina Java-delprogram).

Kärnan i händelsesdriven programmering

Händelsesdriven programmering har tre delar:

  • Registrering: Du registrerar ditt önskemål om att bli underrättad när en händelse inträffar. Du registrerar denna önskan med ett annat kodstycke - ett annat objekt, vanligtvis något du har importerat (till exempel ett kodnummer som ingår i någon annans API). Detta objekt tittar sedan bakom kulisserna för händelsen som du angav.
  • Händelse förekomst: En specifik händelse händer.
  • Återuppringning: Den andra kodstycket utför en återuppringning. En av dina metoder kallas.

Två typer av kod

Skillnad mellan aktiv kod och passiv -kod är användbar:

  • Aktiv kod har en huvudmetod. Aktiv kod, när den börjar köra, tar det centrala steget. Aktiv kod innehåller tråden av körning som styr hela bollspelet.
  • Passiv kod sitter bara där och väntar på att bli kallad. En passiv tärningsklass gör ingenting tills någon annan kod kallar tärning. rulla().

Nu kanske du tror att passiv kod är allt du behöver för händelsesdriven programmering men det är det inte. För händelsehantering behöver du detta registreringssteg. Den passiva koden börjar med att bli registrerad med något annat kodstycke.

Tänk på ett exempel från mus, fönster och knappar på skärmen för att fastställa detta begrepp. Du skapar ett fönster eller en ram. Du vill att din ram ska svara på musklick, så du utfärdar följande kommando:

-knappen. addMouseListener (detta);

Den här kommandot registrerar din ram med knappen. Kommandot säger i själva verket När en mushändelse händer, ring en av ramens mushanteringsmetoder . Senare, när användaren klickar på musen får rammen en återuppringning. Datorn kallar ramens musklickade metod.

SAX-händelser

Visst, SAX är händelsestyrt, men det betyder inte att ett SAX-program väntar på musklick. I stället följer SAX-koden den registret-händelse-återkallningsmodell som beskrivs i de sista flera styckena. Varje SAX-program har två oumbärliga kodstycken:

  • Ett stycke kod du skriver - kallat handler . (Din hanterare kan förlänga en förskriven DefaultHandler-klass.)
  • Handlaren är som miljon dollar verkställande i föregående avsnitt.
  • Ett stycke kod som du normalt inte skriver - parser . Parsern spelar en roll som chefens assistent. Java 1. 4 API har en inbyggd parser. Du skapar en instans av den här parsern och registrerar sedan din hanterare med den parserinstansen. I själva verket berättar du förekomsten att ringa tillbaka din handlar närhelst en händelse äger rum.

Något som har att göra med XML är nytt, och är fortfarande i ett tillstånd av flöde. På grund av detta sammanpressas terminologin på några speciella sätt. Under utveckling av SAX version 2 hade vissa tekniker en make-up-new-names festival. Vad som vanligtvis kallas en "parser" är uppbyggd i ett Java-gränssnitt som heter XMLReader. Det brukade vara en klass med namnet org. xml. sax. Parser, men klassen har avskriven (vilket innebär att du ska skrapa bort den från din skos botten). För att göra sakerna lite mer komplicerade finns det fortfarande ett annat analysverktyg, javax. xml. tolkar. SAXParser. Du använder denna SAXParser för att skapa en XMLReader. Med någon tur kommer du snabbt att bli van vid denna härliga terminologi. För nu, kom ihåg att det som kallas en "parser" är vanligtvis en förekomst av XMLReader.

Registret-och-återkopplingsscenariot är det som gör SAX händelsedriven. Nu är det roligt, en SAX-händelse är inte konkret. En SAX-händelse kommer inte påminna dig om ett tangenttryck eller en knapptryckning. I SAX skannar parsaren ett XML-dokument från topp till botten. När parsern möter något intressant, parsaren avfyras av en händelse och kallar handlaren. Då är det upp till handlaren att göra något om detta intressanta möte.

Parsing XML-händelser med SAX-dummies

Redaktörens val

Hur man redigerar bilder i Redigera snabbläge för Photoshop Elements 9 - dummies

Hur man redigerar bilder i Redigera snabbläge för Photoshop Elements 9 - dummies

I Photoshop Element, Redigera Snabbt läge är en uppskattad version av Redigera fullt läge som ger grundläggande fixverktyg tillsammans med några unika funktioner, till exempel en förhandsgranskning av bilden. Här är ett steg för steg arbetsflöde som du kan följa i Redigera snabbläge för att reparera dina foton: Välj ett eller flera foton i ...

Hur man redigerar i Photoshop Elements 10: s Snabb Fotoredigeringsläge - dummies

Hur man redigerar i Photoshop Elements 10: s Snabb Fotoredigeringsläge - dummies

Snabb Fotoredigering är en uppskattad version av Full Photo Edit-läge som bekvämt ger grundläggande fixeringsverktyg och kastar i några unika egenskaper, till exempel en förhandsgranskning av bilden. Här är ett steg för steg arbetsflöde som du kan följa i Quick Photo Edit-läget för att reparera dina foton:

Hur man förbättrar Photoshop Elements-bilder med Photo Effects - dummies

Hur man förbättrar Photoshop Elements-bilder med Photo Effects - dummies

Fotoeffekter i Photoshop Elements 11 fungerar som applicera filter; medan dialogrutan Filtreringsgalleri ger dig många alternativ för att tillämpa ett filter, ger den guidade panelen dig filtereffekter och tar dig genom steg för att justera ljusstyrka, ändra färgton och mättnad och göra andra justeringar för att perfekta resultatet. Du ...

Redaktörens val

Hur man tar bort bilder från din Canon EOS 7D Mark II - dummies

Hur man tar bort bilder från din Canon EOS 7D Mark II - dummies

När du granskar en bild, bestämmer du om det är en målvakt. Om du tittar på en bild på din Canon EOS 7D Mark II, gillar du inte bilden av någon anledning kan du radera det. Men borttagning av bilder måste ske med stor försiktighet eftersom uppgiften inte kan ångras. När du har raderat en ...

Hur man redigerar filmer på en Canon EOS 60D - dummies

Hur man redigerar filmer på en Canon EOS 60D - dummies

60D Edit-funktionen gör det härligt enkelt för att ta bort oönskade delar från början eller slutet av en film direkt på din kamera. Denna ombordredigering är praktisk men grundläggande, så förvänta dig inte mirakel. Här är de enkla stegen för att trimma början eller slutet på en film: Klicka på ikonen Redigera (det ser ut ...

Redaktörens val

Hur man arbetar med text i ett Word 2010-tabell - dummies

Hur man arbetar med text i ett Word 2010-tabell - dummies

Text hinner i ett bord i Word 2010 på en cell-vid-cell basis. Varje cell i ett Word-bord kan ha ett eget styckeformat och en egen uppsättning flikar. Grupper av celler, rader och kolumner och hela tabellen kan väljas och formateras samtidigt, om du vill. All standardtext ...

Hur man arbetar med Word 2010: s decimala flik - dummies

Hur man arbetar med Word 2010: s decimala flik - dummies

Du kan använda decimalfliken i Word 2010 till rad upp kolumner av siffror. Även om du kan använda en rätt flik för att göra detta jobb är decimalfliken ett bättre val. I stället för högerjusterad text, som den högra fliken gör, justerar decimalfliken siffror efter deras decimaldel - perioden i ...

Hur man arbetar med flera Word 2010-dokument på samma gång - dummies

Hur man arbetar med flera Word 2010-dokument på samma gång - dummies

O saker Word 2010 kan göra med dokument! Du kan öppna flera Word-dokument samtidigt och arbeta på mycket av dem, växla mellan de olika öppna dokumenten. Öppnar flera Word-dokument samtidigt Det är inte en fråga om hur Word kan fungera på mer än ett dokument åt gången. Nej, ...