Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


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

From: "Andrew Welch" <andrew.j.welch@--------->
To:
Date: 9/5/2008 12:58:00 PM
>> 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 child elements 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?

Ken:
> Unless, perhaps, you had the flexibility in your schema to define a base
> type with your own name that is a very generic type that allows only element
> children of any name, and then specialize all of your element-content
> element types on that type restricting each one to the child elements for
> that particular type.  Then in your XPath you can test elements as being an
> element of your named generic type and it would be checking that the element
> is one that has element content.

Instead of applying the xpath to the instance document, don't you just
want to apply it to the schema - select all simpleTypes ?

I don't know if you can tell from the PSVI whether a given type is a
simpleType or complexType, but that would do it... maybe "castable as
xs:anyAtomicType" ?

Just thinking out loud...



-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/


transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent