Key und KeyRef Problem

  • Hallo,


    ich hab für die Übung beim Schema zwei Keys erstellt, wie gefordert:

    Code
    1. <xsd:key name="productKeys"> <xsd:selector xpath=".//products/product"/>
    2. <xsd:field xpath="@id"/>
    3. </xsd:key>
    4. <xsd:key name="userKeys">
    5. <xsd:selector xpath=".//users/user"/>
    6. <xsd:field xpath="@username"/>
    7. </xsd:key>


    Die Keys referenziere ich so:

    Code
    1. <xsd:keyref name="productReference" refer="productKeys"> <xsd:selector xpath=".//bids/product"/>
    2. <xsd:field xpath="@id"/>
    3. </xsd:keyref>
    4. <xsd:keyref name="userReference" refer="userKeys">
    5. <xsd:selector xpath=".//bids/product/bid"/>
    6. <xsd:field xpath="@user"/>
    7. </xsd:keyref>


    Lustigerweise, die user kann ich referenzieren, aber sobald ich die products referenzieren will, wirft mir xmllint eine fehlermeldung mit "Schemas validity error: Element "product": No match found for key-sequence ['1'] of keyref 'productReference'.


    Google hat leider nix ausgespruckt was ich verstanden hätte, weiß einer von euch da weiter?


    lg elundril

    Mit Leib und Seele Programmierer mit Delphi

  • Mit Leib und Seele Programmierer mit Delphi

  • schau mal hier:
    http://docstore.mik.ua/orelly/xml/schema/ch09_02.htm


    "The XPath expressions allowed in xs:selector must exclusively go deeper into the hierarchy of the XML element nodes, do not allow any tests in the XPath steps, and must match a set of elements. In addition, the XPath expressions allowed in xs:field can also select attributes."

    näheres dazu z.b. http://www.w3schools.com/xsl/xpath_syntax.asp


    Ein Tipp ist die Notepad++ Plugin "XML Tools", da kann man XPaths manuell auswerten