Song Schema with XLink Support
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
xmlns="http://ibiblio.org/xml/namespace/song"
xmlns:xlink="http://www.w3.org/1999/xlink"
targetNamespace="http://ibiblio.org/xml/namespace/song"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
>
<xsd:import namespace="http://www.w3.org/1999/xlink"
schemaLocation="xlink.xsd"/>
<xsd:complexType name="PhotoType">
<xsd:complexContent>
<xsd:restriction base="xsd:anyType">
<xsd:attributeGroup ref="XLinkAttributes"/>
<xsd:attribute name="ALT" type="xsd:string"/>
<xsd:attribute name="WIDTH" type="xsd:nonNegativeInteger"/>
<xsd:attribute name="HEIGHT" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="SONG" type="SongType"/>
<xsd:complexType name="SongType">
<xsd:element name="TITLE" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="PHOTO" type="PhotoType"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="COMPOSER" type="xsd:string"
minOccurs="1" maxOccurs="unbounded"/>
<xsd:element name="PRODUCER" type="xsd:string"
minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="PUBLISHER" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="YEAR" type="xsd:year"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="ARTIST" type="xsd:string"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:complexType>
</xsd:schema>