Re: [xsl] testing for a missing attribute

Subject: Re: [xsl] testing for a missing attribute
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sun, 11 Jul 2010 08:17:42 -0400
At 2010-07-10 20:41 -0700, Dan Vint wrote:
At 07:34 PM 7/10/2010, you wrote:
How about having:

  <xsl:variable name="minOccurs" select="(@minOccurs,1)[1]"/>
  <xsl:variable name="maxOccurs" select="(@maxOccurs,1)[1]"/>

... and then changing your tests to variables instead of attributes? You won't need the tests for absence since the variable assignment has accommodated absence.

I don't recognize what this is doing, I'm assuming it assigns 1 when not there, but I don't understand the syntax.

In XSLT 2 the expression (x,y)[1] will take the first member of the sequence of items addressed by "x" and then "y". A sequence does not contain any empty sets, so if "x" does not address anything then "y" is the first member of the sequence.


I suppose if there had been a DTD to validate against I could have checked for the value directly.

No, because the document model cannot be inspected by an XSLT stylesheet.


I hope this helps.

. . . . . . . . . . . . . Ken

--
XSLT/XQuery training:   after http://XMLPrague.cz 2011-03-28/04-01
Vote for your XML training:   http://www.CraneSoftwrights.com/s/i/
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Current Thread