2016-03-28 4 views
0

Warum unterscheiden sich die folgenden Schemas? Ich bin nur eine einfache keyref zu machen versucht, und ich kann mehr bei Bedarf den Kontext liefern ...XSD Keyref-Feld funktioniert nur mit ".", Anstatt Elementname?

<!-- This works --> 
<xsd:keyref name="followsKey" refer="userKey"> 
    <xsd:selector xpath="user/follows" /> 
    <xsd:field xpath="." /> 
</xsd:keyref> 

<!-- This doesn't --> 
<xsd:keyref name="followsKey" refer="userKey"> 
    <xsd:selector xpath="user" /> 
    <xsd:field xpath="@follows" /> 
</xsd:keyref> 

Antwort

2

Sie sind verschieden, daß man bezieht sich auf ein Element mit dem Namen „folgt“, das andere auf ein Attribut bezieht sich benannt "folgt".

Wenn die zweite <xsd:field xpath="follows"/> geschrieben wurden, wäre es von der ersten dadurch unterscheiden, dass sie nur funktionieren würde, wenn ein user Element ein einzelnes follows Element Kind hat, während der erste ein user können mehrere follows Kinder haben, von denen jeder fungiert als Schlüsselref.

+0

Ich habe auch versucht, '' follows'' ohne das at-Symbol, aber leider gibt es mehrere '' follows'' Kinder. Danke für die Erklärung! – Adam

Verwandte Themen