Zuhause Persönliche Finanzen Analysieren von XML-Ereignissen mit SAX-Dummies

Analysieren von XML-Ereignissen mit SAX-Dummies

Inhaltsverzeichnis:

Video: Azure Friday | Azure Analysis Services Scale Out & Diagnostics 2024

Video: Azure Friday | Azure Analysis Services Scale Out & Diagnostics 2024
Anonim

Das Wort event zaubert alle Arten von Bildern. Für einen Nicht-Programmierer ist ein Ereignis nur "etwas, das passiert. "Wenn Sie es gewohnt sind, in Java mit Fenstern und Frames zu arbeiten, dann denken Sie wahrscheinlich an ein Ereignis als ein Ereignis, das ein Stück Code weckt. Zum Beispiel weckt der Mausklick oder Tastenanschlag eines Benutzers den Code auf, der eine Option festlegt und ein OK-Feld anzeigt. Der Klick oder Tastenanschlag selbst wird als -Ereignis bezeichnet, da dies unabhängig vom laufenden Programm geschieht. Nur der Benutzer weiß, wann er diese Taste drücken wird. Und wenn die Taste gedrückt wird, erwacht ein Teil des Java-Programms und behandelt die Situation. Dieses Szenario wird ereignisgesteuerte Programmierung genannt.

Ereignisgesteuerte Programmierung

SAX-Programme sind ereignisgesteuert . Zum Beispiel schlafen Sie für einen guten Schlaf ins Bett. Sie greifen hinüber, um Ihren Wecker einzustellen und sich dann einzuleben, die Augen zu schließen und für einige Stunden bewusstlos zu werden. Dann passiert ein wichtiges Ereignis: Eine bestimmte Tageszeit kommt an. Wenn das Ereignis stattfindet, geht der Wecker in den "Weckmodus" - und macht einen schrecklichen Lärm, um Sie aus Ihrem erholsamen Schlaf zu stören.

Hier ist ein anderes Szenario. Sie sind ein vielbeschäftigter Manager und werden mehrere Stunden unterwegs sein, aber Sie möchten kein wichtiges Geschäft verpassen. Bevor Sie das Büro verlassen, sagen Sie Ihrem Assistenten: "Rufen Sie mich an, wenn etwas Wichtiges auftaucht. "Die Ausgabe dieser Reihenfolge ähnelt dem Einstellen des Weckers. Sie teilen Ihrem Assistenten (Ihrem Wecker) mit, dass Sie geweckt werden, wenn ein Ereignis stattfindet. Diese Anforderung an Ihren Assistenten (oder an Ihren Wecker) wird als Registrierung bezeichnet. In beiden Fällen melden Sie sich bei einem Weckdienst an. Nachdem Sie sich registriert haben, können Sie Ihre gemächliche Nichtaktivität verfolgen und alle echten Geschäfte ignorieren, bis ein Ereignis eintritt. Dann …

Ring, Ring. Ihr Handy brüllt Sie an. "Hallo? "

" Hallo. Das ist dein Assistent. Ich habe die Verkaufszahlen für das erste Quartal. Sie sind 1 Million, 4 Million und 2 Million. "

" Mal sehen. Das sind insgesamt 7 Millionen ", sagen Sie. "Ich werde es auf meinem PalmPilot notieren. Vielen Dank. " Du legst auf.

Einige Augenblicke später erhalten Sie einen weiteren Anruf. "Der Präsident von Big Bucks, Inc., will dieses Geschäft schließen. Sie sprechen 10 Millionen Dollar. "

"Hmm", antworten Sie. "Das wird unseren jährlichen Umsatz bis zu 17 Megabucks bringen. Ich werde diese Informationen in meiner Tabellenkalkulationsanwendung speichern. Danke für den Anruf. "

Jede dieser Interaktionen ist als Callback bekannt.Zu Beginn des Tages, als Sie Ihren Wunsch mit dem Assistenten registriert haben, haben Sie einen Rückruf angefordert. Wann immer ein Ereignis stattfindet, ruft der Assistent einen Rückruf an, um Sie über das Ereignis zu informieren. In Java-Programmierbegriffen ruft der Assistent eine Ihrer vielen Methoden (eines Ihrer Java-Unterprogramme) auf.

Die Essenz der ereignisgesteuerten Programmierung

Die ereignisgesteuerte Programmierung besteht aus drei Teilen:

  • Registrierung: Sie registrieren Ihren Wunsch, benachrichtigt zu werden, wenn ein Ereignis eintritt. Sie registrieren diesen Wunsch mit einem anderen Code - einem anderen Objekt, in der Regel etwas, das Sie importiert haben (z. B. ein Stück Code, das Teil der API eines anderen ist). Dieses Objekt überwacht dann von hinten das Auftreten des von Ihnen angegebenen Ereignisses.
  • Ereignisereignis: Ein bestimmtes Ereignis wird ausgelöst.
  • Rückruf: Der andere Code führt einen Rückruf durch. Eine Ihrer Methoden wird aufgerufen.

