Versuchsziele. 1. Aufgabe. Hochschule Harz FB Automatisierung und Informatik Versuch: XML Thema: Grundkenntnisse in XML mit DTD s und Schemata



Ähnliche Dokumente
Errata-Liste zum Kurs: Einführung in XML (2. Auflage)

... MathML XHTML RDF

IT-Zertifikat: Daten- und Metadatenstandards

Beuth Hochschule Die erweiterbare Markierungssprache XML WS10/11

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Rundung und Casting von Zahlen

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

Datenbanken Kapitel 2

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

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

Lieferschein Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Aufklappelemente anlegen

EMC SourceOne TM für Microsoft SharePoint 7.1 Archivsuche Kurzreferenz

Bewusstkaufen.at XML Produkt Importschnittstelle für Händler

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

teamsync Kurzanleitung

ecall sms & fax-portal

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei

CodeSaver. Vorwort. Seite 1 von 6

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

Anleitung über den Umgang mit Schildern

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Abwesenheitsnotiz im Exchange Server 2010

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Neue Zugangsdaten für sg-online erstellen

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Übungsaufgaben zu XML:

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Universität Augsburg, Institut für Informatik Wintersemester 2011/2012 Prof. Dr. W. Kießling 03. Feb Semesterklausur

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Enigmail Konfiguration

Lokales Netzwerk Wie kann ich lokal installierte Drucker im Netzwerk für andere Nutzer freigeben? Frage:

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Einführung in die Programmierung

Inventarverwaltung mit Access 2007/10

XML-Austauschformat für Sicherheitsdatenblätter

Erstellen der Barcode-Etiketten:

1 Mathematische Grundlagen

MMS - Update auf Version 4.4

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Dieser Text beschreibt die Neuerungen von DaNiS und die Vorgehensweise beim DaNiS-Update.

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Menü auf zwei Module verteilt (Joomla 3.4.0)

Studieren- Erklärungen und Tipps

Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken

Gezielt über Folien hinweg springen

Teil 1: IT- und Medientechnik

Anleitung zum neuen Überaumbuchungssystem der Hochschule für Musik und Tanz Köln

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten.

Zwischenablage (Bilder, Texte,...)

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Der Jazz Veranstaltungskalender für Deutschland, Österreich und die Schweiz

White Paper - Umsatzsteuervoranmeldung Österreich ab 01/2012

WEBSEITEN ENTWICKELN MIT ASP.NET

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden.

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Webalizer HOWTO. Stand:

Grundlagen der Theoretischen Informatik, SoSe 2008

Bkvadmin2000 Peter Kirischitz

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Anleitung für die Online-Bewerbung über LSF auf Lehrveranstaltungen aller Lehramtsstudiengänge

<script type="text/javascript"> <! <%= page(page.searchsuggestionsscript) %> // > </script>

4.1 Wie bediene ich das Webportal?

Internet online Update (Mozilla Firefox)

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

Durchführung der Datenübernahme nach Reisekosten 2011

Verbinden. der Firma

Layoutmodelle. Steffen Schwientek Große Klostergasse Friedberg schwientek@web.de Web :schlaukopp.org

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

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

5. Übung: PHP-Grundlagen

SJ OFFICE - Update 3.0

GITS Steckbriefe Tutorial

2) Geben Sie in der Anmeldemaske Ihren Zugangsnamen und Ihr Passwort ein

Tutorial Einrichtung eines lokalen MySQL-Servers für den Offline-Betrieb unter LiveView

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

SAP GUI 7.30 Installation und Einrichtung: Mac OSX

How to do? Projekte - Zeiterfassung

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Datenbanken Microsoft Access 2010

Hilfe zum Warenkorb des Elektronischen Katalogs 2007 Version 1.0

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

Um eine Person in Magnolia zu erfassen, gehen Sie wie folgt vor:

Autoresponder Unlimited 2.0

Im Folgenden werden die jeweiligen Elemente erklärt. Im Anschluss folgt ein Beispieldatensatz in xml.

Tipps und Tricks zu den Updates

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Einführung in XML von Julian Bart

Antolin-Titel jetzt automatisch in WinBIAP kennzeichnen

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 Teil 6

Anleitung zum Herunterladen von DIN-Vorschriften außerhalb des internen Hochschulnetzes

Transkript:

