- From: Eric van der Vlist <vdv@dyomedea.com>
- Date: Thu, 05 Jul 2001 15:39:45 +0200
- To: Neil Bradley <neil.bradley@rubus.com>
- Cc: "'xmlschema-dev@w3.org'" <xmlschema-dev@w3.org>
You've got (almost) the the right building blocks, but need to combine them in a different order! Instead of creating an union of lists that allows only a (list of Score) or a (list of NoScore), you need to create a list of unions that allows a list of (either Score or NoScore) :=) ... <X:simpleType name="Score"> <X:restriction base='X:integer'> <X:maxInclusive value='50'/> <X:minInclusive value='5'/> </X:restriction> </X:simpleType> <X:simpleType name="NoScore"> <X:restriction base='X:NMTOKEN'> <X:enumeration value='none'/> </X:restriction> </X:simpleType> <X:simpleType name="ScoreAndNoScore"> <X:union memberTypes="A:Score A:NoScore"/> </X:simpleType> <X:simpleType name="ScoreAndNoScoreList"> <X:list itemType="A:ScoreAndNoScore"/> </X:simpleType> should work. Hope this helps. Eric Neil Bradley wrote: > > I am trying to create a list type that allows scores, which are values > between 5 and 50, to be created, such as '50 23 9 22', and mixed with a the > keyword 'none' to represent no score. For example, '23 none 5 7 none 45': > > First I defined the Score type allowing such scores as '23': > > <X:simpleType name="Score"> > <X:restriction base='X:integer'> > <X:maxInclusive value='50'/> > <X:minInclusive value='5'/> > </X:restriction> > </X:simpleType> > > Then I create a list type for score, ScoreList, so allowing '50 23 22 9': > > <X:simpleType name="ScoreList"> > <X:list itemType="A:Score"/> > </X:simpleType> > > Then I create the NoScore type, which allows the keyword 'none' only: > > <X:simpleType name="NoScore"> > <X:restriction base='X:NMTOKEN'> > <X:enumeration value='none'/> > </X:restriction> > </X:simpleType> > > Then I create a list for type NoScore, called NoScoreList, so allowing 'none > none none': > > <X:simpleType name="NoScoreList"> > <X:list itemType="A:NoScore"/> > </X:simpleType> > > Finally, I try to create union of the two list types, so I can have '23 none > 5': > > <X:simpleType name="ScoreAndNoScore"> > <X:union memberTypes="A:ScoreList A:NoScoreList"/> > </X:simpleType> > > But it does not work. I can have 'none none none', or '5 6 7', but no > combination of the two > > I thought maybe I should create a new list type, but the following addition > causes an error: > > <X:simpleType name="ScoreAndNoScoreList"> > <X:list itemType="A:ScoreAndNoScore"/> > </X:simpleType> > > Any ideas how to do this? > > Neil. -- See you at XTech in San Diego. http://conferences.oreillynet.com/cs/os2001/view/e_spkr/790 ------------------------------------------------------------------------ Eric van der Vlist http://xmlfr.org http://dyomedea.com http://xsltunit.org http://4xt.org http://examplotron.org ------------------------------------------------------------------------
Received on Thursday, 5 July 2001 09:39:51 UTC