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">
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">
13
<xs:element name="hook" minOccurs="1" maxOccurs="unbounded">
16
<xs:element name="connect" minOccurs="0" maxOccurs="unbounded">
19
<xs:extension base="xs:string">
20
<xs:attribute name="type" default="before">
22
<xs:restriction base="xs:string">
23
<xs:enumeration value="before" />
24
<xs:enumeration value="override" />
25
<xs:enumeration value="after" />
34
<xs:attribute name="type" type="string" use="required" />
35
<xs:attribute name="call" type="functionCall" use="required" />
41
<xs:element name="options" minOccurs="0">
44
<xs:element name="option" minOccurs="1" maxOccurs="unbounded" type="string" />
48
<xs:element name="menu" minOccurs="0">
51
<xs:element name="item" minOccurs="1" maxOccurs="unbounded">
54
<xs:extension base="string">
55
<xs:attribute name="call" type="functionCall" use="required" />
66
<xs:simpleType name="importString">
67
<xs:restriction base="xs:string">
68
<xs:pattern value="([a-zA-Z_]+\.?)+" />
71
<xs:simpleType name="functionCall">
72
<xs:restriction base="xs:string">
73
<xs:pattern value="[a-zA-Z_][0-9a-zA-Z_]*" />
76
<xs:simpleType name="string">
77
<xs:restriction base="xs:string">
78
<xs:minLength value="1" />
81
<xs:simpleType name="_stringList">
82
<xs:list itemType="string"/>
84
<xs:simpleType name="stringList">
85
<xs:restriction base="_stringList">
86
<xs:minLength value="1" />