Listing 1

<?xml version="1.0" encoding="US-ASCII"?>
<ProductList>
  <Product color="green" file="apple_fruit_green.gif" id="0" isFruit="true">
    Green apples are great for making caramel apples. The sour taste
	of the apple and the sweet taste of the caramel blend well together.
  </Product>
  <Product color="green" file="artichoke_veg_green.gif" id="1" isFruit="false">
    Artichoke hearts are the tastiest part of the artichoke. When you 
	eat the heart, it's love at first bite!
  </Product>
  <Product color="green" file="asparagus_veg_green.gif" id="2" isFruit="false">
    Asparagus is easy to cook.
  </Product>
  <Product color="green" file="avocado_fruit_green.gif" id="3" isFruit="true">
    Avocados are the main ingredient in guacamole.
  </Product>
  <Product color="yellow" file="banana_fruit_yellow.gif" id="4" isFruit="true">
    Smart monkeys eat bananas. Are you smart?
  </Product>
</ProductList>


Listing 2

<!-- ProductList Schema -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <xsd:element name="ProductList">
  <xsd:complexType>
   <xsd:sequence>
    <xsd:element ref="Product" minOccurs="0" maxOccurs="unbounded"/>
   </xsd:sequence>
  </xsd:complexType>
 </xsd:element>
 <xsd:element name="Product">
  <xsd:complexType>
   <xsd:simpleContent>
    <xsd:extension base="xsd:string">
     <xsd:attribute name="color" use="required">
      <xsd:simpleType>
       <xsd:restriction base="xsd:string">
        <xsd:enumeration value="red"/>
        <xsd:enumeration value="green"/>
        <xsd:enumeration value="yellow"/>
        <xsd:enumeration value="weird"/>
       </xsd:restriction>
      </xsd:simpleType>
     </xsd:attribute>
     <xsd:attribute name="file" type="xsd:string" use="required"/>
     <xsd:attribute name="id" type="xsd:nonNegativeInteger" use="required"/>
     <xsd:attribute name="isFruit" type="xsd:boolean" default="true"/>
    </xsd:extension>
   </xsd:simpleContent>
  </xsd:complexType>
 </xsd:element>
</xsd:schema>