<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:annotation>
		<xsd:documentation xml:lang="en">
			Epiphany Web Browser extension metadata schema.
			Copyright (c) 2004 Adam Hooper
		</xsd:documentation>
	</xsd:annotation>

	<xsd:element name="extension" type="ExtensionType"/>

	<xsd:complexType name="ExtensionType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
				Metadata about an extension. Note: the elements
				must appear *in order* (unfortunately).
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string"/>
			<xsd:element name="description" type="xsd:string"/>
			<xsd:element name="author" type="AuthorType"
				     maxOccurs="unbounded"/>
			<xsd:element name="url" type="xsd:anyURI"
				     minOccurs="0"/>
			<xsd:element name="version"
				     type="ExtensionVersionType"/>
			<xsd:element name="gettext-domain" type="xsd:string"/>
			<xsd:element name="locale-directory" type="xsd:string"/>
			<xsd:element name="loader" type="LoaderType"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:simpleType name="ExtensionVersionType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
				The version of the extension's API. For most
				extensions, this number will remain at
				&quot;1&quot; indefinitely. The only reason to
				increase it would be if any GObject classes
				within the extension change parents.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:positiveInteger"/>
	</xsd:simpleType>

	<xsd:simpleType name="AuthorType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
				An extension author -- a name and (optionally)
				an email address.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>

	<xsd:complexType name="LoaderType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
				The type of loader to use for the extension.
				For example, &quot;shlib&quot;.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="attribute" maxOccurs="unbounded">
				<xsd:complexType>
					<xsd:simpleContent>
						<xsd:extension base="xsd:string">
							<xsd:attribute name="name" type="xsd:ID"/>
						</xsd:extension>
					</xsd:simpleContent>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="type" type="xsd:ID" use="required"/>
	</xsd:complexType>

</xsd:schema>
