Anfänger: XML-Aufgabe

Mynona

Grünschnabel
Hallo,

muss xml für eine Prüfung lernen und habe jetzt verschiedene Aufgaben. Meine Bitte: kann jemand von euch mal eine Blick auf die Aufgabe und die von mir geschriebene Lösung werfen. Bin mit xml nämlich so gar nicht vertraut und es handelt sich hierbei um meinen ersten Versuch.

Aufgabe: Ein traditionsreiches Autohaus führt derzeit noch ohne IT-Unterstützung die Bestandsliste der zu verkaufenden Wagen. Der Senior hat kürzlich etwas über XML gelesen und bittet Sie, eine Beispiel XML-Datei zu erarbeiten, die zukünftig als Basis der Bestandsliste dienen soll. Folgende Dinge sollen dabei berücksichtigt werden:
a. Jeder Wagen wird durch die folgenden Elemente beschrieben: Baujahr, Farbe, Marke, Preis, Fahrzeugmodell
b. Darüber hinaus haben viele Wagen noch Extras
c. Jeder Wagen verfügt über eine Fahrzeugnummer, diese soll als Attribut verwendet werden
d. Entweder handelt es sich bei dem Wagen um einen „Neuwagen“ oder „Gebrauchwagen“ (dies soll ebenfalls über Attribute abgebildet werden)

Code:
<?xml version="1.0"?>
<!DOCTYPE bestandsliste SYSTEM "bestandsliste.dtd">
<bestandsliste>
	<wagen>
		<fahrzeugnummer fzid="ABC123">
		<baujahr>2001</baujahr>
		<farbe>schwarz</farbe>
		<marke>VW</marke>
		<preis>25000.00</preis>
		<fahrzeugmodell>Polo</fahrzeugmodell>
		<extras>
			<extra1>Klimaanlage</extra1>
			<extra2>Sitzheizung</extra2>
		</extras>
		<zustand "neuwagen|gebrauchwagen"></zustand>
		</fahrzeugnummer>
                                <fahrzeugnummer fzid="...">
                                .
                                .
                                </fahrzeugnummer>
	</wagen>
</bestandsliste>

Gerade was den Punkt Extras und Zustand angeht bin ich mir überhaupt nicht sicher wie man das jetzt genau macht. Im Anschluss muss ich auch noch ein DTD dazu machen, aber damit fange ich jetzt erst an... sieht auch irgendwie schwieriger aus. Auf jeden Fall würde ich mich über eure Hilfe freuen bzw. Hilfe ist dringend erwünscht!!

MfG,
Mynona
 
Habe jetzt mal das DTD gemacht. Da sind wahrscheinlich so einige Fehler drin schon allein deswegen weil ich das mit den Kind-Elementen nicht so richtig verstehe und deswegen ein bisschen verloren bin wo ein * oder ein + oder so hin muss. Hier aber schonmal was ich fabriziert habe. Für Korrekturen bin ich sehr dankbar!!
Code:
<!DOCTYPE bestandsliste [
<!ELEMENT bestandsliste (wagen)>
<!ELEMENT wagen (fahrzeugnummer*)>
<!ATTLIST fahrzeugnummer fzid CDATA #REQUIRED>
<!ELEMENT fahrzeugnummer (baujahr, farbe, marke, preis, fahrzeugmodell, extras, zustand)>
<!ELEMENT baujahr (#PCDATA)>
<!ELEMENT farbe (#PCDATA)>
<!ELEMENT marke (#PCDATA)>
<!ELEMENT preis (#PCDATA)>
<!ATTLIST preis cur CDATA #REQUIRED>
<!ELEMENT fahrzeugmodell (#PCDATA)>
<!ELEMENT extras (extra+)>
<!ELEMENT extra (#PCDATA)>
<!ELEMENT zustand (neuwagen|gebrauchwagen)>
]>
 
Hallo,
hab mal einen ganz kurzen Blick drauf geworfen (falls die Frage überhaupt noch aktuell ist?) Dabei ist mir eine Kleinigkeite aufgefallen:

In der XML- Datei hast Du <extra1> und <extra2> verwendet, die gibt es aber in der DTD nicht, sondern nur <extra>. D.h. in der XML-Datei sollte es dann auch eine beliebige Anzahl des Tags <extra> geben ohne Nummerierung (sonst müsstest Du dich auf die Zahl der Extras vorher festlegen).
 
Zurück