source: DCWoRMS/trunk/simulator/schemas/WorkloadSchema.xsd @ 477

Revision 477, 7.5 KB checked in by wojtekp, 13 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- edited with XMLSpy v2005 U (http://www.xmlspy.com) by Ariel Oleksiak (PSNC)
3     fondled with Eclipse by Marcin Krystek (PSNC)
4-->
5<xs:schema
6        xmlns:xs="http://www.w3.org/2001/XMLSchema"
7        xmlns:tns="http://www.man.poznan.pl/WorkloadSchema"
8        targetNamespace="http://www.man.poznan.pl/WorkloadSchema">
9       
10        <xs:annotation>
11                <xs:documentation>
12                        Workload generator parameters for experiment simulator
13                </xs:documentation>
14        </xs:annotation>
15       
16        <xs:element name="WorkloadConfiguration">
17                <xs:complexType>
18                        <xs:sequence>
19                                <xs:element name="SimulationStartTime" type="tns:Date" minOccurs="0"/>
20                                <xs:choice>
21                                        <xs:element name="JobCount" type="tns:RandParams"/>
22                                        <xs:element name="SimulationTime" type="tns:Duration"/>
23                                </xs:choice>
24
25                                <xs:element name="TaskCount" type="tns:RandParams"/>
26                                <xs:element name="TaskLength" type="tns:RandParams"/>
27                                <xs:element name="JobPackageLength" type="tns:RandParams"/>
28                                <xs:element name="JobInterval" type="tns:RandParams"/>
29                               
30                                <xs:element name="HardConstraint" minOccurs="0" maxOccurs="unbounded">
31                                        <xs:complexType>
32                                                <xs:sequence>
33                                                        <xs:element name="value" type="tns:RandParams" minOccurs="0" maxOccurs="unbounded"/>
34                                                        <xs:element name="range" minOccurs="0" maxOccurs="unbounded">
35                                                                <xs:complexType>
36                                                                        <xs:sequence>
37                                                                                <xs:element name="min" minOccurs="0" type="tns:RandParams"/>
38                                                                                <xs:element name="max" minOccurs="0" type="tns:RandParams"/>
39                                                                        </xs:sequence>
40                                                                </xs:complexType>
41                                                        </xs:element>
42                                                </xs:sequence>
43                                                <xs:attribute name="metric" type="xs:string" use="required"/>
44                                        </xs:complexType>
45                                </xs:element>
46                               
47                                <xs:element name="TimeConstraints" minOccurs="0">
48                                        <xs:complexType>
49                                                <xs:sequence>
50                                                        <xs:element name="execDuration" type="tns:RandParams" minOccurs="0"/>
51                                                        <xs:element name="periodStart" type="tns:RandParams" minOccurs="0"/>
52                                                        <xs:choice>
53                                                                <xs:element name="periodEnd" type="tns:RandParams" minOccurs="0"/>
54                                                                <xs:element name="periodDuration" type="tns:RandParams" minOccurs="0"/>
55                                                        </xs:choice>
56                                                </xs:sequence>
57                                        </xs:complexType>
58                                </xs:element>
59       
60                                <!-- TODO change the softConstraints element as a type to use it here                           <xs:element ref="gms:softConstraints"/> -->
61                                <xs:element name="SoftConstraints" minOccurs="0">
62                                        <xs:complexType>
63                                                <xs:sequence>
64                                                        <xs:element name="constraint" type="tns:softConstraintType" maxOccurs="unbounded"/>
65                                                </xs:sequence>
66                                                <xs:attribute name="preferenceType" use="required">
67                                                        <xs:simpleType>
68                                                                <xs:restriction base="xs:string">
69                                                                        <xs:enumeration value="PRIORITY"/>
70                                                                        <xs:enumeration value="RANKING"/>
71                                                                </xs:restriction>
72                                                        </xs:simpleType>
73                                                </xs:attribute>
74                                        </xs:complexType>
75                                </xs:element>
76                                                               
77                                <xs:element name="PrecedingConstraints" minOccurs="0">
78                                        <xs:complexType>
79                                                <xs:sequence>
80                                                        <xs:element name="parentCard" type="tns:RandParams"/>
81                                                        <xs:element name="workflowLevel" type="tns:RandParams"/>
82                                                        <xs:element name="outputFileSize" type="tns:RandParams" minOccurs="0"/>
83                                                        <xs:element name="parentStates_OR" type="tns:RandParams" minOccurs="0"/>
84                                                        <xs:element name="runSameHost" type="tns:RandParams" minOccurs="0"/>
85                                                        <xs:element name="triggers" minOccurs="0">
86                                                                <xs:complexType>
87                                                                        <xs:sequence>
88                                                                                <xs:element name="trigger" minOccurs="1" maxOccurs="unbounded">
89                                                                                        <xs:complexType>
90                                                                                                <xs:complexContent>
91                                                                                                        <xs:extension base="tns:RandParams">
92                                                                                                                <xs:attribute name="name" use="required"/>
93                                                                                                        </xs:extension>
94                                                                                                </xs:complexContent>
95                                                                                        </xs:complexType>
96                                                                                </xs:element>
97                                                                        </xs:sequence>
98                                                                </xs:complexType>
99                                                        </xs:element>
100                                                </xs:sequence>
101                                        </xs:complexType>
102                                </xs:element>
103
104                               
105                        </xs:sequence>
106                </xs:complexType>
107        </xs:element>
108       
109       
110        <!-- Types' definitons -->
111        <xs:complexType name="softConstraintType">
112                <xs:sequence>
113                        <xs:element name="parameter" type="xs:string"/>
114                        <xs:element name="endpoint" type="xs:string" minOccurs="0"/>
115                        <xs:element name="indiffThreshold" type="tns:RandParams" minOccurs="0" />
116                        <xs:element name="importance" type="tns:RandParams"/>
117                </xs:sequence>
118                <xs:attribute name="optimizationType" use="required">
119                        <xs:simpleType>
120                                <xs:restriction base="xs:string">
121                                        <xs:enumeration value="GAIN"/>
122                                        <xs:enumeration value="COST"/>
123                                </xs:restriction>
124                        </xs:simpleType>
125                </xs:attribute>
126        </xs:complexType>
127       
128        <xs:attributeGroup name="ParameterAttributes">
129                <xs:attribute name="id" type="xs:string">
130                        <xs:annotation>
131                                <xs:documentation>
132                                        This is unique identifier of current element. It is used to resolve element dependencies - see refElementId
133                                        attribute description. It must be unique in range of whole document.
134                                </xs:documentation>
135                        </xs:annotation>
136                </xs:attribute>
137                <xs:attribute name="refElementId" type="xs:string">
138                        <xs:annotation>
139                                <xs:documentation>
140                                        Value of this attribute should be the id of the element on which value of current element should based on.
141                                        If refElemenentId attribute is used, then unique value for id attribute must also be set.
142                                </xs:documentation>
143                        </xs:annotation>
144                </xs:attribute>
145                <xs:attribute name="expr" type="xs:string">
146                        <xs:annotation>
147                                <xs:documentation>
148                                        How value of your current element should be depended on refElement.
149                                        Example: if value of your current element should be two times plus three graither then value of TaskLength, then
150                                        set attribute refElement="TaskLength" and expr="2*x+3".
151                                </xs:documentation>
152                        </xs:annotation>
153                </xs:attribute>
154                <xs:attribute name="avg" type="xs:double"/>
155                <xs:attribute name="stdev" type="xs:double" default="1.0"/>
156                <xs:attribute name="min" type="xs:double"/>
157                <xs:attribute name="max" type="xs:double"/>
158                <xs:attribute name="seed" type="xs:long"/>
159                <xs:attribute name="distribution" default="normal">
160                        <xs:simpleType>
161                                <xs:restriction base="xs:string">
162                                        <xs:enumeration value="constant"/>
163                                        <xs:enumeration value="normal"/>
164                                        <xs:enumeration value="poisson"/>
165                                        <xs:enumeration value="uniform"/>
166                                        <xs:enumeration value="exponential"/>
167                                        <xs:enumeration value="gamma"/>
168                                        <xs:enumeration value="harmonic"/>
169                                </xs:restriction>
170                        </xs:simpleType>
171                </xs:attribute>
172               
173        </xs:attributeGroup>
174
175        <xs:simpleType name="Date">
176                <xs:restriction base="xs:dateTime"></xs:restriction>
177        </xs:simpleType>
178
179        <xs:simpleType name="Duration">
180                <xs:restriction base="xs:duration"></xs:restriction>
181        </xs:simpleType>
182
183        <xs:complexType name="TemporaryParamsType">
184                <xs:sequence>
185                        <xs:element name="BeginValidTime" type="tns:Date"/>
186                        <xs:element name="EndValidTime" type="tns:Date"/>
187                </xs:sequence>
188                <xs:attributeGroup ref="tns:ParameterAttributes"/>
189        </xs:complexType>
190
191        <xs:complexType name="MultiDistributionType">
192                <xs:sequence>
193                        <xs:element name="dist" minOccurs="1" maxOccurs="unbounded">
194                                <xs:complexType mixed="true">
195                                        <xs:attributeGroup ref="tns:ParameterAttributes"/>
196                                </xs:complexType>
197                        </xs:element>
198                </xs:sequence>
199        </xs:complexType>
200       
201        <xs:complexType name="RandParams">
202                <xs:choice>
203                        <xs:sequence>
204                                <xs:element name="PeriodicValidValues" type="tns:TemporaryParamsType" minOccurs="0" maxOccurs="unbounded"/>
205                        </xs:sequence>
206                        <xs:element name="MultiDistribution" type="tns:MultiDistributionType" minOccurs="0" maxOccurs="1"/>
207                </xs:choice>
208               
209                <xs:attributeGroup ref="tns:ParameterAttributes"/>
210        </xs:complexType>
211       
212</xs:schema>
Note: See TracBrowser for help on using the repository browser.