Zwei Arten von Code

Die Unterscheidung zwischen aktivem Code und passivem Code ist nützlich:

  • Aktiver Code hat eine Hauptmethode. Aktiver Code, sobald er anfängt zu laufen, steht im Mittelpunkt. Aktiver Code enthält den Ausführungs-Thread, der das gesamte Ballspiel steuert.
  • Passiver Code sitzt einfach da und wartet darauf, gerufen zu werden. Eine passive Dice-Klasse tut nichts, bis ein anderer Code Dice aufruft. rollen().

Nun können Sie denken, dass passiver Code alles ist, was Sie für eine ereignisgesteuerte Programmierung benötigen, aber das ist es nicht. Für die Ereignisbehandlung benötigen Sie diesen Registrierungsschritt. Der passive Code beginnt mit der Registrierung eines anderen Codes.

Um diesen Begriff der Registrierung zu festigen, denken Sie an ein Beispiel aus der Bildschirmwelt der Mäuse, Fenster und Tasten. Sie erstellen ein Fenster oder einen Rahmen. Sie möchten, dass Ihr Frame auf Mausklicks reagiert. Geben Sie daher den folgenden Befehl ein:

. addMouseListener (dies);

Dieser Befehl registriert Ihren Rahmen mit der Schaltfläche. Der Befehl sagt praktisch Wenn ein Mausereignis eintritt, rufen Sie eine der Mausbehandlungsmethoden des Rahmens auf. Später, wenn der Benutzer mit der Maus klickt, erhält der Rahmen einen Rückruf. Der Computer ruft die mouseClicked-Methode des Frames auf.

SAX-Ereignisse

Sicher, SAX ist ereignisgesteuert, aber das bedeutet nicht, dass ein SAX-Programm auf Mausklicks wartet. Stattdessen folgt der SAX-Code dem in den letzten Absätzen beschriebenen Register-Ereignis-Callback-Modell. Jedes SAX-Programm verfügt über zwei unverzichtbare Codestücke:

  • Ein von Ihnen geschriebener Code - der -Handler . (Ihr Handler kann eine vorgefertigte DefaultHandler-Klasse erweitern.)
  • Der Handler ist wie die Million-Dollar-Exekutive im vorhergehenden Abschnitt.
  • Ein Stück Code, das Sie normalerweise nicht schreiben - der -Parser . Der Parser spielt eine Rolle wie der Assistent des Direktors. Die Java 1. 4-API verfügt über einen integrierten Parser. Sie erstellen eine Instanz dieses Parsers und registrieren dann Ihren Handler mit dieser Parserinstanz. Im Endeffekt weisen Sie die Instanz an, Ihren Handler immer dann zurückzurufen, wenn ein Ereignis stattfindet.

Alles, was mit XML zu tun hat, ist neu und befindet sich noch immer im Wandel. Aus diesem Grund ist die Terminologie auf besondere Weise zusammengesetzt. Bei der Entwicklung von SAX Version 2 hatten einige Techies ein Make-up-New-Name-Festival. Was normalerweise als "Parser" bezeichnet wird, ist in einer Java-Schnittstelle namens XMLReader enthalten. Früher gab es eine Klasse namens org. XML. Saxophon. Parser, aber die Klasse wurde veraltet (was bedeutet, dass Sie sie von der Unterseite Ihres Schuhs abkratzen sollten). Um die Sache etwas komplizierter zu machen, gibt es noch ein weiteres Parsing-Tool, javax. XML. Parser. SAXParser. Sie verwenden diesen SAXParser, um sich selbst zu einem XMLReader zu machen. Mit etwas Glück werden Sie sich schnell an diese komplizierte Terminologie gewöhnen. Denken Sie daran, dass ein sogenannter "Parser" normalerweise eine Instanz von XMLReader ist.

Das Register-und-Callback-Szenario macht SAX ereignisgesteuert. Das Lustige ist nun, ein SAX-Event ist nicht greifbar. Ein SAX-Ereignis erinnert Sie nicht an einen Tastendruck oder einen Tastenklick. In SAX scannt der Parser ein XML-Dokument von oben nach unten. Wenn der Parser auf etwas Interessantes stößt, löst der Parser ein Ereignis aus und ruft den Handler auf. Dann muss der Handler etwas gegen diese interessante Begegnung unternehmen.

Analysieren von XML-Ereignissen mit SAX-Dummies

Die Wahl des Herausgebers

Bearbeiten in Photoshop Elements 10 Schnellfoto-Bearbeitungsmodus - Schnuller

Bearbeiten in Photoshop Elements 10 Schnellfoto-Bearbeitungsmodus - Schnuller

Schneller Foto-Bearbeitungsmodus ist eine abgespeckte Version des Modus "Full Photo Edit", der einfach grundlegende Fixingtools bereitstellt und mit einigen einzigartigen Funktionen aufwartet, z. B. eine Vorher-Nachher-Vorschau Ihres Bildes. Hier ist ein Schritt-für-Schritt-Workflow, den Sie im Schnellfoto-Bearbeitungsmodus verwenden können, um Ihre Fotos zu reparieren:

