<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:element name="book" type="bookType"/>


  <xsd:complexType name="bookType">
    <xsd:sequence>
      <xsd:element ref="title"/>
      <xsd:choice>
         <xsd:element ref="author"/>
         <xsd:element ref="editor"/>
      </xsd:choice>
      <xsd:element ref="ISBN"/>
      <xsd:element ref="edition" minOccurs ="0"/>
      <xsd:element ref="publisher"/>
      <xsd:element ref="year" minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="price" type="xsd:decimal"/>
    <xsd:attribute name="inStock" use="required">
       <xsd:simpleType>
          <xsd:restriction base="xsd:string">
              <xsd:enumeration value="Yes"/>
              <xsd:enumeration value="No"/>
          </xsd:restriction>
       </xsd:simpleType>
    </xsd:attribute>
  </xsd:complexType>

  <xsd:element name="title" type="xsd:string"/>
  <xsd:element name="author" type="xsd:string"/>
  <xsd:element name="ISBN" type="xsd:string"/>
  <xsd:element name="edition"  default="First">
    <xsd:simpleType>
       <xsd:restriction base="xsd:string">
          <xsd:enumeration value="First"/>
          <xsd:enumeration value="Second"/>
          <xsd:enumeration value="Third"/>
          <xsd:enumeration value="Fourth"/>
          <xsd:enumeration value="Fifth"/>
       </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="publisher" type="xsd:string"/>
  <xsd:element name="editor" type ="xsd:string"/>
  <xsd:element name="year">
     <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:pattern value ="[0-9]{4}"/>
        </xsd:restriction>
     </xsd:simpleType>
  </xsd:element>
</xsd:schema>
