- From: Victor Engmark <victor.engmark@cern.ch>
- Date: Fri, 08 Apr 2005 09:18:43 +0200
- To: ava@vaz.ru
- CC: www-forms@w3.org
Alexander Anokhin wrote:
> Hello, all.
>
> I'm trying to assign some validation job to XForms.
> For example: I want to bind <xform:input> with such WXS-type when it's
> value is decimal with maximum 5 digits OR user may leave this field
> empty (kind of optional search parameter).
> My guess, is that i'll be like this:
> <xsd:simpleType name="myType">
> <xsd:restriction base="xsd:decimal">
> <xsd:minInclusive value="0"/>
> <xsd:fractionDigits value="5"/>
> </xsd:restriction>
> </xsd:simpleType>
> but when such field is empty (right after Xform is loaded or user
> desided that way) it fires xforms-invalid event and so on..
>
> I did some workaround by using <xsd:pattern>:
>
> <xsd:simpleType name="myType">
> <xsd:restriction base="xsd:string">
> <xsd:pattern value="[0-9]{1,5}|"/>
> </xsd:restriction>
> </xsd:simpleType>
>
> Works fine but, imho, not such pretty.
>
> I'm not an WXS expert so is there better way?
Hello,
I believe the problem arises from null (the empty string) not being a
valid number. The same goes for dates, and I've used the following solution:
<simpleType name="null_date">
<union>
<simpleType>
<restriction base="date">
</restriction>
</simpleType>
<simpleType>
<annotation>
<documentation>The empty string</documentation>
</annotation>
<restriction base="string">
<length value="0"/>
</restriction>
</simpleType>
</union>
</simpleType>
HTH
--
Victor Engmark
"Quid quid latine dictum sit, altum viditar" - "What is said in latin,
sounds profound"
Received on Friday, 8 April 2005 07:18:48 UTC