A
Arndt Jonasson
Let's say we have a schema (maybe expressed in XML Schema, but not
necessarily so), that allows this instance document:
<top>
<txt>This is text</txt>
<books>
<book>Tarzan</book>
<book>Harry Potter</book>
</books>
</top>
The text /top/txt may be empty, and the element /top/books may have no
children, so this instance document is also allowed:
<top>
<txt/>
<books/>
</top>
I now want to write an XPath expression that selects all nodes that do
not have children in the schema. It would always select /top/txt and
it would never select /top/books, even in the second example above.
With XPath 1.0, this is not possible, since schema information is not
used there. But can it be done in XPath 2.0? I find the standard
document a bit forbidding, although I'm fairly well acquainted with
the 1.0 document.
We would like to add such capability to the XPath 1.0 implementation
in our application (which does have access to the schema), and if
XPath 2.0 offers a way to express it, it seems best not to reinvent
anything, hence this question.
necessarily so), that allows this instance document:
<top>
<txt>This is text</txt>
<books>
<book>Tarzan</book>
<book>Harry Potter</book>
</books>
</top>
The text /top/txt may be empty, and the element /top/books may have no
children, so this instance document is also allowed:
<top>
<txt/>
<books/>
</top>
I now want to write an XPath expression that selects all nodes that do
not have children in the schema. It would always select /top/txt and
it would never select /top/books, even in the second example above.
With XPath 1.0, this is not possible, since schema information is not
used there. But can it be done in XPath 2.0? I find the standard
document a bit forbidding, although I'm fairly well acquainted with
the 1.0 document.
We would like to add such capability to the XPath 1.0 implementation
in our application (which does have access to the schema), and if
XPath 2.0 offers a way to express it, it seems best not to reinvent
anything, hence this question.