aboutsummaryrefslogblamecommitdiffstats
path: root/data/epiphany-extension.xsd
blob: 63272a79f58e71603e67dc9e83a87a68b523e209 (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                                       
                                                            



                                                         

                                                                               


                                            





                                                                           
                                                   



                                                                                


                               





                                                                              
                                                                           





                                                                    
                                          

                                                         

                                                                              

                                            
                                                    
                         
 
                                           

                                                         

                                                                            


                                            








                                                                                                  
                               
                                                                         

                          
             
<?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>