- From: Rowan Sylvester-Bradley <rowan@sylvester-bradley.org>
- Date: Mon, 13 Oct 2008 12:48:58 +0100
- To: <xmlschema-dev@w3.org>
Pete,
Many thanks, that works fine. I ended up with the following, which accepts
times with or without seconds:
<xsd:simpleType name="time_hh_mm">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-1][0-9]:[0-5][0-9]"/>
<xsd:pattern value="[0-1][0-9]:[0-5][0-9]:[0-5][0-9]"/>
<xsd:pattern value="2[0-3]:[0-5][0-9]"/>
<xsd:pattern value="2[0-3]:[0-5][0-9]:[0-5][0-9]"/>
</xsd:restriction>
</xsd:simpleType>
Rowan
----- Original Message -----
From: "Pete Cordell" <petexmldev@codalogic.com>
To: "Rowan Sylvester-Bradley" <rowan@sylvester-bradley.org>;
<xmlschema-dev@w3.org>
Sent: Monday, October 13, 2008 9:30 AM
Subject: Re: Time wihtout Seconds
>
> ----- Original Message From: "Rowan Sylvester-Bradley"
>
>> How do I write a schema that will validate an element containing a
>> time in the format hh:mm (without any seconds)? I'm trying to write
>> a schema for an existing XML file that's generated by a piece of
>> software which I have no access to, so I can't just add the seconds...
>
> In that case you probably want to have a base type of an xs:string and
> then restrict it using an xs:pattern facet. Something like:
>
> <xs:simpleType name="myTime">
> <xs:restriction base="xs:string">
> <xs:pattern value="[0-2][0-9]:[0-5][0-9]"/>
> </xs:restriction>
> </xs:simpleType>
>
> Or possibly even better:
>
> <xs:simpleType name="myTime">
> <xs:restriction base="xs:string">
> <xs:pattern value="[0-1][0-9]:[0-5][0-9]"/>
> <xs:pattern value="2[0-3]:[0-5][0-9]"/>
> </xs:restriction>
> </xs:simpleType>
>
> (I'm pretty sure the pattern facets have an OR type relationship rather
> than an AND type relationship. I'm sure someone will correct me if I'm
> wrong.)
>
> HTH,
>
> Pete Cordell
> Codalogic Ltd
> Interface XML to C++ the easy way using XML C++
> data binding to convert XSD schemas to C++ classes.
> Visit http://www.codalogic.com/lmx/ for more info
Received on Monday, 13 October 2008 11:51:36 UTC