[XSD-Definition] Eindeutige Daten in NodeList (Bereich)

Milo

Bekanntes Mitglied
Hallo,

ich habe ein kleines Problem bei der Definition einer XSD. Ich möchte innerhalb einer NodeList eindeutige Kind-Elemente haben. Also etwas nach folgendem Schema:

[XML]<reise>
<orte gid="1">
<ort pid="berlin"/>
<ort pid="hamburg"/>
<ort pid="bern"/>
</orte>

<orte gid="2">
<ort pid="wien"/>
<ort pid="hamburg"/>
<ort pid="berlin"/>
</orte>

<orte gid="3">
<ort pid="wien"/>
<ort pid="berlin"/>
<ort pid="berlin"/> <!-- Das soll nicht passieren -->
</orte>
</reise>[/XML]

Eine eindeutige gid für die Orte habe ich hinbekommen:

[XML]<xsd:key name="keyGId">
<xsd:selector xpath=".//orte"/>
<xsd:field xpath="@gid"/>
</xsd:key>[/XML]

um keine doppelten Einträge in orte zu bekommen, bin ich auf unique gestoßen. Versucht habe ich eine Kombination aus der pid und der gid zu bilden. Mein Versuch scheint aber nicht korrekt zu sein:

[XML]<xsd:unique name="uniquePid">
<xsd:selector xpath=".//orte"/>
<xsd:field xpath="./@gid"/>
<xsd:field xpath="./ort/@pid"/>
</xsd:unique>[/XML]

Wo liegt mein Fehler?

Besten Dank
Micha
 

Milo

Bekanntes Mitglied
Hallo,

mein Problem scheint doch schwerer zu sein, also ich erwartet habe - sofern meine Problembeschreibung verständlich war. Das schließe ich mal aus den bisherigen Antworten. Auch im SELF-Raum konnte mir keiner weiterhelfen.

Ich habe das Beispiel von Torsten Horn mal ausprobiert und auch hier validiert der XML-Hammer die XML-Datei, wenn ich den adresse-Block mit der ID 43 einfach noch einmal drunter kopiere. Könnte es sein, dass es am Validator (XML-Hammer) liegt? Gibt es hier Alternativen (kostenfrei), die Ihr empfehlen könnt?

Über etwas mehr Resonanz würde ich mich freuen ;-)

Schöne Grüße
Micha
 
N

nillehammer

Gast
Der Schlüssel zum Erfolg ist das xs:unique. Das hast du ja auch selbst schon rausgefunden. Die Schwierigkeit ist die Definition. Dazu folgende Hinweise:
- Der "Raum", in dem Eindeutigkeit herrschen soll, ist das orte-Element. D.h. das xs:unique muss bei der Definition des orte-Elements gemacht werden.
- Die Menge, in der etwas eindeutig sein soll, ist die Menge aller ort-Elemente. D.h. als xs:selector brauchst Du einen, der alle ort-Elemente selektiert
- Das, was eindeutig sein soll, ist das pid-Attribut/Feld. D.h. das xs:field muss entsprechend aussehen.
Nachschlagen kann man das notfalls auch nochmal hier: XML Schema ? Wikipedia
 
Zuletzt bearbeitet von einem Moderator:

Milo

Bekanntes Mitglied
Hi Nillehammer,

mensch, vielen Dank. Mein Plan, den Schlüssel über zwei Attribute zu legen, war ja gar nicht korrekt. Mit der von Dir vorgeschlagenen Lösung funktioniert es sehr gut:

[XML]<xsd:element name="orte" type="orteTyp" minOccurs="1" maxOccurs="unbounded">
<!-- Eindeutige Namen -->
<xsd:unique name="uniqueIDs">
<xsd:selector xpath="./ort" />
<xsd:field xpath="./@pid"/>
</xsd:unique>
</xsd:element>[/XML]

Sowas in der Art habe ich beim Rumprobieren auch schon mal gehabt aber immer in Kombination mit der gid, die ich mir nun sogar sparen kann.

Besten Dank!
Micha
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Eindeutige Kennnummer Schema XML & JSON 3
B XML-Daten mit SAX Parser verarbeiten in Java XML & JSON 4
A GUI um auf XSD Basis (valide) XML Daten zu erzeugen XML & JSON 3
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
K Login Daten mit JSoup übermitteln XML & JSON 0
M JAXB @XMLID und @XMLIDREF, wie Daten hinzufügen XML & JSON 2
G Jsoup Daten lesen XML & JSON 0
P XML Daten sortieren - Verständnisfrage XML & JSON 4
F Parsen von Daten aus einer Homepage XML & JSON 6
MiMa Verfahrensweise Daten aus dem Internet abfragen XML & JSON 44
G XML-Daten im Programm verwenden XML & JSON 5
K Visualisierung von Daten XML & JSON 13
T Daten in Xml speichern XML & JSON 4
T Daten aus Programm in XML Datei speichern XML & JSON 2
X Am Server ankommende XML Daten verarbeiten XML & JSON 11
L XML Daten auslesen und in Tabelle (Array) speichern XML & JSON 1
Mike90 Daten aus DB in ExcelTabelle lesen + bearbeiten + formatieren XML & JSON 2
S Mit welcher Technologie Daten abspeichern? XML & JSON 6
J Daten werden in ArrayList geschrieben, AL nicht in .xml ? XML & JSON 5
O XML-Daten fehlen in der Darstellung XML & JSON 2
I Mit JDOM Daten aus XML in ein Array abfüllen XML & JSON 4
R Daten aus xml lesen und in Strings speichern XML & JSON 4
G XML als "Datenbank" für kleine Daten XML & JSON 2
T [JDOM] XML File, neue Daten hinzufügen XML & JSON 5

Ähnliche Java Themen

Neue Themen


Oben