W3C home > Mailing lists > Public > xmlschema-dev@w3.org > April 2009

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

From: Costello, Roger L. <costello@mitre.org>
Date: Wed, 29 Apr 2009 09:35:35 -0400
To: "'xmlschema-dev@w3.org'" <xmlschema-dev@w3.org>
Message-ID: <9E51F88D5247B648908850C35A3BBB5003F245AA95@IMCMBX3.MITRE.ORG>

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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:15:11 GMT