[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Enumerated Lists
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? > 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> ??? > <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. > 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 -- Freelance consulting and training. http://dyomedea.com/english/ Upcoming XML schema languages tutorial: - Santa Clara -half day- (15/03/2004) http://masl.to/?J24916E96 ------------------------------------------------------------------------ Eric van der Vlist http://xmlfr.org http://dyomedea.com (ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax (W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema ------------------------------------------------------------------------
|
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
|