DTD erstellen HILFE!

  • Hiii alle zusammen,

    ich habe große Probleme die Aufgabe zu lösen. Ich bekomme keine DTD hin. Es wäre sowas von lieb, wenn mir jemand weiterhelfen könnte. Ich habe aus gesundheitlichen Gründen die Vorlesung zu dem Thema verpasst und schaffe es alleine nicht :(

    Aufgabe 1: Modellieren Sie mit XML folgende Struktur und erstellen Sie die DTD:

    Ein Hotel verfügt über verschiedene Zimmerarten: es gibt mehrere Einzelzimmer, Doppelzimmer, Suiten sowie ein Bettenlager und ein Penthouse. Jedes Zimmer verfügt über eine Zimmernummer, eine Preisangabe (in €) und eine Information darüber, ob das Zimmer frei oder belegt ist. Das Bettenlager ist nur dann belegt, wenn dort alle Betten belegt sind.

    Lösungsvorschlag 1:

    <?xml version=“1.0” standalone=“yes”?>

    <!DOCTYPE hotel [

    <!ELEMENT hotel (Einzelzimmer, Doppelzimmer, Suit, Bettenlager, Penthouse)>

    <!ELEMENT zimmer (#PCDATA)
    <!ATTLIST zimmer Art CDATA #REQUIRED>
    <!ATTLIST zimmer Preis CDATA #REQUIRED>
    <!ATTLIST zimmer Information (frei|belegt) #REQUIRED>

    <!ATTLIST zimmer Art (Bettenlager) #REQUIRED>
    <!ATTLIST zimmer Information (frei|belegt) #REQUIRED>

    <!ELEMENT zimmer (#PCDATA)>
    <!ATTLIST zimmer Art CDATA #REQUIRED>
    <!ATTLIST zimmer Nummer CDATA #REQUIRED>
    <!ATTLIST zimmer Preis CDATA #REQUIRED>
    <!ATTLIST zimmer Information (frei|belegt) #REQUIRED>

    ]>

    <Hotel>
    <Penthouse>
    <Nummer> 5 </Nummer>
    <Preis> 500 </Preis>
    <Information> frei </Information>
    </Penthaus>
    </Hotel>

    Lösungsvorschlag 2:

    <!DOCTYPE hotel [

    <!ELEMENT Hotel (Zimmerart, Zimmernummer, Währung, Information)

    <!ELEMENT Zimmerart (#PCDATA) >
    <!ELEMENT Zimmernummer (#PCDATA) >
    <!ELEMENT Preis (#PCDATA) >
    <!ELEMENT Information (#PCDATA)>

    <!ELEMENT Zimmerart (Einzelzimmer, Doppelzimmer, Suit, Bettenlager, Penthouse)>
    <!ELEMENT Information (belegt|frei)

    <!ELEMENT Bettenlager (Preis, Währung, Information)>
    <!ELEMENT Preis (#PCDATA) >
    <!ELEMENT Währung (#PCDATA) >
    <!ELEMENT Information (#PCDATA) >
    ] >

    <Hotel>
    <Name>Hotel California</Name>
    <Betreiber>Tina Colada</Betreiber>
    <URL>http://www.hotel-california.com</URL>

    <Zimmer>

    <Zimmerart> Penthouse </Zimmerart>
    <Preis> 666 </Preis>
    <Währung>euro;</Währung>
    <Information>belegt</Information>
    </Zimmerart>

    <Zimmerart> Bettenlager </Zimmerart>
    <Preis> 10 </Preis>
    <Währung>euro;</Währung>
    <Information>belegt</Information>
    </Zimmer>

    </Zimmer>
    </Hotel>