Subject: Re: [xsl] Different Behavior for Regex in XSD and XSLT/XQuery From: "◘DstarProductions◘ ◘OficialPage◘ freedatabase@xxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 11 Jan 2018 16:30:26 -0000 |
wat is dit allesb ________________________________ Van: Eliot Kimber ekimber@xxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Verzonden: donderdag 11 januari 2018 08:24:41 Aan: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Onderwerp: Re: [xsl] Different Behavior for Regex in XSD and XSLT/XQuery So that 05:60 is valid and 05:61 is not. Thus [0-5]\d|60. For my application I donbt think leap seconds are a concern. The use case is users entering the shortest possible value that can be reliably interpreted as an xs:time value, e.g. b5b (for 05:00:00), 5:1 (for 05:01:00), etc. Since an invalid string passed to xs:time() throws an exception, important to validate the value before trying to make a good time string out of it. This is in the context of a configuration document where the user is specifying time values that are interpreted dynamically by a long-running process with little or no opportunity to report failure to the user who created the configuration file. Cheers, E. -- Eliot Kimber http://contrext.com From: "Peter West lists@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Reply-To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Date: Wednesday, January 10, 2018 at 8:20 PM To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Subject: Re: [xsl] Different Behavior for Regex in XSD and XSLT/XQuery Eliot, I havenbt played with REs for a long time, so forgive my naivety, but why the b60bs? -- Peter West pbw@xxxxxxxxx<mailto:pbw@xxxxxxxxx> bBut you have made it a den of robbers.b On 11 Jan 2018, at 2:53 am, Eliot Kimber ekimber@xxxxxxxxxxxx<mailto:ekimber@xxxxxxxxxxxx> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx<mailto:xsl-list-service@xxxxxxxxxxxx rytech.com>> wrote: Doh! A subtle but should-be-obvious syntax detail. Thanks, Eliot -- Eliot Kimber http://contrext.com o;?On 1/10/18, 10:39 AM, "David Carlisle d.p.carlisle@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: On 10 January 2018 at 16:15, Eliot Kimber ekimber@xxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: 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>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Different Behavior for Re, Eliot Kimber ekimber | Thread | [xsl] XML output ugly, Michele R Combs mrro |
Re: [xsl] Different Behavior for Re, Eliot Kimber ekimber | Date | [xsl] XML output ugly, Michele R Combs mrro |
Month |