aboutsummaryrefslogtreecommitdiffstats
path: root/data/epiphany-extension.xsd
blob: 63272a79f58e71603e67dc9e83a87a68b523e209 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?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>