|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] My XPath mistakenly referenced an element that doesn't
Hi Folks, Here is my (very simple) XML document: <Document>Hello, world</Document> My XSLT program contains a xsl:value-of with a simple XPath expression: <xsl:template match="/"> <xsl:value-of select="Document/foo eq 'abc'"/> </xsl:template> In the XPath expression I mistakenly referenced an element -- foo -- that does not exist. I ran the XSLT program on the XML document. No error was generated. My colleague argues that such behavior is bad language design: --------------------------------------------------- Languages which define such mistakes to just return "empty" node lists or false, or such are not helping anybody. They just turn author mistakes into silent, hard-to-detect behaviors. In my view this is a major mistake in the XPath language. All path expressions should be strongly, statically type-correct, so Document/foo has to be a possible path. But if element foo is optional, then any given instance may not have element foo and so a path like Document/foo can be type correct, but meaningless for a particular data document. One can explicitly test, e.g., if ( exists(Document/foo) ) then (Document/foo eq 'abc') else.... If you just use the expression without this test, and node foo doesn't exist, then it should cause a failure. --------------------------------------------------- Do you agree with my colleague's assessment? Is this behavior in XPath an indication of bad language design? /Roger
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