Zum Optimieren von Photoshop Elements-Bildern mit Fotoeffekten - Dummies

Zum Optimieren von Photoshop Elements-Bildern mit Fotoeffekten - Dummies

Fotoeffekte in Photoshop Elements 11 funktionieren wie Anwenden von Filtern; Das Dialogfeld "Filtergalerie" bietet Ihnen zahlreiche Optionen zum Anwenden eines Filters. Das geführte Bedienfeld bietet Ihnen Filtereffekte und führt Sie dann durch die Schritte zum Anpassen von Helligkeitswerte, Ändern von Farbton und Sättigung und Durchführen weiterer Anpassungen zum Vervollkommnen des Ergebnisses. Sie ...

Eingeben des Absatztyps in Photoshop Elements 11 - Dummies

Eingeben des Absatztyps in Photoshop Elements 11 - Dummies

Absatztyp in Photoshop Elements 11 ist ähnlich zu dem Text, den Sie in ein Textverarbeitungsprogramm eingeben, mit der Ausnahme, dass er in einem Textfeld oder einem Begrenzungsrahmen enthalten ist. Wenn Sie größere Textabschnitte haben, die Sie in ein Bild eingeben möchten, ist die Eingabe des Textes als Absatztyp die praktischste Option. Während ...

Die Wahl des Herausgebers

PHP-Anweisungen - Dummys

PHP-Anweisungen - Dummys

PHP ist eine Skriptsprache, die speziell für die Verwendung im Internet entwickelt wurde. Es enthält Funktionen, die Sie bei der Programmierung der Aufgaben unterstützen, die für die Entwicklung dynamischer Webanwendungen erforderlich sind. Diese Tabelle gibt einen kurzen Überblick über einige der Anweisungen, die Sie häufig verwenden werden: Anweisung Beschreibung array ("key" => "value", ...); Casts a ...

PHP-Schablonen-Systeme - Schablonen-Systeme

PHP-Schablonen-Systeme - Schablonen-Systeme

Können die Menge an Arbeit reduzieren, die Sie für die Erstellung einer Website in PHP benötigen. Wenn Sie eine Website erstellen, verwenden Sie häufig das gleiche Layout für die gesamte Website. Sie haben eine obere Portion, vielleicht mit einem Menü; ein Hauptinhaltsbereich; und ein unterer Teil, vielleicht mit Links oder ...

Make MySQL Datenbank Änderungen mit den ALTER Query - Dummies

Make MySQL Datenbank Änderungen mit den ALTER Query - Dummies

Die ALTER Query wird verwendet, um die Struktur von eine MySQL-Datenbank. In dieser Liste wird die Syntax für die Änderungen angezeigt, die Sie wahrscheinlich vornehmen möchten: ADD-Spaltenbezeichnung ALTER-Spaltenname SET-DEFAULT-Wert ALTER-Spaltenname DROP DEFAULT CHANGE-Spaltenname newcolname-Definition DROP-Spaltenname MODIFY-Spaltenname RENAME newtablename

Die Wahl des Herausgebers

Hochgeschwindigkeitsdatencaching mit NoSQL - Dummies

Hochgeschwindigkeitsdatencaching mit NoSQL - Dummies

Mit NoSQL haben Sie Hochgeschwindigkeits-Caching. Stellen Sie sich vor, Sie sind Bankangestellte und arbeiten mit drei anderen Kollegen zusammen. Jeder hat eine Reihe von Leuten, die bedient werden sollen. Einer der Kunden bleibt jedoch in der Schlange, um zu fragen, ob sein Scheck bereits eingelöst und der Betrag seinem Konto gutgeschrieben wurde. Wenn Sie ...

Wie man Einsichten aus Big Data kommuniziert - Dummies

Wie man Einsichten aus Big Data kommuniziert - Dummies

Big Data kann helfen, Einblicke zu gewinnen. Unternehmen gewinnen Wettbewerbsvorteile, wenn die richtigen Informationen zur richtigen Zeit an die richtigen Leute geliefert werden. Dies bedeutet, Erkenntnisse und Informationen aus Daten zu extrahieren und sie Entscheidungsträgern auf eine Weise zu vermitteln, die sie leicht verstehen. Schließlich sind Menschen weniger wahrscheinlich zu handeln, wenn sie ...

Zookeeper und HBase Reliability - dummies

Zookeeper und HBase Reliability - dummies

Zookeeper ist ein verteiltes Cluster von Servern, das gemeinsam zuverlässige Koordinations- und Synchronisationsdienste für Cluster-Anwendungen bereitstellt. .. Zugegeben, der Name "Zookeeper" mag auf den ersten Blick eine seltsame Wahl sein, aber wenn Sie verstehen, was es für einen HBase-Cluster tut, können Sie die Logik dahinter sehen. Beim Erstellen und Debuggen von verteilten Anwendungen ...