xsl-list
[Top] [All Lists]

Re: [xsl] Avoiding boneheaded mistakes in XSLT?

2010-12-29 11:38:20
On Wed, 29 Dec 2010 10:31:21 -0500
"G. Ken Holman" <gkholman(_at_)CraneSoftwrights(_dot_)com> wrote:


Again you're assuming the presence of a schema?

I am not, Dave.  My claim is that given only the input XML instance 
it is unwarranted to emit any kind of error or warning for an XPath 
address that does not resolve to the instance.

Review that given an input XML instance only.

That is my original intent of what I wrote above.

The lack of a trigger for the xpath provides information
that is useful IMHO.

I wholeheartedly disagree.  It is misleading information.  That an 
element allowed to be absent is absent is not worthy of any message 
at all. 

"allowed"? I'd interpret that as a validity statement wrt some schema?



It is entirely an expected condition of the input instance 
that my stylesheet may test for, or get the value for, or select 
without an error.

For example, rather than:

   <xsl:if test="c">
     <newC>This is a new c: <xsl:value-of select="c"/></newC>
   </xsl:if>

I usually will type:

   <xsl:for-each select="c">
     <newC>This is a new c: <xsl:value-of select="."/></newC>
   </xsl:for-each>

There are three examples of addressing the absent <c> in my instance, 
with a test, a value-of and a select, and just because <c> isn't in 
my instance the processor has no license to issue any error or 
warning message.  The next instance may, very well, have a <c>
element in it.

So for some C you will have errors/unmatched xpaths
others you won't. 
  I'd prefer to know of them rather than 'assume'
they are OK. 



just that in many cases such a schema may not be available,
an instance being used is more usually available.

Absolutely an instance is more available, but because an instance 
knows nothing of absent items that are allowed to be absent, the 
processor cannot make an assumption that addressing something that is 
absent is worthy of an error or warning message.

I hope this has finally convinced you.

No Ken, I'm looking at it as a means of getting more from the processor.
If as in your example/Schematron, the warning is something that I can
tick off, then great. Otherwise it's likely I've done something wrong
in writing that xpath expression.

Same problem, different perspectives.




-- 

regards 

-- 
Dave Pawson
XSLT XSL-FO FAQ.
http://www.dpawson.co.uk

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--