Updating download.html page with Git information
[pythoncad.git] / pythoncad.xsd
blob87b1928b05ae91e0f09247d08c84b4eaedc4d77d
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3 xmlns:image="http://www.pythoncad.org/"
4 targetNamespace="http://www.pythoncad.org/">
5 <xs:annotation>
6 <xs:documentation xml:lang="en">
7 Schema for PythonCAD drawing files
8 Author: Art Haas(ahaas@airmail.net)
9 </xs:documentation>
10 </xs:annotation>
11 <xs:element name="Image" type="image:Image">
12 <xs:sequence>
13 <xs:element name="Colors" type="image:Color" minOccurs="1" maxOccurs="unbounded"/>
14 <xs:element name="Layers" type="image:Layers" minOccurs="1" maxOccurs="unbounded"/>
15 </xs:sequence>
16 </xs:element>
17 <xs:simpleType name="colorValue">
18 <xs:restriction base="xs:nonNegativeInteger">
19 <xs:minInclusive value="0"/>
20 <xs:maxInclusive value="255"/>
21 </xs:restriction>
22 </xs:simpleType>
23 <xs:complexType name="Colors">
24 <xs:sequence>
25 <xs:element name="Color" minOccurs="1" maxOccurs="unbounded">
26 <xs:complexType>
27 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
28 <xs:attribute name="r" type="image:colorValue" use="required"/>
29 <xs:attribute name="g" type="image:colorValue" use="required"/>
30 <xs:attribute name="b" type="image:colorValue" use="required"/>
31 </xs:complexType>
32 </xs:element>
33 </xs:sequence>
34 <xs:unique name="color_id">
35 <xs:selector xpath="image:Color"/>
36 <xs:field xpath="@id"/>
37 </xs:unique>
38 </xs:complexType>
39 <xs:complexType name="Layers">
40 <xs:sequence>
41 <xs:element name="Layer" minOccurs="1" maxOccurs="unbounded">
42 <xs:complexType>
43 <xs:sequence>
44 <xs:element name="Points" type="image:Points" minOccurs="0" maxOccurs="1"/>
45 <xs:element name="Segments" type="image:Segments" minOccurs="0" maxOccurs="1"/>
46 <xs:element name="Circles" type="image:Circles" minOccurs="0" maxOccurs="1"/>
47 <xs:element name="Arcs" type="image:Arcs" minOccurs="0" maxOccurs="1"/>
48 <xs:element name="HCLines" type="image:HCLines" minOccurs="0" maxOccurs="1"/>
49 <xs:element name="VCLines" type="image:VCLines" minOccurs="0" maxOccurs="1"/>
50 <xs:element name="ACLines" type="image:ACLines" minOccurs="0" maxOccurs="1"/>
51 <xs:element name="CLines" type="image:CLines" minOccurs="0" maxOccurs="1"/>
52 <xs:element name="CCircles" type="image:CCircles" minOccurs="0" maxOccurs="1"/>
53 <xs:element name="LDims" type="image:LDim" minOccurs="0" maxOccurs="1"/>
54 <xs:element name="HDims" type="image:HDim" minOccurs="0" maxOccurs="1"/>
55 <xs:element name="VDims" type="image:VDim" minOccurs="0" maxOccurs="1"/>
56 <xs:element name="RDims" type="image:RDim" minOccurs="0" maxOccurs="1"/>
57 <xs:element name="ADims" type="image:ADim" minOccurs="0" maxOccurs="1"/>
59 </xs:sequence>
60 <xs:attribute name="name" type="xs:string" use="required"/>
61 <xs:attribute name="scale" type="xs:double" use="required"/>
62 <xs:attribute name="parent" type="xs:integer" use="optional"/>
63 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
64 </xs:complexType>
65 </xs:element>
66 </xs:sequence>
67 </xs:complexType>
68 <xs:complexType name="Segments">
69 <xs:sequence>
70 <xs:element name="Segment" minOccurs="1" maxOccurs="unbounded">
71 <xs:complexType>
72 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
73 <xs:attribute name="p1" type="xs:nonNegativeInteger" use="required"/>
74 <xs:attribute name="p2" type="xs:nonNegativeInteger" use="required"/>
75 <xs:attribute name="style" type="xs:nonNegativeInteger" use="required"/>
76 </xs:complexType>
77 </xs:element>
78 </xs:sequence>
79 <xs:unique name="seg_id">
80 <xs:selector xpath="image:Segment"/>
81 <xs:field xpath="@id"/>
82 </xs:unique>
83 </xs:complexType>
84 <xs:complexType name="CLines">
85 <xs:sequence>
86 <xs:element name="CLine" minOccurs="1" maxOccurs="unbounded">
87 <xs:complexType>
88 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
89 <xs:attribute name="p1" type="xs:nonNegativeInteger" use="required"/>
90 <xs:attribute name="p2" type="xs:nonNegativeInteger" use="required"/>
91 </xs:complexType>
92 </xs:element>
93 </xs:sequence>
94 <xs:unique name="cline_id">
95 <xs:selector xpath="image:CLine"/>
96 <xs:field xpath="@id"/>
97 </xs:unique>
98 </xs:complexType>
99 <xs:complexType name="HCLines">
100 <xs:sequence>
101 <xs:element name="HCLine" minOccurs="1" maxOccurs="unbounded">
102 <xs:complexType>
103 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
104 <xs:attribute name="location" type="xs:nonNegativeInteger" use="required"/>
105 </xs:complexType>
106 </xs:element>
107 </xs:sequence>
108 <xs:unique name="hcline_id">
109 <xs:selector xpath="image:HCLine"/>
110 <xs:field xpath="@id"/>
111 </xs:unique>
112 </xs:complexType>
113 <xs:complexType name="VCLines">
114 <xs:sequence>
115 <xs:element name="VCLine" minOccurs="1" maxOccurs="unbounded">
116 <xs:complexType>
117 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
118 <xs:attribute name="location" type="xs:nonNegativeInteger" use="required"/>
119 </xs:complexType>
120 </xs:element>
121 </xs:sequence>
122 <xs:unique name="vcline_id">
123 <xs:selector xpath="image:VCLine"/>
124 <xs:field xpath="@id"/>
125 </xs:unique>
126 </xs:complexType>
127 <xs:complexType name="ACLines">
128 <xs:sequence>
129 <xs:element name="ACLine" minOccurs="1" maxOccurs="unbounded">
130 <xs:complexType>
131 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
132 <xs:attribute name="location" type="xs:nonNegativeInteger" use="required"/>
133 <xs:attribute name="angle" type="xs:double" use="required"/>
134 </xs:complexType>
135 </xs:element>
136 </xs:sequence>
137 <xs:unique name="acline_id">
138 <xs:selector xpath="image:ACLine"/>
139 <xs:field xpath="@id"/>
140 </xs:unique>
141 </xs:complexType>
142 <xs:complexType name="Circles">
143 <xs:sequence>
144 <xs:element name="Circle" minOccurs="1" maxOccurs="unbounded">
145 <xs:complexType>
146 <xs:attribute name="cp" type="xs:nonNegativeInteger" use="required"/>
147 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
148 <xs:attribute name="r" type="xs:double" use="required"/>
149 <xs:attribute name="style" type="xs:nonNegativeInteger" use="required"/>
150 </xs:complexType>
151 </xs:element>
152 </xs:sequence>
153 <xs:unique name="cid">
154 <xs:selector xpath="image:Circle"/>
155 <xs:field xpath="@id"/>
156 </xs:unique>
157 </xs:complexType>
158 <xs:complexType name="Arcs">
159 <xs:sequence>
160 <xs:element name="Arc" minOccurs="1" maxOccurs="unbounded">
161 <xs:complexType>
162 <xs:attribute name="cp" type="xs:nonNegativeInteger" use="required"/>
163 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
164 <xs:attribute name="r" type="xs:double" use="required"/>
165 <xs:attribute name="ea" type="xs:double" use="required"/>
166 <xs:attribute name="sa" type="xs:double" use="required"/>
167 <xs:attribute name="style" type="xs:nonNegativeInteger" use="required"/>
168 </xs:complexType>
169 </xs:element>
170 </xs:sequence>
171 <xs:unique name="arc_id">
172 <xs:selector xpath="image:Arc"/>
173 <xs:field xpath="@id"/>
174 </xs:unique>
175 </xs:complexType>
176 <xs:complexType name="CCircles">
177 <xs:sequence>
178 <xs:element name="CCircle" minOccurs="1" maxOccurs="unbounded">
179 <xs:complexType>
180 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
181 <xs:attribute name="cp" type="xs:nonNegativeInteger" use="required"/>
182 <xs:attribute name="r" type="xs:double" use="required"/>
183 </xs:complexType>
184 </xs:element>
185 </xs:sequence>
186 <xs:unique name="ccid">
187 <xs:selector xpath="image:CCircle"/>
188 <xs:field xpath="@id"/>
189 </xs:unique>
190 </xs:complexType>
191 <xs:complexType name="Points">
192 <xs:sequence>
193 <xs:element name="Point" minOccurs="1" maxOccurs="unbounded">
194 <xs:complexType>
195 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
196 <xs:attribute name="x" type="xs:double" use="required"/>
197 <xs:attribute name="y" type="xs:double" use="required"/>
198 </xs:complexType>
199 </xs:element>
200 </xs:sequence>
201 <xs:unique name="pid">
202 <xs:selector xpath="image:Point"/>
203 <xs:field xpath="@id"/>
204 </xs:unique>
205 </xs:complexType>
206 <xs:complexType name="Chamfers">
207 <xs:sequence>
208 <xs:element name="Chamfer" minOccurs="1" maxOccurs="unbounded">
209 <xs:complexType>
210 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
211 <xs:attribute name="length" type="xs:double" use="required"/>
212 <xs:attribute name="s1" type="xs:nonNegativeInteger" use="required"/>
213 <xs:attribute name="s2" type="xs:nonNegativeInteger" use="required"/>
214 <xs:attribute name="style" type="xs:nonNegativeInteger" use="required"/>
215 </xs:complexType>
216 </xs:element>
217 </xs:sequence>
218 <xs:unique name="chamfer_id">
219 <xs:selector xpath="image:Chamfer"/>
220 <xs:field xpath="@id"/>
221 </xs:unique>
222 </xs:complexType>
223 <xs:complexType name="Fillets">
224 <xs:sequence>
225 <xs:element name="Fillet" minOccurs="1" maxOccurs="unbounded">
226 <xs:complexType>
227 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
228 <xs:attribute name="radius" type="xs:double" use="required"/>
229 <xs:attribute name="s1" type="xs:nonNegativeInteger" use="required"/>
230 <xs:attribute name="s2" type="xs:nonNegativeInteger" use="required"/>
231 <xs:attribute name="style" type="xs:nonNegativeInteger" use="required"/>
232 </xs:complexType>
233 </xs:element>
234 </xs:sequence>
235 <xs:unique name="fillet_id">
236 <xs:selector xpath="image:Fillet"/>
237 <xs:field xpath="@id"/>
238 </xs:unique>
239 </xs:complexType>
240 <xs:complexType name="LDims">
241 <xs:sequence>
242 <xs:element name="LDim" minOccurs="1" maxOccurs="unbounded">
243 <xs:complexType>
244 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
245 <xs:attribute name="ds" type="xs:nonNegativeInteger" use="required"/>
246 <xs:attribute name="l1" type="xs:nonNegativeInteger" use="required"/>
247 <xs:attribute name="p1" type="xs:nonNegativeInteger" use="required"/>
248 <xs:attribute name="l2" type="xs:nonNegativeInteger" use="required"/>
249 <xs:attribute name="p2" type="xs:nonNegativeInteger" use="required"/>
250 <xs:attribute name="x" type="xs:double" use="required"/>
251 <xs:attribute name="y" type="xs:double" use="required"/>
252 </xs:complexType>
253 </xs:element>
254 </xs:sequence>
255 <xs:unique name="ldim_id">
256 <xs:selector xpath="image:LDim"/>
257 <xs:field xpath="@id"/>
258 </xs:unique>
259 </xs:complexType>
260 <xs:complexType name="HDims">
261 <xs:sequence>
262 <xs:element name="HDim" minOccurs="1" maxOccurs="unbounded">
263 <xs:complexType>
264 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
265 <xs:attribute name="ds" type="xs:nonNegativeInteger" use="required"/>
266 <xs:attribute name="l1" type="xs:nonNegativeInteger" use="required"/>
267 <xs:attribute name="p1" type="xs:nonNegativeInteger" use="required"/>
268 <xs:attribute name="l2" type="xs:nonNegativeInteger" use="required"/>
269 <xs:attribute name="p2" type="xs:nonNegativeInteger" use="required"/>
270 <xs:attribute name="x" type="xs:double" use="required"/>
271 <xs:attribute name="y" type="xs:double" use="required"/>
272 </xs:complexType>
273 </xs:element>
274 </xs:sequence>
275 <xs:unique name="hdim_id">
276 <xs:selector xpath="image:HDim"/>
277 <xs:field xpath="@id"/>
278 </xs:unique>
279 </xs:complexType>
280 <xs:complexType name="VDims">
281 <xs:sequence>
282 <xs:element name="VDim" minOccurs="1" maxOccurs="unbounded">
283 <xs:complexType>
284 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
285 <xs:attribute name="ds" type="xs:nonNegativeInteger" use="required"/>
286 <xs:attribute name="l1" type="xs:nonNegativeInteger" use="required"/>
287 <xs:attribute name="p1" type="xs:nonNegativeInteger" use="required"/>
288 <xs:attribute name="l2" type="xs:nonNegativeInteger" use="required"/>
289 <xs:attribute name="p2" type="xs:nonNegativeInteger" use="required"/>
290 <xs:attribute name="x" type="xs:double" use="required"/>
291 <xs:attribute name="y" type="xs:double" use="required"/>
292 </xs:complexType>
293 </xs:element>
294 </xs:sequence>
295 <xs:unique name="vdim_id">
296 <xs:selector xpath="image:VDim"/>
297 <xs:field xpath="@id"/>
298 </xs:unique>
299 </xs:complexType>
300 <xs:complexType name="RDims">
301 <xs:sequence>
302 <xs:element name="RDim" minOccurs="1" maxOccurs="unbounded">
303 <xs:complexType>
304 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
305 <xs:attribute name="ds" type="xs:nonNegativeInteger" use="required"/>
306 <xs:attribute name="l" type="xs:nonNegativeInteger" use="required"/>
307 <xs:attribute name="c" type="xs:nonNegativeInteger" use="required"/>
308 <xs:attribute name="x" type="xs:double" use="required"/>
309 <xs:attribute name="y" type="xs:double" use="required"/>
310 </xs:complexType>
311 </xs:element>
312 </xs:sequence>
313 <xs:unique name="rdim_id">
314 <xs:selector xpath="image:RDim"/>
315 <xs:field xpath="@id"/>
316 </xs:unique>
317 </xs:complexType>
318 <xs:complexType name="ADims">
319 <xs:sequence>
320 <xs:element name="ADim" minOccurs="1" maxOccurs="unbounded">
321 <xs:complexType>
322 <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
323 <xs:attribute name="ds" type="xs:nonNegativeInteger" use="required"/>
324 <xs:attribute name="l1" type="xs:nonNegativeInteger" use="required"/>
325 <xs:attribute name="p1" type="xs:nonNegativeInteger" use="required"/>
326 <xs:attribute name="l2" type="xs:nonNegativeInteger" use="required"/>
327 <xs:attribute name="p2" type="xs:nonNegativeInteger" use="required"/>
328 <xs:attribute name="l3" type="xs:nonNegativeInteger" use="required"/>
329 <xs:attribute name="p3" type="xs:nonNegativeInteger" use="required"/>
330 <xs:attribute name="x" type="xs:double" use="required"/>
331 <xs:attribute name="y" type="xs:double" use="required"/>
332 </xs:complexType>
333 </xs:element>
334 </xs:sequence>
335 <xs:unique name="adim_id">
336 <xs:selector xpath="image:ADim"/>
337 <xs:field xpath="@id"/>
338 </xs:unique>
339 </xs:complexType>
340 </xs:schema>