[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: My XPath mistakenly referenced an element that do

Subject: Re: My XPath mistakenly referenced an element that doesn't exist and I got no error message ... is this bad language design?
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 14 Oct 2021 13:59:18 -0000
Re:  My XPath mistakenly referenced an element that  do
In addition to that, I think Saxon EE with schema-aware XSLT 2/3 and
xs:import-schema would warn you about the use of a path like
"Document/foo" if there is no match in the schema for a possible
element. I don't think it is an obligation of a schema-aware XSLT
processor but I think it is a feature of Saxon EE.

Am 14.10.2021 um 15:55 schrieb Wendell Piez wapiez@xxxxxxxxxxxxxxx:
> Roger,
>
> I think your colleague is right, but not very right.
>
> You forget that a missing 'foo' may be an error in one document and a
> feature in another document in the very same system. Indeed it is part
> of the semantics that constitute the reason why we save
> documents,B that we do not always have complete prior knowledge of
> every foo. (Otherwise what are we computing, etc.)
>
> If your schema requires foo, then use a schema-aware XPath engine, and
> your colleague has the feature he wants. That would be an appropriate
> way to layer in the requirement withoutB him having to test every case.
>
> Meanwhile, good luck making your case for why an essential feature is
> not always a problem.
>
> Cheers, Wendell
>
>
>
> On Thu, Oct 14, 2021 at 9:46 AM Roger L Costello costello@xxxxxxxxx
> <mailto:costello@xxxxxxxxx> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx
> <mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>> wrote:
>
>     Hi Folks,
>
>     Here is my (very simple) XML document:
>
>     B  B  B  B  <Document>Hello, world</Document>
>
>     My XSLT program contains a xsl:value-of with a simple XPath
>     expression:
>
>     B  B  B  B  <xsl:template match="/">
>     B  B  B  B  B  B  <xsl:value-of select="Document/foo eq 'abc'"/>
>     B  B  B  B  </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.B  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
>
>
>
>
> --
> ...Wendell Piez... ...wendell -at- nist -dot- gov...
> ...wendellpiez.com... ...pellucidliterature.org... ...pausepress.org...
> ...github.com/wendellpiez. <http://github.com/wendellpiez.>..
> ...gitlab.coko.foundation/wendell...
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/582271>
> (by email <>)

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.