Re: Validate list (XML Schema)

Hi San,

> I have problem in writing XML schema for the following xml code
>
> <list>Alan,Andrew,Santy<list>
>
> I have tried to write it in the following way
> <xsd:simpleType name="PatronsType">
>     <xsd:list itemType="xsd:string" />
> </xsd:simpleType>

In XML Schema, list values have to be separated by whitespace (rather
than commas, semi-colons or any other separator). So if you wanted to
use a list type here, your XML would have to look like:

  <list>Alan Andrew Santy</list>

Your other option is to specify a subtype of xs:string, using a
regular expression, specifying comma separators. For example:

<xs:simpleType name="PatronsType">
  <xs:restriction base="xs:string">
    <xs:pattern value="([A-Z][a-z]+(,[A-Z][a-z]+)*)?" />
  </xs:restriction>
</xs:simpleType>
  
By the way, the type xs:string actually allows whitespace inside it;
the value "Alan Andrew Santy" is a legal xs:string value. It's not
generally a good idea to create a list type whose item type allows
whitespace, because it means that it's ambiguous whether you want
"Alan Andrew Santy" to be the list ("Alan", "Andrew", "Santy") or
("Alan Andrew", "Santy") or ("Alan", "Andrew Santy") or ("Alan Andrew
Santy").

> the problem is "how to validate the value of list tag to not be able
> to have repeating value eg. <list>Alan,Andrew,Santy,Andrew<list>
>
> note:the above xml, the Andrew is repeated.

I don't think that's possible using XML Schema.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/

Received on Tuesday, 23 September 2003 05:25:45 UTC