Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der.

Ähnliche Präsentationen


Präsentation zum Thema: "Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der."—  Präsentation transkript:

1 Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der XML-Spezifikation Teil 2

2 Metasprache der XML-Spezifikation 1.Sprachbegriff / 2. Grammatikbegriff 1. Sprachbegriff (N.CHOMSKY 1959) Gegeben ist ein endliches Alphabet A von Symbolen (Terminalen). Über der Trägermenge A wird eine assoziative Verkettungsoperation ¤ definiert, die das hintereinander Schreiben von Terminalen ( Wortbildung !) realisiert. Die Menge aller Wörter (Hülle) wird mit A* bezeichnet. Jede Teilmenge L von A* heißt Sprache. Für praktische Anwendungen muss eine Sprache aber einen gewissen Aufbau besitzen, d.h. die Wortbildung unterliegt grammatikalischen Regeln. 2. Grammatikbegriff Eine Grammatik G ist ein 4-Tupel G=(A,V,w,P) mit - A nichtleeres endliches Alphabet von Symbolen (Terminalen) - V nichtleere Menge von sogenannten Nichtterminalen (syntaktische Kategorien zur Strukturierung) mit A V = Ø - w є V Startsymbol (in XML z.B. document ) - P Teilmenge von (A U V) * × (A U V) *, d.h. eine binäre Relation, eine Menge von Ableitungsregeln oder Produktionen.

3 Eine Produktion ist also ein Paar (x,y) є P mit der Bedeutung x ist aus y ableitbar, d.h. für ein y kann ein x substituiert werden. CHOMSKY definierte eine Hierarchie von Sprachen (Typ 0 bis Typ 3) entsprechend von Einschränkungen der Form der Produktionsregeln. CHOMSKY Typ 2 – Sprachen stellen die sogen. kontextfreien Sprachen dar. Fast alle praktisch in Anwendung befindlichen formalen Sprachen haben eine kontextfreie Grammatik. Für diese Grammatiken gilt die Einschränkung: P ist Teilmenge von V × (A U V) *. Die linke Seite einer Regel ist immer ein Nichtterminal. Zur Notation der Produktionsregeln haben BACKUS und NAUR 1960 eine Metasprache vorgeschlagen, die seither in erweiterter Form zur Definition von Grammatiken für formale Sprachen benutzt wird. Metasprache der XML-Spezifikation 2. Grammatikbegriff / CHOMSKY Typ 2

4 Metasprache der XML-Spezifikation 3. EBNF / Terminale / Nichtterminale 3. Extended Backus Naur Form (EBNF) Es werden hier die Spezifika und Erweiterungen erläutert, die in der Notation der XML-Spezifikation verwendet werden. Symbole (Terminale) des Alphabetes A: - Symbole müssen in Apostrophe (entweder in oder in ) eingeschlossen werden. Bsp.: <, %, <!DOCTYPE -Symbole, die nur aus einem einzelnen Zeichen bestehen, können in Hexadezimaldarstellung (Ein- oder Mehrbyte) angegeben werden: #xN, N ist eine Hexadezimalzahl Bsp.: #x20, #x9, #xDA Nichtterminale von V: - Nichtterminale sind normale Bezeichnungen (Groß- und Kleinschreibung ist signifikant ). Bestimmte Bezeichnungen sollen nicht verwendet werden, wie z.B. mit XML anfangende. Bsp.: S, document, ExternalID, PEReference

5 Metasprache der XML-Spezifikation Produktionsregeln / Alternative Produktionsregeln von P: - eine Produktionsregel (x,y) є P mit x є V und y є (A U V) * wird in der Form x ::= y geschrieben. x stellt ein Nichtterminal und y einen Ausdruck dar. Bsp.: NDataDecl ::= S 'NDATA' S Name - Ein Ausdruck stellt gemäß (A U V) * eine Verkettung von Terminalen und Nichtterminalen dar. Die EBNF definiert einige Metaoperationen, die in Ausdruck vorkommen dürfen. Alternative: - Sind A und B Ausdrücke, so ist auch A | B ein Ausdruck. C ::= A|B ersetzt die beiden Regeln C ::= A und C ::= B. Bsp.: Misc ::= Comment | PI | S, ExternalID ::= 'SYSTEM' S SystemLiteral | 'PUBLIC' S PubidLiteral S SystemLiteral

