root/trunk/xml/logtalk.xsd

Revision 4662, 7.6 KB (checked in by pmoura, 6 days ago)

Updated copyright notice.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?xml version="1.0" encoding="utf-8"?>
2<xsd:schema
3    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4    version="1.3">
5
6<xsd:annotation>
7    <xsd:documentation>
8    XML Schema for Logtalk XML documentation files.
9    </xsd:documentation>
10</xsd:annotation>
11 
12<!--
13================================================================
14Logtalk - Open source object-oriented logic programming language
15Release 2.35.0
16
17Copyright (c) 1998-2009 Paulo Moura.        All Rights Reserved.
18Logtalk is free software.  You can redistribute it and/or modify
19it under the terms of the "Artistic License 2.0" as published by
20The Perl Foundation. Consult the "LICENSE.txt" file for details.
21================================================================
22-->
23
24
25<xsd:element name="logtalk" type="logtalk"/>
26
27
28<xsd:complexType name="logtalk">
29    <xsd:sequence>
30        <xsd:element name="entity"      type="entity"/>
31        <xsd:element name="relations"   type="relations"/>
32        <xsd:element name="predicates"  type="predicates"/>
33        <xsd:element name="remarks"     type="remarks"/>
34    </xsd:sequence>
35</xsd:complexType>
36
37
38<xsd:complexType name="entity">
39    <xsd:sequence>
40        <xsd:element name="name"        type="xsd:string"/>
41        <xsd:element name="type"        type="type"/>
42        <xsd:element name="compilation" type="compilation"/>
43        <xsd:element name="comment"     type="xsd:string"   minOccurs="0"/>
44        <xsd:choice minOccurs="0">
45            <xsd:element name="parnames"    type="xsd:string"/>
46            <xsd:element name="parameters"  type="parameters"/>
47        </xsd:choice>
48        <xsd:element name="author"      type="xsd:string"   minOccurs="0"/>
49        <xsd:element name="version"     type="xsd:string"   minOccurs="0"/>
50        <xsd:element name="date"        type="xsd:string"   minOccurs="0"/>
51        <xsd:element name="copyright"   type="xsd:string"   minOccurs="0"/>
52        <xsd:element name="license"     type="xsd:string"   minOccurs="0"/>
53        <xsd:element name="info"        type="info"         minOccurs="0" maxOccurs="unbounded"/>
54    </xsd:sequence>
55</xsd:complexType>
56
57
58<xsd:simpleType name="type">
59    <xsd:restriction base="xsd:string">
60        <xsd:enumeration value="category"/>
61        <xsd:enumeration value="object"/>
62        <xsd:enumeration value="protocol"/>
63    </xsd:restriction>
64</xsd:simpleType>
65
66
67<xsd:simpleType name="compilation">
68    <xsd:restriction base="xsd:string">
69        <xsd:enumeration value="static"/>
70        <xsd:enumeration value="dynamic"/>
71    </xsd:restriction>
72</xsd:simpleType>
73
74
75<xsd:complexType name="parameters">
76    <xsd:sequence>
77        <xsd:element name="parameter"   type="parameter"    maxOccurs="unbounded"/>
78    </xsd:sequence>
79</xsd:complexType>
80
81
82<xsd:complexType name="parameter">
83    <xsd:sequence>
84        <xsd:element name="name"        type="xsd:string"/>
85        <xsd:element name="description" type="xsd:string"/>
86    </xsd:sequence>
87</xsd:complexType>
88
89
90<xsd:complexType name="info">
91    <xsd:sequence>
92        <xsd:element name="key"     type="xsd:string"/>
93        <xsd:element name="value"   type="xsd:string"/>
94    </xsd:sequence>
95</xsd:complexType>
96
97
98<xsd:complexType name="relations">
99    <xsd:sequence>
100        <xsd:element name="implements"      type="relation"     minOccurs="0" maxOccurs="unbounded"/>
101        <xsd:element name="imports"         type="relation"     minOccurs="0" maxOccurs="unbounded"/>
102        <xsd:element name="extends"         type="relation"     minOccurs="0" maxOccurs="unbounded"/>
103        <xsd:element name="instantiates"    type="relation"     minOccurs="0" maxOccurs="unbounded"/>
104        <xsd:element name="specializes"     type="relation"     minOccurs="0" maxOccurs="unbounded"/>
105        <xsd:element name="uses"            type="docrelation"  minOccurs="0" maxOccurs="unbounded"/>
106        <xsd:element name="calls"           type="docrelation"  minOccurs="0" maxOccurs="unbounded"/>
107    </xsd:sequence>
108</xsd:complexType>
109
110
111<xsd:complexType name="relation">
112    <xsd:sequence>
113        <xsd:element name="name"    type="xsd:string"/>
114        <xsd:element name="scope"   type="scope"/>
115        <xsd:element name="file"    type="xsd:string"/>
116    </xsd:sequence>
117</xsd:complexType>
118
119
120<xsd:complexType name="docrelation">
121    <xsd:sequence>
122        <xsd:element name="name"    type="xsd:string"/>
123        <xsd:element name="file"    type="xsd:string"/>
124    </xsd:sequence>
125</xsd:complexType>
126
127
128<xsd:simpleType name="scope">
129    <xsd:restriction base="xsd:string">
130        <xsd:enumeration value="public"/>
131        <xsd:enumeration value="protected"/>
132        <xsd:enumeration value="private"/>
133    </xsd:restriction>
134</xsd:simpleType>
135
136
137<xsd:complexType name="predicates">
138    <xsd:sequence>
139        <xsd:element name="public"      type="public"/>
140        <xsd:element name="protected"   type="protected"/>
141        <xsd:element name="private"     type="private"/>
142    </xsd:sequence>
143</xsd:complexType>
144
145
146<xsd:complexType name="public">
147    <xsd:sequence>
148        <xsd:element name="predicate"   type="predicate"    minOccurs="0" maxOccurs="unbounded"/>
149    </xsd:sequence>
150</xsd:complexType>
151
152
153<xsd:complexType name="protected">
154    <xsd:sequence>
155        <xsd:element name="predicate"   type="predicate"    minOccurs="0" maxOccurs="unbounded"/>
156    </xsd:sequence>
157</xsd:complexType>
158
159
160<xsd:complexType name="private">
161    <xsd:sequence>
162        <xsd:element name="predicate"   type="predicate"    minOccurs="0" maxOccurs="unbounded"/>
163    </xsd:sequence>
164</xsd:complexType>
165
166
167<xsd:complexType name="predicate">
168    <xsd:sequence>
169        <xsd:element name="name"        type="xsd:string"/>
170        <xsd:element name="scope"       type="scope"/>
171        <xsd:element name="compilation" type="compilation"/>
172        <xsd:element name="meta"        type="xsd:string"       minOccurs="0"/>
173        <xsd:element name="mode"        type="mode"             minOccurs="0" maxOccurs="unbounded"/>
174        <xsd:element name="comment"     type="xsd:string"       minOccurs="0"/>
175        <xsd:element name="template"    type="xsd:string"       minOccurs="0" maxOccurs="unbounded"/>
176        <xsd:choice minOccurs="0">
177            <xsd:element name="argnames"    type="xsd:string"/>
178            <xsd:element name="arguments"   type="arguments"/>
179        </xsd:choice>
180        <xsd:element name="exceptions"  type="exceptions"       minOccurs="0"/>
181        <xsd:element name="info"        type="info"             minOccurs="0"/>
182        <xsd:element name="examples"    type="examples"         minOccurs="0"/>
183    </xsd:sequence>
184</xsd:complexType>
185
186
187<xsd:complexType name="mode">
188    <xsd:sequence>
189        <xsd:element name="template"    type="xsd:string"/>
190        <xsd:element name="solutions"   type="solutions"/>
191    </xsd:sequence>
192</xsd:complexType>
193
194
195<xsd:simpleType name="solutions">
196    <xsd:restriction base="xsd:string">
197        <xsd:enumeration value="zero"/>
198        <xsd:enumeration value="zero_or_one"/>
199        <xsd:enumeration value="zero_or_more"/>
200        <xsd:enumeration value="one"/>
201        <xsd:enumeration value="one_or_more"/>
202        <xsd:enumeration value="error"/>
203    </xsd:restriction>
204</xsd:simpleType>
205
206
207<xsd:complexType name="arguments">
208    <xsd:sequence>
209        <xsd:element name="argument"    type="argument" maxOccurs="unbounded"/>
210    </xsd:sequence>
211</xsd:complexType>
212
213
214<xsd:complexType name="argument">
215    <xsd:sequence>
216        <xsd:element name="name"        type="xsd:string"/>
217        <xsd:element name="description" type="xsd:string"/>
218    </xsd:sequence>
219</xsd:complexType>
220
221
222<xsd:complexType name="exceptions">
223    <xsd:sequence>
224        <xsd:element name="exception"   type="exception"    maxOccurs="unbounded"/>
225    </xsd:sequence>
226</xsd:complexType>
227
228
229<xsd:complexType name="exception">
230    <xsd:sequence>
231        <xsd:element name="condition"   type="xsd:string"/>
232        <xsd:element name="term"        type="xsd:string"/>
233    </xsd:sequence>
234</xsd:complexType>
235
236
237<xsd:complexType name="examples">
238    <xsd:sequence>
239        <xsd:element name="example" type="example"  minOccurs="0"   maxOccurs="unbounded"/>
240    </xsd:sequence>
241</xsd:complexType>
242
243
244<xsd:complexType name="example">
245    <xsd:sequence>
246        <xsd:element name="description" type="xsd:string"/>
247        <xsd:element name="call"        type="xsd:string"/>
248        <xsd:element name="bindings"    type="xsd:string"/>
249    </xsd:sequence>
250</xsd:complexType>
251
252
253<xsd:complexType name="remarks">
254    <xsd:sequence>
255        <xsd:element name="remark"  type="remark"   minOccurs="0"   maxOccurs="unbounded"/>
256    </xsd:sequence>
257</xsd:complexType>
258
259
260<xsd:complexType name="remark">
261    <xsd:sequence>
262        <xsd:element name="topic"   type="xsd:string"/>
263        <xsd:element name="text"    type="xsd:string"/>
264    </xsd:sequence>
265</xsd:complexType>
266
267
268</xsd:schema>
Note: See TracBrowser for help on using the browser.