xsl-list
[Top] [All Lists]

Re: [xsl] Avoiding boneheaded mistakes in XSLT?

2010-12-29 09:23:32
On Wed, 29 Dec 2010 10:07:26 -0500
"G. Ken Holman" <gkholman(_at_)CraneSoftwrights(_dot_)com> wrote:

 Allow me to try again, please.

Consider an XML document whose content model for <a> is:  ( b, c?, d )

This is a valid instance:

   <a>
     <b/>
     <c/>
     <d/>
   </a>

But, this is also a valid instance:

   <a>
     <b/>
     <d/>
   </a>

So, given the second instance, I run it against two stylesheets:

Stylesheet 1:

   <xsl:if test="not(a/c)">I'll make an assumption about a missing
C</xsl:if>

Stylesheet 2 (with a typo in it because the user mistyped):

   <xsl:if test="not(a/cc)">I'll make an assumption about a missing
C</xsl:if>

Without a schema to know that <cc> is not an acceptable element, 
there is no way to distinguish the two above if statements.  With a 
schema, the second one is clearly in error.  But without a schema, it 
does not make sense to issue an error or warning about the first 
stylesheet, because it is a bona fide test I want to perform 
regarding the absence of <c>.  Hence, it cannot make the same 
assumption about the second stylesheet, and so again cannot issue an 
error or warning.


Again you're assuming the presence of a schema?
Review that given an input XML instance only.
The lack of a trigger for the xpath provides information
that is useful IMHO.

I'm not arguing that extra information may be gleaned from the Schema,
just that in many cases such a schema may not be available,
an instance being used is more usually available.





-- 

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>
--~--