Extensible Markup Language (XML) Grammatiken

Größe: px
Ab Seite anzeigen:

Download "Extensible Markup Language (XML) Grammatiken"

Transkript

1 Extensible Markup Language (XML) Grammatiken Studienarbeit im Fach XML-Technologien von Raffaella Riccato (Matrikelnummer: ) Oktober 2010 Professor: Prof. Dr. Reinhard Schiedermeier Hochschule für Angewandte Wissenschaften - FH München Fakultät für Informatik und Mathematik

2 Inhaltsverzeichnis 1 Einleitung 3 2 Chomsky-Grammatik Grammatik Hierarchie Vokabular 6 4 Logische Struktur Logische Struktur Physischer Aufbau Wohlgeformtheit und Gültigkeit 12 6 XML Schemasprachen Document Type Definition (DTD) Einbinden einer DTD Elemente Attribute Vor- und Nachteile einer DTD XML Schema Definition(XSD) Aufbau und Einbindung Datentypen Simple Types Ableitungen Complex Types Zusammenfassung Regular Language description for XML - New Generation(RELAX NG) Aufbau Datentypen Enumerationen Listen Vorteile und Einschränkungen Literaturverzeichnis 31 2

3 1 Einleitung Diese Studienarbeit befasst sich mit der Grammatik und Sprache von XML-Dokumenten. XML steht für extensible Markup Language und ist eine eingeschränkte Form (man sagt auch eine Untermenge) von SGML. XML ist eine Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten. Im Gegensatz zu HTML ist XML eine reine Beschreibungssprache und verzichtet gänzlich auf Formatierungs- und Layout-Elemente für die Darstellung der Daten. Sie wurde entwickelt, um Daten medienund plattformneutral zwischen verschiedenen Computersystemen auszutauschen, insbesondere über das Internet. Die vom World Wide Web Consortium (W3C) herausgegebene XML-Spezifikation definiert eine Metasprache, auf deren Basis durch strukturelle und inhaltliche Einschränkungen anwendungsspezifische Sprachen definiert werden. Diese Einschränkungen werden durch Schema-Sprachen wie DTD (Document Type Definition) oder XML-Schema ausgedrückt. Dokumente in spezifischen Anwendungen weisen meistens eine gewisse Einheitlichkeit in der Struktur auf. Schema-Sprachen werden hier eingesetzt, um einerseits die Beschreibung der Dokumentenstruktur nach einem einheitlichen Schema zu ermöglichen, andererseits die sprachlichen Mittel zur Beschreibung und Auszeichnung genauer festzulegen (Datentypisierung, Validierungsregeln, etc.). Schemas können zur Dokumentation, zur Validierung oder zur Automatisierung von Abläufen benutzt werden. XML Schemas sind heute ein zentraler Bestandteil von Webservice-Spezifikationen. Die vorliegende Ausarbeitung stellt die Grammatik und die grundlegenden Elemente/Bausteine der Auszeichnungssprache dar. Nach einem kurzen Überblick über die Hierarchie der Chomsky-Grammatiken, aus denen auch XML entstand (Typ 2), wird auf das in XML verwendete Vokabular eingegangen. Kapitel 4 stellt die logische und physische Struktur von XML-Dokumenten dar. Kapitel 5 führt zwei wichtige Begriffe (Wohlgeformtheit und Gültigkeit) ein, die ausdrücken, wann ein Dokument syntaktisch richtig und nach dem Regelwerk der Grammatik korrekt zusammengesetzt ist. Kapitel 6 geht dann detailliert auf die wichtigsten Schema-Sprachen (DTD, XML-Schema) ein, mit denen sich verschiedene Varianten von XML-Sprachen für unterschiedliche Einsatzbereiche entwickeln lassen. Die Ausarbeitung schließt ab mit der Darstellung eines alternativen Ansatzes (Relax NG /Compact) für Schema-Sprachen, der mittlerweile ebenfalls ein Standard (bei ISO/IEC) geworden ist. RELAX entstand mit dem Vorsatz Tired of complex specifications? RE- LAX!, also mit der Intention, sowohl XML-Syntax wie Schema-Sprache im Hinblick auf eine beschleunigte Entwicklung von Applikationen schlanker und effizienter zu gestalten. 3

4 2 Chomsky-Grammatik 2.1 Grammatik Eine Grammatik ist die formale Beschreibung einer Sprache. Eine erzeugte Sprache (L(G))kann beliebig lang sein (nicht endlich), wobei die zugehörige Grammatik immer endlich ist. Eine Chomsky-Grammatik wird als Quad-Tupel G = (N, T, P, S) definiert und es gilt: a) N ist eine endliche, nicht-leere Menge der Variablen (Nicht-Terminale) b) T ist eine endliche, nicht-leere Menge von Symbolen, das sogenannte Terminalalphabet. c) N und T sind disjunkt: N T = 0 d) P ist eine endliche Menge von Ersetzungsregeln. Hierbei muss wenigstens ein Nicht- Terminal auf der linken Seite stehen. e) S ist die Startvariable und S N. Beispiel von korrekt geklammerten arithmetischen Ausdrücken (aus: [Schöning 2003]): G = ({S, T, F}, {(, ), a, +, *}, P, S }) P = {S T, S S + T, T F, T T * F, F a, F (S)} damit lässt sich folgender Ausdruck beschreiben: a * (a + a) L(G) denn: S T T T * F T * F F * (E) F * (E) a * (E + T) a * (E + T) a * (T + F) a * (T + F) a * (F + a) a * (F + a) a * (a + a) 2.2 Hierarchie Chomsky-Grammatiken werden entsprechend ihrer generativen Kapazität in der Chomsky- Hierarchie klassifiziert (Typ 0-3). Diese spiegelt die Leistungsfähigkeit einer Grammatik im Hinblick darauf wider [Fries 2008]: 4

5 2.2. HIERARCHIE welche Sprachtypen eine Chomsky-Grammatik erzeugen kann und mit welcher Art und mit welchen Grad an Adäquatheit 1 eine gegebene Sprache erfassen kann. Ausgehend von einer Grund-Grammatik (Typ-0-Grammatik), werden hierbei zunehmend Einschränkungen bezüglich der für den jeweiligen Typ erlaubten Produktionsregeln gemacht. Folgende Hierarchiestufen werden unterschieden: Typ-0-Grammatik (unbeschränkt) Grammatiken sind vom Typ-0, wenn sie dem Aufbau einer Grammatik entsprechen und keinerlei Einschränkungen unterliegen (allgemein Phrasenstrukturgrammatik genannt). Typ-1-Grammatik (kontextsensitiv) Es gilt: (w 1 w 2 ) P : w 1 w 2 Das heißt, dass nach einer Ersetzung die linke Seite kürzer oder gleich lang wie die rechte Seite ist. Ausnahme: Es ist erlaubt das Startsymbol durch die leere Menge zu ersetzen, wenn das Startsymbol auf der rechten Seite der Produktionsregeln nicht vorkommt. Typ-2-Grammatik (kontextfrei) Es gilt: (w 1 w 2 ) P : w 1 N und w 1 eine einzige Variable ist. Typ-3-Grammatik (regulär) Es gilt: w 2 T T N {ε} Das bedeutet, dass die Regeln auf der rechten Seite entweder einzelne Terminalzeichen sind oder ein Terminalzeichen gefolgt von einem Nichtterminal. Folgende Abbildung verdeutlicht die Einschränkung der verschiedenen Grammatiken: Abbildung 2.1: Hierarchie der Chomsky Grammatiken aus [Schöning 2003] 1 Angemessenheit, Gleichgewichtigkeit 5

6 3 Vokabular Mit einem speziellen Vokabular wird die Struktur eines Dokuments festgelegt, ferner welche Elemente in einem Dokument vorhanden seien dürfen. Damit wird die Grammatik eines XML-Dokuments definiert. Ein Element wird durch einen Starttag und einen Endtag begrenzt und besitzt häufig einen Inhalt (außer es handelt sich um ein leeres Element). Jedes Vokabular umfasst eine Untermenge der in XML möglichen sprachlichen Mittel, um ein konkretes Problem beschreiben zu können. Anhand eines begrifflichen und konzeptionellen Modells der Sachverhalte legt ein Vokabular fest, welche Objekte relevant sind, welche Eigenschaften diese haben und in welcher Beziehung diese untereinander stehen. Ein definiertes Vokabular wird im Prolog des XML Dokuments angegeben. Ein Vokabular wird mittels Schema-Sprachen wie z.b. DTD oder XSD beschrieben und schreibt die Grammatik eines Dokumentes vor. Entsprechend den unterschiedlichen Anwendungszwecken wurden verschiedene Vokabulare entwickelt und definiert. Die folgende Liste zeigt einen kleinen Ausschnitt: SMIL (Synchronized Multimedia Integration Language) RSS (RDF Rich Site Summary) AIML (Astronomical Instrument Markup Language) DOM (W3C Document Object Model) Java Help API JSML (Java Speech Markup Language) VML (Vector Markup Language) 6

7 4 Logische Struktur XML-Dokumente besitzt einen physischen und logischen Aufbau. Die Syntax des XML- Dokuments definiert die logische Struktur, die Aufteilung auf unterschiedliche Medien, Dateien und/oder Datenbanken, definieren die physische Implementierung. 4.1 Logische Struktur Definition: Jedes XML Dokument enthält ein oder mehrere Elemente, deren Grenzen entweder durch das Starttag und Endtag begrenzt sind, oder als leeres Elemente definiert sind (mit dem Empty-Elementtag). Jedes Element besitzt einen Typ, der über einen Namen identifiziert wird, oft auch "generischer Identifikator"(GI) genannt, und kann eine Menge von Attribut-Spezifikationen haben. Jede Attribut-Spezifikation besitzt einen Namen und einen Wert.[Bray u. a. 2008] Formal wird die Syntax in der Recommendaton des W3C in einer EBNF (Extended Backus-Naur-Form) beschrieben. Die EBNF ist nach der Einteilung von Chomsky eine Typ-2-Sprache, also eine kontextfreie Sprache. Hieraus folgt, dass auch XML-Dokumente kontextfrei sind, wenn sie wohlgeformt und gültig sind. Folgender Auszug beschreibt die Syntax von XML grob 1 : 1 S = Leerzeichen; PI = Processing Instructions; Reference = Verweist auf den Inhalte einer benannten Identität; Eq = Equadation; 7

