Ia3data Skript

Inhalt

Erweiterte Backus-Naur-Form (EBNF)

Die formale Grammatik von XML ist in der Spezifikation unter Verwendung einer einfachen Erweiterten Backus-Naur-Form (EBNF) definiert. Wie diese Notation zu lesen ist, ist im Abschnitt 6 der Spezifikation aufgeschrieben.

Wichtigste XML Regeln

Dokument - Produktion

  • Das XML-Dokument enthält genau einen Prolog
  • Das Dokument enthält genau ein Wurzelelement

Element - Produktion

  • Zu jedem Start-Tag (Produktion) eines Elements existiert genau ein Ende-Tag (Produktion)
  • Die Elemente sind korrekt ineinander verschachtelt, d.h. Elemente überlappen einander nicht.
  • Bei leeren Elementen (Produktion) können diese zu einem Tag zusammenfallen.
  • Kein Start-Tag (oder Tag der ein leeres Element einleitet) enthält zwei oder mehr Attribute desselben Namens.
  • Keine Kommentare oder Processing Instructions innerhalb von Tags.

Attribut - Produktion

  • Alle Attributwerte sind in einfachen oder doppelten Anführungszeichen.

Beispiel:

1.
2.
3.
4.
5.
6.
7.
<Buch>
<Author Geschlecht="weiblich">
<Vorname>Marie</Vorname>
<Nachname>von Ebner-Eschenbach</Nachname>
</Author>
<Titel>Das Gemeindekind</Titel>
</Buch>

DTD - Document Type Definition

Die DTD beschreibt das Dokument und seinen strukturellen Aufbau. Eine DTD wird innerhalb einer <!DOCTYPE> Deklaration (Produktion) definiert. Diese Deklaration ist abgeleitet von und kompatibel mit SGML.

Einschub: Python

Folgende anfängliche Aufgabe ist gestellt: Es gibt eine Datei in der eine Reihe von GeoLocation Daten enthalten ist (siehe simple_locations.txt). Diese sollen eingelesen werden. Nach dem Einlesen soll überprüft werden, ob sich diese Daten innerhalb oder außerhalb eines Kreise mit einem gegebenen Mittelpunkt und Radius liegen. Eine weitere Datei liegt mit ähnlichen Daten als GPX Datei vor (siehe Track.gpx). Diese sind ebenfalls - diesmal mit SAX - einzulesen und zu bearbeiten. Letztendlich ist das Ziel die Daten so auszugeben, dass sie in Google Maps hochgeladen werden können und die Daten außerhalb des Kreise blau und innerhalb des Kreise rot markiert werden. Der Kreismittelpunkt ist durch den Punkt 10.906,48.358867 und der Radius mit 100 m gegeben.