XSD & XML (n:m) Beziehung

viv1d

Grünschnabel
Ich wollte gerne eine relationale n:m Beziehung (mit 3. Tabelle "Verknpüfung") erstellen, bei dem Beispiel hier also n Studenten hören m Vorlesungen und anderesrum. Wie kann man in XML mit mehreren Fremdschlüsseln umgehen, sind dort überhaupt mehrere keyref Ausdrücke möglich ?

Ich poste mal noch das Schema (was angeblich valid ist) und ein XML Sample
--------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Student" type="Student">
<xs:key name="MatrikelKey">
<xs:selector xpath="Student" />
<xs:field xpath="Matrikelnr" />
</xs:key>
</xs:element>
<xs:complexType name="Student">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="Vorname" type="xs:string" />
<xs:element name="Bemerkung" type="xs:string" />
</xs:sequence>
<xs:attribute ref="Matrikelnr" use="required" />
</xs:complexType>
<xs:attribute name="Matrikelnr" type="xs:int" />
<xs:element name="Vorlesung" type="Vorlesung">
<xs:key name="VorlesungKey">
<xs:selector xpath="Vorlesung" />
<xs:field xpath="@VorlesungsNr" />
</xs:key>
</xs:element>
<xs:complexType name="Vorlesung">
<xs:sequence>
<xs:element name="Titel" type="xs:string" />
</xs:sequence>
<xs:attribute ref="VorlesungsNr" />
</xs:complexType>
<xs:attribute name="VorlesungsNr" type="xs:int" />
<xs:element name="StudHatVorl" type="StudHatVorl">
<xs:key name="StudHatVorlKey">
<xs:selector xpath="Student" />
<xs:field xpath="@Matrikelnr" />
<xs:field xpath="@VorlesungsNr" />
</xs:key>
<xs:keyref name="VorlesungRef" refer="VorlesungKey">
<xs:selector xpath="StudHatVorl" />
<xs:field xpath="@VorlesungsNr" />
</xs:keyref>
<xs:keyref name="StudentRef" refer="MatrikelKey">
<xs:selector xpath="StudHatVorl" />
<xs:field xpath="@Matrikelnr" />
</xs:keyref>
</xs:element>
<xs:complexType name="StudHatVorl">
<xs:sequence>
<xs:element ref="Student" maxOccurs="unbounded" />
<xs:element ref="Vorlesung" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:schema>
---------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<StudHatVorl xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:///C:/Dokumente%20und%20Einstellungen/.hakin9/Desktop/=%20BA%20-%20THESIS%20=/Muster_Diagramme&amp;Code/n_m/XSD/n-m_Stud-Vorl.xsd">
<Student Matrikelnr="5857">
<Name>string</Name>
<Vorname>string</Vorname>
<Bemerkung>string</Bemerkung>
</Student>
<Student Matrikelnr="-2420">
<Name>string</Name>
<Vorname>string</Vorname>
<Bemerkung>string</Bemerkung>
</Student>
<Student Matrikelnr="2591">
<Name>string</Name>
<Vorname>string</Vorname>
<Bemerkung>string</Bemerkung>
</Student>
<Student Matrikelnr="4588">
<Name>string</Name>
<Vorname>string</Vorname>
<Bemerkung>string</Bemerkung>
</Student>
<Student Matrikelnr="-4722">
<Name>string</Name>
<Vorname>string</Vorname>
<Bemerkung>string</Bemerkung>
</Student>
<Vorlesung VorlesungsNr="1487">
<Titel>string</Titel>
</Vorlesung>
<Vorlesung VorlesungsNr="4020">
<Titel>string</Titel>
</Vorlesung>
</StudHatVorl>
-----------------------------------------------------------------------------------------------
Würde mich auch über andere Lösungen für die n:m Beziehung freuen,
vielleicht weiß ja einer woran es liegt, bei Bedarf kann ich auch noch einige Error Messages posten


lieben DANK schonmal

-viv1d-
 

Neue Beiträge

Zurück