[XSD/XML] Probleem met PrimaryKey...

Pagina: 1
Acties:

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
We zijn hier bezig met een voetbalcompetitie in XML op te zetten gebaseerd op een XSD schema. Alles lukt wonderwel, totdat we de primary keys toevoegen...

Relevant XSD stukje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
    <xs:complexType name="doelpuntenType">
        <xs:sequence maxOccurs="unbounded">
            <xs:element name="doelpunt" type="doelpunt">
                <xs:key name="doelpunt_PrimaryKey_0">
                    <xs:selector xpath="."/>
                    <xs:field xpath="wedstrijdid"/>
                    <xs:field xpath="persoonid"/>
                    <xs:field xpath="tijdstip"/>
                </xs:key>
            </xs:element>
        </xs:sequence>
    </xs:complexType>


Relevant XML stukje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
    <doelpunten>
        <!-- Tabel doelpunt -->
        <doelpunt>
            <wedstrijdid>1</wedstrijdid>
            <persoonid>1</persoonid>
            <tijdstip>2004-12-04T12:31:51</tijdstip>
        </doelpunt>
        <doelpunt>
            <wedstrijdid>1</wedstrijdid>
            <persoonid>7</persoonid>
            <tijdstip>2004-12-04T12:32:33</tijdstip>
        </doelpunt>
    </doelpunten>


Als we nu in XMLSpy de XML valideren, flitst deze error op:
"This file is not valid: The field 'persoonid' of Identity Constraint Definition 'doelpunt_PrimaryKey_0' matches 2 times within the scope of element 'doelpunt'."

Bij de personen in de file zitten geen dubbels, lijkt me dat van de PK bij de doelpunten ook geen dubbels zitten... Iemand een suggestie?

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
Ok ter referentie dan maar voor mensen die de search gebruiken: probleem is opgelost :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
                <xs:key name="doelpunt_PrimaryKey_0">
                    <xs:selector xpath="."/>
                    <xs:field xpath="wedstrijdid"/>
                </xs:key>
                <xs:key name="doelpunt_PrimaryKey_1">
                    <xs:selector xpath="."/>
                    <xs:field xpath="persoonid"/>
                </xs:key>
                <xs:key name="doelpunt_PrimaryKey_2">
                    <xs:selector xpath="."/>
                    <xs:field xpath="tijdstip"/>
                </xs:key>


Blijkbaar moet je de key dus splitsen...

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

En dat in 8 minuten ;)

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
Na er eerst een uur op te zoeken wel :) Ten einde raad een post op T.net, en dan vind je het natuurlijk :)