Una enumeración (Enumeration) es un tipo de datos básico con restricciones en los valores que puede llegar a tomar.
Esta sería una plantilla para crear una enumeración:
<xsd:schema targetnamespace="http://#namespace#"
xsd="http://www.w3.org/2001/XMLSchema"
bons0="http://#namespace#">
<xsd:include schemalocation="#nombreDelEsquema#.xsd"></xsd:include>
<xsd:element name="#nombreDelParametro#" type="bons0:#nombreDelEsquema#">
<xsd:simpletype name="#nombreDelParametro#">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="#valor 1#">
<xsd:enumeration value="#valor 2#">
<xsd:enumeration value="#valor 3#">
</xsd:enumeration>
</xsd:enumeration>
</xsd:enumeration>
</xsd:restriction></xsd:simpletype></xsd:element></xsd:schema>
Un esquema para un tipo complejo que se encuentra fácilmente navegando es el siguiente:
<?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:timeDuration"/>
<xsd:element name="YEAR" type="xsd:gYear"/>
<xsd:element name="ARTIST" type="xsd:string"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>