dol: initial dol commit
[jump.git] / dol / examples / schema / mapping.xsd
1 <?xml version="1.0"?>
2 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:map="http://www.tik.ee.ethz.ch/~shapes/schema/MAPPING" targetNamespace="http://www.tik.ee.ethz.ch/~shapes/schema/MAPPING" elementFormDefault="qualified">
3   <xsd:include schemaLocation="generics.xsd"/>
4
5   <xsd:element name="mapping">
6     <xsd:complexType>
7       <xsd:sequence minOccurs="0" maxOccurs="unbounded">
8         <xsd:element name="variable" type="map:variable" minOccurs="0" maxOccurs="unbounded"/>
9         <xsd:element name="function" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
10         <xsd:element name="iterator" type="map:generaliterator" minOccurs="0" maxOccurs="unbounded"/>
11         <xsd:element name="binding" type="map:binding" minOccurs="0" maxOccurs="unbounded"/>
12         <xsd:element name="schedule" type="map:schedule" minOccurs="0" maxOccurs="unbounded"/>
13       </xsd:sequence>
14       <xsd:attribute name="name" type="xsd:string" use="required"/>
15     </xsd:complexType>
16   </xsd:element>
17
18   <xsd:complexType name="binding">
19     <xsd:sequence>
20       <xsd:element name="append" type="map:append" minOccurs="0" maxOccurs="unbounded"/>
21     </xsd:sequence>
22     <xsd:attribute name="name" type="xsd:string" use="required"/>
23   </xsd:complexType>
24   
25   <xsd:complexType name="computation">
26     <xsd:complexContent>
27       <xsd:extension base="map:binding">
28         <xsd:sequence>
29           <xsd:element name="process" type="map:resource" minOccurs="1" maxOccurs="1"/>
30           <xsd:element name="processor" type="map:resource" minOccurs="1" maxOccurs="1"/>
31         </xsd:sequence>
32       </xsd:extension>
33     </xsd:complexContent>
34   </xsd:complexType>
35
36   <xsd:complexType name="communication">
37     <xsd:complexContent>
38       <xsd:extension base="map:binding">
39         <xsd:sequence>
40           <xsd:element name="sw_channel" type="map:resource" minOccurs="1" maxOccurs="1"/>
41           <xsd:element name="writepath" type="map:resource" minOccurs="1" maxOccurs="1"/>
42           <xsd:element name="readpath" type="map:resource" minOccurs="1" maxOccurs="1"/>
43         </xsd:sequence>
44       </xsd:extension>
45     </xsd:complexContent>
46   </xsd:complexType>
47
48   <xsd:complexType name="schedule">
49     <xsd:sequence>
50       <xsd:element name="append" type="map:append" minOccurs="0" maxOccurs="unbounded"/>
51       <xsd:element name="resource" type="map:resource"/>
52       <xsd:element name="origin" type="map:configuredresource" minOccurs="0" maxOccurs="unbounded"/>
53       <xsd:element name="configuration" type="map:configuration" minOccurs="0" maxOccurs="unbounded"/>
54     </xsd:sequence>
55     <xsd:attribute name="name" type="xsd:string" use="required"/>
56     <xsd:attribute name="type" use="required">
57       <xsd:simpleType>
58         <xsd:restriction base="xsd:string">
59           <xsd:enumeration value="static"/>
60           <xsd:enumeration value="fixedpriority"/>
61           <xsd:enumeration value="fifo"/>
62           <xsd:enumeration value="tdma"/>
63           <xsd:enumeration value="roundrobin"/>
64         </xsd:restriction>
65       </xsd:simpleType>
66     </xsd:attribute>
67   </xsd:complexType>
68
69   <xsd:complexType name="resource">
70     <xsd:sequence>
71       <xsd:element name="append" type="map:append" minOccurs="0" maxOccurs="unbounded"/>
72     </xsd:sequence>
73     <xsd:attribute name="name" type="xsd:string" use="required"/>
74   </xsd:complexType>
75
76   <xsd:complexType name="configuredresource">
77     <xsd:sequence>
78       <xsd:element name="append" type="map:append" minOccurs="0" maxOccurs="unbounded"/>
79       <xsd:element name="configuration" type="map:configuration" minOccurs="0" maxOccurs="unbounded"/>
80     </xsd:sequence>
81     <xsd:attribute name="name" type="xsd:string" use="required"/>
82   </xsd:complexType>
83
84   <xsd:complexType name="generaliterator">
85     <xsd:complexContent>
86       <xsd:extension base="map:iterator">
87         <xsd:sequence>
88           <xsd:element name="iterator" type="map:generaliterator" minOccurs="0" maxOccurs="unbounded"/>
89           <xsd:element name="binding" type="map:binding" minOccurs="0" maxOccurs="unbounded"/>
90           <xsd:element name="schedule" type="map:schedule" minOccurs="0" maxOccurs="unbounded"/>
91         </xsd:sequence>
92       </xsd:extension>
93     </xsd:complexContent>
94   </xsd:complexType>
95
96 </xsd:schema>