Final clause in attributes

I was trying to create a list of acceptable attribute values for my element.
Like in  Enumeration Facet example I made following:

<xsd:simpleType name="RequestType" final="restriction">
                <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="Set"/>
                        <xsd:enumeration value="Get"/>
                </xsd:restriction>
</xsd:simpleType>

After that I want to use this list in one of my element's attributes values:

<xsd:complexType name="Header">
	<xsd:sequence>
                        <xsd:element name="Info" type="xsd:string"/>
            </xsd:sequence>
            <xsd:attribute name="Type" type="RequestType" use="required"
fixed="Set"/>
</xsd:complexType>


but during validation the schema I get the next error message:

The type 
<xsd:simpleType>
    <xsd:restriction base="RequestType"/>
</xsd:simpleType>
was defined by restriction on the type RequestType. But according to the
definition of type RequestType (in the final attribute), 
it cannot be refined using the derivation method, restriction. To fix this
problem, either define 
<xsd:simpleType>
    <xsd:restriction base="RequestType"/>
</xsd:simpleType>
 without reference to RequestType, or remove or modify the final clause in
the definition of RequestType.



As you can see I didn't define another <simpleType> I just wanted to use
previously created type (RequestType) as type of my attribute (Type). What's
the problem? 

Basically I want to create a list of available values (to use as attribute
values) and restrict this list completely.

Received on Monday, 4 June 2001 05:22:55 UTC