[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Enumerated Lists
Eric van der Vlist wrote: >On Fri, 2004-03-05 at 12:11, Max Chappell wrote: > > >>Hi, >> >>I'm trying to use a list type that contains only enumerated >>values....I've tried validating with XMLSpy and XercesJ2.6.2 and get >>errors when I use the list. >>I've used two different approaches that don't validate correctly - can >>anybody tell me if this is a schema problem or a Xerces problem please ? >> >>OK. First approach was: >> >><xs:simpleType name="ePartitionKeys_"> >> <xs:restriction base="xs:NMTOKEN"> >> <xs:enumeration value="PartVersion"/> >> <xs:enumeration value="Separation"/> >> <xs:enumeration value="SheetName"/> >> <xs:enumeration value="Side"/> >> </xs:restriction> >> </xs:simpleType> >> >><xs:simpleType name="ePartitionKeysList_"> >> <xs:list itemType="jdftyp:ePartitionKeys_"/> >></xs:simpleType> >> >> > >Assuming "jdftyp" is a namespace prefix for your target namespace, this >should do what you say (define a list that contains only enumerated >values). What's wrong with this first version? > > Your assumption is correct. I get the same error message for both versions. So this is an issue with XMLSpy and Xerces? > > >>Second approach makes use of an interim definition (which I think is the >>correct way to do this..?): >> >><xs:simpleType name="ePartKeysList_"> >> <xs:list itemType="jdftyp:NMTOKEN"/> >> </xs:simpleType> >> >> > >Have you defined a "NMTOKEN" type in your target namespace, or shouldn't >it be : > ><xs:simpleType name="ePartKeysList_"> > <xs:list itemType="xs:NMTOKEN"/> ></xs:simpleType> > >??? > We have indeed defined NMTOKEN in our namespace.... > > > >><xs:simpleType name="ePartKeysList_"> >> <xs:list itemType="jdftyp:NMTOKEN"/> >> </xs:simpleType> >> >> > > > >> <xs:simpleType name="ePartitionKeysList_"> >> <xs:restriction base="jdftyp:ePartKeysList_"> >> <xs:enumeration value="PartVersion"/> >> <xs:enumeration value="Separation"/> >> <xs:enumeration value="SheetName"/> >> <xs:enumeration value="Side"/> >> </xs:restriction> >> </xs:simpleType> >> >> > >Here, you're defining a list type and restrict the result to be one of >the values in the enumeration. That's fine, but your resulting type is >not really a list any longer. > Yes, I can see that now. Doh! > > > >>The error message from Xerces is: >>[Error] MISPrepress122.jdf:73:226: cvc-enumeration-valid: Value >>'SheetName Side Separation PartVersion' is not facet-valid with respect >>to enumeration '[PartVersion, Separation, SheetName, Side]'. It must be >>a value from the enumeration. >>[Error] MISPrepress122.jdf:73:226: cvc-attribute.3: The value 'SheetName >>Side Separation PartVersion' of attribute 'PartIDKeys' on element >>'ExposedMedia' is not valid with respect to its type, 'ePartitionKeysList_'. >> >> > >That just says that the values must be either PartVersion, Separation, >SheetName or Side which is what I mean by "your resulting type is not >really a list any longer" :) ... > >Eric > >
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|