diff options
Diffstat (limited to 'plugin.xsd')
-rw-r--r-- | plugin.xsd | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/plugin.xsd b/plugin.xsd new file mode 100644 index 0000000..7f9975b --- /dev/null +++ b/plugin.xsd @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://portato.sourceforge.net/plugin" targetNamespace="http://portato.sourceforge.net/plugin" elementFormDefault="qualified"> + <xs:element name="plugin"> + <xs:complexType> + <xs:all> + <xs:element name="name" type="string" /> + <xs:element name="author" type="string" /> + <xs:element name="import" type="importString" minOccurs="0"/> + <xs:element name="frontends" type="stringList" minOccurs="0" /> + <xs:element name="hooks"> + <xs:complexType> + <xs:sequence> + <xs:element name="hook" minOccurs="1" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="connect" minOccurs="1" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="type" default="before"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="before" /> + <xs:enumeration value="override" /> + <xs:enumeration value="after" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="type" type="string" use="required" /> + <xs:attribute name="call" type="functionCall" use="required" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="options" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="option" minOccurs="1" maxOccurs="unbounded" type="string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="menu" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="item" minOccurs="1" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="string"> + <xs:attribute name="call" type="functionCall" use="required" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + </xs:element> + <xs:simpleType name="importString"> + <xs:restriction base="xs:string"> + <xs:pattern value="([a-zA-Z_]+\.?)+" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="functionCall"> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z_][0-9a-zA-Z_]*" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="string"> + <xs:restriction base="xs:string"> + <xs:minLength value="1" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="_stringList"> + <xs:list itemType="string"/> + </xs:simpleType> + <xs:simpleType name="stringList"> + <xs:restriction base="_stringList"> + <xs:minLength value="1" /> + </xs:restriction> + </xs:simpleType> +</xs:schema> |