1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd">
4 * C-Pluff, a plug-in framework for C
5 * Copyright 2007 Johannes Lehtinen
7 * Permission is hereby granted, free of charge, to any person obtaining a
8 * copy of this software and associated documentation files (the "Software"),
9 * to deal in the Software without restriction, including without limitation
10 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 * and/or sell copies of the Software, and to permit persons to whom the
12 * Software is furnished to do so, subject to the following conditions:
14 * The above copyright notice and this permission notice shall be included
15 * in all copies or substantial portions of the Software.
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
26 <xs:element name="plugin">
29 <xs:element minOccurs="0" ref="backwards-compatibility"/>
30 <xs:element minOccurs="0" ref="requires"/>
31 <xs:element minOccurs="0" ref="runtime"/>
32 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension-point"/>
33 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
35 <xs:attribute name="id" type="xs:string" use="required"/>
36 <xs:attribute name="name" type="xs:string"/>
37 <xs:attribute name="version" type="xs:string"/>
38 <xs:attribute name="provider-name" type="xs:string"/>
41 <xs:element name="backwards-compatibility">
43 <xs:attribute name="abi" type="xs:string"/>
44 <xs:attribute name="api" type="xs:string"/>
47 <xs:element name="requires">
50 <xs:element minOccurs="0" ref="c-pluff"/>
51 <xs:element minOccurs="0" maxOccurs="unbounded" ref="import"/>
55 <xs:element name="c-pluff">
57 <xs:attribute name="version" type="xs:string" use="required"/>
60 <xs:element name="import">
62 <xs:attribute name="plugin" type="xs:string" use="required"/>
63 <xs:attribute name="version" type="xs:integer"/>
64 <xs:attribute name="optional" type="xs:boolean" default="false"/>
67 <xs:element name="runtime">
69 <xs:attribute name="library" type="xs:string" use="required"/>
70 <xs:attribute name="funcs" type="xs:string"/>
73 <xs:element name="extension-point">
75 <xs:attribute name="id" type="simpleIdentifier" use="required"/>
76 <xs:attribute name="name" type="xs:string"/>
77 <xs:attribute name="schema" type="xs:string"/>
80 <xs:element name="extension">
83 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
85 <xs:attribute name="point" type="xs:string" use="required"/>
86 <xs:attribute name="id" type="simpleIdentifier"/>
87 <xs:attribute name="name" type="xs:string"/>
90 <xs:simpleType name="simpleIdentifier">
91 <xs:restriction base="xs:string">
92 <xs:pattern value="[^.]+"/>