[XML Schema 1.1] The XPath in <assert> cannot "look up" the XML tree, right?

Hi Folks,

I wish to confirm that I correctly understand the specification. I believe it says the XPath in an <assert> cannot "look up" the XML tree. That is, it can't reference a parent, grandparent, etc. Is that correct?

Consider this instance document:

<Document classification="secret">
    <Para classification="unclassified">
          ...
    </Para>
    <Para classification="secret">
          ...
    </Para>
    <Para classification="unclassified">
          ...
    </Para>
    <Para classification="secret">
          ...
    </Para>
</Document>


Here I place an <assert> on the Para element which attempts to reference the (parent) Document element:

<xs:element name="Para">
    <xs:complexType>
        <xs:simpleContent>
            <xs:extension base="paraType">
                <xs:attribute name="classification" type="classificationLevels" use="required"/>
                <xs:assert test="if (@classification eq 'top-secret') then ../Document/@classification eq 'top-secret') ... />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
</xs:element>

This is not allowed, correct?

/Roger

Received on Wednesday, 29 April 2009 13:36:12 UTC