6 Metasprache der XML-Spezifikation Sequenz Sequenz: -Sind A und B Ausdrücke, so ist auch A, B ein Ausdruck. - C ::= A,B bedeutet die Angabe einer strikten Reihenfolge, d.h. C ist definiert durch die Abfolge der Elemente A und B. - Bsp.: Dokument ::= Head, Body -Bem.: in der ursprünglichen Backus-Naur-Form waren die Nichtterminale in <> eingeschlossen, womit ein Trennsymbol für die Hintereinander- Schreibung nicht notwendig war!

7 Metasprache der XML-Spezifikation Option / Zusammenfassung / Wiederholung Option: - Ist A ein Ausdruck, so ist auch A ? ein Ausdruck. C ::= A? ersetzt die beiden Regeln C ::= A und C ::=, d.h. A kann stehen oder nicht. Bsp.: Eq ::= S? '=' S? Zusammenfassung: - Ist A ein Ausdruck, so ist auch ( A ) ein Ausdruck. Wegen der Metaoperationen mit unterschiedlichen Prioritäten und der Anwendung von Operatoren auf mehrere Elemente sind Klammerungen unerläßlich. Bsp.: VersionInfo ::= S 'version' Eq ("'" VersionNum "'" | '"' VersionNum '"') Wiederholung: - Ist A ein Ausdruck, so ist auch A + ein Ausdruck. C ::= A+ ersetzt die Folge von Regeln C ::= A und C ::= A A und C ::= A A A, usw. d.h. A kann einmal oder beliebig oft stehen Bsp.: S ::= (#x20 | #x9 | #xD | #xA)+

8 Metasprache der XML-Spezifikation Wiederholungs-Option / Differenz / Aufzählung von Einzelzeichen Wiederholungs-Option: - Ist A ein Ausdruck, so ist auch A * ein Ausdruck. C ::= A* ersetzt die Regel C ::= A + |. D.h. A kann keinmal, einmal oder beliebig oft stehen. Bsp.: Names ::= Name (#x20 Name)* Differenz: - Sind A und B Ausdrücke, so ist auch A - B ein Ausdruck. Es sind alle Muster zugelassen, die dem Ausdruck A entsprechen, aber keine Muster, die dem Ausdruck B entsprechen. Bsp.: PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l')) Aufzählung von Einzelzeichen: - Sind o.B.d.A. p & / drei Einzelzeichen, so ist auch [p&/] ein Ausdruck. C ::= [p&/] ersetzt die Regel C ::= p | & | /. Für ein aufgezähltes Einzelzeichen kann auch sein Hexadezimalkode in der Form #xN stehen. Bsp.: PubidChar ::= [-'()+,./:=?;!*#@$_%]

9 Metasprache der XML-Spezifikation Aufzählung Bereiche/Aufzählung nichtzugelassener Einzelzeichen Aufzählung von Bereichen von Einzelzeichen: - Sind o.B.d.A. 0-9 und A-Z zwei Bereiche von Einzelzeichen der Ziffern 0 bis 9 und der Großbuchstaben A bis Z, so ist auch [0-9A-Z] ein Ausdruck. C ::= [0-9A-Z] ersetzt die Regel C ::= 0 | 1 | 2 |…| 9 | A | B |…| Z. Für ein aufgezähltes Einzelzeichen kann auch sein Hexadezimalkode in der Form #xN stehen. Bsp.: CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';' Char ::= [#x20-#xD7FF] Aufzählung von nicht zugelassenen Einzelzeichen: - Sind o.B.d.A. p & / drei Einzelzeichen, so ist auch [^p&/] ein Ausdruck. Das in einer Aufzählung [...] vorangestellte Zeichen ^ bedeutet, dass die aufgezählte Folgezeichen nicht stehen dürfen. Für ein aufgezähltes Einzelzeichen kann auch sein Hexadezimalkode in der Form #xN stehen. Bsp.: AttValue ::= '"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'"

10 Metasprache der XML-Spezifikation 4.XML-Parser 4. XML Parser Bei der Benutzung von Parsern ist zu beachten, dass diese in jedem Fall von einem unterliegenden deterministischen Parsing-Modell ausgehen. Die Regeln müssen in jedem Fall linksfaktorisiert angegeben werden, d.h. statt der Regel C::=A B | A C muss C::= A ( B | C ) angegeben werden. Die Parser arbeiten in der Regel ohne Look-ahead-Technik und natürlich ohne Backtracking. Die Grammatik muss also eine LF(1)- bzw. eine LR(1)- Grammatik sein. Diese wird in eine CHOMSKY Typ 3 – Form transformiert, die mit einem endlichen Automaten analysierbar ist.


Herunterladen ppt "Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der."

Ähnliche Präsentationen


Google-Anzeigen