Business und Internet - WS 2009/10
XML-Grundlagen. Erfassen eines Kunden
christian.weinzinger.Uni-Linz, Montag, 14. April 2008, 09:27
Meine MatrikelNr: 0557311

Folglich habe ich Aufgabe 1 zu bearbeiten. Diese ist:
einen Kunden erfassen.

Die Aufgabe besteht darin einen Kunden in der Lehrdatenbank unter http://sql.idv.edu zu erfassen. Es sollen keine bestehenden Kunden erfasst werden.

Ich werde zuerst das XML-Dokument programmieren. Anschließend werde ich das Dokument um die DTD erweitern. Für die gestellte Aufgabenstellung erscheint es mir eher sinnvoll eine interne DTD-Deklaration zu verwenden.

Erste Überlegungen:
Das Dokument sollte sinnvollerweise die Struktur haben, die auch die Datenbank verlangt. Ein Kunde hat eine Kundennummer, einen Vornamen, einen Nachnamen, wohnt in einer Straße und an einer bestimmten Postleitzahl.

Also würde ich mal so beginnen:


<kunde>
<nr> 9999 </nr>
<vorname> Franz </vorname>
<nachname> Huber </nachname>
<strasse> Gutshofstraße </strasse>
<plz> 4060 </plz>
</kunde>


Die Datei sieht in einer ersten Vorversion mal so aus:
newclient.xml (xml, 0 KB)

Um nun die die entsprechende DTD-Deklaration in die Datei einzubauen muss zuerst der Standard und anschließen die Deklaration der Tags erfolgen.

Der Standard ist folgender Maßen deklariert:
<?xml version="1.0" encoding="ISO-8859-1" ?>

Danach deklariere ich die entsprechenden Tag, die gebraucht werden:
<!DOCTYPE kunde [
<!ELEMENT kunde (nr, vorname, nachname, strasse, plz)>
<!ELEMENT nr (#PCDATA)>
<!ELEMENT vorname (#PCDATA)>
<!ELEMENT nachname (#PCDATA)>
<!ELEMENT strasse (#PCDATA)>
<!ELEMENT plz (#PCDATA)>
]>


Der Datentyp #PCDATA steht für 'Parsed Character Data'. Dieser Datentyp beschreibt den Inhalt eines Tags. Es kann nicht unterschieden werden, ob es sich um eine Zahl, einen Text oder ein Datum handelt.

Die genaue Deklaration der Datentypen müsste im Rahmen eines XSD-Files passieren. Das XSD (XML Schema Description) ist eine andere Möglichkeit die Datentypen zu deklarieren.
Eine genaue Erklärung was XSD ist und wozu sie verwendet werden kann gibts unter:
http://www.w3schools.com/schema/

So und jetzt ist es so weit. Ich habe mich doch entschlossen keine interne sondern eine externe DTD-Deklaration zu erstellen. Das erscheint mir hier doch der bessere Weg zu sein.

Im XML-Dokument muss man zuerst den Pfad der externen DTD-Datei angeben. Mit dem Schlüsselwort SYSTEM wird mal automatisch im gleichen Ordner nachgesehen, in der auch das XML-File liegt. Der Header der XML Datei sieht dann bei mir so aus:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE kunde SYSTEM "newClient.dtd">


Das ganze XML-File sieht nun so aus: (Leider zeigt dieser XML-Editor die Kopfzeilen nicht an - die Kopfzeilen sind oben - fett dargestellt - ersichtlich. Genau so sind sie auch im XML-Dokument drinnen)
newclient_excl_dtd.xml (xml, 0 KB)
Die dazugehörige DTD so:
<!ELEMENT kunde (nr, vorname, nachname, strasse, plz)>
<!ELEMENT nr (#PCDATA)>
<!ELEMENT vorname (#PCDATA)>
<!ELEMENT nachname (#PCDATA)>
<!ELEMENT strasse (#PCDATA)>
<!ELEMENT plz (#PCDATA)>

Kommentieren