The enumeration
facet lists all allowed values
Applies to all simple types except boolean
For example, to say that the publisher must be one of the oligopoly that controls 90% of U.S. music (Warner-Elektra-Atlantic, Universal Music Group, Sony Music Entertainment, Inc., Capitol Records, Inc., BMG Music)
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="SONG" type="SongType"/>
<xsd:simpleType name="oligopolyMember">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Warner-Elektra-Atlantic"/>
<xsd:enumeration value="Universal Music Group"/>
<xsd:enumeration value="Sony Music Entertainment, Inc."/>
<xsd:enumeration value="Capitol Records, Inc."/>
<xsd:enumeration value="BMG Music"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="SongType">
<xsd:sequence>
<xsd:element name="TITLE" type="xsd:string"/>
<xsd:element name="COMPOSER" type="xsd:string"
maxOccurs="unbounded"/>
<xsd:element name="PRODUCER" type="xsd:string"
minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="PUBLISHER" type="oligopolyMember"
minOccurs="0"/>
<xsd:element name="LENGTH" type="xsd:duration"/>
<xsd:element name="YEAR" type="xsd:gYear"/>
<xsd:element name="ARTIST" type="xsd:string"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>