Subject: Re: [xsl] Avoiding boneheaded mistakes in XSLT? From: Dave Pawson <davep@xxxxxxxxxxxxx> Date: Wed, 29 Dec 2010 15:23:22 +0000 |
On Wed, 29 Dec 2010 10:07:26 -0500 "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Avoiding boneheaded mista, G. Ken Holman | Thread | Re: [xsl] Avoiding boneheaded mista, G. Ken Holman |
[xsl] Sorting by child element coun, Mark | Date | Re: [xsl] Avoiding boneheaded mista, Dave Pawson |
Month |