- From: <Paul.V.Biron@kp.org>
- Date: Tue, 21 Feb 2006 11:49:16 -0800
- To: public-xsd-databinding@w3.org
I thought I had posted something on this issue a long time ago...but a quick check of the archives didn't turn anything up. So, here goes. I completely recognize the problem the schema spec created by allowing the pattern facet on non-string types...and I argued against it during the development of that spec. However, the databinding spec can NOT disallow this because the following is a very useful type that uses pattern on a numberic type: <xs:simpleType name='oddIntegers'> <xs:restriction base='xs:integer'> <xs:pattern value='[\-+]?\d*[13579]'/> </xs:restriction> </xs:simpleType> There is no other way to define the type whose value space is "the odd integers" and I'm told that such types exist in schemas-in-the-wild. So, serializers just need to become smarter than they currently are. Yes, it is real pain to have to serialize pathological cases like: <xs:simpleType name='myInt'> <xs:restriction base='xs:integer'> <xs:pattern value='(0+|23[284]+)?\d*'/> </xs:restriction> </xs:simpleType> that are no problem at all for validation. But again, this WG is NOT about changing the schema spec...it is about helping binding tools support the schema spec as it exists. I am all for this WG educating schema authors about the difficulties they cause binding tools when they create pathological cases like myInt above...but to disallow them is not within our charter. Also note, the serialization problems caused by pattern are not restricted to the numeric types (which is why I always say "non-string types"). Technically gYear, etc. are not numeric types but that have all the same problems as integer. Don't forget that pattern on the binary types is also problematic! But again, it's allowed by the schema spec! pvb
Received on Tuesday, 21 February 2006 19:49:38 UTC