Permalänk
Avstängd

[XML] XSD, keyref

Någon som jobbat eller jobbar lite med XSD mallar?

DTD mallar används för att sätta upp regler för strukturen på ett XML dokument.
XSD mallar är ett mer kraftfullt sätt och sätta upp regler för strukturen på XML dokument.

Min fråga:
Har precis gjort en XSD mall för en typ av XML dokument som jag använder.

Där är två regler satta att attributet ID och PREFIX måste vara unika för ett TABLE element

<xs:element name="DOCUMENT"> [...] <xs:unique name="TABLE_ID"> <xs:selector xpath="TABLE" /> <xs:field xpath="@ID" /> </xs:unique> <xs:unique name="TABLE_PREFIX"> <xs:selector xpath="TABLE" /> <xs:field xpath="@PREFIX" /> </xs:unique> <xs:keyref name="R_TABLE_PARENT_PREFIX" refer="TABLE_PREFIX"> <xs:selector xpath="TABLE" /> <xs:field xpath="@PARENT" /> </xs:keyref> </xs:element>

I denna kod finns även en referens (xs:keyref) till PREFIX attributet. Det innebär att värdet i PARENT attributet måste ha ett värde som tidigare finns som PREFIX i annat TABLE element.
Vad jag skulle vilja göra är att sätta upp en regel som säger att attributet får ha värde från antingen ID eller PREFIX attribut i annat TABLE element.

Exempel:

<TABLE ID="id1" /> <TABLE PREFIX="id2" PARENT="id1" /> <TABLE PREFIX="id3" PARENT="id2" /> <TABLE ID="id4" PARENT="id9999" /> <-- FEL

Visa signatur

Programmerare med C++ som huvudspråk.