von ER Modell zu XML übertragen

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

von ER Modell zu XML übertragen
Hey Leute,

ich habe eine Frage über XML ( es steht im Braindumps von WS 13-14)

kann jemand bitte die Lösung geben und mir auch dazu erklären, wie es gemacht wird?

Danke im Vorraus ^^

Attachment:
Unbenannt.png: https://fsi.cs.fau.de/unb-attachments/post_138106/Unbenannt.png


Also nur einfach Lösung “zeigen” wird es eher weniger geben.
Konkrete Fragen beantworten gerne, aber so eher nicht :wink:


Ich versuche es mal, finde aber das angegebene Gerüst nicht so passend, da wir in der Übung Schlüsselattribute eigentlich immer als Attribute des Typs ID dargestellt haben und nicht als Element.
ich hätte ohne vorgegebenes Gerüst für jedes Entity ein Element erstellt, mit Nr als Attribut und Name als Kindelement.

<!DOCTYPE Katalog [

]>

Falls jemand weiß wie es in das Gerüst reinpasst, würde ich das gerne wissen. :smiley:


Passender finde ich:

<!DOCTYPE Katalog [
  <!ELEMENT Katalog (B*, C*)>
  <!ELEMENT B (Nr, Name)>
  <!ELEMENT C (Nr, Name*)>
  <!ELEMENT Nr (#CDATA)>
  <!ELEMENT Name (#CDATA)>
]>
  • Ein zu viel
  • Der Beziehungstyp ist nicht abgebildet - Geht soweit ich weiß auch nur mit IDREF und IDREFS
  • Der Schlüsselkarakter von Nr ist nicht abgebildet

Es kann sein, dass die Aufgabe aus dem Braindump schlicht falsch gestellt ist. Es könnte in der Klausur z.B. ein 1:1 Beziehungstyp anstelle eines 1:N Beziehungstypen gewesen sein, den man mit en wieder gut darstellen kann.

1 Like

Man kann die Beziehung noch so darstellen:

<!DOCTYPE Katalog [
  <!ELEMENT Katalog (C*)>
  <!ELEMENT C (B?, Nr, Name*)>
  <!ELEMENT B (Nr, Name)>
  <!ELEMENT Nr (#CDATA)>
  <!ELEMENT Name (#CDATA)>
]>

Das enthaelt sowohl die 1:N Beziehung als auch die Totale Teilnahme bei der 1. Dafuer wird aber Redundanz eingefuehrt.
Dennoch erfuellt das (meiner Meinung nach zumindest) die Aufgabenstellung am besten.


<!DOCTYPE Katalog [
  <!ELEMENT B (C+, Nr, Name)>
  <!ELEMENT C (Nr, Name*)>
  <!ELEMENT Nr (#PCDATA)>
  <!ELEMENT Name (#PCDATA)>
]>
  • Beziehung abgedeckt
  • Totale Teilnahme abgedeckt
  • Theoretisch keine Redundanz, da jedem C maximal ein B zugeordnet ist. D.h. das selbe C taucht nicht in mehreren Bs auf (wird aber nicht von XML sichergestellt).
  • Kein Katalog-Element. Das existiert im ER-Modell nicht. Dadurch, dass es hinter DOCTYPE steht, ist es bereits das Root-Element.

Was man sich noch überlegen könnte: Ein ? in B bei Name. Das ER-Modell schreibt nicht vor, dass es zu jedem Attribut auch einen Attributwert geben muss.


Nach http://validator.w3.org/check muss das Wurzelelement spezifiziert werden oder das Dokument ist nicht valide.
Abhilfe kann man ja einfach schaffen, indem man B in Katalog umbenennt.