source: RevitalizationWS/schemas/cim/trunk/src/main/resources/eu.metaforclimate/shared.xsd @ 7450

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/RevitalizationWS/schemas/cim/trunk/src/main/resources/eu.metaforclimate/shared.xsd@7450
Revision 7450, 58.8 KB checked in by mnagni, 10 years ago (diff)

Share project "cim" into " http://proj.badc.rl.ac.uk/svn/ndg/RevitalizationWS"

  • Property svn:mime-type set to text/plain
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- shared.xsd -->       
3<!-- generated: 23 August 2010, 9:24 -->       
4<xs:schema
5             elementFormDefault="qualified" attributeFormDefault="unqualified"
6             xmlns:xs="http://www.w3.org/2001/XMLSchema"
7             xmlns:xlink="http://www.w3.org/1999/xlink"
8             xmlns:gml="http://www.opengis.net/gml/3.2"
9             xmlns:gmd="http://www.isotc211.org/2005/gmd"
10            xmlns="http://www.metaforclimate.eu/schema/cim/1.5"
11            targetNamespace="http://www.metaforclimate.eu/schema/cim/1.5">       
12<!-- these relative paths could really be URLs, but accessing them online cripples performance -->       
13<xs:import xmlns:xs="http://www.w3.org/2001/XMLSchema"
14           namespace="http://www.w3.org/1999/xlink"
15           schemaLocation="../external_schemas/xlink/1.0.0/xlinks.xsd"/>
16<xs:import xmlns:xs="http://www.w3.org/2001/XMLSchema"
17           namespace="http://www.opengis.net/gml/3.2"
18           schemaLocation="../external_schemas/gml/3.2.1/gml.xsd"/>
19<xs:import xmlns:xs="http://www.w3.org/2001/XMLSchema"
20           namespace="http://www.isotc211.org/2005/gmd"
21           schemaLocation="../external_schemas/iso/19139/20070417/gmd/gmd.xsd"/>
22<xs:include xmlns:xs="http://www.w3.org/2001/XMLSchema" schemaLocation="activity.xsd"/>
23<xs:include xmlns:xs="http://www.w3.org/2001/XMLSchema" schemaLocation="data.xsd"/>
24<xs:include xmlns:xs="http://www.w3.org/2001/XMLSchema" schemaLocation="grids.xsd"/>
25<xs:include xmlns:xs="http://www.w3.org/2001/XMLSchema" schemaLocation="quality.xsd"/>
26<xs:include xmlns:xs="http://www.w3.org/2001/XMLSchema" schemaLocation="software.xsd"/>
27<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="guid">
28   <xs:annotation>
29      <xs:documentation>An XML representation of a GUID; used for the Identifier
30                    class</xs:documentation>
31   </xs:annotation>
32   <xs:restriction base="xs:string">
33      <xs:pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"/>
34   </xs:restriction>
35</xs:simpleType>
36<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="version">
37   <xs:annotation>
38      <xs:documentation>restricts strings to one or more digits followed by any number of
39                    "dot plus more numers" sequences</xs:documentation>
40   </xs:annotation>
41   <xs:restriction base="xs:string">
42      <xs:pattern value="\d+(\.\d+)*"/>
43   </xs:restriction>
44</xs:simpleType>
45<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ClosedDateRange">
46   <xs:annotation>
47      <xs:documentation>A date range with specified start and end points.</xs:documentation>
48   </xs:annotation>
49                        <xs:complexContent>
50                        <xs:extension base="DateRange">
51                    <xs:sequence>
52      <xs:element name="startDate" minOccurs="1" maxOccurs="1" type="xs:dateTime"/>
53      <xs:element name="endDate" minOccurs="1" maxOccurs="1" type="xs:dateTime"/>
54   </xs:sequence> 
55                            </xs:extension>
56                            </xs:complexContent>
57                        </xs:complexType>
58<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Property" abstract="true">
59   <xs:annotation>
60      <xs:documentation>An abstract property is simply a name/value pair.  Properties may be grouped into PropertyGroups.  Properties are used to describe features of a class whose details can't be known beforehand and, hence, can't be hard-coded into the schema.  </xs:documentation>
61   </xs:annotation>
62   <xs:sequence>
63      <xs:element name="value" minOccurs="0" maxOccurs="1" type="PropertyValue"/>
64      <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string"/>
65      <xs:element name="group" minOccurs="0" maxOccurs="1">
66         <xs:complexType>
67            <xs:choice>
68               <xs:element name="reference">
69                  <xs:complexType>
70                     <xs:sequence>
71                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
72                           <xs:annotation>
73                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
74                           </xs:annotation>
75                        </xs:element>
76                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
77                           <xs:annotation>
78                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
79                           </xs:annotation>
80                        </xs:element>
81                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
82                           <xs:annotation>
83                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
84                           </xs:annotation>
85                        </xs:element>
86                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
87                           <xs:annotation>
88                              <xs:documentation>The version of the element being referenced.</xs:documentation>
89                           </xs:annotation>
90                        </xs:element>
91                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
92                           <xs:annotation>
93                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
94                           </xs:annotation>
95                        </xs:element>
96                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
97                           <xs:annotation>
98                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
99                           </xs:annotation>
100                        </xs:element>
101                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
102                           <xs:annotation>
103                              <xs:documentation>An optional description of how the item being referenced has been modified.  This is particularly useful for dealing with Ensembles (a set of simulations where something about each simulation has changed) or Conformances.</xs:documentation>
104                           </xs:annotation>
105                        </xs:element>
106                     </xs:sequence>
107                     <xs:attribute ref="xlink:href" use="optional"/>
108                  </xs:complexType>
109               </xs:element>
110               <!-- this is an abstract class --><xs:element name="group" minOccurs="0" maxOccurs="1">
111                  <xs:complexType>
112                     <xs:choice minOccurs="1" maxOccurs="1"/>
113                  </xs:complexType>
114               </xs:element>
115            </xs:choice>
116         </xs:complexType>
117      </xs:element>
118   </xs:sequence>
119</xs:complexType>
120<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="CompilerType" mixed="true">
121   <xs:annotation>
122      <xs:documentation>A list of known compilers.</xs:documentation>
123   </xs:annotation>
124   <xs:sequence>
125      <xs:element name="vocabularyServer" minOccurs="0">
126         <xs:complexType>
127            <xs:sequence>
128               <xs:element name="vocabularyName" type="xs:string"/>
129               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
130               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
131                  <xs:annotation>
132                     <xs:documentation>information about how to access the vocabulary
133                                    </xs:documentation>
134                  </xs:annotation>
135               </xs:element>
136            </xs:sequence>
137            <xs:attribute name="href" type="xs:anyURI"/>
138         </xs:complexType>
139      </xs:element>
140   </xs:sequence>
141   <xs:attribute name="value" type="CompilerType_Enumeration" use="required"/>
142</xs:complexType>
143<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="CompilerType_Enumeration">
144   <xs:restriction base="xs:string">
145      <xs:enumeration value="Absoft"/>
146      <xs:enumeration value="Intel"/>
147      <xs:enumeration value="Lahey"/>
148      <xs:enumeration value="NAG"/>
149      <xs:enumeration value="Pathscale"/>
150      <xs:enumeration value="Portland PGI"/>
151      <xs:enumeration value="Silverfrost"/>
152      <xs:enumeration value="Other"/>
153   </xs:restriction>
154</xs:simpleType>
155<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Platform">
156   <xs:annotation>
157      <xs:documentation>A platform is a description of resources used to deploy a component/simulation.  A platform pairs a machine with a (set of) compilers.  There is also a point of contact for the platform. </xs:documentation>
158   </xs:annotation>
159   <xs:sequence>
160      <xs:element name="shortName" minOccurs="1" maxOccurs="1" type="xs:string"/>
161      <xs:element name="longName" minOccurs="0" maxOccurs="1" type="xs:string"/>
162      <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/>
163      <xs:element name="machine" minOccurs="1" maxOccurs="1" type="Machine"/>
164      <xs:element name="compiler" minOccurs="1" maxOccurs="unbounded" type="Compiler"/>
165      <xs:element name="contact" minOccurs="0" maxOccurs="unbounded" type="ResponsibleParty"/>
166   </xs:sequence>
167</xs:complexType>
168<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="platform">
169   <xs:annotation>
170      <xs:documentation>A platform is a description of resources used to deploy a component/simulation.  A platform pairs a machine with a (set of) compilers.  There is also a point of contact for the platform. </xs:documentation>
171   </xs:annotation>
172   <xs:complexType>
173      <xs:complexContent>
174         <xs:extension base="Platform">
175            <xs:sequence>
176               <xs:element name="documentID" minOccurs="1" maxOccurs="1" type="guid">
177                  <xs:annotation>
178                     <xs:documentation>a unique indentifier for this document</xs:documentation>
179                  </xs:annotation>
180               </xs:element>
181               <xs:element name="documentVersion" minOccurs="1" maxOccurs="1" type="version"/>
182               <xs:element name="metadataID" minOccurs="0" maxOccurs="1" type="xs:anyURI"/>
183               <xs:element name="metadataVersion" minOccurs="0" maxOccurs="1" type="version"/>
184               <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
185                  <xs:annotation>
186                     <xs:documentation>The id of this document as referenced by an external body (ie: DOI, or even IPSL)</xs:documentation>
187                  </xs:annotation>
188               </xs:element>
189               <xs:element name="documentAuthor" minOccurs="0" maxOccurs="1" type="ResponsibleParty">
190                  <xs:annotation>
191                     <xs:documentation>A contact for the author of this <i>document </i>(as opposed to the author of the artifact being described by this document; ie: the simulation or component or whatever).</xs:documentation>
192                  </xs:annotation>
193               </xs:element>
194               <xs:element name="documentCreationDate" minOccurs="1" maxOccurs="1" type="xs:dateTime">
195                  <xs:annotation>
196                     <xs:documentation>The date the <i>document </i>was created.</xs:documentation>
197                  </xs:annotation>
198               </xs:element>
199               <xs:element name="documentGenealogy" minOccurs="0" maxOccurs="1" type="Genealogy">
200                  <xs:annotation>
201                     <xs:documentation>Specifies the relationship of this document with another document. Various relationship types (depending on the type of document; ie: simulation, component, etc.) are supported.</xs:documentation>
202                  </xs:annotation>
203               </xs:element>
204               <xs:element name="quality" minOccurs="0" maxOccurs="unbounded" type="Quality">
205                  <xs:annotation>
206                     <xs:documentation>a (set of) quality record(s) for this document.</xs:documentation>
207                  </xs:annotation>
208               </xs:element>
209            </xs:sequence>
210            <xs:attribute name="documentStatus" use="optional" type="DocumentStatusType"/>
211         </xs:extension>
212      </xs:complexContent>
213   </xs:complexType>
214</xs:element>
215<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Compiler">
216   <xs:annotation>
217      <xs:documentation>A description of a compiler used on a particular platform.</xs:documentation>
218   </xs:annotation>
219   <xs:sequence>
220      <xs:element name="compilerName" minOccurs="1" maxOccurs="1" type="xs:string"/>
221      <xs:element name="compilerVersion" minOccurs="1" maxOccurs="1" type="version"/>
222      <xs:element name="compilerLanguage" minOccurs="0" maxOccurs="1" type="xs:string"/>
223      <xs:element name="compilerOptions" minOccurs="0" maxOccurs="1" type="xs:string">
224         <xs:annotation>
225            <xs:documentation>The set of options used during compilation (recorded here as a single string rather than separate elements)</xs:documentation>
226         </xs:annotation>
227      </xs:element>
228      <xs:element name="compilerEnvironmentVariables" minOccurs="0" maxOccurs="1"
229                  type="xs:string">
230         <xs:annotation>
231            <xs:documentation>The state of envrionment variables used during compilation (recorded here as a single string rather than separate elements)</xs:documentation>
232         </xs:annotation>
233      </xs:element>
234   </xs:sequence>
235</xs:complexType>
236<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="License">
237   <xs:annotation>
238      <xs:documentation>A description of a license restricting access to a unit of data or software.</xs:documentation>
239   </xs:annotation>
240   <xs:sequence>
241      <xs:element name="licenseName" minOccurs="0" maxOccurs="1" type="xs:string">
242         <xs:annotation>
243            <xs:documentation>The name that the license goes by (ie: "GPL")</xs:documentation>
244         </xs:annotation>
245      </xs:element>
246      <xs:element name="licenseContact" minOccurs="0" maxOccurs="1" type="xs:string">
247         <xs:annotation>
248            <xs:documentation>The point of contact for access to this artifact; may be either a person or an institution</xs:documentation>
249         </xs:annotation>
250      </xs:element>
251      <xs:element name="licenseDescription" minOccurs="0" maxOccurs="1" type="xs:string">
252         <xs:annotation>
253            <xs:documentation>A textual description of the license; might be the full text of the license, more likely to be a brief summary</xs:documentation>
254         </xs:annotation>
255      </xs:element>
256   </xs:sequence>
257   <xs:attribute name="unrestricted" use="required" type="xs:boolean">
258      <xs:annotation>
259         <xs:documentation>If unrestricted="true" then the artifact can be downloaded with no restrictions (ie: there are no administrative steps for the user to deal with; code or data can be downloaded and used directly).</xs:documentation>
260      </xs:annotation>
261   </xs:attribute>
262</xs:complexType>
263<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="DocumentRelationship">
264   <xs:annotation>
265      <xs:documentation>Contains the set of relationships supported by a Document.</xs:documentation>
266   </xs:annotation>
267                        <xs:complexContent>
268                        <xs:extension base="Relationship">
269                    <xs:sequence>
270      <xs:element name="target" minOccurs="1" maxOccurs="1">
271         <xs:complexType>
272            <xs:choice>
273               <xs:element name="reference">
274                  <xs:complexType>
275                     <xs:sequence>
276                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
277                           <xs:annotation>
278                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
279                           </xs:annotation>
280                        </xs:element>
281                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
282                           <xs:annotation>
283                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
284                           </xs:annotation>
285                        </xs:element>
286                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
287                           <xs:annotation>
288                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
289                           </xs:annotation>
290                        </xs:element>
291                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
292                           <xs:annotation>
293                              <xs:documentation>The version of the element being referenced.</xs:documentation>
294                           </xs:annotation>
295                        </xs:element>
296                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
297                           <xs:annotation>
298                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
299                           </xs:annotation>
300                        </xs:element>
301                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
302                           <xs:annotation>
303                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
304                           </xs:annotation>
305                        </xs:element>
306                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
307                           <xs:annotation>
308                              <xs:documentation>An optional description of how the item being referenced has been modified.  This is particularly useful for dealing with Ensembles (a set of simulations where something about each simulation has changed) or Conformances.</xs:documentation>
309                           </xs:annotation>
310                        </xs:element>
311                     </xs:sequence>
312                     <xs:attribute ref="xlink:href" use="optional"/>
313                  </xs:complexType>
314               </xs:element>
315               <xs:element name="document">
316                  <xs:complexType>
317                     <xs:choice minOccurs="1" maxOccurs="1">
318                        <xs:element ref="simulationRun"/>
319                        <xs:element ref="simulationComposite"/>
320                        <xs:element ref="numericalExperiment"/>
321                        <xs:element ref="dataProcessing"/>
322                        <xs:element ref="ensemble"/>
323                        <xs:element ref="dataObject"/>
324                        <xs:element ref="gridSpec"/>
325                        <xs:element ref="quality"/>
326                        <xs:element ref="platform"/>
327                        <xs:element ref="processorComponent"/>
328                        <xs:element ref="modelComponent"/>
329                     </xs:choice>
330                  </xs:complexType>
331               </xs:element>
332            </xs:choice>
333         </xs:complexType>
334      </xs:element>
335   </xs:sequence>
336   <xs:attribute name="type" use="required" type="DocumentRelationshipType"/> 
337                            </xs:extension>
338                            </xs:complexContent>
339                        </xs:complexType>
340<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Calendar" abstract="true">
341   <xs:annotation>
342      <xs:documentation>Describes a method of calculating a span of dates.</xs:documentation>
343   </xs:annotation>
344   <xs:sequence>
345      <xs:element name="length" minOccurs="0" maxOccurs="1" type="xs:integer"/>
346      <!-- this is an abstract class --><xs:element name="range" minOccurs="0" maxOccurs="1">
347         <xs:complexType>
348            <xs:choice minOccurs="1" maxOccurs="1">
349               <xs:element name="closedDateRange" type="ClosedDateRange"/>
350               <xs:element name="openDateRange" type="OpenDateRange"/>
351            </xs:choice>
352         </xs:complexType>
353      </xs:element>
354   </xs:sequence>
355   <xs:attribute name="units" use="optional" type="CalendarUnit"/>
356</xs:complexType>
357<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="DataSource" abstract="true">
358   <xs:annotation>
359      <xs:documentation>A DataSource can be realised by either a DataObject (file), a DataContent (variable), a Component (model), or a ComponentProperty (variable); all of those can supply data.</xs:documentation>
360   </xs:annotation>
361   <xs:sequence/>
362   <xs:attribute name="purpose" use="optional" type="DataPurpose"/>
363</xs:complexType>
364<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="CodeList" mixed="false">
365   <xs:annotation>
366      <xs:documentation>A placeholder for "still-to-be-defined" codelists (required for XSL generation).</xs:documentation>
367   </xs:annotation>
368   <xs:sequence>
369      <xs:element name="vocabularyServer" minOccurs="0">
370         <xs:complexType>
371            <xs:sequence>
372               <xs:element name="vocabularyName" type="xs:string"/>
373               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
374               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
375                  <xs:annotation>
376                     <xs:documentation>information about how to access the vocabulary
377                                    </xs:documentation>
378                  </xs:annotation>
379               </xs:element>
380            </xs:sequence>
381            <xs:attribute name="href" type="xs:anyURI"/>
382         </xs:complexType>
383      </xs:element>
384   </xs:sequence>
385   <xs:attribute name="value" type="CodeList_Enumeration" use="required"/>
386</xs:complexType>
387<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="CodeList_Enumeration">
388   <xs:restriction base="xs:string"/>
389</xs:simpleType>
390<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="OpenDateRange">
391   <xs:annotation>
392      <xs:documentation>A date range without a specified start and/or end point.</xs:documentation>
393   </xs:annotation>
394                        <xs:complexContent>
395                        <xs:extension base="DateRange">
396                    <xs:sequence>
397      <xs:element name="startDate" minOccurs="0" maxOccurs="1" type="xs:dateTime"/>
398      <xs:element name="endDate" minOccurs="0" maxOccurs="1" type="xs:dateTime"/>
399   </xs:sequence> 
400                            </xs:extension>
401                            </xs:complexContent>
402                        </xs:complexType>
403<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="DocumentRelationshipType">
404   <xs:restriction base="xs:string">
405      <xs:enumeration value="similarTo"/>
406      <xs:enumeration value="other"/>
407      <xs:enumeration value="laterVersionOf"/>
408      <xs:enumeration value="fixedVersionOf"/>
409   </xs:restriction>
410</xs:simpleType>
411<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="MachineType">
412   <xs:restriction base="xs:string">
413      <xs:enumeration value="Parallel"/>
414      <xs:enumeration value="Vector"/>
415      <xs:enumeration value="Beowulf"/>
416   </xs:restriction>
417</xs:simpleType>
418<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ChangePropertyType">
419   <xs:restriction base="xs:string">
420      <xs:enumeration value="InputMod"/>
421      <xs:enumeration value="ModelMod"/>
422      <xs:enumeration value="Decrement"/>
423      <xs:enumeration value="Increment"/>
424      <xs:enumeration value="Redistribution"/>
425      <xs:enumeration value="Replacement"/>
426      <xs:enumeration value="ParameterChange">
427         <xs:annotation>
428            <xs:documentation>a specific type of ModelMod</xs:documentation>
429         </xs:annotation>
430      </xs:enumeration>
431      <xs:enumeration value="CodeChange">
432         <xs:annotation>
433            <xs:documentation>a specific type of ModelMod</xs:documentation>
434         </xs:annotation>
435      </xs:enumeration>
436      <xs:enumeration value="AncilaryFile">
437         <xs:annotation>
438            <xs:documentation>a specific type of InputMod</xs:documentation>
439         </xs:annotation>
440      </xs:enumeration>
441      <xs:enumeration value="BoundaryCondition">
442         <xs:annotation>
443            <xs:documentation>a specific type of InputMod</xs:documentation>
444         </xs:annotation>
445      </xs:enumeration>
446      <xs:enumeration value="InitialCondition">
447         <xs:annotation>
448            <xs:documentation>a specific type of InputMod</xs:documentation>
449         </xs:annotation>
450      </xs:enumeration>
451   </xs:restriction>
452</xs:simpleType>
453<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Document" abstract="true">
454   <xs:annotation>
455      <xs:documentation>Any class or feature with the &lt;&lt;document&gt;&gt; stereotype uses the attributes of this class. Furthermore, any class or feature with the &lt;&lt;document&gt;&gt; stereotype can form the root of an XML document.</xs:documentation>
456   </xs:annotation>
457   <xs:sequence>
458      <xs:element name="documentID" minOccurs="1" maxOccurs="1" type="guid">
459         <xs:annotation>
460            <xs:documentation>a unique indentifier for this document</xs:documentation>
461         </xs:annotation>
462      </xs:element>
463      <xs:element name="documentVersion" minOccurs="1" maxOccurs="1" type="version"/>
464      <xs:element name="metadataID" minOccurs="0" maxOccurs="1" type="xs:anyURI"/>
465      <xs:element name="metadataVersion" minOccurs="0" maxOccurs="1" type="version"/>
466      <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
467         <xs:annotation>
468            <xs:documentation>The id of this document as referenced by an external body (ie: DOI, or even IPSL)</xs:documentation>
469         </xs:annotation>
470      </xs:element>
471      <xs:element name="documentAuthor" minOccurs="0" maxOccurs="1" type="ResponsibleParty">
472         <xs:annotation>
473            <xs:documentation>A contact for the author of this <i>document </i>(as opposed to the author of the artifact being described by this document; ie: the simulation or component or whatever).</xs:documentation>
474         </xs:annotation>
475      </xs:element>
476      <xs:element name="documentCreationDate" minOccurs="1" maxOccurs="1" type="xs:dateTime">
477         <xs:annotation>
478            <xs:documentation>The date the <i>document </i>was created.</xs:documentation>
479         </xs:annotation>
480      </xs:element>
481      <xs:element name="documentGenealogy" minOccurs="0" maxOccurs="1" type="Genealogy">
482         <xs:annotation>
483            <xs:documentation>Specifies the relationship of this document with another document. Various relationship types (depending on the type of document; ie: simulation, component, etc.) are supported.</xs:documentation>
484         </xs:annotation>
485      </xs:element>
486      <xs:element name="quality" minOccurs="0" maxOccurs="unbounded" type="Quality">
487         <xs:annotation>
488            <xs:documentation>a (set of) quality record(s) for this document.</xs:documentation>
489         </xs:annotation>
490      </xs:element>
491   </xs:sequence>
492   <xs:attribute name="documentStatus" use="optional" type="DocumentStatusType"/>
493</xs:complexType>
494<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Identifier">
495   <xs:restriction base="xs:token">
496      <xs:annotation>
497         <xs:documentation>Needed so that a Numerical Requirement can be be uniquely identified and related to a specific data granule. </xs:documentation>
498      </xs:annotation>
499   </xs:restriction>
500</xs:simpleType>
501<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="PropertyValue">
502                                <xs:simpleContent>
503                                <xs:extension base="xs:anySimpleType">
504                            <xs:attribute name="valueMin" use="optional" type="xs:decimal"/>
505   <xs:attribute name="valueMax" use="optional" type="xs:decimal"/>
506   <xs:attribute name="fillValue" use="optional" type="xs:anySimpleType">
507      <xs:annotation>
508         <xs:documentation>The value to use when the real value is unavailable (ie: cannot be coupled).</xs:documentation>
509      </xs:annotation>
510   </xs:attribute>
511   <xs:attribute name="numericalType" use="optional" type="xs:string">
512      <xs:annotation>
513         <xs:documentation>The datatype of the value: string, int, double, etc.</xs:documentation>
514      </xs:annotation>
515   </xs:attribute> 
516                            </xs:extension>
517                            </xs:simpleContent>
518                        </xs:complexType>
519<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="StandardNameType" mixed="true">
520   <xs:annotation>
521      <xs:documentation>A list of known compilers.</xs:documentation>
522   </xs:annotation>
523   <xs:sequence>
524      <xs:element name="vocabularyServer" minOccurs="0">
525         <xs:complexType>
526            <xs:sequence>
527               <xs:element name="vocabularyName" type="xs:string"/>
528               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
529               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
530                  <xs:annotation>
531                     <xs:documentation>information about how to access the vocabulary
532                                    </xs:documentation>
533                  </xs:annotation>
534               </xs:element>
535            </xs:sequence>
536            <xs:attribute name="href" type="xs:anyURI"/>
537         </xs:complexType>
538      </xs:element>
539   </xs:sequence>
540   <xs:attribute name="value" type="StandardNameType_Enumeration" use="required"/>
541</xs:complexType>
542<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="StandardNameType_Enumeration">
543   <xs:restriction base="xs:string">
544      <xs:enumeration value="CF"/>
545      <xs:enumeration value="DRS"/>
546      <xs:enumeration value="Other"/>
547   </xs:restriction>
548</xs:simpleType>
549<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Machine">
550   <xs:annotation>
551      <xs:documentation>A description of a machine used by a particular platform.</xs:documentation>
552   </xs:annotation>
553   <xs:sequence>
554      <xs:element name="machineName" minOccurs="1" maxOccurs="1" type="xs:string"/>
555      <xs:element name="machineSystem" minOccurs="0" maxOccurs="1" type="xs:string"/>
556      <xs:element name="machineLibrary" minOccurs="0" maxOccurs="unbounded" type="xs:string">
557         <xs:annotation>
558            <xs:documentation>A library residing on this machine.</xs:documentation>
559         </xs:annotation>
560      </xs:element>
561      <xs:element name="machineDescription" minOccurs="0" maxOccurs="1" type="xs:string"/>
562      <xs:element name="machineLocation" minOccurs="0" maxOccurs="1" type="xs:string"/>
563      <xs:element name="machineOperatingSystem" minOccurs="0" maxOccurs="1"
564                  type="OperatingSystemType"/>
565      <xs:element name="machineVendor" minOccurs="0" maxOccurs="1" type="MachineVendorType"/>
566      <xs:element name="machineInterconnect" minOccurs="0" maxOccurs="1" type="InterconnectType"/>
567      <xs:element name="machineMaximumProcessors" minOccurs="0" maxOccurs="1" type="xs:integer"/>
568      <xs:element name="machineCoresPerProcessor" minOccurs="0" maxOccurs="1" type="xs:integer"/>
569      <xs:element name="machineProcessorType" minOccurs="0" maxOccurs="1" type="ProcessorType"/>
570   </xs:sequence>
571   <xs:attribute name="machineType" use="optional" type="MachineType"/>
572</xs:complexType>
573<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="DataPurpose">
574   <xs:restriction base="xs:string">
575      <xs:enumeration value="ancillaryFile"/>
576      <xs:enumeration value="boundaryCondition"/>
577      <xs:enumeration value="initialCondition"/>
578   </xs:restriction>
579</xs:simpleType>
580<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="StandardName">
581   <xs:annotation>
582      <xs:documentation>Describes a name given to an entity from a recognised standard.  The CIM records the standard and the name.  For example, the standard might be "CF" and the name might be "atmospheric_pressure".</xs:documentation>
583   </xs:annotation>
584   <xs:sequence>
585      <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string"/>
586      <xs:element name="standard" minOccurs="1" maxOccurs="1" type="StandardNameType"/>
587   </xs:sequence>
588</xs:complexType>
589<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="OperatingSystemType"
590                mixed="true">
591   <xs:annotation>
592      <xs:documentation>A list of common operating systems.</xs:documentation>
593   </xs:annotation>
594   <xs:sequence>
595      <xs:element name="vocabularyServer" minOccurs="0">
596         <xs:complexType>
597            <xs:sequence>
598               <xs:element name="vocabularyName" type="xs:string"/>
599               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
600               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
601                  <xs:annotation>
602                     <xs:documentation>information about how to access the vocabulary
603                                    </xs:documentation>
604                  </xs:annotation>
605               </xs:element>
606            </xs:sequence>
607            <xs:attribute name="href" type="xs:anyURI"/>
608         </xs:complexType>
609      </xs:element>
610   </xs:sequence>
611   <xs:attribute name="value" type="OperatingSystemType_Enumeration" use="required"/>
612</xs:complexType>
613<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema"
614               name="OperatingSystemType_Enumeration">
615   <xs:restriction base="xs:string">
616      <xs:enumeration value="Linux"/>
617      <xs:enumeration value="AIX"/>
618      <xs:enumeration value="Darwin"/>
619      <xs:enumeration value="Unicos"/>
620      <xs:enumeration value="Irix64"/>
621      <xs:enumeration value="SunOS"/>
622      <xs:enumeration value="Other"/>
623   </xs:restriction>
624</xs:simpleType>
625<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Daily-360">
626                        <xs:complexContent>
627                        <xs:extension base="Calendar">
628                    <xs:sequence/> 
629                            </xs:extension>
630                            </xs:complexContent>
631                        </xs:complexType>
632<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Genealogy">
633   <xs:annotation>
634      <xs:documentation>A record of a document's history.  A genealogy element contains a textual description and a set of relationships.  Each relationship has a type and a reference to some target.  There are different relationships for different document types.</xs:documentation>
635   </xs:annotation>
636   <xs:sequence><!-- this is an abstract class --><xs:element name="relationship" minOccurs="0" maxOccurs="unbounded">
637         <xs:complexType>
638            <xs:choice minOccurs="1" maxOccurs="1">
639               <xs:element name="experimentRelationship" type="ExperimentRelationship"/>
640               <xs:element name="simulationRelationship" type="SimulationRelationship"/>
641               <xs:element name="documentRelationship" type="DocumentRelationship"/>
642            </xs:choice>
643         </xs:complexType>
644      </xs:element>
645   </xs:sequence>
646</xs:complexType>
647<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="DocumentStatusType">
648   <xs:restriction base="xs:string">
649      <xs:enumeration value="complete"/>
650      <xs:enumeration value="incomplete"/>
651      <xs:enumeration value="in-progress"/>
652   </xs:restriction>
653</xs:simpleType>
654<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="CalendarUnit">
655   <xs:restriction base="xs:string">
656      <xs:enumeration value="days"/>
657      <xs:enumeration value="months"/>
658      <xs:enumeration value="years"/>
659   </xs:restriction>
660</xs:simpleType>
661<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Relationship" abstract="true">
662   <xs:annotation>
663      <xs:documentation>A record of a relationship between one document and another.  This class is abstract; specific document types must specialise this class for their relationshipTypes to be included in a document's genealogy.</xs:documentation>
664   </xs:annotation>
665   <xs:sequence><!--type is not used -->       
666<!--target is not used -->       
667<xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/>
668   </xs:sequence>
669</xs:complexType>
670<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ResponsibleParty">
671   <xs:annotation>
672      <xs:documentation>A CIM-specific ResponsibleParty.  Sub-classes the gmd ResponsibleParty type and adds the attribute "abbreviation."</xs:documentation>
673   </xs:annotation>
674                                <xs:complexContent>
675                                <xs:extension base="gmd:CI_ResponsibleParty_PropertyType">
676                            <xs:sequence>
677      <xs:element name="abbreviation" minOccurs="0" maxOccurs="1" type="xs:string"/>
678   </xs:sequence> 
679                            </xs:extension>
680                            </xs:complexContent>
681                        </xs:complexType>
682<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Change">
683   <xs:annotation>
684      <xs:documentation>A description of [a set of] changes applied at a particular time, by a particular party, to a particular unit of metadata (identified using XPath). Currently unused in the CIM.</xs:documentation>
685   </xs:annotation>
686   <xs:sequence>
687      <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
688         <xs:annotation>
689            <xs:documentation>A mnemonic for describing a particular change.</xs:documentation>
690         </xs:annotation>
691      </xs:element>
692      <xs:element name="changeTarget" minOccurs="0" maxOccurs="1">
693         <xs:annotation>
694            <xs:documentation>The CIM element being changed.  If this is blank, then it is implied by the target of its parent (a Change instance currently can only appear as part of a reference which has a target anyway).</xs:documentation>
695         </xs:annotation>
696         <xs:complexType>
697            <xs:choice>
698               <xs:element name="reference">
699                  <xs:complexType>
700                     <xs:sequence>
701                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
702                           <xs:annotation>
703                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
704                           </xs:annotation>
705                        </xs:element>
706                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
707                           <xs:annotation>
708                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
709                           </xs:annotation>
710                        </xs:element>
711                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
712                           <xs:annotation>
713                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
714                           </xs:annotation>
715                        </xs:element>
716                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
717                           <xs:annotation>
718                              <xs:documentation>The version of the element being referenced.</xs:documentation>
719                           </xs:annotation>
720                        </xs:element>
721                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
722                           <xs:annotation>
723                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
724                           </xs:annotation>
725                        </xs:element>
726                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
727                           <xs:annotation>
728                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
729                           </xs:annotation>
730                        </xs:element>
731                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
732                           <xs:annotation>
733                              <xs:documentation>An optional description of how the item being referenced has been modified.  This is particularly useful for dealing with Ensembles (a set of simulations where something about each simulation has changed) or Conformances.</xs:documentation>
734                           </xs:annotation>
735                        </xs:element>
736                     </xs:sequence>
737                     <xs:attribute ref="xlink:href" use="optional"/>
738                  </xs:complexType>
739               </xs:element>
740               <xs:element name="document">
741                  <xs:complexType>
742                     <xs:choice minOccurs="1" maxOccurs="1">
743                        <xs:element ref="simulationRun"/>
744                        <xs:element ref="simulationComposite"/>
745                        <xs:element ref="numericalExperiment"/>
746                        <xs:element ref="dataProcessing"/>
747                        <xs:element ref="ensemble"/>
748                        <xs:element ref="dataObject"/>
749                        <xs:element ref="gridSpec"/>
750                        <xs:element ref="quality"/>
751                        <xs:element ref="platform"/>
752                        <xs:element ref="processorComponent"/>
753                        <xs:element ref="modelComponent"/>
754                     </xs:choice>
755                  </xs:complexType>
756               </xs:element>
757            </xs:choice>
758         </xs:complexType>
759      </xs:element>
760      <xs:element name="changeDate" minOccurs="0" maxOccurs="1" type="xs:dateTime">
761         <xs:annotation>
762            <xs:documentation>The date the change was implemented.</xs:documentation>
763         </xs:annotation>
764      </xs:element>
765      <xs:element name="changeAuthor" minOccurs="0" maxOccurs="1" type="ResponsibleParty">
766         <xs:annotation>
767            <xs:documentation>The person that made the change.</xs:documentation>
768         </xs:annotation>
769      </xs:element>
770      <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/>
771      <xs:element name="detail" minOccurs="1" maxOccurs="unbounded" type="ChangeProperty"/>
772   </xs:sequence>
773   <xs:attribute name="type" use="optional" type="ChangePropertyType"/>
774</xs:complexType>
775<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="DateRange" abstract="true">
776   <xs:sequence/>
777</xs:complexType>
778<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ChangeProperty">
779   <xs:annotation>
780      <xs:documentation>A description of a single change applied to a single target.  Every ChangeProperty has a description, and may also have a name from a controlled vocabulary and a value.
781
782Currently unused in the CIM.</xs:documentation>
783   </xs:annotation>
784                        <xs:complexContent>
785                        <xs:extension base="Property">
786                    <xs:sequence>
787      <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
788         <xs:annotation>
789            <xs:documentation>A text description of the change.  May be used in addition to, or instead of, the more formal description provided by the "value" attribute.</xs:documentation>
790         </xs:annotation>
791      </xs:element>
792      <xs:element name="id" minOccurs="0" maxOccurs="1" type="Identifier"/>
793   </xs:sequence> 
794                            </xs:extension>
795                            </xs:complexContent>
796                        </xs:complexType>
797<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="MachineVendorType" mixed="true">
798   <xs:annotation>
799      <xs:documentation>A list of organisations that create machines.</xs:documentation>
800   </xs:annotation>
801   <xs:sequence>
802      <xs:element name="vocabularyServer" minOccurs="0">
803         <xs:complexType>
804            <xs:sequence>
805               <xs:element name="vocabularyName" type="xs:string"/>
806               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
807               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
808                  <xs:annotation>
809                     <xs:documentation>information about how to access the vocabulary
810                                    </xs:documentation>
811                  </xs:annotation>
812               </xs:element>
813            </xs:sequence>
814            <xs:attribute name="href" type="xs:anyURI"/>
815         </xs:complexType>
816      </xs:element>
817   </xs:sequence>
818   <xs:attribute name="value" type="MachineVendorType_Enumeration" use="required"/>
819</xs:complexType>
820<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="MachineVendorType_Enumeration">
821   <xs:restriction base="xs:string">
822      <xs:enumeration value="ACTION"/>
823      <xs:enumeration value="Appro International"/>
824      <xs:enumeration value="Bull SA"/>
825      <xs:enumeration value="ClusterVision/Dell"/>
826      <xs:enumeration value="ClusterVision/IBM"/>
827      <xs:enumeration value="Cray Inc"/>
828      <xs:enumeration value="DALCO AG Switzerland"/>
829      <xs:enumeration value="Dawning"/>
830      <xs:enumeration value="Dell"/>
831      <xs:enumeration value="DELL/ACS"/>
832      <xs:enumeration value="Dell/Sun/IBM"/>
833      <xs:enumeration value="Fujitsu"/>
834      <xs:enumeration value="Hewlett-Packard"/>
835      <xs:enumeration value="Hitachi"/>
836      <xs:enumeration value="IBM"/>
837      <xs:enumeration value="Intel"/>
838      <xs:enumeration value="Koi Computers"/>
839      <xs:enumeration value="Lenovo"/>
840      <xs:enumeration value="Linux Networx"/>
841      <xs:enumeration value="NEC"/>
842      <xs:enumeration value="NEC/Sun"/>
843      <xs:enumeration value="NUDT"/>
844      <xs:enumeration value="Pyramid Computer"/>
845      <xs:enumeration value="Raytheon-Aspen Systems/Appro"/>
846      <xs:enumeration value="Self-made"/>
847      <xs:enumeration value="SGI"/>
848      <xs:enumeration value="SKIF/T-Platforms"/>
849      <xs:enumeration value="Sun Microsystems"/>
850      <xs:enumeration value="T-Platforms"/>
851      <xs:enumeration value="Other"/>
852   </xs:restriction>
853</xs:simpleType>
854<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="InterconnectType" mixed="true">
855   <xs:annotation>
856      <xs:documentation>A list of known compilers.</xs:documentation>
857   </xs:annotation>
858   <xs:sequence>
859      <xs:element name="vocabularyServer" minOccurs="0">
860         <xs:complexType>
861            <xs:sequence>
862               <xs:element name="vocabularyName" type="xs:string"/>
863               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
864               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
865                  <xs:annotation>
866                     <xs:documentation>information about how to access the vocabulary
867                                    </xs:documentation>
868                  </xs:annotation>
869               </xs:element>
870            </xs:sequence>
871            <xs:attribute name="href" type="xs:anyURI"/>
872         </xs:complexType>
873      </xs:element>
874   </xs:sequence>
875   <xs:attribute name="value" type="InterconnectType_Enumeration" use="required"/>
876</xs:complexType>
877<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="InterconnectType_Enumeration">
878   <xs:restriction base="xs:string">
879      <xs:enumeration value="Myrinet"/>
880      <xs:enumeration value="Quadrics"/>
881      <xs:enumeration value="Gigabit Ethernet"/>
882      <xs:enumeration value="Infiniband"/>
883      <xs:enumeration value="Mixed"/>
884      <xs:enumeration value="NUMAlink"/>
885      <xs:enumeration value="SP Switch"/>
886      <xs:enumeration value="Cray Interconnect"/>
887      <xs:enumeration value="Fat Tree"/>
888      <xs:enumeration value="Other"/>
889   </xs:restriction>
890</xs:simpleType>
891<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="UnitType" mixed="true">
892   <xs:annotation>
893      <xs:documentation>A list of scientific units.</xs:documentation>
894   </xs:annotation>
895   <xs:sequence>
896      <xs:element name="vocabularyServer" minOccurs="0">
897         <xs:complexType>
898            <xs:sequence>
899               <xs:element name="vocabularyName" type="xs:string"/>
900               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
901               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
902                  <xs:annotation>
903                     <xs:documentation>information about how to access the vocabulary
904                                    </xs:documentation>
905                  </xs:annotation>
906               </xs:element>
907            </xs:sequence>
908            <xs:attribute name="href" type="xs:anyURI"/>
909         </xs:complexType>
910      </xs:element>
911   </xs:sequence>
912   <xs:attribute name="value" type="UnitType_Enumeration" use="required"/>
913</xs:complexType>
914<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="UnitType_Enumeration">
915   <xs:restriction base="xs:string">
916      <xs:enumeration value="meter"/>
917      <xs:enumeration value="hectopascal"/>
918      <xs:enumeration value="pascal"/>
919      <xs:enumeration value="sigma"/>
920      <xs:enumeration value="degrees_c"/>
921      <xs:enumeration value="Other"/>
922   </xs:restriction>
923</xs:simpleType>
924<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="PropertyGroup" abstract="true">
925   <xs:annotation>
926      <xs:documentation>A collection of Properties.  A PropertyGroup can itself contain other PropertyGroups.</xs:documentation>
927   </xs:annotation>
928   <xs:sequence>
929      <xs:element name="id" minOccurs="0" maxOccurs="1" type="Identifier">
930         <xs:annotation>
931            <xs:documentation>A unique id for this group of properties.</xs:documentation>
932         </xs:annotation>
933      </xs:element>
934      <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
935         <xs:annotation>
936            <xs:documentation>The name of this group of properties.</xs:documentation>
937         </xs:annotation>
938      </xs:element>
939      <!-- this is an abstract class --><xs:element name="property" minOccurs="0" maxOccurs="unbounded">
940         <xs:complexType>
941            <xs:choice minOccurs="1" maxOccurs="1">
942               <xs:element name="dataProperty" type="DataProperty"/>
943               <xs:element name="couplingProperty" type="CouplingProperty"/>
944               <xs:element name="spatialRegriddingProperty" type="SpatialRegriddingProperty"/>
945               <xs:element name="connectionProperty" type="ConnectionProperty"/>
946               <xs:element name="changeProperty" type="ChangeProperty"/>
947            </xs:choice>
948         </xs:complexType>
949      </xs:element>
950      <!-- this is an abstract class --><xs:element name="childGroup" minOccurs="0" maxOccurs="unbounded">
951         <xs:complexType>
952            <xs:choice minOccurs="1" maxOccurs="1"/>
953         </xs:complexType>
954      </xs:element>
955      <xs:element name="parentGroup" minOccurs="0" maxOccurs="1">
956         <xs:complexType>
957            <xs:choice>
958               <xs:element name="reference">
959                  <xs:complexType>
960                     <xs:sequence>
961                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
962                           <xs:annotation>
963                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
964                           </xs:annotation>
965                        </xs:element>
966                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
967                           <xs:annotation>
968                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
969                           </xs:annotation>
970                        </xs:element>
971                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
972                           <xs:annotation>
973                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
974                           </xs:annotation>
975                        </xs:element>
976                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
977                           <xs:annotation>
978                              <xs:documentation>The version of the element being referenced.</xs:documentation>
979                           </xs:annotation>
980                        </xs:element>
981                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
982                           <xs:annotation>
983                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
984                           </xs:annotation>
985                        </xs:element>
986                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
987                           <xs:annotation>
988                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
989                           </xs:annotation>
990                        </xs:element>
991                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
992                           <xs:annotation>
993                              <xs:documentation>An optional description of how the item being referenced has been modified.  This is particularly useful for dealing with Ensembles (a set of simulations where something about each simulation has changed) or Conformances.</xs:documentation>
994                           </xs:annotation>
995                        </xs:element>
996                     </xs:sequence>
997                     <xs:attribute ref="xlink:href" use="optional"/>
998                  </xs:complexType>
999               </xs:element>
1000               <!-- this is an abstract class --><xs:element name="parentGroup" minOccurs="0" maxOccurs="1">
1001                  <xs:complexType>
1002                     <xs:choice minOccurs="1" maxOccurs="1"/>
1003                  </xs:complexType>
1004               </xs:element>
1005            </xs:choice>
1006         </xs:complexType>
1007      </xs:element>
1008   </xs:sequence>
1009</xs:complexType>
1010<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Reference" abstract="true">
1011   <xs:annotation>
1012      <xs:documentation>Any class or feature with the &lt;&lt;reference&gt;&gt; stereotype uses the attributes of this class. 
1013
1014With all the different ways of pinpointing an XML item, a reference can either use XPATH to directly locate the item or it can just identifiy the document and then use the other attributes (name,type,etc.) to narrow down the particular element within that document.  </xs:documentation>
1015   </xs:annotation>
1016   <xs:sequence>
1017      <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
1018         <xs:annotation>
1019            <xs:documentation>the ID of the element being referenced.</xs:documentation>
1020         </xs:annotation>
1021      </xs:element>
1022      <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
1023         <xs:annotation>
1024            <xs:documentation>The name of the instance being referenced.</xs:documentation>
1025         </xs:annotation>
1026      </xs:element>
1027      <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
1028         <xs:annotation>
1029            <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
1030         </xs:annotation>
1031      </xs:element>
1032      <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
1033         <xs:annotation>
1034            <xs:documentation>The version of the element being referenced.</xs:documentation>
1035         </xs:annotation>
1036      </xs:element>
1037      <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
1038         <xs:annotation>
1039            <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
1040         </xs:annotation>
1041      </xs:element>
1042      <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
1043         <xs:annotation>
1044            <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
1045         </xs:annotation>
1046      </xs:element>
1047      <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
1048         <xs:annotation>
1049            <xs:documentation>An optional description of how the item being referenced has been modified.  This is particularly useful for dealing with Ensembles (a set of simulations where something about each simulation has changed) or Conformances.</xs:documentation>
1050         </xs:annotation>
1051      </xs:element>
1052   </xs:sequence>
1053</xs:complexType>
1054<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="LogicalRelationshipType">
1055   <xs:restriction base="xs:string">
1056      <xs:enumeration value="AND"/>
1057      <xs:enumeration value="OR"/>
1058      <xs:enumeration value="XOR"/>
1059   </xs:restriction>
1060</xs:simpleType>
1061<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="PerpetualPeriod">
1062                        <xs:complexContent>
1063                        <xs:extension base="Calendar">
1064                    <xs:sequence/> 
1065                            </xs:extension>
1066                            </xs:complexContent>
1067                        </xs:complexType>
1068<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="RealCalendar">
1069                        <xs:complexContent>
1070                        <xs:extension base="Calendar">
1071                    <xs:sequence/> 
1072                            </xs:extension>
1073                            </xs:complexContent>
1074                        </xs:complexType>
1075<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ProcessorType" mixed="true">
1076   <xs:annotation>
1077      <xs:documentation>A list of known compilers.</xs:documentation>
1078   </xs:annotation>
1079   <xs:sequence>
1080      <xs:element name="vocabularyServer" minOccurs="0">
1081         <xs:complexType>
1082            <xs:sequence>
1083               <xs:element name="vocabularyName" type="xs:string"/>
1084               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
1085               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
1086                  <xs:annotation>
1087                     <xs:documentation>information about how to access the vocabulary
1088                                    </xs:documentation>
1089                  </xs:annotation>
1090               </xs:element>
1091            </xs:sequence>
1092            <xs:attribute name="href" type="xs:anyURI"/>
1093         </xs:complexType>
1094      </xs:element>
1095   </xs:sequence>
1096   <xs:attribute name="value" type="ProcessorType_Enumeration" use="required"/>
1097</xs:complexType>
1098<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ProcessorType_Enumeration">
1099   <xs:restriction base="xs:string">
1100      <xs:enumeration value="NEC"/>
1101      <xs:enumeration value="Sparc"/>
1102      <xs:enumeration value="Intel"/>
1103      <xs:enumeration value="Intel IA-64"/>
1104      <xs:enumeration value="Intel EM64T"/>
1105      <xs:enumeration value="AMD X86_64"/>
1106      <xs:enumeration value="Other Intel"/>
1107      <xs:enumeration value="Other AMD"/>
1108      <xs:enumeration value="Other"/>
1109   </xs:restriction>
1110</xs:simpleType>       
1111</xs:schema>
Note: See TracBrowser for help on using the repository browser.