<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="component">
    <xsd:complexType mixed="true">
      <xsd:all>
        <xsd:element ref="id" minOccurs="1" maxOccurs="unbounded"/>
        <xsd:element ref="metadata_license" minOccurs="0" maxOccurs="1"/>
        <xsd:element ref="name" minOccurs="1" maxOccurs="unbounded"/>
        <xsd:element ref="summary" minOccurs="1" maxOccurs="unbounded"/>
        <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
        <xsd:element ref="project_license" minOccurs="0" maxOccurs="1"/>
        <xsd:element ref="project_group" minOccurs="0" maxOccurs="1"/>
        <xsd:element ref="keywords" minOccurs="0" maxOccurs="1"/>
        <xsd:element ref="icon" minOccurs="1" maxOccurs="unbounded"/>
        <xsd:element ref="appcategories"/>
        <xsd:element ref="mimetypes" minOccurs="0" maxOccurs="1"/>
        <xsd:element ref="url" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element ref="screenshots" minOccurs="0" maxOccurs="1"/>
        <xsd:element ref="compulsory_for_desktop" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element ref="releases" minOccurs="0" maxOccurs="1"/>
        <xsd:element ref="architectures" minOccurs="0" maxOccurs="1"/>
      </xsd:all>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="id">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:string">
          <xsd:attribute name="type" use="required">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="desktop"/>
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="licence" type="xsd:string"/>
  <xsd:element name="name">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:string">
          <xsd:attribute name="lang" type="xsd:string"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="summary">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:string">
          <xsd:attribute name="lang" type="xsd:string"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="description">
    <xsd:complexType mixed="true">
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element ref="p" minOccurs="1" maxOccurs="unbounded"/>
        <xsd:element ref="ul" minOccurs="0" maxOccurs="1"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="p">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:string">
          <xsd:attribute name="lang" type="xsd:string"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="ul">
    <xsd:complexType mixed="true">
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element ref="li" minOccurs="1" maxOccurs="10"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="li">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:string">
          <xsd:attribute name="lang" type="xsd:string"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="screenshots">
    <xsd:complexType mixed="true">
      <xsd:choice maxOccurs="unbounded" minOccurs="0">
        <xsd:element ref="screenshot"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="screenshot">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:string">
          <xsd:attribute name="lang" type="xsd:string"/>
          <xsd:attribute name="type" type="xsd:string"/>
          <xsd:attribute name="height" type="xsd:string"/>
          <xsd:attribute name="width" type="xsd:string"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="project_group">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:string"/>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="url">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:string">
          <xsd:attribute name="type" use="required">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="homepage"/>
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>
