2 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pn="http://www.tik.ee.ethz.ch/~shapes/schema/PROCESSNETWORK" targetNamespace="http://www.tik.ee.ethz.ch/~shapes/schema/PROCESSNETWORK" elementFormDefault="qualified" >
3 <xsd:include schemaLocation="generics.xsd"/>
5 <xsd:element name="processnetwork">
7 <xsd:sequence minOccurs="0" maxOccurs="unbounded">
8 <xsd:element name="variable" type="pn:variable" minOccurs="0" maxOccurs="unbounded"/>
9 <xsd:element name="function" type="pn:function" minOccurs="0" maxOccurs="unbounded"/>
10 <xsd:element name="process" type="pn:process" minOccurs="0" maxOccurs="unbounded"/>
11 <xsd:element name="sw_channel" type="pn:sw_channel" minOccurs="0" maxOccurs="unbounded"/>
12 <xsd:element name="iterator" type="pn:generaliterator" minOccurs="0" maxOccurs="unbounded"/>
13 <xsd:element name="connection" type="pn:connection" minOccurs="0" maxOccurs="unbounded"/>
14 <xsd:element name="configuration" type="pn:configuration" minOccurs="0" maxOccurs="unbounded"/>
16 <xsd:attribute name="name" type="xsd:string" use="required"/>
20 <xsd:complexType name="process">
22 <xsd:extension base="pn:element">
24 <xsd:element name="append" type="pn:append" minOccurs="0" maxOccurs="unbounded"/>
25 <xsd:choice minOccurs="0">
27 <xsd:element name="iterator" type="pn:qualifiedportiterator" maxOccurs="unbounded"/>
28 <xsd:element name="port" type="pn:qualifiedport" minOccurs="0" maxOccurs="unbounded"/>
30 <xsd:element name="port" type="pn:qualifiedport" maxOccurs="unbounded"/>
32 <xsd:element name="source" type="pn:source"/>
33 <xsd:element name="configuration" type="pn:configuration" minOccurs="0" maxOccurs="unbounded"/>
39 <xsd:complexType name="source">
40 <xsd:attribute name="type" use="required">
42 <xsd:restriction base="xsd:string">
43 <xsd:enumeration value="c"/>
44 <xsd:enumeration value="c++"/>
48 <xsd:attribute name="location" type="xsd:string" use="required"/>
51 <xsd:complexType name="sw_channel">
53 <xsd:extension base="pn:element">
55 <xsd:element name="append" type="pn:append" minOccurs="0" maxOccurs="unbounded"/>
56 <xsd:element name="port" type="pn:qualifiedport" minOccurs="2" maxOccurs="2"/>
57 <xsd:element name="configuration" type="pn:configuration" minOccurs="0" maxOccurs="unbounded"/>
59 <xsd:attribute name="size" type="xsd:string" use="required"/>
60 <xsd:attribute name="tokensize" type="xsd:string" default="1" use="optional"/>
61 <xsd:attribute name="type" use="required">
63 <xsd:restriction base="xsd:string">
64 <xsd:enumeration value="fifo"/>
65 <xsd:enumeration value="wfifo"/>
73 <xsd:complexType name="port">
75 <xsd:extension base="pn:element">
77 <xsd:element name="append" type="pn:append" minOccurs="0" maxOccurs="unbounded"/>
83 <xsd:complexType name="qualifiedport">
85 <xsd:extension base="pn:port">
86 <xsd:attribute name="type" use="required">
88 <xsd:restriction base="xsd:string">
89 <xsd:enumeration value="input"/>
90 <xsd:enumeration value="output"/>
98 <xsd:complexType name="connection">
99 <xsd:sequence minOccurs="0" maxOccurs="unbounded">
100 <xsd:element name="append" type="pn:append" minOccurs="0" maxOccurs="unbounded"/>
101 <xsd:element name="origin" type="pn:connector"/>
102 <xsd:element name="target" type="pn:connector"/>
104 <xsd:attribute name="name" type="xsd:string" use="required"/>
107 <xsd:complexType name="connector">
109 <xsd:element name="append" type="pn:append" minOccurs="0" maxOccurs="unbounded"/>
110 <xsd:element name="port" type="pn:port"/>
112 <xsd:attribute name="name" type="xsd:string" use="required"/>
115 <xsd:complexType name="generaliterator">
117 <xsd:extension base="pn:iterator">
119 <xsd:element name="iterator" type="pn:generaliterator" minOccurs="0" maxOccurs="unbounded"/>
120 <xsd:element name="process" type="pn:process" minOccurs="0" maxOccurs="unbounded"/>
121 <xsd:element name="sw_channel" type="pn:sw_channel" minOccurs="0" maxOccurs="unbounded"/>
122 <xsd:element name="connection" type="pn:connection" minOccurs="0" maxOccurs="unbounded"/>
125 </xsd:complexContent>
128 <xsd:complexType name="qualifiedportiterator">
130 <xsd:extension base="pn:iterator">
133 <xsd:element name="iterator" type="pn:qualifiedportiterator" maxOccurs="unbounded"/>
134 <xsd:element name="port" type="pn:qualifiedport" minOccurs="0" maxOccurs="unbounded"/>
136 <xsd:element name="port" type="pn:qualifiedport" maxOccurs="unbounded"/>
139 </xsd:complexContent>