Jan: xml-schema: key und keyref

Beitrag lesen

Hallo allerseits,

ich hab ein bisschen Schwierigkeiten mit XPath und der Verwendung von key und keyref bei der XML Schema Definition. Vielleicht kann mir jemand helfen, der sich damit auskennt. Mein Problem sieht grob wie folgt aus:

  
<root>  
  <a name="s">  
    ...  
    <b name="v">  
    <b name="w">  
    <b name="x">  
    ...  
  </a>  
  <a name="t">  
    ...  
    <b name="x">  
    <b name="y">  
    <b name="z">  
    ...  
  </a>  
  ...  
  ...  
  <c context="t">  
    <d id="z">  
  </c>  
</root>  

Ich habe eine Reihe von Elementen 'b' deren 'name'-Attribute innerhalb des übergeordneten Elements 'a' unterschiedlich (unique) sein müssen. Zwei 'b' Elemente dürfen jedoch denselben Namen haben, wenn der Wert der 'name'-Attribute ihrer beiden Parent-Elemente unterschiedlich sind.

Ich muss also irgendwie eine key definieren, der zwei xsd:field Felder mit dem Namen von 'a' und dem Namen von 'b' hat und daraus Tupel der Form (s,v) (s,w) (s,x) (t,x) (t,y) (t,z) bildet und auf ihre Eindeutigkeit überprüft. Später tauchen, wieder auf unterschiedlichen Ebenen, Identifier (id="z") in einem Kontext (context="t") auf, für die ich mittels keyref überprüfen muss, ob (t,z) zuvor definiert war.

Ich hoffe es ist halbwegs verständlich geworden, was ich vorhabe. Meine Frage ist, in welchem Element definiert man am Besten key und keyref und wie müssen die XPath Pfade aussehen, damit die Attribute aus unterschiedlichen Ebenen derart vertupelt werden. Ich hab schon ewig rumprobiert und es nicht hinbekommen.

Danke für jede Antwort

Jan