|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Different Behavior for Regex in XSD and XSLT/XQuery
I have this simple type in an XSD, which is my attempt to validate strings
that are subsets of the string representation of xs:time values:
<xs:simpleType name="timestr">
<xs:restriction base="xs:string">
<xs:pattern
value="(\d|0\d|1\d|2[0123])(:([0-5]\d|60)(:([0-5]\d|60))?)?|24(:00(:00)?)?"/>
</xs:restriction>
</xs:simpleType>
And it correctly rejects "05:96" as invalid.
However, using the same regex with start/end anchors added in matches() it
does not reject "05:96".
This transform:
<xsl:template match="/">
<xsl:variable name="timestr" as="xs:string"
select="'05:96'"
/>
<xsl:variable name="is-valid" as="xs:boolean"
select="matches($timestr,
'^(\d|0\d|1\d|2[0123])(:([0-5]\d|60)(:([0-5]\d|60))?)?|24(:00(:00)?)?$')"
/>
<result>
<is-valid><xsl:value-of select="$timestr"/>, <xsl:value-of
select="$is-valid"/></is-valid>
</result>
</xsl:template>o;?
Produces:
<result><is-valid>05:96, true</is-valid></result>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








