RE: [xsl] Distinguish between empty string and no children, in XPath 2?

Subject: RE: [xsl] Distinguish between empty string and no children, in XPath 2?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 5 Sep 2008 14:14:01 +0100
> I now want to write an XPath expression that selects all 
> nodes that do not have child elements in the schema. It would 
> always select /top/txt and it would never select /top/books, 
> even in the second example above.
> 

There's no metadata introspection in XPath 2.0, so you can't do everything
you would want (for example, you can't select all elements whose type is
declared in the schema to have mixed content).

But you can distinguish these two cases, I think, in that top/txt satisfies
element(*, xs:simpleType) while top/books doesn't. However, "nodes that do
not have child elements in the schema" would also cover a complex type with
variety "empty", and there's no direct way of selecting all elements of such
types.

Michael Kay
http://www.saxonica.com/

Current Thread