Salome HOME
updated copyright message
[modules/yacs.git] / src / yacsloader / schema.xsd
1 <?xml version="1.0"?>
2 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
3             xmlns:xse="http://www.codesynthesis.com/xmlns/xml-schema-extension"
4             xmlns:sup="http://www.salome.org/supervision/graph"
5             targetNamespace="http://www.salome.org/supervision/graph">
6
7   <xsd:complexType name="PresentationType">
8     <xsd:attribute name="name" type="xsd:string" use="required"/>
9     <xsd:attribute name="x" type="xsd:string" use="required"/>
10     <xsd:attribute name="y" type="xsd:string" use="required"/>
11     <xsd:attribute name="z" type="xsd:string" use="required"/>
12     <xsd:attribute name="width" type="xsd:string" use="required"/>
13     <xsd:attribute name="height" type="xsd:string" use="required"/>
14   </xsd:complexType>
15
16   <xsd:complexType name="TypeType">
17     <xsd:attribute name="name" type="xsd:string" use="required"/>
18     <xsd:attribute name="kind" type="xsd:string" use="required"/>
19   </xsd:complexType>
20
21   <xsd:complexType name="SequenceType">
22     <xsd:attribute name="name" type="xsd:string" use="required"/>
23     <xsd:attribute name="content" type="xsd:string" use="required"/>
24   </xsd:complexType>
25
26   <xsd:complexType name="ObjrefType">
27     <xsd:sequence>
28       <xsd:element name="base" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
29     </xsd:sequence>
30     <xsd:attribute name="name" type="xsd:string" use="required"/>
31     <xsd:attribute name="id" type="xsd:string" />
32   </xsd:complexType>
33
34   <xsd:complexType name="PropertyType">
35     <xsd:attribute name="name" type="xsd:string" use="required"/>
36     <xsd:attribute name="value" type="xsd:string" use="required"/>
37   </xsd:complexType>
38
39   <xsd:complexType name="PropertiesType">
40     <xsd:sequence>
41       <xsd:element name="property" type="sup:PropertyType" minOccurs="0" maxOccurs="unbounded"/>
42     </xsd:sequence>
43   </xsd:complexType>
44
45   <xsd:complexType name="InPortType">
46     <xsd:sequence>
47       <xsd:element name="properties" type="sup:PropertiesType" minOccurs="0"/>
48     </xsd:sequence>
49     <xsd:attribute name="name" type="xsd:string" use="required"/>
50     <xsd:attribute name="type" type="xsd:string" use="required"/>
51   </xsd:complexType>
52
53   <xsd:complexType name="OutPortType">
54     <xsd:sequence>
55       <xsd:element name="properties" type="sup:PropertiesType" minOccurs="0"/>
56     </xsd:sequence>
57     <xsd:attribute name="name" type="xsd:string" use="required"/>
58     <xsd:attribute name="type" type="xsd:string" use="required"/>
59   </xsd:complexType>
60
61   <xsd:simpleType name="Kind">
62     <xsd:restriction base="xsd:string">
63       <xsd:enumeration value="function"/>
64       <xsd:enumeration value="script"/>
65     </xsd:restriction>
66   </xsd:simpleType>
67
68   <xsd:complexType name="CodeType">
69     <xsd:sequence>
70      <xsd:element name="code" type="xsd:string" maxOccurs="unbounded" />
71     </xsd:sequence>
72   </xsd:complexType>
73
74   <xsd:complexType name="FuncType">
75     <xsd:sequence>
76      <xsd:element name="code" type="xsd:string" maxOccurs="unbounded" />
77     </xsd:sequence>
78     <xsd:attribute name="name" type="xsd:string" use="required"/>
79   </xsd:complexType>
80
81   <xsd:complexType name="NodeType">
82     <xsd:attribute name="name" type="xsd:string" use="required"/>
83     <xsd:attribute name="type" type="xsd:string" use="required"/>
84   </xsd:complexType>
85
86   <xsd:complexType name="InlineNodeType">
87     <xsd:sequence>
88       <xsd:element name="kind" type="xsd:string" minOccurs="0" />
89       <xsd:choice >
90         <xsd:element name="script" type="sup:CodeType" />
91         <xsd:element name="function" type="sup:FuncType" />
92       </xsd:choice>
93       <xsd:element name="inport" type="sup:InPortType" minOccurs="0" maxOccurs="unbounded" />
94       <xsd:element name="outport" type="sup:OutPortType" minOccurs="0" maxOccurs="unbounded" />
95     </xsd:sequence>
96     <xsd:attribute name="name" type="xsd:string" use="required"/>
97     <xsd:attribute name="state" type="xsd:string" />
98   </xsd:complexType>
99
100   <xsd:complexType name="ServiceNodeType">
101     <xsd:sequence>
102       <xsd:element name="kind" type="xsd:string" minOccurs="0" />
103       <xsd:choice >
104         <xsd:element name="ref" type="xsd:string"/>
105         <xsd:element name="component" type="xsd:string"/>
106         <xsd:element name="node" type="xsd:string"/>
107       </xsd:choice>
108       <xsd:element name="method" type="xsd:string"/>
109       <xsd:element name="inport" type="sup:InPortType" minOccurs="0" maxOccurs="unbounded" />
110       <xsd:element name="outport" type="sup:OutPortType" minOccurs="0" maxOccurs="unbounded" />
111       <xsd:element name="instream" type="sup:InPortType" minOccurs="0" maxOccurs="unbounded" />
112       <xsd:element name="outstream" type="sup:OutPortType" minOccurs="0" maxOccurs="unbounded" />
113     </xsd:sequence>
114     <xsd:attribute name="name" type="xsd:string" use="required"/>
115     <xsd:attribute name="state" type="xsd:string" />
116   </xsd:complexType>
117
118   <xsd:complexType name="LinkType">
119     <xsd:all>
120       <xsd:element name="fromnode" type="xsd:string" />
121       <xsd:element name="fromport" type="xsd:string" />
122       <xsd:element name="tonode" type="xsd:string" />
123       <xsd:element name="toport" type="xsd:string" />
124     </xsd:all>
125   </xsd:complexType>
126
127   <xsd:complexType name="ControlType">
128     <xsd:all>
129       <xsd:element name="fromnode" type="xsd:string" />
130       <xsd:element name="tonode" type="xsd:string" />
131     </xsd:all>
132   </xsd:complexType>
133
134   <xsd:complexType name="StreamType">
135     <xsd:all>
136       <xsd:element name="fromnode" type="xsd:string" />
137       <xsd:element name="fromport" type="xsd:string" />
138       <xsd:element name="tonode" type="xsd:string" />
139       <xsd:element name="toport" type="xsd:string" />
140     </xsd:all>
141   </xsd:complexType>
142
143   <xsd:complexType name="ValueType">
144     <xsd:choice>
145       <xsd:element name="int"           type="xsd:int"/>
146       <xsd:element name="double"        type="xsd:decimal"/>
147       <xsd:element name="string"        type="xsd:string"/>
148       <xsd:element name="boolean"        type="xsd:boolean"/>
149       <xsd:element name="objref"        type="xsd:string"/>
150       <xsd:element name="array"         type="sup:ArrayType"/>
151     </xsd:choice>
152   </xsd:complexType>
153
154   <xsd:complexType name="ArrayType">
155     <xsd:sequence>
156       <xsd:element name="data">
157         <xsd:complexType>
158           <xsd:sequence>
159             <xsd:element name="value"  type="sup:ValueType"
160                          minOccurs="0" maxOccurs="unbounded"/>
161           </xsd:sequence>
162         </xsd:complexType>
163       </xsd:element>
164     </xsd:sequence>
165   </xsd:complexType>
166
167   <xsd:complexType name="ParameterType">
168     <xsd:all>
169       <xsd:element name="tonode" type="xsd:string" />
170       <xsd:element name="toport" type="xsd:string" />
171       <xsd:element name="value" type="sup:ValueType" />
172     </xsd:all>
173   </xsd:complexType>
174
175   <xsd:complexType name="DefaultCaseType">
176     <xsd:sequence>
177       <xsd:choice >
178        <xsd:element name="inline" type="sup:InlineNodeType" />
179        <xsd:element name="service" type="sup:ServiceNodeType" />
180        <xsd:element name="forloop" type="sup:ForLoopType" />
181        <xsd:element name="while" type="sup:WhileType" />
182        <xsd:element name="switch" type="sup:SwitchType" />
183        <xsd:element name="bloc" type="sup:BlocType" />
184       </xsd:choice>
185     </xsd:sequence>
186   </xsd:complexType>
187
188   <xsd:complexType name="CaseType">
189     <xsd:complexContent>
190       <xsd:extension base="sup:DefaultCaseType">
191         <xsd:attribute name="id" type="xsd:int" />
192       </xsd:extension>
193     </xsd:complexContent>
194   </xsd:complexType>
195
196   <xsd:complexType name="SwitchType">
197     <xsd:sequence>
198       <xsd:element name="case" type="sup:CaseType" minOccurs="0" maxOccurs="unbounded" />
199       <xsd:element name="default" type="sup:DefaultCaseType" minOccurs="0" />
200     </xsd:sequence>
201     <xsd:attribute name="name" type="xsd:string" use="required"/>
202     <xsd:attribute name="state" type="xsd:string" />
203     <xsd:attribute name="select" type="xsd:int" />
204   </xsd:complexType>
205
206   <xsd:complexType name="LoopType">
207     <xsd:sequence>
208       <xsd:choice >
209        <xsd:element name="inline" type="sup:InlineNodeType" />
210        <xsd:element name="service" type="sup:ServiceNodeType" />
211        <xsd:element name="forloop" type="sup:ForLoopType" />
212        <xsd:element name="while" type="sup:WhileType" />
213        <xsd:element name="switch" type="sup:SwitchType" />
214        <xsd:element name="bloc" type="sup:BlocType" />
215       </xsd:choice>
216     </xsd:sequence>
217     <xsd:attribute name="name" type="xsd:string" use="required"/>
218     <xsd:attribute name="state" type="xsd:string" />
219   </xsd:complexType>
220
221   <xsd:complexType name="ForLoopType">
222     <xsd:complexContent>
223       <xsd:extension base="sup:LoopType">
224         <xsd:attribute name="nsteps" type="xsd:int" />
225       </xsd:extension>
226     </xsd:complexContent>
227   </xsd:complexType>
228
229   <xsd:complexType name="WhileType">
230     <xsd:complexContent>
231       <xsd:extension base="sup:LoopType">
232       </xsd:extension>
233     </xsd:complexContent>
234   </xsd:complexType>
235
236   <xsd:complexType name="BlocType">
237     <xsd:sequence>
238       <xsd:element name="inline" type="sup:InlineNodeType" minOccurs="0" maxOccurs="unbounded"/>
239       <xsd:element name="service" type="sup:ServiceNodeType" minOccurs="0" maxOccurs="unbounded"/>
240       <xsd:element name="forloop" type="sup:ForLoopType" minOccurs="0" maxOccurs="unbounded"/>
241       <xsd:element name="while" type="sup:WhileType" minOccurs="0" maxOccurs="unbounded"/>
242       <xsd:element name="switch" type="sup:SwitchType" minOccurs="0" maxOccurs="unbounded"/>
243       <xsd:element name="bloc" type="sup:BlocType" minOccurs="0" maxOccurs="unbounded"/>
244       <xsd:element name="node" type="sup:NodeType" minOccurs="0" maxOccurs="unbounded"/>
245       <xsd:element name="control" type="sup:ControlType" minOccurs="0" maxOccurs="unbounded"/>
246       <xsd:element name="datalink" type="sup:LinkType" minOccurs="0" maxOccurs="unbounded"/>
247       <xsd:element name="parameter" type="sup:ParameterType" minOccurs="0" maxOccurs="unbounded"/>
248       <xsd:element name="stream" type="sup:StreamType" minOccurs="0" maxOccurs="unbounded"/>
249     </xsd:sequence>
250     <xsd:attribute name="name" type="xsd:string" use="required"/>
251     <xsd:attribute name="state" type="xsd:string" />
252   </xsd:complexType>
253
254   <xsd:complexType name="ProcType">
255     <xsd:sequence>
256       <xsd:element name="property" type="sup:PropertyType" minOccurs="0" maxOccurs="unbounded"/>
257       <xsd:choice minOccurs="0" maxOccurs="unbounded">
258         <xsd:element name="type" type="sup:TypeType" />
259         <xsd:element name="sequence" type="sup:SequenceType" />
260         <xsd:element name="objref" type="sup:ObjrefType" />
261       </xsd:choice>
262       <xsd:element name="inline" type="sup:InlineNodeType" minOccurs="0" maxOccurs="unbounded"/>
263       <xsd:element name="service" type="sup:ServiceNodeType" minOccurs="0" maxOccurs="unbounded"/>
264       <xsd:element name="forloop" type="sup:ForLoopType" minOccurs="0" maxOccurs="unbounded"/>
265       <xsd:element name="while" type="sup:WhileType" minOccurs="0" maxOccurs="unbounded"/>
266       <xsd:element name="switch" type="sup:SwitchType" minOccurs="0" maxOccurs="unbounded"/>
267       <xsd:element name="bloc" type="sup:BlocType" minOccurs="0" maxOccurs="unbounded"/>
268       <xsd:element name="node" type="sup:NodeType" minOccurs="0" maxOccurs="unbounded"/>
269       <xsd:element name="control" type="sup:ControlType" minOccurs="0" maxOccurs="unbounded"/>
270       <xsd:element name="datalink" type="sup:LinkType" minOccurs="0" maxOccurs="unbounded"/>
271       <xsd:element name="parameter" type="sup:ParameterType" minOccurs="0" maxOccurs="unbounded"/>
272       <xsd:element name="stream" type="sup:StreamType" minOccurs="0" maxOccurs="unbounded"/>
273       <xsd:element name="presentation" type="sup:PresentationType" minOccurs="0" maxOccurs="unbounded"/>
274     </xsd:sequence>
275   </xsd:complexType>
276
277   <xsd:element name="proc" type="sup:ProcType"/>
278
279 </xsd:schema>
280
281