XPath im assert-Element von XML-Schema 1.1
Ron
- xml
0 Ron
Hallo,
ich habe hier ein Problem mit einem XPath-Ausdruck in einem assert-Element, das je bei XML-Schema 1.1 eingeführt wurde. Probleme bereitet mir ein Pfad, der auf ein Attribut in einem parent-Element zeigt und die Abfrage eines Attributwertes. Hier der Abschnitt aus dem XSD-Dokument:
<xs:complexType name="magtype">
<xs:attribute name="slot" use="required">
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:minInclusive value="1"/>
<xs:assert test="xs:integer(@slot) le xs:integer(../../@nbr)"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
Und hier das Element das auf diesen Typ verweist:
<xs:element name="posAndDir">
<xs:complexType>
<xs:sequence>
<xs:element name="mag" type="magtype" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Ich verwende den Oxygen-XML-Editor, der mir folgendes beim der Auswertung von test sagt:
SystemID: /media/RALLY2/projekt/ma_confs.xml
Programmname: SaxonSA
Feherlevel: error
Beschreibung: Value "1" contravenes the assert facet "." of the type of attribute slot
Anfang: 29:52
Das Attribut im zweiten Teil kann er leider auch nicht finden ...
Woran liegt das? Was mache ich das falsch, abgesehen, dass es sich bei XML-Schema 1.1 um einen RC handelt?
Die Antwort habe ich schon selbst herausgefunden ...
Ein XPath-Ausdruck in den test-Attributen kann nur auf die Achse descendant-or-self angewendet werden, warum auch immer das so festgelegt wurde.