xsl-list
[Top] [All Lists]

Re: [xsl] Challenge: create xPath 2.0 regular expressions for each XML Schema datatype

2006-10-18 04:46:12
Costello, Roger L. wrote:
Hi Folks,

I would like to submit a challenge:

Create xPath 2.0 regular expressions for each of the XML Schema
datatypes.

Examples:

  - the xPath expression which corresponds to integer is:
^\s*[+-]?\d+\s*$

  - the xPath expression which corresponds to float is:
^\s*[+-]?\d+([eE]+?\d+)?\s*$

haha, that was mine. But it is not correct. It supports *only* float/doubles with positive E-notation. For a reason: it was meant to be a float/double that could be parsed as an integer without a loss (remember your flights-altitude?)

For a float, it could be the following:
^\s*[+-]?(\d*\.\d+|\d+\.\d*)([eE][+-]?\d+)?\s*$|^\s*([+-]INF|NaN)\s*$

Note this part: (\d*\.\d+|\d+\.\d*)
It makes sure both ".1" and "1." (which are valid xs:floats) but not "." are allowed.

Note this branch: ^\s*([+-]INF|NaN)\s*$
It is valid to have this in xslt: xs:float('NaN') or xs:float('+INF').

PS: i did not test the regex above, it may contain errors or omissions.
PS2: this regex also applies to xs:double.

-- Abel Braaksma
  http://www.nuntia.com



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--