OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Enumerated Lists

[ Lists Home | Date Index | Thread Index ]



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
>  
>






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS