~necoro/portato/0.8.6.2

1 by Necoro
Moved versions back to tags
1
<?xml version="1.0" encoding="UTF-8"?>
2
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://portato.sourceforge.net/plugin" targetNamespace="http://portato.sourceforge.net/plugin" elementFormDefault="qualified">
3
	<xs:element name="plugin">
4
		<xs:complexType>
5
			<xs:all>
6
				<xs:element name="name" type="string" />
7
				<xs:element name="author" type="string" />
8
				<xs:element name="import" type="importString" minOccurs="0"/>
9
				<xs:element name="frontends" type="stringList" minOccurs="0" />
10
				<xs:element name="hooks">
11
					<xs:complexType>
12
						<xs:sequence>
13
							<xs:element name="hook" minOccurs="1" maxOccurs="unbounded">
14
								<xs:complexType>
15
									<xs:sequence>
16
										<xs:element name="connect" minOccurs="0" maxOccurs="unbounded">
17
											<xs:complexType>
18
												<xs:simpleContent>
19
													<xs:extension base="xs:string">
20
														<xs:attribute name="type" default="before">
21
															<xs:simpleType>
22
																<xs:restriction base="xs:string">
23
																	<xs:enumeration value="before" />
24
																	<xs:enumeration value="override" />
25
																	<xs:enumeration value="after" />
26
																</xs:restriction>
27
															</xs:simpleType>
28
														</xs:attribute>
29
													</xs:extension>
30
												</xs:simpleContent>
31
											</xs:complexType>
32
										</xs:element>
33
									</xs:sequence>
34
									<xs:attribute name="type" type="string" use="required" />
35
									<xs:attribute name="call" type="functionCall" use="required" />
36
								</xs:complexType>
37
							</xs:element>
38
						</xs:sequence>
39
					</xs:complexType>
40
				</xs:element>
41
				<xs:element name="options" minOccurs="0">
42
					<xs:complexType>
43
						<xs:sequence>
44
							<xs:element name="option" minOccurs="1" maxOccurs="unbounded" type="string" />
45
						</xs:sequence>
46
					</xs:complexType>
47
				</xs:element>
48
				<xs:element name="menu" minOccurs="0">
49
					<xs:complexType>
50
						<xs:sequence>
51
							<xs:element name="item" minOccurs="1" maxOccurs="unbounded">
52
								<xs:complexType>
53
									<xs:simpleContent>
54
										<xs:extension base="string">
55
											<xs:attribute name="call" type="functionCall" use="required" />
56
										</xs:extension>
57
									</xs:simpleContent>
58
								</xs:complexType>
59
							</xs:element>
60
						</xs:sequence>
61
					</xs:complexType>
62
				</xs:element>
63
			</xs:all>
64
		</xs:complexType>
65
	</xs:element>
66
	<xs:simpleType name="importString">
67
		<xs:restriction base="xs:string">
68
			<xs:pattern value="([a-zA-Z_]+\.?)+" />
69
		</xs:restriction>
70
	</xs:simpleType>
71
	<xs:simpleType name="functionCall">
72
		<xs:restriction base="xs:string">
73
			<xs:pattern value="[a-zA-Z_][0-9a-zA-Z_]*" />
74
		</xs:restriction>
75
	</xs:simpleType>
76
	<xs:simpleType name="string">
77
		<xs:restriction base="xs:string">
78
			<xs:minLength value="1" />
79
		</xs:restriction>
80
	</xs:simpleType>
81
	<xs:simpleType name="_stringList">
82
		<xs:list itemType="string"/>
83
	</xs:simpleType>
84
	<xs:simpleType name="stringList">
85
		<xs:restriction base="_stringList">
86
			<xs:minLength value="1" />
87
		</xs:restriction>
88
	</xs:simpleType>
89
</xs:schema>