Subject: RE: [XSLT 2.0] Checking that an element's value has the desired datatype?
From: "Costello, Roger L." <costello@xxxxxxxxx>
Date: Mon, 16 Oct 2006 19:25:01 -0400
|
Hi Folks,
Consider this XML document again:
<?xml version="1.0"?>
<Flight xmlns="http://www.aviation.org">
<Aircraft>
<Altitude>3300</Altitude>
</Aircraft>
</Flight>
Suppose that we want a mechanism to check that the value of the
Altitude element is an integer.
The mechanism should accept all of these as valid values:
<Altitude>3300</Altitude>
<Altitude>0</Altitude>
<Altitude>-53</Altitude>
The mechanism should reject all of these as invalid values:
<Altitude>XYZ</Altitude>
<Altitude>66.01</Altitude>
<Altitude>true</Altitude>
One mechanism is to create an XML Schema and declare Altitude as such:
<element name="Altitude" type="integer"/>
The above valid values would be accepted by a schema validator. The
invalid values would be rejected by a schema validator.
Now consider this XSLT template:
<xsl:template match="flt:Flight">
<xsl:choose>
<xsl:when test="matches(flt:Aircraft/flt:Altitude,
'^[+-]?[0-9]+$')">
ACCEPTED: Altitude has a valid value
</xsl:when>
<xsl:otherwise>
REJECTED: Altitude has an invalid value
</xsl:otherwise>
</xsl:choose>
</xsl:template>
The above valid values would be accepted by the XSLT template. The
invalid values would be rejected by the XSLT template.
QUESTION: can you think of a value for the Altitude element that the
XSLT template would accept, but a schema validator would reject? Can
you think of a value for the Altitude element that the XSLT template
would reject, but a schema validator would accept?
Thanks!
/Roger
|