- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Sat, 5 Apr 2003 15:56:08 +0100
- To: max.a.chappell@britishairways.com
- CC: xmlschema-dev@w3.org
Hi Max, > Are the following restrictions equally valid using XML Schema ? > > Restriction 1: > <restriction base="xsd:string"> > <pattern value="[A-Z]{1,9}"/> > </restriction> > > Restriction 2: > <restriction base="xsd:string"> > <pattern value="[A-Z]"/> > <minLength value="1"/> > <maxLength value="9"/> > </restriction> > > We often have non-technical people looking at our restrictions - for > them Restriction 2 is easier to decipher, but is it 'legal' ? The second one isn't quite what you want, because the pattern "[A-Z]" will only match a single uppercase Latin character, and you want between 1 and 9 of them. You can use a + (one or more) as in: <restriction base="xsd:string"> <pattern value="[A-Z]+" /> <minLength value="1" /> <maxLength value="9" /> </restriction> to do this, or use the <pattern> element from your first restriction above to state explicitly in the *pattern* that it has to be between 1 and 9 characters long. It's a good idea to use the non-lexical restrictions such as minLength and maxLength because they are easier for tools to interpret than a regular expression. For example, a tool can use a pattern to check a value that's been entered, but it can't (without amazing sophistication) use a pattern to prompt the user that they need to enter a value "between 1 and 9 characters long". Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
Received on Saturday, 5 April 2003 09:56:16 UTC