GSAS: GENIObject-v1.3.xsd

File GENIObject-v1.3.xsd, 13.9 KB (added by Jeanne Ohren, 5 years ago)
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<xs:schema xmlns:geni="http://geni.net/schema" targetNamespace="http://geni.net/schema"
3    xmlns="http://geni.net/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema"
4    elementFormDefault="qualified" version="1.3">
5    <xs:import namespace="http://www.w3.org/XML/1998/namespace"
6        schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
7    <xs:element name="Project" type="Project_Type"/>
8    <xs:element name="Experiment" type="Experiment_Type"/>
9    <xs:element name="Step" type="Step_Type"/>
10    <xs:element name="Artifact" type="Artifact_Type"/>
11    <xs:element name="Object" type="Archive_Type"/>
12    <xs:complexType name="Project_Type">
13        <xs:complexContent>
14            <xs:extension base="IDNameDuration_Type">
15                <xs:sequence>
16                    <xs:element name="ManagingEntities" type="ManagingEntities_Type"/>
17                    <xs:element minOccurs="0" name="Experiments" type="Experiments_Type"/>
18                </xs:sequence>
19            </xs:extension>
20        </xs:complexContent>
21    </xs:complexType>
22    <xs:complexType name="Experiment_Type">
23        <xs:complexContent>
24            <xs:extension base="IDNameDuration_Type">
25                <xs:sequence>
26                    <xs:element name="ManagingEntities" type="ManagingEntities_Type"/>
27                    <xs:element minOccurs="0" name="Steps" type="Steps_Type"/>
28                </xs:sequence>
29            </xs:extension>
30        </xs:complexContent>
31    </xs:complexType>
32    <xs:complexType name="Step_Type">
33        <xs:complexContent>
34            <xs:extension base="BaseDescription_Type">
35                <xs:sequence>
36                    <xs:element name="PrimaryFunction" type="StepFunctionVocabulary_Type"/>
37                    <xs:element maxOccurs="unbounded" minOccurs="0" name="SecondaryFunction"
38                        type="xs:string"/>
39                    <xs:element minOccurs="0" name="Index" type="StepIndex_Type"/>
40                    <xs:element minOccurs="0" name="Resources" type="Resources_Type"/>
41                    <xs:element minOccurs="0" name="Artifacts" type="Artifacts_Type"/>
42                </xs:sequence>
43            </xs:extension>
44        </xs:complexContent>
45    </xs:complexType>
46    <xs:complexType name="Artifact_Type">
47        <xs:complexContent>
48            <xs:extension base="Title_Type">
49                <xs:sequence>
50                    <xs:element name="Type" type="ArtifactType_Type"/>
51                    <xs:element minOccurs="0" name="Version" type="xs:string"/>
52                    <xs:element name="Interpretation" type="ArtifactInterpretation_Type"/>
53                    <xs:element minOccurs="0" name="Provider" type="ArtifactProvider_Type"/>
54                </xs:sequence>
55            </xs:extension>
56        </xs:complexContent>
57    </xs:complexType>
58    <xs:complexType name="Archive_Type">
59        <xs:sequence>
60            <xs:element name="Handle" type="Handle_Type"/>
61            <xs:element name="DataLastArchived" type="xs:dateTime"/>
62            <xs:element name="Public" type="xs:boolean"/>
63            <xs:element name="Searchable" type="xs:boolean"/>
64            <xs:element name="Creator" type="Entity_Type"/>
65            <xs:element name="Title" type="LanguageString_Type"/>
66            <xs:element name="Publisher" type="Entity_Type"/>
67            <xs:element name="PublicationYear" type="xs:gYear"/>
68            <xs:element name="Subject" type="LanguageString_Type"/>
69            <xs:element name="Description" type="LanguageString_Type"/>
70            <xs:choice>
71                <xs:element name="Project" type="Project_Type"/>
72                <xs:element name="Experiment" type="Experiment_Type"/>
73                <xs:element name="Step" type="Step_Type"/>
74                <xs:element name="Artifact" type="Artifact_Type"/>
75            </xs:choice>
76        </xs:sequence>
77    </xs:complexType>
78    <xs:complexType name="GENIResource_Type">
79        <xs:sequence>
80            <xs:element name="ResourceID" type="xs:string"/>
81            <xs:element name="ResourceType" type="ResourceVocabulary_Type"/>
82        </xs:sequence>
83    </xs:complexType>
84    <xs:complexType name="ArtifactType_Type">
85        <xs:sequence>
86            <xs:element name="Primary" type="ArtifactTypeVocabulary_Type"/>
87            <xs:element maxOccurs="unbounded" minOccurs="0" name="Secondary" type="xs:string"/>
88            <xs:element minOccurs="0" name="Version" type="xs:string"/>
89        </xs:sequence>
90    </xs:complexType>
91    <xs:complexType name="ArtifactInterpretation_Type">
92        <xs:sequence>
93            <xs:element name="Description" type="xs:string"/>
94            <xs:element minOccurs="0" name="Version" type="xs:string"/>
95            <xs:element name="Executable" type="xs:anyURI" maxOccurs="unbounded" minOccurs="0"/>
96        </xs:sequence>
97    </xs:complexType>
98    <xs:complexType name="ArtifactProvider_Type">
99        <xs:sequence>
100            <!-- Read me of the provided material goes in the description field -->
101            <xs:element name="Description" type="xs:string"/>
102            <xs:element name="Project" type="Title_Type" minOccurs="0"/>
103            <xs:choice>
104                <xs:element name="Person" type="Individual_Type"/>
105                <xs:element name="Organization" type="Organization_Type"/>
106            </xs:choice>
107            <xs:element name="SourceLink" type="xs:anyURI"/>
108            <xs:element name="ReceivedTime" type="xs:dateTime" minOccurs="0"/>
109            <xs:element name="Reference" type="xs:anyURI"/>
110        </xs:sequence>
111    </xs:complexType>
112    <xs:complexType name="Experimenter_Type">
113        <xs:sequence>
114            <xs:element name="Experimenter" type="RoledEntity_Type" maxOccurs="unbounded"/>
115            <xs:element name="Duration" type="DateTimeInterval_Type"/>
116        </xs:sequence>
117    </xs:complexType>
118
119    <xs:simpleType name="StepFunctionVocabulary_Type">
120        <xs:restriction base="xs:string">
121            <xs:enumeration value="Design-Experiment"/>
122            <xs:enumeration value="Establish-Experiment-Management-Environment"/>
123            <xs:enumeration value="Obtain-Resources"/>
124            <xs:enumeration value="Configure-Initiatlization-Services"/>
125            <xs:enumeration value="Run-Orchestrate-End-Services"/>
126            <xs:enumeration value="Analayze-Results"/>
127            <xs:enumeration value="Release-Resources"/>
128            <xs:enumeration value="Store-Archive-Artifacts"/>
129            <xs:enumeration value="Document-Results"/>
130        </xs:restriction>
131    </xs:simpleType>
132
133    <xs:simpleType name="ResourceVocabulary_Type">
134        <xs:restriction base="xs:string">
135            <xs:enumeration value="Slice"/>
136        </xs:restriction>
137    </xs:simpleType>
138
139    <xs:simpleType name="ArtifactTypeVocabulary_Type">
140        <xs:restriction base="xs:string">
141            <xs:enumeration value="GENI-AM-API-Slice-Request-RSpec"/>
142            <xs:enumeration value="GENI-AM-API-Sliver-Manifest-RSpec"/>
143            <xs:enumeration value="GEMINI-Measurement-Dataset"/>
144            <xs:enumeration value="GIMI-Measurement-Dataset"/>
145            <xs:enumeration value="Initialize-Script"/>
146            <xs:enumeration value="Orchestrate-Script"/>
147            <xs:enumeration value="Analysis-Dataset"/>
148            <xs:enumeration value="Journal-Article-Dataset"/>
149        </xs:restriction>
150    </xs:simpleType>
151
152    <xs:complexType name="IDNameDuration_Type" abstract="true">
153        <xs:sequence>
154            <xs:choice>
155                <xs:sequence>
156                    <xs:element name="Identifier" type="xs:string"/>
157                    <xs:element minOccurs="0" name="Title" type="Title_Type"/>
158                </xs:sequence>
159                <xs:element name="Title" type="Title_Type"/>
160            </xs:choice>
161            <xs:element name="Durations" type="Durations_Type"/>
162        </xs:sequence>
163    </xs:complexType>
164    <xs:complexType name="Title_Type">
165        <xs:complexContent>
166            <xs:extension base="BaseDescription_Type">
167                <xs:sequence>
168                    <xs:element name="Authority" type="xs:string"/>
169                    <xs:element name="Name" type="LanguageString_Type"/>
170                </xs:sequence>
171            </xs:extension>
172        </xs:complexContent>
173    </xs:complexType>
174    <xs:complexType name="BaseDescription_Type">
175        <xs:sequence>
176            <xs:element minOccurs="0" name="Keywords">
177                <xs:complexType>
178                    <xs:sequence>
179                        <xs:element name="Keyword" type="LanguageString_Type"/>
180                    </xs:sequence>
181                </xs:complexType>
182            </xs:element>
183            <xs:element minOccurs="0" name="Abstract" type="LanguageString_Type"/>
184            <xs:element minOccurs="0" name="Notes" type="LanguageString_Type"/>
185        </xs:sequence>
186    </xs:complexType>
187    <xs:complexType name="Durations_Type">
188        <xs:sequence>
189            <xs:element name="Duration" type="DateTimeInterval_Type"/>
190        </xs:sequence>
191    </xs:complexType>
192    <xs:complexType name="DateTimeInterval_Type">
193        <xs:sequence>
194            <xs:element name="Start" type="xs:dateTime"/>
195            <xs:element name="End" type="xs:dateTime"/>
196        </xs:sequence>
197    </xs:complexType>
198    <xs:simpleType name="RoleVocabulary_Type">
199        <xs:restriction base="xs:string">
200            <xs:enumeration value="Leader"/>
201            <xs:enumeration value="PI"/>
202            <xs:enumeration value="Co-PI"/>
203            <xs:enumeration value="Member"/>
204            <xs:enumeration value="Creator"/>
205            <xs:enumeration value="Owner"/>
206            <xs:enumeration value="Experimenter"/>
207            <xs:enumeration value="User"/>
208            <xs:enumeration value="Operator"/>
209            <xs:enumeration value="Administrator"/>
210        </xs:restriction>
211    </xs:simpleType>
212    <xs:complexType name="Individual_Type">
213        <xs:complexContent>
214            <xs:extension base="Contact_Type">
215                <xs:sequence>
216                    <xs:element name="FirstName" type="LanguageString_Type"/>
217                    <xs:element name="MiddleName" type="LanguageString_Type" minOccurs="0"/>
218                    <xs:element name="LastName" type="LanguageString_Type"/>
219                </xs:sequence>       
220            </xs:extension>
221        </xs:complexContent>
222    </xs:complexType>
223    <xs:complexType name="Person_Type">
224        <xs:sequence>
225            <xs:element name="FirstName" type="LanguageString_Type"/>
226            <xs:element name="MiddleName" type="LanguageString_Type" minOccurs="0"/>
227            <xs:element name="LastName" type="LanguageString_Type"/>
228        </xs:sequence>
229    </xs:complexType>
230    <xs:complexType name="Organization_Type">
231        <xs:complexContent>
232            <xs:extension base="Contact_Type">
233                <xs:sequence>
234                    <xs:element name="Name" type="LanguageString_Type"/>
235                    <xs:element name="PointOfContact" type="Person_Type" minOccurs="0"/>
236                </xs:sequence>       
237            </xs:extension>
238        </xs:complexContent>
239    </xs:complexType>
240    <xs:complexType name="Contact_Type">
241        <xs:sequence>
242            <xs:element name="Address" type="LanguageString_Type" minOccurs="0"/>
243            <xs:element name="Email" type="Email_Type" minOccurs="0"/>
244            <xs:element name="PhoneNumber" type="xs:string" minOccurs="0" maxOccurs="2"/>
245            <xs:element name="URL" type="xs:anyURI" minOccurs="0"/>
246        </xs:sequence>
247    </xs:complexType>
248    <xs:complexType name="LanguageString_Type">
249        <xs:simpleContent>
250            <xs:extension base="xs:string">
251                <xs:attribute ref="xml:lang" use="optional"/>
252            </xs:extension>
253        </xs:simpleContent>
254    </xs:complexType>
255    <xs:complexType name="RoledEntity_Type">
256        <xs:complexContent>
257            <xs:extension base="Entity_Type">
258                <xs:sequence>
259                    <xs:element name="Role" type="RoleVocabulary_Type"/>   
260                </xs:sequence>
261            </xs:extension>
262        </xs:complexContent>
263    </xs:complexType>
264    <xs:complexType name="Entity_Type">
265        <xs:sequence>
266            <xs:choice>
267                <xs:element name="Person" type="Individual_Type"/>
268                <xs:element name="Organization" type="Organization_Type"/>
269            </xs:choice>
270        </xs:sequence>
271    </xs:complexType>
272    <xs:complexType name="ManagingEntities_Type">
273        <xs:sequence>
274            <xs:element maxOccurs="unbounded" name="ManagingEntity" type="RoledEntity_Type"/>
275        </xs:sequence>
276    </xs:complexType>
277    <xs:simpleType name="Handle_Type">
278        <xs:restriction base="xs:string">
279            <xs:pattern value="[^/]+/.{1,1024}"/>
280        </xs:restriction>
281    </xs:simpleType>
282    <xs:simpleType name="Email_Type">
283        <xs:restriction base="xs:string">
284            <xs:pattern value="[^@]+@[^\.]+\..+"/>
285        </xs:restriction>
286    </xs:simpleType>
287    <xs:simpleType name="StepIndexVocabulary_Type">
288        <xs:restriction base="xs:string">
289            <xs:enumeration value="Run"/>
290        </xs:restriction>
291    </xs:simpleType>
292    <xs:complexType name="Experiments_Type">
293        <xs:sequence>
294            <xs:element maxOccurs="unbounded" name="Experiment" type="Experiment_Type"/>
295        </xs:sequence>
296    </xs:complexType>
297    <xs:complexType name="Steps_Type">
298        <xs:sequence>
299            <xs:element maxOccurs="unbounded" name="Step" type="Step_Type"/>
300        </xs:sequence>
301    </xs:complexType>
302    <xs:complexType name="Artifacts_Type">
303        <xs:sequence>
304            <xs:element maxOccurs="unbounded" name="Artifact" type="Artifact_Type"/>
305        </xs:sequence>
306    </xs:complexType>
307    <xs:complexType name="StepIndex_Type">
308        <xs:sequence>
309            <xs:element name="Value" type="xs:string"/>
310            <xs:element name="Type" type="StepIndexVocabulary_Type"/>
311        </xs:sequence>
312    </xs:complexType>
313    <xs:complexType name="Resources_Type">
314        <xs:sequence>
315            <xs:element maxOccurs="unbounded" name="Resource" type="GENIResource_Type"/>
316        </xs:sequence>
317    </xs:complexType>
318</xs:schema>