Roger costello of Mitre provides this example of using pattern facet.
Basically, it expresses several different possible formats, all of which are some combination of digits and a optional decimal point. In terms of cobol-style patterns it is one of these formats:
99
99.9
99.99
99.999
99.9999
I am not sure a textNumberPattern can handle the optionality of the decimal point. I know we can deal with the varying number of fraction digits, and the fixed number of integer digits, but conditional decimal point I am unsure about.
---------- Forwarded message ----------
From: Costello, Roger L. <costello@mitre.org>
Date: Fri, May 17, 2013 at 4:00 PM
Subject: RE: examples of decimal validation using pattern facet
To: Mike Beckerle <mbeckerle.dfdl@gmail.com>
Cc: "Cranford, Jonathan W." <jcranford@mitre.org>
Hello Mike,
Ø Can you send an example of the lat/lon validation
Ø you mentioned on yesterday's Daffodil call?
Here ya go:
<xsd:simpleType name="foo">
<xsd:restriction base="xsd:decimal"><xsd:minInclusive value="00"/>
<xsd:maxInclusive value="59.9999"/>
<xsd:pattern value="[0-9]{2}|[0-9]{2}\.[0-9]{1}|[0-9]{2}\.[0-9]{2}|[0-9]{2}\.[0-9]{3}|[0-9]{2}\.[0-9]{4}"/>
</xsd:restriction>
</xsd:simpleType>
/Roger
From: Mike Beckerle [mailto:mbeckerle.dfdl@gmail.com]
Sent: Thursday, May 16, 2013 8:15 AM
To: Costello, Roger L.
Subject: examples of decimal validation using pattern facet
Roger,
Can you send an example of the lat/lon validation you mentioned on yesterday's Daffodil call?
The other members of the workgroup are wondering what can't be done via totalDigits/fractionDigits, etc.
The rationale for why pattern facet is not supported on numbers in DFDL is that we already have a much more powerful mechanism for parsing and unparsing numbers called textNumberPattern. The pattern facet only allows pass/fail using a regex, and is considered redundant (and problematic) for numbers as a result.
...mike
--
Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com
--
Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com