8 4.1. LOGISCHE STRUKTUR Aufbau von XML-Dokumenten: document prolog element Misc* XML Deklarationen: prolog XMLDecl? Misc* (doctypedecl Misc*)? XMLDecl <?xml VersionInfo EncodingDecl? SDDecl? S??> VersionInfo S version Eq ( "VersionNum VersionNum ) Eq S? = S? VersionNum 1. [0-9]+ Misc Comment PI S Elemente: element EmptyElmTag STag content ETag Startelement: STag < Name (S Attribute)* > Attribute Name Eq AttValue Endelement: ETag </ Name S? > Leeres Element: EmptyElmTag < Name (S Attribute)* S? /> Inhalt: content CharData? ((element Reference CDSect PI Comment) CharData?)* Misc Comment PI S Dieser Ausschnitt zeigt den grundsätzlichen Aufbau eines XML-Dokumentes. Jedes XML Dokument ist demnach hierarchisch aufgebaut und kann folglich durch eine Baumstruktur dargestellt werden. Ein XML Dokument besteht aus einem Prolog und mehreren verschachtelten Elementen. Die Versionsnummer sollte zurzeit mit 1.0 angegeben werden. Die Funktion des Markups in einem XML-Dokument ist es, die Aufteilung auf Speichereinheiten und die logische Struktur zu beschreiben, sowie Attribut-Wert-Paare mit der logischen Struktur zu verbinden. Die Dokumenttyp-Deklaration in XML erlaubt Beschränkungen der logischen Struktur zu definieren und unterstützt darüber hinaus die Verwendung von vordefinierten Speichereinheiten. Beispiel (wohlgeformt): <?xml version= 1.0 encoding= UTF-8 standalone= yes?> <vorlesungen> <fach id= 505 > XML-Technolgien </fach> <fach id= 404 > Computergrafik </fach> </vorlesungen> 8

9 4.2. PHYSISCHER AUFBAU 4.2 Physischer Aufbau Physisch besteht ein XML-Dokument aus einer oder mehreren Dateien/Medien (sogenannten Entities). Diese Entitäten beinhalten inhaltliche Informationen, aber keine Struktur, Regeln oder Grammatik. Mit Entitäten können in einer zusätzlichen Datei Definitionen für ein XML-Dokument deklariert werden, um z.b. beim Datenaustausch die selbe Interpretation von XML-Dokumenten zu erreichen. Entitäten, sowie Elemente und Attribute, werden in einer DTD deklariert. Jedes XML Dokument besteht aus mindestens einer Entität, der Document Entity. Mit einer Entität kann auf verschiedene Daten verwiesen werden, d.h. man kann in der DTD eine Definition festlegen und diese in einem XML- Dokument mittels Shortcuts referenzieren. Jede Entität darf nur einmal deklariert werden, ansonsten wird die erste Deklaration verwendet. Entitäten werden nach der W3C Recommendation (siehe[bray u. a. 2008]) wie folgt definiert: EntityDecl GEDecl PEDecl GEDecl <!ENTITY S Name S EntityDef S > PEDecl <!ENTITY S % Name S PEDef S > EntityDef EntityValue (ExternalID NDataDecl?) PEDef EntityValue ExternalID Der Name gibt den Identifikator der definierten Entität an. Die Entität-Definition verweist entweder auf einen Text oder referenziert ein externes Dokument. Es können verschiedene Entität-Typen unterschieden werden, die nachfolgend kurz erklärt werden: Parsed vs. Unparsed Entity: Eine geparste Entität wird in einem XML-Dokument durch die entsprechende Definition als Text ersetzt. Ungeparste Entitäten werden im Gegensatz zu geparsten Entitäten nicht vom Parser analysiert. Eine ungeparste Entität ist eine Ressource, deren Inhalt ggf. keine XML-Daten darstellt, wie z.b. ein Bild. Eine ungeparste Entität ist an eine NOTATION gebunden. Parsed Entity - Beispiel: <?xml version= 1.0 > <DOCTYPE Hochschule [ <!ENTITY hm Hochschule München > ]> <Hochschule> &hm; </Hochschule> In diesem Beispiel wird zuerst die Doctype-Deklaration festgelegt und anschließend das 9

10 4.2. PHYSISCHER AUFBAU XML-Dokument aufgestellt. Das DTD enthält den Namen Hochschule, der im XML- Dokument selbst als Dokument-Element bzw. Rootelement festgelegt ist. Würde man ein anderes Element als Dokument-Element verwenden, würde das XML-Dokument nicht mehr wohlgeformt sein. Die Entität kann im XML-Dokument leicht anhand des Namens referenziert werden. Durch den Parser wird die Referenz durch den gesamten Text ersetzt. Allgemeine vs. Parameterentitäten: Allgemeine Entitäten (engl. general entities) werden in XML-Dokumenten verwendet. Im Gegensatz dazu werden die zuvor geparsten Parameterentitäten ausschließlich in der DTD verwendet. Diese beiden Typen verwenden unterschiedliche Formen von Referenzen und in verschiedenen Kontexten auftreten. Beide Entitäten werden in der DTD definiert. Allgemeine Entität - Beispiel: <?xml version= 1.0 > <DOCTYPE Hochschule [ <!ENTITY FK07 Fakultät für Informatik und Mathematik > <!ENTITY FK09 Fakultät für Wirtschaftsingenieurwesen > <!ENTITY FK03 Fakultät für Maschinenbau, Fahrzeugtechnik, Flugzeugtechnik > ]> <Hochschule> <Fakultät> FK07: &FK07; </Fakultät> <Fakultät> FK03: &FK03; </Fakultät> </Hochschule> Nach dem Parsen wird die abgekürzte Schreibweise durch den vollständigen Namen ersetzt. Hierbei wird die Referenz immer zwischen dem & und Semikolon geschrieben bzw. jede Referenz wird mit dem Semikolon beendet. Parameterentität - Beispiel ([Shermin 1999], Kapitel:Entities): <?xml version= 1.0 > <DOCTYPE Books [ <!ENTITY % pub Éditions Gallimard > <!ENTITY % rights All rights reserved > <!ENTITY book La Peste: Albert Camus, 1947 % pub;. % rights;. > ]> Die Ausgabe im vorliegenden Beispiel würde sein: La Peste: Albert Camus, c 1947 Éditions Gallimard. All rights reserved. Hierbei muss vor dem Namen der Entität ein Prozentzeichen angeführt werden, damit diese Entität in der DTD als Referenz verwendet werden kann. 10

11 4.2. PHYSISCHER AUFBAU Interne und externe Entitäten: Eine interne Entität liegt vor, wenn das EntityValue verwendet wird. Das bedeutet, dass eine Entität immer auf Text abgebildet wird, der in der DTD deklariert ist. Es verweist nicht auf eine externe Datei, wie es bei ungeparsten Entitäten der Fall ist. Interne Entitäten werden verwendet, um Abkürzungen einzufügen: an jeder Stelle im Text, wo das selbe Textelement vorkommt, kann auf diese Entität verwiesen werden. Somit können z.b. auch Rechtschreibfehler vermieden werden. Externe Entitäten werden verwendet, um auf eine externe Datei zu verweisen. Meistens enthält diese Datei einen großen Text oder binäre Daten. Enthält sie dagegen Text, wird sie nach dem Parsen in das XML-Dokument eingefügt, ansonsten wird auf die Datei verwiesen (ungeparste Entität). Eine externe Entität wird wie folgt definiert: ExternalID SYSTEM S SystemLiteral PUBLIC S PubidLiteral S Systemliteral NDataDecl S NDATA S Name Für weitere Informationen siehe [Bray u. a. 2008]. Externe Entität - Beispiel ([Shermin 1999], Kapitel:Entities): <?xml version= 1.0 > <DOCTYPE MyType [ <!ENTITY LIagreement SYSTEM > <!ENTITY LOGO SYSTEM NDATA GIF87A> ]> In beiden Fällen wird der XML Prozessor den Inhalt nicht parsen, da sich dieser auf binäre Daten bezieht. Bei der zweiten Entität, wird zusätzlich zum Speicherort des Bildes auch der Typ angegeben. Gegebenenfalls kann man die Anzeige des Bildes an eine NOTATION binden, in der spezifiziert wird, mit welchem Programm das Bild geöffnet werden kann. Vordefinierte Entitäten: In XML gibt es vordefinierte Entitäten, die eingebunden werden können. Folgende Entitäten sind definiert: &al; Linke öffnende Klammer < > Rechte schließende Klammer > & Und Zeichen & &apos Apostroph &quot Anführungszeichen " 11

12 5 Wohlgeformtheit und Gültigkeit Die XML Spezifikation des W3C definiert die Regeln zur Erstellung von XML Dokumenten. Erfüllt ein XML Dokument alle diese Regeln, also entspricht es der korrekten Syntax, spricht man von einem wohlgeformten (engl. well formed) XML-Dokument. Treten beim Parsen Fehler auf, wird die weitere Verarbeitung abgebrochen. Folgende Liste zeigt einen Ausschnitt der Regeln: Ein XML Dokument beginnt mit der Produktion des Dokumentes (siehe Kapitel 4.1): document prolog element Misc*? Jede geparste Entity, welche direkt oder indirekt referenziert wird, muss wohlgeformt sein. Es gibt ein oder mehrere Elemente Es darf nur ein root-element bzw. Dokument-Element existieren Das bedeutet, dass das Dokument-Element mehrere untergeordnete Elemente besitzt. Es darf nicht mehrfach vorkommen. Element Type Match Jeder Name im Endtag muss dem des Starttags entsprechen. Jedes Starttag und Endtag müssen ebenentreu-paarig verschachtelt werden. Das heißt, alle Elemente müssen geschlossen werden, bevor der Endtag des entsprechenden Elternelements oder der Starttag von weiteren Elementen in der selben Hierarchiestufe erscheint. Ein Element darf nicht mehrere Attribute mit dem selben Namen haben. Ein Elementname darf nicht mit einer Ziffer oder bestimmten Sonderzeichen ($,, %, &, ;) beginnen. Erfüllt ein XML-Dokument die syntaktischen Regeln und entspricht dabei einer vordefinierten Grammatik, spricht man von einem gültigen bzw. validen Dokument. Eine Grammatik wird mittels eines Schemas oder einer DTD (Document Type Definition) definiert. Die verwendete Grammatik wird am Anfang des XML- Dokumentes (z.b. im Prolog) angegeben (Grammatiken siehe Kapitel 6). Bestimmte Parser, sogenannte validierende Parser, sind in der Lage sowohl die Syntax als auch die Grammatik auf Korrektheit zu überprüfen. Das XML-Dokument ist gültig, wenn beim Parsen keine Fehler auftreten. Verschiedene Programme werden im Internet zur Verfügung gestellt, um die Wohlgeformtheit seines XML-Dokumentes überprüfen zu können. Einige können zusätzlich die Grammatik überprüfen und ermitteln ob ein XML-Dokument gültig ist. Die meisten Programme können jedoch nur eine einzige Schema-Sprache validieren, z.b. DTD oder XSD. 12

13 Beispiel für ein nicht wohldefiniertes XML Dokument: <?xml version= 1.0 encoding= UTF-8 standalone= yes?> <document> <vorlesungen> <fach id= 505 > XML-Technologien </fach> <fach id= 404 > Computergrafik </fach> </vorlesungen> </document> <document> </document> In diesem Beispiel wurden zwei Dokument-Elemente definiert. Nach den Regeln des W3C ist dies nicht erlaubt. Um ein wohlgeformtes Dokument zu erhalten, müsste der zweite Tag <document></document> aus dem XML Dokument entfernt werden, da nur ein einziges Dokument-Element vorhanden seien darf. 13

14 6 XML Schemasprachen Eine XML-Schemasprache wird verwendet, um Validierungsregeln für ein XML-Dokument vorzugeben. Hiermit können XML-Dokumente klassifiziert werden und deren syntaktische Beschreibung bezüglich Struktur und ihres Inhalts festgelegt werden, sprich die Grammatik eines Dokumentes. Heute sind 3 Schemasprachen weit verbreitet, DTD, XML Schema und RELAX NG, die nachfolgend kurz vorgestellt werden. 6.1 Document Type Definition (DTD) Eine DTD ist ein Format, um ein XML-Dokument zu beschreiben und wurde mit XML standardisiert. Es beschreibt die Grammatik und Struktur von XML-Dokumenten. Die Syntax von XML beschreibt die relative Position von korrespondierenden Paaren von Tags. Diese Beschreibung wird anhand von DTDs angegeben. Angenommen man ignoriert die Attribute eines Tags, so kann man von einer kontextfreien Grammatik sprechen [Berstel u. Boasson 2008]. Mit einer DTD wird festgelegt, welche Elemente und Attribute ein XML-Dokument enthalten darf und in welcher Beziehung die Elemente zueinander stehen. Wenn ein XML- Dokument den syntaktischen Vorgaben entspricht, also wohlgeformt ist, und die verwendeten Elemente der Angabe in der DTD entsprechen, dann ist das XML-Dokument gültig. Jede DTD wird am Anfang eines XML-Dokuments angegeben, in der sogenannten Document Type Declaration. Eine DTD kann mehrere DTDs enthalten. Jede DTD hat folgende Struktur: doctypedecl <!DOCTYPE S Name (S ExternalID)? S? ( [ intsubset ] S?) S? > intsubset (markupdecl DeclSep)* markupdecl elementdecl AttlistDecl EntityDecl NotationDecl PI Comment DeclSep PEReference S Aus der Spezifikation ist ersichtlich, das ein DTD aus verschiedenen Bausteinen besteht. Hierzu gehört die möglichen Elemente, deren Attribute, die Anordnung der Elemente in einem Dokument (Schachtelung, Reihenfolge, Anzahl) und die Entities. Der Name einer DTD ist zugleich das Dokument-Element (Root-Element) in dem XML-Dokument Einbinden einer DTD Eine DTD kann in einem XML-Dokument auf verschiedene Weisen deklariert werden. Folgende Möglichkeiten werden unterschieden: 14

15 6.1. DOCUMENT TYPE DEFINITION (DTD) Interne DTDs Interne DTDs werden innerhalb des XML-Dokumentes definiert (siehe obiges Beispiel). Die DTD wird in der Doctype Declaration notiert. Externe DTDs Externe DTDs liegen außerhalb des XML-Dokumentes und sind Textdateien mit der Dateiendung *.dtd. Diese DTDs werden verwendet, wenn mehrere Dokumente auf eine vorgegebene Grammatik in der DTD zugreifen. Dies ist insbesondere dann von Nutzen, wenn Dateien ausgetauscht werden und beide Seiten (Sender und Empfänger) das XML- Dokument interpretieren können. Eingebunden werden die Externen Dokumente folgendermaßen: <?xml Version= 1.0?> <!DOCTYPE mydtd SYTEM > Dabei kann sich das Dokument wie hier im Internet befinden oder lokal auf der Festplatte liegen. Shared DTDs Bei den Shared DTDs kann ein XML-Dokument auf eine externe Datei verweisen oder die intern deklarierte DTD verwenden. Dabei ist es auch möglich beide Deklarationen zu mischen. <?xml Version= 1.0 encoding= utf-8?> <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN transitional.dtd [ <! an interanal subset can be defined here > ]> Elemente Mit der Elementdeklaration (elementdecl) wird der Name eines Elements und dessen Inhalt angegeben. Ein Element kann angeben, welche Elemente als Kindelemente auftreten können. Die angegebenen Namen der Elemente werden später in den XML-Dokumenten wieder verwendet, d.h. die spezifizierten Namen in der DTD müssen den Namen im XML- Dokument entsprechen. Die Struktur wird nach der W3C folgendermaßen deklariert: elementdecl <!ELEMENT S Name S contentspec S? > contentspec EMPTY ANY Mixed children Beispiele: EMPTY: <!ELEMENT br EMPTY> 15

16 6.1. DOCUMENT TYPE DEFINITION (DTD) Es handelt sich hier um ein leeres Element, d.h. es enthält keinen Inhalt, muss aber ggf. (je nach Grammatik) im XML-Dokument angegeben werden. ANY: <!ELEMENT client ANY> Bei dieser Deklaration ist jede Angabe erlaubt. Das Element kann hier ein Kindelement oder ein leeres Element sein oder nur Text enthalten. Mixed und children (Beispiel aus [Shermin 1999], Kapitel Elements): <?xml version= 1.0 standalone="yes"?> <!DOCTYPE Filme [ <!ELEMENT FILM (TITLE, (#PCDATA,GENRE,YEAR)*> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT GENRE (#PCDATA)> <!ELEMENT YEAR (#PCDATA)> ]> <Filme> <FILM> <TITLE> Tootsie </TITLE> <GENRE> comedy </GENRE> <YEAR> 1982 </YEAR> Critic: very fnny movie! </FILM> <FILM> <TITLE> Avatar </TITLE> </FILM> </Filme> Das Beispiel zeigt, dass ein Film stets einen Titel enthält, optional zusätzlich Text, ein Genre und das Erscheinungsjahr enthalten kann. Das Komma verweist darauf, dass sämtliche Elemente vorkommen müssen. Die Daten in der Klammer sind optional * und werden durch das Symbol getrennt (logisches Oder). Beim Film können gemischte Angaben gemacht werden. Dabei können entweder Text (#PCDATA) oder weitere Kindelemente angegeben werden. Alternativ können Elemente einfach auf weitere Elemente verweisen. Damit kann die Struktur eines XML-Dokumentes festgelegt werden. Elemente auf die verwiesen wird, müssen in der DTD aufgeführt sein Attribute Jedem Element können Attribute, also zusätzliche Informationen, zugeordnet werden. Diese werden innerhalb der Elementdefinition definiert. Ein Element kann beliebig viele Attribute besitzen. Der Name der Attributliste muss mit dem Namen des dazugehörigen Elements übereinstimmen. Jedes Attribut besitzt einen bestimmten Attributtyp, ggf. wird ein Defaultwert zugewiesen. Der Aufbau: Der Typ eines Attributes kann folgende Werte haben: 16

17 6.1. DOCUMENT TYPE DEFINITION (DTD) AttlistDecl <!ATTLIST S Name S AttDef* S? > AttDef S Name S AttType S DefaultDecl AttType StringType TokenizedType EnumeratedType CDATA (StringType) Beliebiger Text. Beispiel: "Dies ist ein Text" Enumeration (EnumeratedType): Hiermit kann für ein Attribut eine Menge von Enumerationen angegeben werden. Beispiel: (Ass Bube Dame König) NOTATION (EnumeratedType): Damit kann angegeben werden, wie der Inhalt eines Elements interpretiert wird. Mehrere Notationen werden durch getrennt. Beispiel: NOTATION (gif jpeg png) ID (TokenizedType) Eine ID darf in einem XML-Dokument genau einmal bei einem Attribut vorkommen. Dabei muss es den Namenskonventionen von XML genügen. Jedes Elemente darf nur eine ID besitzen. IDREF (TokenizedType) Mittels einer IDREF kann in einem XML-Dokument auf andere IDs referenziert werden. ENTITY (TokenizedType) Verweis auf eine ungeparste Entität. Die Entität muss in der DTD deklariert sein. ENTITIES (TokenizedType) Verweis auf mehrere ungeparste Entitäten. NMTOKEN (TokenizedType) Namens-Token. Erlaubte Zeichen: A-Z, a-z, 0-9, Punkt, Bindestrich, Unterstrich, Doppelpunkt, Mittelpunkt (#183) Beispiel: ap10.t NMTOKENS (TokenizedType) Mehrere NMTOKEN getrennt durch Leerzeichen. Beispiel: a1 a2 a3 a4 Jedes Attribut wird durch eine Defaultdeklaration näher spezifiziert. Folgende Defaultdeklarationen sind zulässig: AttValue Es kann ein Defaultwert angegeben werden, der bei der Initialisierung gesetzt wird, falls kein anderer Wert verwendet wird. #REQUIRED Die Attributdeklaration muss explizit im Element angegeben werden. #IMPLIED Der Default-Wert wird von der Anwendung gesetzt. #FIXED Nur der angegebene Wert darf als Attributwert verwendet werden. 17

18 6.1. DOCUMENT TYPE DEFINITION (DTD) Beispiel: <?xml version= 1.0 standalone="yes"?> <!DOCTYPE Filmbibliothek [ <!ELEMENT FILM (TITLE, YEAR)> <!ELEMENT YEAR (#PCDATA)> <!ATTLIST FILM FilmID ID #REQUIRED Bewertung ( ) "4"]> <Filmbibliothek> <FILM FilmID= F01 Bewertung="6» <TITLE> Tootsie </TITLE> <YEAR> 1982 </YEAR> </FILM> <FILM FilmID= F02 > <TITLE> Avatar </TITLE> <YEAR> 2010 </YEAR> </FILM> </Filmbibliothek> Vor- und Nachteile einer DTD Wie jede Sprache, sind DTDs nicht für jeden Anwendungszweck geeignet. Vor- und Nachteile von DTDs werden im folgenden dargestellt. Vorteile Definition einer Struktur von XML-Dokumenten (Grammatik) Austausch und Erstellen mehrerer XML-Dokumente, die den selben Anforderungen entsprechen. Nachteile Der Aufwand für die Erstellung einer DTD lohnt sich für ein einzelnes Dokument nicht. Ebenfalls nicht, wenn sich die Deklaration für ein Dokument häufig ändert oder nur eine Person mit der DTD arbeitet. DTDs können nicht in der XML-spezifischen Sprache deklariert werden (Anlehnung an SGML) Element- und Attribut-Deklarationen sind kontextsensitiv. keine Typenklassen (wie boolsche Werte, Ziffern, Zeitangaben, etc.) Spezifikation von Attributen stark eingeschränkt Keine Einschränkung von Zeichenketten Keine Unterstützung von Namensräumen 18

19 6.2. XML SCHEMA DEFINITION(XSD) 6.2 XML Schema Definition(XSD) Das XML Schema (XSD) ist eine Empfehlung des W3C Recommendation zur Beschreibung der Struktur von XML-Dokumenten. Sie wurde im Mai 2001 veröffentlicht. Es bietet eine Alternative zu DTDs, ihre sprachlichen Mitteln sind jedoch wesentlich mächtiger. Ein XML Schema wird selbst in XML geschrieben und definiert die Verwendung von Datentypen und von Namespaces. Ein Dokument, dass einem bestimmten Schema entspricht, wird häufig auch Instanzdokument oder Instanz genannt. Jede Datei, die ein XML Schema enthält hat den Präfix.xsd. XML Schemas ermöglichen den lexikalischen Raum durch reguläre Ausdrücke zu beschränken. Der lexikalische Raum ist die Menge aller Darstellungen, die nach dem Parsen (und Whitespace-Verarbeitung) für einen gegebenen Datentyp zulässig sind. Ein XML Schema beschreibt Instanzdokumente in einem objektorientierten Entwurf. Eine Folge daraus ist die Bedeutung des Typs. Wenn Elemente und Attribute ähnlich wie Objekte behandelt werden, sind Typen das, was den objektorientierten Klassen am nächsten kommt. Sie sind wesentlich, um die Ähnlichkeit zu Objekten auszudrücken. Zudem gibt es bei XML Schemas Ableitungs- und Ersetzungsmechanismen, die so definiert sind, dass sie der Vererbung zwischen objektorientierten Klassen entsprechen.[vlist 2003] Die grundlegenden Konzepte des XML Schemas werden nachfolgend erläutert Aufbau und Einbindung Ein XML-Schema muss neben der XML-Syntax noch weitere Regeln befolgen, um die Struktur von XML-Dokumenten zu definieren. Der grundlegende Aufbau sieht folgendermaßen aus: <?xml version= 1.0 encoding= UTF-8?> <xsd:schema xmlns:xsd= xmlns= >... </xsd:schema> Mit dem Präfix xsd wird der Namespace für das Schema notiert. In diesem Namespace sind die Elemente und Datentypen spezifiziert. Mit der nächsten Angabe xmlns=... wird der Defaultnamespace angegeben. Um das XML Schema in einem XML-Dokument benutzen zu können, wird (anders als bei DTDs) die Verwendung direkt im Wurzelelement (Dokumentenelement) angegeben. <?xml version= 1.0?> <myxmldocument xmlns= xmlns:xsi= xsi:schemalocation= Adresskartei.xsd >... </myxmldocument> 19

20 6.2. XML SCHEMA DEFINITION(XSD) Dabei wird zuerst der Defaultnamespace angegeben, anschließend wird der Schema Instance Namespace eingebunden. Mit letzterem kann zuerst angegeben werden, welcher Namespace verwendet wird und wo dieser zu finden ist Datentypen Jedem Attribut oder Element wird ein Type zugeordnet. Damit wird jedem Type ein eindeutiger Datentyp zugeordnet, wie dies in einer Programmiersprache üblich ist. Vier verschiedene Typen werden unterschieden: Strings, Date, Numeric und Misc. Zu der Kategorie der Strings gehören die Typdefinitionen der DTD. Um die Kompatibilität zwischen XML Schema und XML 1.0 DTDs zu gewährleisten, sollten die Typdefinitionen der DTDs (ID, IDREF, etc.) nur in Attributen verwendet werden. Mit Date werden Zeit und Datum angegeben. Numeric definiert verschiedene Zahlentypen, wie int oder double. Misc enthält zusätzliche Datentypen wie boolean. Beispiel: <xsd:element name= Vorname type= xsd:string /> <Vorname>Klaus</Vorname> Vor jedem Typ steht der Präfix xsd: um auf den Namespace zu verweisen, in dem der Datentyp deklariert ist. Nachfolgende Tabelle zeigt einen Ausschnitt der wichtigsten Typen (die vollständige Liste findet man in der Referenz bzw. einschlägigen Tutorials): 20

21 6.2. XML SCHEMA DEFINITION(XSD) Simple Types Abbildung 6.1: Typenhierarchie von XML-Schema aus [Vlist 2003] Jedes XML-Schema besteht aus mehreren Elementen und zugehörigen Attributen. Jedem Element oder Attribut wird der Namespace vorangestellt. Ein XML Schema kann aus einem einfachen Element bestehen. Ein einfaches Element besteht nur aus Text, es kann keine weiteren Elemente oder Attribute enthalten. Beispiel Element: <xsd:element name= Nachname type= xsd:string /> <xsd:element name= Alter type= xsd:integer /> <xsd:element name= Geburtstag type= xsd:date /> <Nachname>Meier</Nachname> <Alter>36</Alter> <Geburtstag> </Geburtstag> Jedem Element kann ein Defaultwert ( default=xxx ) oder ein fester Wert ( fixed=yyy ) zugewiesen werden. Feste Werte dürfen im XML-Dokument nicht verändert werden. Beispiel Attribut: <xsd:attribute name= language type= xsd:string default= de /> 21

22 6.2. XML SCHEMA DEFINITION(XSD) normalizedstring Typ/Bezeichner Beschreibung Beispiel Strings: string Enthält Zeichenketten, Zeilensprünge, Umbrüche und TAB Enthält Zeichenketten. Jedoch werden Zeilenumsprünge, Umbrüche und TAB vom XML-Prozessor gelöscht. Dieser Typ ist vom Typ String abgeleitet. <Vorname>Klaus <Vorname Date: date Spezifiziert den Tag. <Tag> </Tag> time Gibt die Uhrzeit an. <Zeit>11:45:00</Zeit> datetime Gibt Tag und Uhrzeit an. <Zeit> T11:45:00</Zeit> Numeric: Integer Integerwert. <price>19</price> decimal Dezimalwert. <price>19.54</price> short Signed 16-bit Integer byte Signed 8-bit Integer positiveinteger Positiver Integerwert (1,2...) Misc: boolean Boolscher Bezeichner <price disabled=true>19</price> double Double-Wert <Nachname language= en >Meier</Nachname> Wie bei zu Elementen können für Attribute feste Werte oder Defaultwerte verwendet werden Ableitungen XML Schemas bieten die Möglichkeit, neue Datentypen durch Ableitungen zu definieren. Dabei bauen die neuen Datentypen auf existierenden vordefinierten Datentypen auf. Die Ableitungen eines Typs werden mittels Einschränkungen definiert. Ableitungen können nur auf einfache Datentypen angewendet werden. Jede Ableitung wird in einem restriction -Block definiert. Innerhalb eines Einschränkungsblock kann der Typ entweder durch Enumerations, Patterns oder Typ-spezifischen Eigenschaften (z.b. bei Integer mit mininclusive) eingeschränkt werden. Man unterscheidet drei verschiedene Ableitungsmethoden, die voneinander unabhängig sind: Ableitung durch Einschränkung Einem bestehenden Type (Grundtyp) werden zusätzliche Beschränkungen hinzugefügt. Die ursprüngliche Semantik und Bedeutung wird dabei nicht verändert. Ableitung durch Auflistung Ein neuer Datentyp wird als eine Liste von Werten definiert. Alle Einträge in einer 22

23 6.2. XML SCHEMA DEFINITION(XSD) Liste müssen vom selben Datentyp sein. Die Elemente in einer Liste werden durch Whitespaces getrennt. Ableitung durch Vereinigung Der neue Datentyp wird hier durch eine Menge anderer Datentypen definiert, der überwiegende Teil der Semantik geht dabei verloren. Die drei Ableitungstypen können untereinander verschachtelt werden. Dabei kommt es auf die richtige Reihenfolge an. Beispiele: Ableitung durch Einschränkung: Eine wesentliche Verbesserung gegenüber DTDs ist, dass Element- oder Attributwerte eingeschränkt werden können. Mit Enumerationen können Aufzählungen definiert werden, mit Patterns können z.b. Zeichenketten eingeschränkt werden. Die möglichen Einschränkungen sind von den verschiedenen Typen abhängig. Jede Restriktion steht zwischen zwei simpletype -Elementen. <xsd:element name= Months > <xsd:simpletype> <xsd:restriction base= xsd:string > <xsd:enumeration value= Januar /> <xsd:enumeration value= März /> <xsd:enumeration value= Mai /> </xsd:restriction> </xsd:simpletype> </xsd:element> Zuerst wird der Elementname bzw. Attributname definiert und anschließend die Restriktion. In diesem Fall handelt es sich um eine Enumeration. <xsd:element name= Months > <xsd:simpletype> <xsd:restriction base= xsd:integer > <xsd:mininclusive value= 1 /> <xsd:maxinclusive value= 12 /> </xsd:restriction> </xsd:simpletype> </xsd:element> Der Integer-Wert wird auf den Bereich 1-12 begrenzt. Alternativ kann zuerst das Element und später die Beschränkung definiert werden. Hierfür muss der Name im simpletype angegeben werden. <xsd:element name= > <xsd:simpletype> 23

24 6.2. XML SCHEMA DEFINITION(XSD) <xsd:restriction base= xsd:string > <xsd:pattern value= (([a-z] [A-z])+.[a-z][a-z]) /> </xsd:restriction> </xsd:simpletype> </xsd:element> Im Beispiel wird der String auf eine mögliche Zeichenkettenfolge beschränkt. Die möglichen Zeichen sind innerhalb der eckigen Klammern vorgegeben. Das + Symbol bedeutet, dass mindestens eins dieser Elemente vorkommt. bedeutet ein logisches Oder. Ein Element muss aus der einen Menge oder aus der anderen Menge ein Element ausgewählt werden. Ableitung durch Auflistung [Vlist 2003]: <xsd:simpletype name= mystringlist > <xsd:list itemtype= xsd:string /> </xsd:simpletype> <xsd:simpletype name= MyRestricedStringList > <xsd:restriction base= mystringlist > <xsd:maxlength value= 10 /> </xsd:restriction> </xsd:simpletype> In diesem Beispiel wird zuerst die Liste definiert, anschließend wird ein eingeschränkter Listentyp definiert. Dieser ist von der mystringlist abgeleitet und darf maximal 10 Elemente enthalten. Zu beachten ist, dass der Whitespace zur Trennung der Elemente dient und nicht innerhalb eines einzelnen Strings vorkommen kann. Folgender Wert ist zulässig: <MyRestricedStringList> Dieser Text hat weniger als zehn Wörter. <MyRestricedStringList> Ableitung durch Vereinigung [Vlist 2003]: <xsd:simpletype name= integerordata > <xsd:union membertypes= xsd:integer xsd:date /> </xsd:simpletype> Bei dieser Definition darf das Element entweder ein Integer oder eine Tag-Angabe enthalten. Alternativ kann die Vereinigung mehrer Typen auch über das einfache Element eingebettet werden: <xsd:simpletype name= integerordata > 24

25 6.2. XML SCHEMA DEFINITION(XSD) <xsd:union> <xsd:simpletype> <xsd:restriction base= xsd:integer > <xsd:mininclusive value= 20 /> </xsd:restriction> </xsd:simpletype> <xsd:simpletype> <xsd:restriction base= xsd:date /> </xsd:simpletype> </xsd:union> </xsd:simpletype> Complex Types Im Gegensatz zu einfachen Typen können komplexe Typen Elemente und Attribute zusätzlich zu den Zeichenketten enthalten. Ein Element kann ein leeres Element sein, es kann weitere Elemente enthalten, es kann nur Text enthalten oder es kann Text und zusätzlich Elemente enthalten. Beispiel: <schema xmlns:xsd= > <xsd:complextype name= MusicInformation > <xsd:sequence> <xsd:element name= Title type= xsd:string /> <xsd:element name= Length type= xsd:duration /> <xsd:element name= Artist type= xsd:string /> </xsd:sequence> <xsd:attribute name= Genre type= xsd:string /> </xsd:complextype> <xsd:element name= Music type= MusicInformation /> </xsd:schema> Innerhalb der Sequenz können die Kindelemente von einem Element aufgeführt werden bzw. die Attribute eines Elements. Ein Typ eines Elementes kann auf ein komplexes Element verweisen. In diesem Beispiel müssen die Elemente in der vorgegebenen Reihenfolge auftreten. Um reguläre Ausdrücke mit XML Schemas zu definieren, werden verschiedene Inhaltsmodelle bereitgestellt. Diese Inhaltsmodelle können nur im Bezug auf komplexe Typen verwendet werden. 25

26 6.2. XML SCHEMA DEFINITION(XSD) Angabe von Indikatoren Jedes komplexe Element kann drei verschiedene Indikatoren besitzen. Zu den Indikatoren zählt die logische Oder-Verknüpfung (choice), die Angabe einer Reihenfolge(sequence) oder die Angabe, dass jedes Kindelement genau einmal auftreten darf (all). Die Indikatoren dürfen untereinander verschachtelt werden. Beispiel logisches Oder: (A B C) <xsd:complextype name= ABC > <xsd:choice> <xsd:element name= A type= AType /> <xsd:element name= B type= BType /> <xsd:element name= C type= CType /> </xsd:choice> </xsd:complextype> Beispiel any: (ABC ACB BAC BCA CAB CBA) <xsd:complextype name= ABC > <xsd:all> <xsd:element name= A type= AType /> <xsd:element name= B type= BType /> <xsd:element name= C type= CType /> </xsd:all> </xsd:complextype> Beispiel sequence: (ABC) <xsd:complextype name= ABC > <xsd:sequence> <xsd:element name= A type= AType /> <xsd:element name= B type= BType /> <xsd:element name= C type= CType /> </xsd:sequence> </xsd:complextype> Angabe von Kardinalitäten Die Kardinalität erlaubt jedem Element eine minimale Anzahl und eine maximale Anzahl zuzuweisen. Sowohl die minimale als auch maximale Anzahl von Elementen ist defaultmäßig immer 1. Diese Kardinalitäten werden in den Attributen minoccurrs und maxoccurs in einem Element oder Attribut angegeben. Beispiel: <xsd:complextype name= ABC > <xsd:sequence> <xsd:element name= A type= AType minoccurs= 1 maxoccurs= unbounded /> <xsd:element name= B type= BType maxoccurs= 10 /> <xsd:element name= C type= CType minoccurs= 0 maxoccurs= 2 /> 26

27 6.2. XML SCHEMA DEFINITION(XSD) </xsd:sequence> </xsd:complextype> Dabei darf jedes A minimal einmal vorkommen und beliebig oft vorkommen, B darf minimal einmal vorkommen und maximal zehnmal und C darf entweder gar nicht oder maximal zweimal vorkommen Zusammenfassung Die dargelegten Konzepte beschreiben nur die Grundlagen von XML-Schemas. XML- Schemas sind aber noch wesentlich mächtiger als nur Typdefinitionen (String, boolean, etc). XML-Schemas bietet noch folgende Möglichkeiten: Definition von Elementgruppen Referenzierungen innerhalb von XML auf andere Elemente Definition von anonymen Typen Verknüpfungen (union), eindeutige Schlüssel (unique), Listen Unterstützung von Modularisierung Namensräume XML-Schemas bieten eine fülle von Möglichkeiten, haben jedoch auch Nachteile: Falls Elemente Text und Unterelemente enthalten, können keine Beschränkungen für den Text definiert werden. Das Wurzelelement kann nicht festgelegt werden. Spezifikation sehr komplex (mit vielen Details), hohe Komplexität. Verwendung anonymer lokaler Elemente widerspricht der Verwendung von Namensräumen. Standardelemente können keine Unterelemente enthalten. Simple Type-Definitionen sind unflexibel. Mehrere Namensräume 27

28 6.3. REGULAR LANGUAGE DESCRIPTION FOR XML - NEW GENERATION(RELAX NG) 6.3 Regular Language description for XML - New Generation(RELAX NG) RELAX NG ist eine einfache Schema-Sprache für ein XML-Vokabular, basierend auf RE- LAX und TREX. Ein RELAX NG Schema spezifiziert ein Pattern einer Struktur und des Inhalts eines XML-Dokuments. RELAX wurde von Murata Makoto geschrieben und im März 2000 als japanischer ISO Standard Technical Report veröffentlicht. RELAX stellt eine einfache Alternative zum XML-Schema dar. Es wurde entwickelt mit dem Vorsatz Tired of complex specifications? RELAX!. RELAX basiert auf einer soliden mathematischen Grundlage, die zum einen reguläre Ausdrücke verwendet und zum anderen auf Hedge-Automata aufbaut. Die Hedge-Automata für XML wurden von Murata Makoto entwickelt. Zur selben Zeit entwickelte James Clark bei Thai Opensource Software TREX (Tree Regular Expressions). TREX baut im wesentlichen auf das Typensystem XDuce (zusammengefasst aus XML und transduce ) auf. TREX wurde im Januar 2001 veröffentlicht. Es handelt sich um eine Transformations-Sprache, die ein XML-Dokument als Eingabe verwendet, hieraus die Daten extrahiert und als Ausgabe ein anderes XML-Dokument erzeugt bzw. dessen Format umwandelt. RELAX NG wurde vom OASIS Technical Commitee entwickelt und von James Clark und Murata Makoto gemeinsam 2001 herausgegeben. Mittlerweile ist RELAX NG ein internationaler Standard (ISO/IEC ). RELAX NG ist eine einfache Schema-Sprache, die einfach zu erlernen ist, und entweder XML-Syntax verwendet oder in einer kompakten nicht XML-Syntax geschrieben werden kann. Es ändert nicht die Informationsmenge eines XML-Dokuments, unterstützt XML-Namespaces, behandelt Attribute und Elemente so weit wie möglich einheitlich, bietet eine uneingeschränkte Unterstützung für ungeordnete Inhalte sowie für gemischten Inhalt, basiert auf einer soliden theoretischen Grundlage und kann mit einer getrennten Datentypisierungssprache(wie W3C XML Schema Datatypes) zusammenarbeiten. [Rel 2010] Dieses Kapitel befasst sich mit der RELAX NG Compact Syntax. Eine Datei die eine RELAX NG Compact Syntax enthält hat die Dateiendung rnc. 28

29 6.3. REGULAR LANGUAGE DESCRIPTION FOR XML - NEW GENERATION(RELAX NG) Aufbau RELAX NG Compact verwendet eine Syntax auf der Grundlage der EBNF (Extended Backus Naur Form). Der folgende Ausschnitt zeigt die grobe Struktur der Grammatik: toplevel decl*(pattern grammarcontent*) pattern element nameclass { pattern } attribute nameclass { pattern } grammar { grammarcontent* } { pattern }... ) grammarcontent start define dif { grammarcontent* } include anyuriliteral [inherit] [ { includecontent* } ] In der Deklaration werden die verwendeten Namespaces angegeben. Wird ein einfaches Dokument erstellt, beginnt die Struktur unmittlebar mit einem Element, Attribut oder ähnlichen Anweisungen. Wird eine größere Grammatik erstellt, verwendet das Pattern als Angabe das Grammar. Dabei können Verweise auf andere Elemente eingebaut werden. Dies ist insbesondere von Vorteil, wenn mehreren Elementen das gleiche Element zugewiesen werden sollen. Weitere Ersetzungsregeln der RELAX NG Compact Syntax findet man in der Spezifikation. Folgende Tabelle zeigt die möglichen Einschränkungen, die mit RELAX NG verwendet werden können. In der rechten Spalte wird das dazugehörige Element in der XML- Schreibweise angegeben. Syntax Beschreibung RELAX NG Element pattern Mehrere Patterns können mittels Komma getrennt pattern (, pattern)+ werden. Dabei müssen alle Pattern, die aufgeführt sind, später in der gleichen Reihenfolge im XML-Dokument erscheinen. pattern Mehrere Patterns werden mit getrennt. Das choice pattern ( pattern)+ Symbol beschreibt das logische Oder. pattern Die angegebenen Pattern können in einer beliebigen interleave pattern ( & pattern)+ Reihenfolge angegeben werden pattern Das Element darf einmal oder gar nicht vorkommen. optional pattern? pattern Das Element darf nicht oder beliebig oft vorkommen. zeroormore pattern * pattern Das Element muss mindestens einmal vorkommen. oneormore pattern + 29

30 6.3. REGULAR LANGUAGE DESCRIPTION FOR XML - NEW GENERATION(RELAX NG) Beispiel: grammar { start = element Song { element Artist { artistinformation }+, attribute Title {text}, attribute Genre {text}? } artistinformation = element name { text } & element vorname { text }? & element { text }? } Das Beispiel enthält einen Song, der Informationen über mehrere Artisten enthält und zusätzlich zwei Attribute (Title und Genre). Der Artist hat weitere Kindelemente, die in einem weiteren Pattern-Block beschrieben werden. Jedes Attribut oder Element mit den oben angegebenen Pattern kann eingeschränkt werden. Es ist auch möglich, logische Verknüpfungen zwischen Elementen und Attributen (entsprechend durch die Syntax) zu verwenden. Zum Beispiel kann ein Element entweder ein Kindelement oder ein Attribut enthalten. Enthält ein Element weder ein Attribut noch ein Kindelement wird dies mit dem Bezeichner empty in der geschweiften Klammer angegeben. Im Startblock wird das Wurzelelement angegeben Datentypen RELAX NG erlaubt das Pattern auf extern definierte Datentypen zu verweisen. Jede RELAX NG Grammatik kann je nach Implementierung verschiedene Datentypen unterstützen. Meistens werden die Datentypen aus dem XML-Schema verwendet. Um die Datentypen nutzen zu können, werden diese am Anfang über einen Namespace deklariert. Zudem können je nach Datentyp, dessen vordefinierte Einschränkungen verwendet werden. Beispiel [Clark u. a. 2003]: datatype xsd = element number {xsd:integer} element {xsd:string {minlength= 6 maxlength= 128 }} Enumerationen Enumerationen können bei Elementen oder Attributen verwendet werden werden. Bei Elementen aber nur, wenn diese nur Text enthalten. In RELAX NG gibt es zwei Datentypen, die bei Enumerationen unterstützt werden. Entweder string oder token:token. Im Gegensatz zu den Tokens wird bei Strings keine Whitespace-Normalisierung durchgeführt. Defaultmäßig (ohne explizite Angabe) wird immer der string verwendet. 30

31 6.3. REGULAR LANGUAGE DESCRIPTION FOR XML - NEW GENERATION(RELAX NG) Beispiel: element Spielkarte { attribute Bild={ Bube Dame Ass Koenig } } Listen Wie schon bei XML-Schemas, können bei RELAX NG Listen defniert werden. Listen werden mit dem list -Pattern definiert. Die Elemente in einer Liste werden durch Leerzeichen getrennt. In Listen werden die Datentypen notiert. Beispiel: element Vektor { list {(xsd:double xsd:date)+ } } Diese Liste kann beliebige viele Elemente enthalten, es muss aber mindestens eins der beiden Elemente vorkommen. Der Datentyp kann entweder Double oder Date sein Vorteile und Einschränkungen RELAX NG bietet einige Vorteile: Deklaration in XML-Syntax und in kompakter Schreibweise. Kann Zusammenhänge zwischen Attributen und Elementen definieren. RELAX NG Schemas können in XML-Schemas und in DTD konvertiert werden, jedoch nicht umgekehrt. Unterstützt nicht sortierten Inhalt. Unterstützt kontext-senitive Inhaltsmodelle. Unterstützt Namespaces Neben den Vorteilen, die RELAX NG bietet, gibt es auch einige Einschränkungen: Keine Defaultwerte für Attribute. Entitäten können nicht spezifiziert werden. Notationen sind nicht möglich. Gibt nicht an, ob Leerzeichen signifikant sind. Keine ID/IDREF Validierung 31

32 Literaturverzeichnis [etu 2010] Learing XML - Basic Concepts. Website, URL: +Quality+Control+with+Schemas/4.1+Basic+Concepts/ ( ) [Rel 2010] RELAX NG home page. Website, URL: ( ) [xml 2010] XML Schema Tutorial. Website, URL: ( ) [Auer 2010] Auer, Jürgen: Xml programmieren - ein Tutorial. Website, URL: ( ) [Baier u. a. 2001] Baier, Toby ; Ebert, Michael ; Geissel, Andreas: XML Schema Teil 0: Einführung. Website, URL: ( ) [Berstel u. Boasson 2008] Berstel, Jean ; Boasson, Luc: Formal Properties of XML Grammars and Languages. (2008), Februar. URL: ( ) [Bray u. a. 2008] Bray, Tim ; Paoli, Jean ; Sperberg-McQueen, C.M.: Extensible Markup Language (XML) 1.0 (Fifth Edition). Website, November URL: ( ) [Clark 2002] Clark, James: RELAX NG Compact Syntax. Website, November URL: ( ) [Clark u. a. 2003] Clark, James ; Makoto, Murata ; Cowan, John: RELAX NG Compact Syntax Tutorial. Website, März URL: ( ) [Fries 2008] Fries, Norbert: Chomsky Grammatik. Website, Februar URL: ( ) [Görz u. Schneeberger ] Görz, G. ; Schneeberger, J.: XML Schema-Sprachen / Lehrstuhl Informatik 8 (KI), Uni Erlangen. Forschungsbericht. URL: 2.pdf ( ) 32

IT-Zertifikat: Daten- und Metadatenstandards

IT-Zertifikat: Daten- und Metadatenstandards IT-Zertifikat: Daten- und Metadatenstandards DTD - Document Type Definition / Dokumenttypdefinition Das (bislang) Wichtigste auf einen Blick Externe DTD einbinden:

Mehr

Datenaustauschformate. Datenaustauschformate - FLV

Datenaustauschformate. Datenaustauschformate - FLV Datenaustauschformate FLV-Dateien CSV-Dateien XML-Dateien Excel-Dateien Access- Backupdateien Günter M. Goetz 108 Datenaustauschformate - FLV Fixed Length Values Repräsentation einer Tabelle als 'Flat-File'

Mehr

... MathML XHTML RDF

... MathML XHTML RDF RDF in wissenschaftlichen Bibliotheken (LQI KUXQJLQ;0/ Die extensible Markup Language [XML] ist eine Metasprache für die Definition von Markup Sprachen. Sie unterscheidet sich durch ihre Fähigkeit, Markup

Mehr

XML Schema vs. Relax NG

XML Schema vs. Relax NG XML Schema vs. Relax NG p. 1/2 XML Schema vs. Relax NG Semistrukturierten Daten 1 Präsentation der Gruppe 2 XML Schema vs. Relax NG p. 2/2 Wozu XML Schema? W3C Empfehlung zur Definition von XML-Dokumentstrukturen

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit XML- und Webservice- Sicherheit 2. XML 2.1 XML 1.0 und XML Schema Gliederung 1. XML 1.0 2. XML Namespaces: URI, URL und URN 3. XML Schema Literatur: A. Tanenbaum, Computer Networks. E. R. Harold and W.

Mehr

DTD: Syntax-Zusammenfassung

DTD: Syntax-Zusammenfassung DTD: Syntax-Zusammenfassung Dokumenttyp-Deklarationen Interne Teilmenge ]> Externe

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

Mehr

Klaus Schild, XML Clearinghouse 2003. Namensräume

Klaus Schild, XML Clearinghouse 2003. Namensräume Namensräume Lernziele Namenskonflikte Warum lösen im World Wide Web einfache Präfixe dieses Problem nicht? Wie lösen globale Namensräume das Problem? Wie werden sie in XML-Dokumenten benutzt? Was sind

Mehr

XSL Templates. Mit Templates arbeiten. XSL Templates

XSL Templates. Mit Templates arbeiten. XSL Templates XSL Templates Mit Templates arbeiten Innerhalb von XSLT werden Templates verwendet. Ein Template ist eine Vorlage für die Transformation bestimmter Knoten. Diese Knoten können Elemente, Attribute oder

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Präsentation zum Thema XML Datenaustausch und Integration

Präsentation zum Thema XML Datenaustausch und Integration Sebastian Land Präsentation zum Thema XML Datenaustausch und Integration oder Warum eigentlich XML? Gliederung der Präsentation 1. Erläuterung des Themas 2. Anwendungsbeispiel 3. Situation 1: Homogene

Mehr

XML-Technologien. Tutorium im Sommersemester Mai 2014

XML-Technologien. Tutorium im Sommersemester Mai 2014 XML-Technologien Tutorium im Sommersemester 2014 niels.hoppe@fu-berlin.de 6. Mai 2014 XML Grundlagen URIs, URNs, URLs, IRIs,... Namensräume Document Type Definitions Elemente deklarieren Attribute deklarieren

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

XML Grundlagen Teil I

XML Grundlagen Teil I XML Vorlesung FH Aargau, SS 2006 XML Grundlagen Teil I Erik Wilde 20.3.2006 http://dret.net/lectures/xml-fhnw-ss06/ 20.3.2006 XML Vorlesung FHA SS 2006 1 Übersicht Aufbau von XML XML Dokumenten-Syntax

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften

Mehr

XML-Schema Datentypen

XML-Schema Datentypen Datentypen Data Types Simple Types Complex Types User-derived Built-in Atomic (restriction) Non-atomic (list, union) Primitive Derived WT:III-1 XML Schema Reference Lettmann 2014 Datentypen anytype anysimpletype

Mehr

Multimedia Technologie II

Multimedia Technologie II Vorlesung / Übungen Multimedia Technologie II Prof. Dr. Michael Frank / Prof. Dr. Klaus Hering Sommersemester 2004 HTWK Leipzig, FB IMN Für die externe Vorhaltung der DTD werden sämtliche zwischen den

Mehr

2. Einführung in Datenbanken und XML

2. Einführung in Datenbanken und XML 2. Einführung in Datenbanken und XML Was ist XML? 2. Einführung in Datenbanken und XML XML steht für extensible Markup Language durch das W3C entwickeltes Dokumentenformat einfach, flexibel, von SGML abgeleitet

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder holger.roeder@informatik.uni-stuttgart.de.

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder holger.roeder@informatik.uni-stuttgart.de. Java: Kapitel 9 Java und XML Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 9 Einführung in XML XML-Verarbeitung in Java Document Object

Mehr

HTML5. Wie funktioniert HTML5? Tags: Attribute:

HTML5. Wie funktioniert HTML5? Tags: Attribute: HTML5 HTML bedeutet Hypertext Markup Language und liegt aktuell in der fünften Fassung, also HTML5 vor. HTML5 ist eine Auszeichnungssprache mit der Webseiten geschrieben werden. In HTML5 wird festgelegt,

Mehr

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Regeln zur Bildung korrekter Wörter einer Sprache kann man in einer natürlichen Sprache formulieren. Da dies jedoch wieder Mehrdeutigkeiten mit

Mehr

Strukturierung von Inhalten

Strukturierung von Inhalten Strukturierung von Inhalten extensible Markup Language Metasprache erlaubt die Definition eigener Markupsprachen zur Strukturierung von Informationen World Wide Web Consortium (W3C) Standard Basiert auf

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF RDF und RDF Schema Einführung in die Problematik Von HTML über XML zu RDF Kirsten Albrecht Roland Illig Probleme des HTML-basierten

Mehr

Grammatiken. Einführung

Grammatiken. Einführung Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Containerformat Spezifikation

Containerformat Spezifikation Containerformat Spezifikation Version 1.1-21.02.2014 Inhaltsverzeichnis 0 Einführung... 4 0.1 Referenzierte Dokumente... 4 0.2 Abkürzungen... 4 1 Containerformat... 5 1.1 Aufbau des Container-Headers...

Mehr

Containerformat Spezifikation

Containerformat Spezifikation Containerformat Spezifikation Version 1.0-09.05.2011 Inhaltsverzeichnis 0 Einführung... 4 0.1 Referenzierte Dokumente... 4 0.2 Abkürzungen... 4 1 Containerformat... 5 1.1 Aufbau des Container-Headers...

Mehr

Informationen zu den regionalen Startseiten

Informationen zu den regionalen Startseiten Informationen zu den regionalen Startseiten Inhaltsverzeichnis Informationen zu den regionalen Startseiten 1 1. Grundlegende Regeln 2 1.1. Was wird angezeigt? 2 1.2. Generelle Anzeigeregeln 2 2. Anpassbare

Mehr

WEBSEITEN ENTWICKELN MIT ASP.NET

WEBSEITEN ENTWICKELN MIT ASP.NET jamal BAYDAOUI WEBSEITEN ENTWICKELN MIT ASP.NET EINE EINFÜHRUNG MIT UMFANGREICHEM BEISPIELPROJEKT ALLE CODES IN VISUAL BASIC UND C# 3.2 Installation 11 Bild 3.2 Der Webplattform-Installer Bild 3.3 IDE-Startbildschirm

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren 1. XML Grundbegriffe XML = extensible Markup Language Metasprache um Dokumenttypen zu definieren XML Baum

Mehr

XML DTD und Schema von Thomas Mangold

XML DTD und Schema von Thomas Mangold XML DTD und Schema von Thomas Mangold Inhalt: Zweck kurze Übersicht über den Aufbau Gemeinsamkeiten und Unterschiede Grundelemente Schema vs. DTD Beispiel Definitieren eines Schemas Links 15.05.2002 XML-Seminar

Mehr

Einfügen von Bildern innerhalb eines Beitrages

Einfügen von Bildern innerhalb eines Beitrages Version 1.2 Einfügen von Bildern innerhalb eines Beitrages Um eigene Bilder ins Forum einzufügen, gibt es zwei Möglichkeiten. 1.) Ein Bild vom eigenem PC wird auf den Webspace von Baue-die-Bismarck.de

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

XML steht für Extensible Markup Language. Helmut Vonhoegen (2007) beschreibt XML unter anderem so:

XML steht für Extensible Markup Language. Helmut Vonhoegen (2007) beschreibt XML unter anderem so: XML 1. Worum geht es? XML steht für Extensible Markup Language. Helmut Vonhoegen (2007) beschreibt XML unter anderem so: XML definiert eine Syntax, um strukturierte Datenbestände jeder Art mit einfachen,

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax

Mehr

Document Type Definitions (DTDs)

Document Type Definitions (DTDs) Document Type Definitions (DTDs) Prof. Dr.-Ing. Robert Tolksdorf & Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme tolk@ag-nbi.de harasic@inf.fu-berlin.de

Mehr

XML-Namensräume. Marc Monecke monecke@informatik.uni-siegen.de

XML-Namensräume. Marc Monecke monecke@informatik.uni-siegen.de XML-Namensräume Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 19. Mai 2003 Inhaltsverzeichnis 1 Motivation

Mehr

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz XML 1 Einführung, oxygen Ulrike Henny ulrike.henny@uni-koeln.de XML extensible Markup Language Was ist XML? XML-Grundlagen XML-Editoren, oxygen HTML + CSS XPath Übungen Literatur Folie 2 Was ist XML? extensible

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

XML-Austauschformat für Sicherheitsdatenblätter

XML-Austauschformat für Sicherheitsdatenblätter XML-Austauschformat für Sicherheitsdatenblätter Version 2.0 / 15. Dezember 2008 www.edas.org 1 XML-Austauschformat für Sicherheitsdatenblätter Der Austausch der Sicherheitsdatenblätter erfolgt als XML-Datei.

Mehr

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Gemeinsam mit Book Industry Study Group, New York, und Book Industry Communication, London. ONIX for Books Supply Update Nachricht Überblick

Gemeinsam mit Book Industry Study Group, New York, und Book Industry Communication, London. ONIX for Books Supply Update Nachricht Überblick Gemeinsam mit Book Industry Study Group, New York, und Book Industry Communication, London ONIX for Books Supply Update Nachricht Überblick Version 1.0 August 2006 Copyright 2006 EDItEUR Limited. Alle

Mehr

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie. GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen Teil 1: Einführung: Wissensbasis und Ontologie Was ist eine Wissensbasis? Unterschied zur Datenbank: Datenbank: strukturiert

Mehr

Verteilte Systeme: Übung 4

Verteilte Systeme: Übung 4 Verteilte Systeme: Übung 4 WSDL und SOAP Oliver Kleine Institut für Telematik https://www.itm.uni-luebeck.de/people/kleine SOAP Nachrichten Serialisierung in XML Root-Element einer SOAP Nachricht ist

Mehr

Übungsaufgaben zu XML:

Übungsaufgaben zu XML: Übungsaufgaben zu XML: Aufgabe 1 Allgemeine Fragen zu XML: (Benutzen Sie zum Lösen der Aufgaben die Online-Hilfen, welche wir erwähnt haben.) a) Was ist eine DTD? DTD steht für Document Type Definition.

Mehr

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19 Inhalt 1 inführung 2 Automatentheorie und ormale prachen Grammatiken Reguläre prachen und endliche Automaten Kontextfreie prachen und Kellerautomaten Kontextsensitive und yp 0-prachen 3 Berechenbarkeitstheorie

Mehr

Barrierefreie Webseiten erstellen mit TYPO3

Barrierefreie Webseiten erstellen mit TYPO3 Barrierefreie Webseiten erstellen mit TYPO3 Alternativtexte Für jedes Nicht-Text-Element ist ein äquivalenter Text bereitzustellen. Dies gilt insbesondere für Bilder. In der Liste der HTML 4-Attribute

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

ipin CSV-Datenimport (Mac OS X)

ipin CSV-Datenimport (Mac OS X) ipin CSV-Datenimport (Mac OS X) ipin bietet Ihnen die Möglichkeit, Daten aus anderen Programmen oder Datenquellen zu importieren. Dies ist vor allem dann sehr hilfreich, wenn große Datenmengen in ipin

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Verarbeitung der Eingangsmeldungen in einem Callcenter

Verarbeitung der Eingangsmeldungen in einem Callcenter Q-up ist ein Produkt der: Anwendungsbeispiele Verarbeitung der Eingangsmeldungen in einem Callcenter Der Testdatengenerator Der Testdatengenerator Verarbeitung der Eingangsmeldungen in einem Callcenter

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden? Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden? Anforderung Durch die Bearbeitung einer XML-Datei können Sie Ihre eigenen Dokumentationen (z.b. PDF-Dateien, Microsoft Word Dokumente

Mehr

INHALTSVERZEICHNIS Allgemeine Beschreibung... 3 Verwendung der Webseite... 4 Abbildungsverzeichnis... 12

INHALTSVERZEICHNIS Allgemeine Beschreibung... 3 Verwendung der Webseite... 4 Abbildungsverzeichnis... 12 ONLINE-HILFE INHALTSVERZEICHNIS 1 Allgemeine Beschreibung... 3 2... 4 2.1 Angemeldeter Benutzer... 4 2.2 Gast... 10 Abbildungsverzeichnis... 12 1 ALLGEMEINE BESCHREIBUNG Die Webseite "" ist eine Informationsplattform

Mehr

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname Arbeitszeit: 100 Minuten. Aufgaben sind auf den Angabeblättern zu lösen; Zusatzblätter werden nicht

Mehr

Ressourcen-Beschreibung im Semantic Web

Ressourcen-Beschreibung im Semantic Web Ressourcen-Beschreibung im Semantic Web Cristina Vertan Inhaltsübersicht Wie sollen die Ressourcen für Semantic Web annotiert werden? Was ist und wie funktioniert RDF? Wie kodiert man RDF-Statements in

Mehr

7. Formale Sprachen und Grammatiken

7. Formale Sprachen und Grammatiken 7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)

Mehr

Deklaration standalone="yes" Quelle:

Deklaration standalone=yes Quelle: Wohlgeformtes XML-Dokument 1. Zu jedem Start-Tag existiert genau ein Ende-Tag 2. Bei leeren Elementen können diese zusammenfallen 3. Korrekte Elementschachtelung, d.h. keine Überlappung 4. Genau ein Wurzelelement

Mehr

Rundung und Casting von Zahlen

Rundung und Casting von Zahlen W E R K S T A T T Rundung und Casting von Zahlen Intrexx 7.0 1. Einleitung In diesem Werkstattbeitrag erfahren Sie, wie Zahlenwerte speziell in Velocity, aber auch in Groovy, gerundet werden können. Für

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Die Excel Schnittstelle - Pro Pack

Die Excel Schnittstelle - Pro Pack Die Excel Schnittstelle - Pro Pack Die Excel Pro Pack ist eine Erweiterung der normalen Excel Schnittstelle, die in der Vollversion von POSWare Bestandteil der normalen Lizenz und somit für alle Lizenznehmer

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch. Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf Nachdem die Projekt-Vision und die Stakeholder bekannt sind,

Mehr

Mathematische Grundlagen der Informatik 2

Mathematische Grundlagen der Informatik 2 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Emanuel Duss emanuel.duss@gmail.com 12. April 2013 1 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Dieses Dokument basiert

Mehr

Vorgaben und Erläuterungen zu den XML-Schemata im Bahnstromnetz

Vorgaben und Erläuterungen zu den XML-Schemata im Bahnstromnetz Anwendungshandbuch Vorgaben und Erläuterungen zu den XML-Schemata im Bahnstromnetz Version: 1.0 Herausgabedatum: 31.07.2015 Ausgabedatum: 01.11.2015 Autor: DB Energie http://www.dbenergie.de Seite: 1 1.

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

2 XML-Basiskonzepte. 2.1 XML-Dokumente

2 XML-Basiskonzepte. 2.1 XML-Dokumente D3kjd3Di38lk323nnm 19 Im Rahmen dieses Buches können wir keine vollständige Einführung in alle XML-Konzepte geben. Diejenigen Konzepte von XML, die für das Verständnis von XQuery nötig sind, sollen aber

Mehr

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012 Access 2010 Grundlagen für Anwender inkl. zusätzlichem Übungsanhang ACC2010-UA 3 Access 2010 - Grundlagen für Anwender 3 Daten in Formularen bearbeiten

Mehr

Semistrukturierte Daten. Teil 3: Document Type Definitions (DTDs)

Semistrukturierte Daten. Teil 3: Document Type Definitions (DTDs) Semistrukturierte Daten Sommersemester 2010 Teil 3: Document Type Definitions (DTDs) 3.1. Dokumenttyp-Deklaration 3.2. Element-Deklaration 3.3. Attribut-Deklaration 3.4. Entitäten 3.5. weitere Bestandteile

Mehr

Snippets - das Erstellen von "Code- Fragmenten" - 1

Snippets - das Erstellen von Code- Fragmenten - 1 Snippets - das Erstellen von "Code- Fragmenten" Das Erstellen von "Code- Fragmenten", welche mit dem TinyMCE ausgewählt werden können. Grundlegendes: Die Datei, welche die in Folge erklärten Daten und

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

XML Tutorium mit Oxygen. Oxygen Version 9.3!!

XML Tutorium mit Oxygen. Oxygen Version 9.3!! XML Tutorium mit Oxygen (Version 1.9 vom 4.6.2013) Oxygen Version 9.3!! In den folgenden Lektionen sollen die vermittelten Konzepte zu XML anhand von konkreten Beispielen geübt und vertieft werden. Das

Mehr

Das Einsteigerseminar

Das Einsteigerseminar Michael Seeboerger-Weichselbaum Das Einsteigerseminar XML Inhalt Vorwort Einleitung und Ziel des Buches 1 Was ist XML 1.1 HTML 1.2 XML 1.3 XSLT 1.4 XML und HTML - wo sind die Unterschiede? 1.5 Einsatzgebiete

Mehr

Erstellen eines Formulars

Erstellen eines Formulars Seite 1 von 5 Word > Erstellen bestimmter Dokumente > Formen Erstellen von Formularen, die in Word ausgefüllt werden können Basierend auf einer Vorlage können Sie dieser Inhaltssteuerelemente und Hinweistext

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Theoretische nformatik inheit 3.1 Kontextfreie Grammatiken

Mehr

Es gibt situationsabhängig verschiedene Varianten zum Speichern der Dokumente. Word bietet im Menü DATEI unterschiedliche Optionen an.

Es gibt situationsabhängig verschiedene Varianten zum Speichern der Dokumente. Word bietet im Menü DATEI unterschiedliche Optionen an. 3. SPEICHERN DATEIEN SPEICHERN Dateien werden in Word Dokumente genannt. Jede Art von Datei, die Sie auf Ihrem Computer neu erstellen, befindet sich zuerst im Arbeitsspeicher des Rechners. Der Arbeitsspeicher

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Einführung in XML. Seminarunterlage. Version 3.05 vom

Einführung in XML. Seminarunterlage. Version 3.05 vom Seminarunterlage Version: 3.05 Version 3.05 vom 8. März 2017 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder

Mehr