Hochschule Harz FB Automatisierung und Informatik Versuch: XML Thema: Grundkenntnisse in XML mit DTD s und Schemata Versuchsziele XML-Dateien für eine vorgegebene DTD-Datei erstellen können. XML-Dateien für eine vorgegebene Schemata-Datei erstellen und ändern können. 1. Aufgabe Erstellen einer XML-Datei für eine vorhandene DTD-Datei: Im diesem Teil soll eine XML-Datei erstellt werden, die genau einer vorgegebenen DTD-Datei entspricht. Abgebildet werden soll eine Bibliothek mit folgenden Eigenschaften: Das Wurzelelement ist eine Bibliothek. Diese kann mehrere Bücher enthalten. Ein Buch ist durch mehrere Elemente beschrieben (siehe Labor4a.dtd). Einige der Elemente können mehrfach vorkommen (buch, autor, lagerplatz). Ein Element des Buches hat vier weitere Elemente. Beispielcode der DTD-Datei: labor4a.dtd: <!ELEMENT bibliothek (buch)+> <!ELEMENT buch (titel, (autor)+, inhalt, (lagerplatz)*)> <!ELEMENT titel (#PCDATA)> <!ELEMENT autor (#PCDATA)> <!ELEMENT inhalt (#PCDATA)> <!ELEMENT lagerplatz (ort, nummer)> <!ELEMENT ort (#PCDATA)> <!ELEMENT nummer (#PCDATA)> Ihre Aufgabe: Fügen Sie die unten aufgelisteten Bücher in die XML-Datei ein, so dass die Daten vollständig in der Datei sind, diese aber trotzdem validiert werden kann. 1. Buch Bezeichnung Inhalt titel Visual C++ 6 autor Richard Leinecker Tom Archner inhalt Das Standardwerk zur professionellen Programmierung lagerplatz WR, EIC 460 0417-01 WR, EIC 460 0417-02 2. Buch Bezeichnung Inhalt titel Einführung in die Informatik autor Gumm, H.P. Sommer, M.: inhalt Binärsysteme, BCD, Resim, HTML, XML lagerplatz HBS, EIE 420 0117-01 1

3. Buch Bezeichnung titel autor inhalt lagerplatz WR, DED 200 0446 WR, DED 200 0455 WR, DED 200 0458 Inhalt Ajax Stefanie Mintert Christoph Leisegang Weberstellung mit Asynchron XML und Javascript 4. Buch Bezeichnung Inhalt titel Per Anhalter durch die Galaxis autor Douglas Adams inhalt Alle Romane in einem Band, sehr viel Text zum Lesen lagerplatz HBS, SFI 125 1245 WR, SFI 111 1246 5. Buch Bezeichnung Inhalt titel Grundkurs Web-Programmierung autor Beate Porska inhalt HTML, CSS, Datenbanken, PHP, mysql, Java Server Pages lagerplatz WR, DED 100 0394 HBS, EDV 007 0343 HBS, EDV 007 0344 Vorgehensweise: Laden Sie die Zip-Datei mit den Quellcodes auf Ihrem Rechner. Am besten in dem Ordner d:\daten\xml Laden Sie die Zip-Datei mit dem Programm editix-free-2010-raw.zip auf Ihrem Rechner. Entpacken Sie das Programm. Starten Sie das Programm, indem Sie im Ordner bin die Batch-Datei run.bat doppelklicken. Laden der beiden Dateien Labor4a.xml und Labor4a.dtd. Öffnen des Registers Labor4a.xml Testen auf Validate mit der Tastenkombination Strg+K Fügen Sie die Bücher in die XML-Datei ein. 2

Definitionen in einer DTD-Datei Elements Tags Attributes PCDATA CDATA // Person, Buch // <person>. </person> // <person geschlecht= "m"> // Parsed Character Data // Character Data, einfacher Text PCDATA = Parsed Character Data o Der enthaltene Text muss bestimmten Kriterien entsprechen o Die Zeichen < und & dürfen nicht im Text sein CDATA = Character Data o Dieser Abschnitt kann beliebigen Text enthalten o Auch {, <, & Beispiel: <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>andreas</to> <from>beate</from> <heading>erinnerung</heading> <body>vergiss nicht fuer die Klausur GDI zu lernen!</body> </note> 3

2. Aufgabe Die mitgelieferten Dateien Labor4b.xml und Labor4b.xsd beschreiben die Struktur eines Bestellsystems in einer Datenbank. Der aktuelle Stand ist eher auf DTD-Niveau. Es bestehen keinerlei Prüfungen bezüglich der Anzahl und der Wertebereiche. Ändern Sie beide Dateien so, dass die unteren Restriktionen eingehalten werden. Restriktionen: Die Datenbank kann mehrere Bestellungen haben. Das Element artikelnr muss mindestens drei und darf maximal 20 Zeichen haben. Eventuelle Fehler müssen natürlich korrigiert werden. Die Anzahl sollte positiv, also größer Null sein. Eventuelle Fehler müssen auch hier korrigiert werden. Das Element status soll als Aufzählung realisiert werden. Folgende Zeichenketten sind möglich: (Eventuelle Fehler müssen auch hier korrigiert werden) o ordered o sended o cash Datei: Labor4b.xml <?xml version="1.0" encoding="utf-8"?> <datenbank xsi:nonamespaceschemalocation="labor4b.xsd" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <bestellung> <artikelnr>cpu-i7-12</artikelnr> <anzahl>2</anzahl> <bez>intel i7 260QM, 2.6 GHz</bez> <status>ordered</status> </bestellung> <bestellung> <artikelnr>monitor-17 Montagsproduktion</artikelnr> <anzahl>0</anzahl> <bez>asus 1276</bez> <status>cash</status> </bestellung> <bestellung> <artikelnr>maus-ms-12</artikelnr> <anzahl>10</anzahl> <bez>microsoft Mouse TR-1234</bez> <status>ordered fast</status> </bestellung> <bestellung> <artikelnr>tablet-asus-10.1</artikelnr> <anzahl>2</anzahl> <bez>tablet ASUS 10.1 white, 32 GByte</bez> <status> sended </status> </bestellung> </datenbank> 4

Datei: Labor4b.xsd <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="datenbank" type="datenbanktyp"/> <xsd:complextype name="datenbanktyp"> <xsd:sequence> <xsd:element name="bestellung" type="bestellungtyp" /> </xsd:sequence> </xsd:complextype> <xsd:complextype name="bestellungtyp"> <xsd:sequence> <xsd:element name="artikelnr" type="xsd:string" /> <xsd:element name="anzahl" type="xsd:integer" /> <xsd:element name="bez" type="xsd:string" /> <xsd:element name="status" type="xsd:string" /> </xsd:sequence> </xsd:complextype> </xsd:schema> Vorgehensweise: Starten des Programms. Laden der beiden Dateien Labor4b.xml und Labor4b.xsd. Öffnen des Registers Labor4b.xml Testen auf Validate (Strg+K). Eventuelle Fehlermeldungen dann in der XSD bzw. XML-Datei ändern. 5

Schemata XML Schema beschreibt in einer XML-Schemasprache mittels Datentypen und Hierarchien die Struktur einer XML-Datei. Ein XML Schema wird auch als eine XSD (XML Schema Definition) bezeichnet und hat als Datei üblicherweise die Endung.xsd. Eigenschaften: Der Ersatz der DTD-Datei. Bessere Datentypen (int, double, date, time, boolean). Bessere Definitionen bzgl. der Anzahl (minoccurs und maxoccurs). Einschränkung des Wertebereichs (minexclusive, maxinclusive, minlength, Pattern). Aufbau einer XSD-Datei: Header (xs:schema) Elemente und Unterelemente à la DTD Einfache Datentypen (atomare Datentypen à la Java) xsd:string xsd:byte xsd:unsignedbyte xsd:hexbinary // MIME xsd:unsignedinteger xsd:unsignedlong xsd:unsignedshort xsd:integer xsd:float xsd:double xsd:decimal -INF, +INF, NAN -INF, +INF, NAN Definition der Stellen möglich xsd:boolean xsd:date xsd:time xsd:datetime xsd:id ID à la Matrikelnummer 6

1. Beispiel: Speichern eines Studenten (xsd_bsp1) XML-Datei <?xml version="1.0" encoding="utf-8"?> <vorlesung xsi:nonamespaceschemalocation='xsd_bsp1.xsd"> <student> Meier </student> </vorlesung> XSD-Datei <?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="vorlesung"> <xsd:complextype> <xsd:sequence> <xsd:element ref="student" /> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:element name="student" type="xsd:string"/> </xsd:schema> Erläuterung: Die XSD-Datei ist wie eine XML-Datei aufgebaut und kann auch nach deren Regeln getestet werden. Die beiden ersten Zeilen zeigen die xml-startsequenz: o Version und Schema Die dritte Zeile startet mit dem root-element, hier vorlesung Mit den Anweisungen complextype und sequence werden Unterelement und Strukturen definiert. Die Anweisung element ref zeigt an, dass eine Vorlesung einen Studenten hat und dass dieser weiter unten definiert ist. Die vorletzte Zeile definiert den Datentyp des Studenten als Zeichenkette. Weitere Elemente einer XSD-Datei Bemerkungen (annotation) Bemerkungen können an jeder Stelle eingetragen werden: <xs:annotation> <xs:documentation>xml macht Spaß</xs:documentation> </xs:annotation> 7

Begrenzungen Um die einzelnen Knoten einschränken zu können stehen folgende Techniken zur Verfügung: Anzahl (minimal und maximal) o minoccurs bestimmt die untere Grenze (einschließlich). o maxoccurs bestimmt die obere Grenze (einschließlich). maxoccurs kann auch "unbounded" als Wert haben. Wertebereich: o minexclusive o mininclusive o maxexclusive o maxinclusive Längenbeschränkungen bei Strings: o length enumeration pattern o minlength o maxlength o Beschränkung durch Angabe alternativer Werte. o enumeration value="ati" o Beschränkung durch Angabe eines regulären Ausdrucks. o Deutsche Postleitzahlen: pattern value="(d )?[0-9]{5}" o D ist optional gefolgt von fünf Ziffern Einschränkung der Dezimalstellen (Gesamtzahl und Nachkommastellen) o totaldigits o fractiondigits whitespace Behandlung von Leerzeichen und Tabs Beispiele <xs:element name="anzstudenten" type="xsd:integer" minoccurs="0"/> <xs:element name="kommentar" type="xs:string" minoccurs="0" maxoccurs="unbounded"/> 8

SimpleTyp Dieser Typ hat keine weiteren Unterelemente, sondern hier wird definiert, welche Eigenschaften das Element hat. Selbstdefinierter Typ: <xs:simpletype name="monatinttyp"> <xs:restriction base="xs:integer"> <xs:mininclusive value="1"/> <xs:maxinclusive value="12"/> </xs:restriction> Selbstdefinierter Typ mit interner Defintion: 1. Möglichkeit (implizit, ohne den Typ autotyp ) <xs:element name="autotyp"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:enumeration value="audi"/> <xs:enumeration value="volkswagen"/> <xs:enumeration value="bmw"/> </xs:restriction> </xs:simpletype> </xs:element> 2. Möglichkeit <xs:element name="auto" type="autotype"/> <xs:simpletype name="autotype"> <xs:restriction base="xs:string"> <xs:enumeration value="audi"/> <xs:enumeration value="volkswagen"/> <xs:enumeration value="bmw"/> </xs:restriction> </xs:simpletype> Aufzählung als externe Definition: <xs:simpletype name="size"> <xs:restriction base="xs:string"> <xs:enumeration value="xs"/> <xs:enumeration value="s"/> <xs:enumeration value="m"/> <xs:enumeration value="l"/> <xs:enumeration value="xl"/> </xs:restriction> </xs:simpletype> Längenbeschränkung: <xsd:simpletype name="mytyp"> <xsd:restriction base="xsd:string"> <xsd:minlength value="3"/> </xsd:restriction> </xsd:simpletype> 9

2. Beispiel: Bestellung (xsd_bsp4) XML-Datei <?xml version="1.0" encoding="utf-8"?> <adressen xsi:nonamespaceschemalocation="xsd_bsp4.xsd" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <datensatz> <vorname>hans</vorname> <nachname>mustermann</nachname> <matrnr>12345</matrnr> </datensatz> <datensatz> <vorname>franz</vorname> <nachname>meier</nachname> <matrnr>12741</matrnr> </datensatz> <datensatz> <vorname>hans Hugo</vorname> <nachname>schulze</nachname> <matrnr>17741</matrnr> </datensatz> </adressen> XSD-Datei <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="adressen" type="adressentyp"/> <xsd:complextype name="adressentyp"> <xsd:sequence> <xsd:element name="datensatz" type="datensatztyp" minoccurs="1" maxoccurs="unbounded" /> </xsd:sequence> </xsd:complextype> <xsd:complextype name="datensatztyp"> <xsd:sequence> <xsd:element name="vorname" type="xsd:string" /> <xsd:element name="nachname" type="xsd:string" /> <xsd:element name="matrnr" type="matrnrtyp" /> </xsd:sequence> </xsd:complextype> <xsd:simpletype name='matrnrtyp'> <xsd:restriction base='xsd:integer'> <xsd:mininclusive value='1'/> </xsd:restriction> </xsd:simpletype> </xsd:schema> Erläuterung: Die obige Definition verwendet die externe Definition von Typen. Das Element adressen ist in adressentyp definiert. Da in der XML-Datei mehrere Datensätze stehen, muss der Wert von maxoccurs auf mindestens drei gesetzt sein oder auf unbounded. Eine Beschränkung des Wertebereichs funktioniert nur mit einem neuen simpletyp. Dort kann man die minimalen bzw. maximalen Werte eingeben. Es ist immer besser, wenn man die Subelemente in einem zusätzlichen Abschnitt definiert: Die Matrikelnummer wird in matrnrtyp definiert. 10