Das XML Schema tracklist.xsd
baut auf der DTD aus Aufgabe 1 auf (es wurde mit einem Tool konvertiert und dann modifiziert) und erfüllt die in der Aufgabenstellung der Aufgabe 5 beschriebenen Anforderungen. Am interessantesten an diesem XML Schema sind vielleicht die folgenden drei Aspekte:
tracklist
Element definieren all die Dinge, die in der DTD als ID/IDREF gelöst waren. Dazu benutzen die Identity Contraints einen eigenen Simple Type (idType
, definiert als xs:NCName
). In diesem Fall erlaubt das XML Schema also sogar mehr als die DTD, weil die Keys und Key-Referenzen nun Element-spezifisch sind. Dies ist aber aus Anwendungssicht eine sinnvolle Erweiterung des Schemas.duration
und gYear
sind dort eingesetzt worden, wo entsprechende Einschränkungen sinnvoll sind. Auf diese Weise wird schon im Schema sichergestellt, dass keine ungültigen Werte verwendet werden dürfen.link
Element (es wird im review
Element verwendet) soll es erlauben, sowohl Links auf Alben als auch auf Tracks zu machen. Aus diesem Grunde kann der Key Reference Constraint nicht die einfachen Keys für Alben oder Tracks benutzen (denn das refer
Attribut eines keyref
Constraints darf nur einen Key angeben), sondern man muss einen neuen Key definieren (albumTrackKey
), der mit seinem selector
sowohl album
als auch track
selektiert (mit Hilfe des XPaths album | track
). Dies funktioniert allerdings nur, weil für beide Elemente das field
mit @id
selektiert werden kann, würden die beiden Elemente unterschiedliche Fields verwenden, gäbe es keine Möglichkeit, einen Key für Alben und Tracks zu definieren und zu verwenden.please send comments to xml-vl@dret.net last modification on Monday, 15-May-2006 18:31:49 CEST |