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

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/RevitalizationWS/schemas/cim/trunk/src/main/resources/eu.metaforclimate/software.xsd@7450
Revision 7450, 94.4 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<!-- software.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="shared.xsd"/>
27<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="SpatialRegriddingDimensionType">
28   <xs:restriction base="xs:string">
29      <xs:enumeration value="1D"/>
30      <xs:enumeration value="2D"/>
31      <xs:enumeration value="3D"/>
32   </xs:restriction>
33</xs:simpleType>
34<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="SpatialRegridding">
35   <xs:annotation>
36      <xs:documentation>Characteristics of the scheme used to interpolate a field from one grid (source grid) to another (target grid) </xs:documentation>
37   </xs:annotation>
38   <xs:sequence>
39      <xs:element name="spatialRegriddingProperty" minOccurs="0" maxOccurs="unbounded"
40                  type="SpatialRegriddingProperty"/>
41   </xs:sequence>
42   <xs:attribute name="spatialRegriddingDimension" use="required"
43                 type="SpatialRegriddingDimensionType"/>
44   <xs:attribute name="spatialRegriddingMethod" use="required"
45                 type="SpatialRegriddingMethodType"/>
46</xs:complexType>
47<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Composition">
48   <xs:annotation>
49      <xs:documentation>The set of Couplings used by a Component.  Couplings can only occur between child components.  That is, a composition must belong to an ancestor component of the components whose fields are being connected.</xs:documentation>
50   </xs:annotation>
51   <xs:sequence>
52      <xs:element name="coupling" minOccurs="1" maxOccurs="unbounded" type="Coupling"/>
53      <xs:element name="description" minOccurs="1" maxOccurs="1" type="xs:string"/>
54   </xs:sequence>
55</xs:complexType>
56<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ConnectionProperty">
57   <xs:annotation>
58      <xs:documentation>A ConnectionProperty is a name/value pair used to specify OASIS-specific properties.</xs:documentation>
59   </xs:annotation>
60                        <xs:complexContent>
61                        <xs:extension base="Property">
62                    <xs:sequence/> 
63                            </xs:extension>
64                            </xs:complexContent>
65                        </xs:complexType>
66<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Connection">
67   <xs:annotation>
68      <xs:documentation>A Connection represents a link from a source DataSource to a target DataSource.  These can either be ComponentProperties (ie: the values come from an internal component) or DataObjects (ie: the values come from an external file).   It can be associated with another software component (a transformer).  If present, the rate, lag, timeTransformation, and spatialRegridding override that of the parent coupling.
69
70Note that there is the potential for multiple connectionSource &amp; connectionTarget and multiple couplingSources &amp; couplingTargets.  This may lead users to wonder how to match up a connection source (a ComponentProperty) with its coupling source (a SoftwareComponent). Clever logic is not required though; because the sources and targets are listed by reference, they can be found in a CIM document and the parent can be navigated to from there - there is no need to consult the source or target of the coupling.</xs:documentation>
71   </xs:annotation>
72   <xs:sequence>
73      <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/>
74      <xs:element name="type" minOccurs="0" maxOccurs="1" type="ConnectionType">
75         <xs:annotation>
76            <xs:documentation>The type of Connection</xs:documentation>
77         </xs:annotation>
78      </xs:element>
79      <xs:element name="timeProfile" minOccurs="0" maxOccurs="1" type="Timing">
80         <xs:annotation>
81            <xs:documentation>All information having to do with the rate of this connection; the times that it is active.  This overrides any rate of a Coupling.</xs:documentation>
82         </xs:annotation>
83      </xs:element>
84      <xs:element name="timeLag" minOccurs="0" maxOccurs="1" type="TimeLag">
85         <xs:annotation>
86            <xs:documentation> The coupling field used in the target at a given time corresponds to a field produced by the source at a previous time. </xs:documentation>
87         </xs:annotation>
88      </xs:element>
89      <xs:element name="spatialRegridding" minOccurs="0" maxOccurs="3" type="SpatialRegridding">
90         <xs:annotation>
91            <xs:documentation>Characteristics of the scheme used to interpolate a field from one grid (source grid) to another (target grid) </xs:documentation>
92         </xs:annotation>
93      </xs:element>
94      <xs:element name="timeTransformation" minOccurs="0" maxOccurs="1" type="TimeTransformation">
95         <xs:annotation>
96            <xs:documentation>Temporal transformation performed on the coupling field before or after regridding onto the target grid. </xs:documentation>
97         </xs:annotation>
98      </xs:element>
99      <xs:element name="connectionSource" minOccurs="0" maxOccurs="unbounded">
100         <xs:annotation>
101            <xs:documentation>The source property being connected.  (note that there can be multiple sources)  This is optional; the file/component source may have already been specified by the couplingSource.</xs:documentation>
102         </xs:annotation>
103         <xs:complexType>
104            <xs:choice>
105               <xs:element name="reference">
106                  <xs:complexType>
107                     <xs:sequence>
108                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
109                           <xs:annotation>
110                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
111                           </xs:annotation>
112                        </xs:element>
113                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
114                           <xs:annotation>
115                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
116                           </xs:annotation>
117                        </xs:element>
118                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
119                           <xs:annotation>
120                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
121                           </xs:annotation>
122                        </xs:element>
123                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
124                           <xs:annotation>
125                              <xs:documentation>The version of the element being referenced.</xs:documentation>
126                           </xs:annotation>
127                        </xs:element>
128                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
129                           <xs:annotation>
130                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
131                           </xs:annotation>
132                        </xs:element>
133                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
134                           <xs:annotation>
135                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
136                           </xs:annotation>
137                        </xs:element>
138                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
139                           <xs:annotation>
140                              <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>
141                           </xs:annotation>
142                        </xs:element>
143                     </xs:sequence>
144                     <xs:attribute ref="xlink:href" use="optional"/>
145                  </xs:complexType>
146               </xs:element>
147               <!-- this is an abstract class --><xs:element name="connectionSource" minOccurs="0" maxOccurs="unbounded">
148                  <xs:complexType>
149                     <xs:choice minOccurs="1" maxOccurs="1">
150                        <xs:element ref="dataObject"/>
151                        <xs:element name="dataContent" type="DataContent"/>
152                        <xs:element name="componentProperty" type="ComponentProperty"/>
153                        <xs:element name="softwareComponent" type="SoftwareComponent"/>
154                     </xs:choice>
155                  </xs:complexType>
156               </xs:element>
157            </xs:choice>
158         </xs:complexType>
159      </xs:element>
160      <xs:element name="connectionTarget" minOccurs="0" maxOccurs="1">
161         <xs:annotation>
162            <xs:documentation>The target property being connected.  This is optional to support the way that input is handled in the CMIP5 questionnaire.</xs:documentation>
163         </xs:annotation>
164         <xs:complexType>
165            <xs:choice>
166               <xs:element name="reference">
167                  <xs:complexType>
168                     <xs:sequence>
169                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
170                           <xs:annotation>
171                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
172                           </xs:annotation>
173                        </xs:element>
174                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
175                           <xs:annotation>
176                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
177                           </xs:annotation>
178                        </xs:element>
179                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
180                           <xs:annotation>
181                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
182                           </xs:annotation>
183                        </xs:element>
184                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
185                           <xs:annotation>
186                              <xs:documentation>The version of the element being referenced.</xs:documentation>
187                           </xs:annotation>
188                        </xs:element>
189                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
190                           <xs:annotation>
191                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
192                           </xs:annotation>
193                        </xs:element>
194                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
195                           <xs:annotation>
196                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
197                           </xs:annotation>
198                        </xs:element>
199                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
200                           <xs:annotation>
201                              <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>
202                           </xs:annotation>
203                        </xs:element>
204                     </xs:sequence>
205                     <xs:attribute ref="xlink:href" use="optional"/>
206                  </xs:complexType>
207               </xs:element>
208               <!-- this is an abstract class --><xs:element name="connectionTarget" minOccurs="0" maxOccurs="1">
209                  <xs:complexType>
210                     <xs:choice minOccurs="1" maxOccurs="1">
211                        <xs:element ref="dataObject"/>
212                        <xs:element name="dataContent" type="DataContent"/>
213                        <xs:element name="componentProperty" type="ComponentProperty"/>
214                        <xs:element name="softwareComponent" type="SoftwareComponent"/>
215                     </xs:choice>
216                  </xs:complexType>
217               </xs:element>
218            </xs:choice>
219         </xs:complexType>
220      </xs:element>
221      <xs:element name="transformer" minOccurs="0" maxOccurs="unbounded">
222         <xs:annotation>
223            <xs:documentation>An "in-line" transformer.  This references a fully-described transformer (typically that forms part of the top-level composition) used in the context of this coupling.  It is used instead of separately specifying a spatialRegridding, timeTransformation, etc. here.</xs:documentation>
224         </xs:annotation>
225         <xs:complexType>
226            <xs:choice>
227               <xs:element name="reference">
228                  <xs:complexType>
229                     <xs:sequence>
230                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
231                           <xs:annotation>
232                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
233                           </xs:annotation>
234                        </xs:element>
235                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
236                           <xs:annotation>
237                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
238                           </xs:annotation>
239                        </xs:element>
240                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
241                           <xs:annotation>
242                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
243                           </xs:annotation>
244                        </xs:element>
245                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
246                           <xs:annotation>
247                              <xs:documentation>The version of the element being referenced.</xs:documentation>
248                           </xs:annotation>
249                        </xs:element>
250                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
251                           <xs:annotation>
252                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
253                           </xs:annotation>
254                        </xs:element>
255                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
256                           <xs:annotation>
257                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
258                           </xs:annotation>
259                        </xs:element>
260                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
261                           <xs:annotation>
262                              <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>
263                           </xs:annotation>
264                        </xs:element>
265                     </xs:sequence>
266                     <xs:attribute ref="xlink:href" use="optional"/>
267                  </xs:complexType>
268               </xs:element>
269               <xs:element ref="processorComponent"/>
270            </xs:choice>
271         </xs:complexType>
272      </xs:element>
273      <xs:element name="priming" minOccurs="0" maxOccurs="1">
274         <xs:annotation>
275            <xs:documentation>A priming source is one that is active on the first available timestep only (before "proper" coupling can ocurr).  It can either be described here explicitly, or else a separate coupling/connection with a timing profile that is active on only the first timestep can be created.</xs:documentation>
276         </xs:annotation>
277         <xs:complexType>
278            <xs:choice>
279               <xs:element name="reference">
280                  <xs:complexType>
281                     <xs:sequence>
282                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
283                           <xs:annotation>
284                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
285                           </xs:annotation>
286                        </xs:element>
287                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
288                           <xs:annotation>
289                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
290                           </xs:annotation>
291                        </xs:element>
292                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
293                           <xs:annotation>
294                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
295                           </xs:annotation>
296                        </xs:element>
297                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
298                           <xs:annotation>
299                              <xs:documentation>The version of the element being referenced.</xs:documentation>
300                           </xs:annotation>
301                        </xs:element>
302                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
303                           <xs:annotation>
304                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
305                           </xs:annotation>
306                        </xs:element>
307                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
308                           <xs:annotation>
309                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
310                           </xs:annotation>
311                        </xs:element>
312                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
313                           <xs:annotation>
314                              <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>
315                           </xs:annotation>
316                        </xs:element>
317                     </xs:sequence>
318                     <xs:attribute ref="xlink:href" use="optional"/>
319                  </xs:complexType>
320               </xs:element>
321               <!-- this is an abstract class --><xs:element name="priming" minOccurs="0" maxOccurs="1">
322                  <xs:complexType>
323                     <xs:choice minOccurs="1" maxOccurs="1">
324                        <xs:element ref="dataObject"/>
325                        <xs:element name="dataContent" type="DataContent"/>
326                        <xs:element name="componentProperty" type="ComponentProperty"/>
327                        <xs:element name="softwareComponent" type="SoftwareComponent"/>
328                     </xs:choice>
329                  </xs:complexType>
330               </xs:element>
331            </xs:choice>
332         </xs:complexType>
333      </xs:element>
334      <xs:element name="connectionProperty" minOccurs="0" maxOccurs="unbounded"
335                  type="ConnectionProperty"/>
336   </xs:sequence>
337   <xs:attribute name="purpose" use="optional" type="DataPurpose">
338      <xs:annotation>
339         <xs:documentation>Describes why this connection is being made.  Possible values include: boundaryCondition, initialCondition, Forcing.</xs:documentation>
340      </xs:annotation>
341   </xs:attribute>
342</xs:complexType>
343<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="SoftwareComponent"
344                abstract="true">
345   <xs:annotation>
346      <xs:documentation>A SofwareCompnent is an abstract component from which all other components derive.  It represents an element that takes input data and generates output data.  A SoftwareCompnent can include nested "child" components.  Every component can have "componentProperties" which describe the scientific properties that a component simulates (for example, temperature, pressure, etc.) and the numerical properties that influence how a component performs its simulation (for example, the force of gravity). A SoftwareComponent can also have a Deployment, which describes how software is deployed onto computing resources.  And a SoftwareComponent can have a composition, which describes how ComponentProperties are coupled together either to/from other SoftwareComponents or external data files.  The properties specified by a component's composition must be owned by that component or a child of that component; child components cannot couple together their parents' properties.</xs:documentation>
347   </xs:annotation>
348                        <xs:complexContent>
349                        <xs:extension base="DataSource">
350                    <xs:sequence>
351      <xs:element name="shortName" minOccurs="1" maxOccurs="1" type="xs:string">
352         <xs:annotation>
353            <xs:documentation>The name of the model (that is used internally).</xs:documentation>
354         </xs:annotation>
355      </xs:element>
356      <xs:element name="longName" minOccurs="1" maxOccurs="1" type="xs:string">
357         <xs:annotation>
358            <xs:documentation>The name of the model (that is recognized externally).</xs:documentation>
359         </xs:annotation>
360      </xs:element>
361      <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
362         <xs:annotation>
363            <xs:documentation>A free-text description of the component.</xs:documentation>
364         </xs:annotation>
365      </xs:element>
366      <xs:element name="license" minOccurs="0" maxOccurs="1" type="License">
367         <xs:annotation>
368            <xs:documentation>The license held by this piece of software</xs:documentation>
369         </xs:annotation>
370      </xs:element>
371      <xs:element name="componentProperties" minOccurs="1" maxOccurs="1"
372                  type="ComponentProperties">
373         <xs:annotation>
374            <xs:documentation>The properties that this model simulates and/or couples.</xs:documentation>
375         </xs:annotation>
376      </xs:element>
377      <xs:element name="numericalProperties" minOccurs="1" maxOccurs="1"
378                  type="NumericalProperties">
379         <xs:annotation>
380            <xs:documentation>The properties that this model simulates and/or couples. NumericalProperties contain those properties that describe _what_ a model simulates.  (Although, the distinction between numerical and scientific may be unused - all properties can be stored under the generic "ComponentProperties" attribute).</xs:documentation>
381         </xs:annotation>
382      </xs:element>
383      <xs:element name="scientificProperties" minOccurs="1" maxOccurs="1"
384                  type="ScientificProperties">
385         <xs:annotation>
386            <xs:documentation>The properties that this model simulates and/or couples. ScientificProperties contain those properties that describe _how_ a model simulates.  (Although, the distinction between numerical and scientific may be unused - all properties can be stored under the generic "ComponentProperties" attribute).</xs:documentation>
387         </xs:annotation>
388      </xs:element>
389      <xs:element name="grid" minOccurs="0" maxOccurs="1">
390         <xs:annotation>
391            <xs:documentation>A reference to the grid that is used by this component.</xs:documentation>
392         </xs:annotation>
393         <xs:complexType>
394            <xs:choice>
395               <xs:element name="reference">
396                  <xs:complexType>
397                     <xs:sequence>
398                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
399                           <xs:annotation>
400                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
401                           </xs:annotation>
402                        </xs:element>
403                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
404                           <xs:annotation>
405                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
406                           </xs:annotation>
407                        </xs:element>
408                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
409                           <xs:annotation>
410                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
411                           </xs:annotation>
412                        </xs:element>
413                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
414                           <xs:annotation>
415                              <xs:documentation>The version of the element being referenced.</xs:documentation>
416                           </xs:annotation>
417                        </xs:element>
418                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
419                           <xs:annotation>
420                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
421                           </xs:annotation>
422                        </xs:element>
423                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
424                           <xs:annotation>
425                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
426                           </xs:annotation>
427                        </xs:element>
428                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
429                           <xs:annotation>
430                              <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>
431                           </xs:annotation>
432                        </xs:element>
433                     </xs:sequence>
434                     <xs:attribute ref="xlink:href" use="optional"/>
435                  </xs:complexType>
436               </xs:element>
437               <xs:element name="grid" type="gml:AbstractGeometryType"/>
438            </xs:choice>
439         </xs:complexType>
440      </xs:element>
441      <xs:element name="responsibleParty" minOccurs="0" maxOccurs="unbounded"
442                  type="ResponsibleParty"/>
443      <xs:element name="releaseDate" minOccurs="0" maxOccurs="1" type="xs:dateTime">
444         <xs:annotation>
445            <xs:documentation>The date of publication of the software component code (as opposed to the date of publication of the metadata document, or the date of deployment of the model)</xs:documentation>
446         </xs:annotation>
447      </xs:element>
448      <xs:element name="previousVersion" minOccurs="0" maxOccurs="1" type="version"/>
449      <xs:element name="fundingSource" minOccurs="0" maxOccurs="unbounded" type="xs:string">
450         <xs:annotation>
451            <xs:documentation>The entities that funded this software component.</xs:documentation>
452         </xs:annotation>
453      </xs:element>
454      <xs:element name="citation" minOccurs="0" maxOccurs="unbounded"
455                  type="gmd:CI_Citation_PropertyType"/>
456      <xs:element name="onlineResource" minOccurs="0" maxOccurs="1"
457                  type="gmd:CI_OnlineResource_PropertyType">
458         <xs:annotation>
459            <xs:documentation>Provides a URL location for this model.</xs:documentation>
460         </xs:annotation>
461      </xs:element>
462      <xs:element name="composition" minOccurs="0" maxOccurs="1" type="Composition"/>
463      <!-- this is an abstract class --><xs:element name="childComponent" minOccurs="0" maxOccurs="unbounded">
464         <xs:complexType>
465            <xs:choice minOccurs="1" maxOccurs="1">
466               <xs:element ref="modelComponent"/>
467               <xs:element ref="processorComponent"/>
468            </xs:choice>
469         </xs:complexType>
470      </xs:element>
471      <xs:element name="parentComponent" minOccurs="0" maxOccurs="1">
472         <xs:complexType>
473            <xs:choice>
474               <xs:element name="reference">
475                  <xs:complexType>
476                     <xs:sequence>
477                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
478                           <xs:annotation>
479                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
480                           </xs:annotation>
481                        </xs:element>
482                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
483                           <xs:annotation>
484                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
485                           </xs:annotation>
486                        </xs:element>
487                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
488                           <xs:annotation>
489                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
490                           </xs:annotation>
491                        </xs:element>
492                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
493                           <xs:annotation>
494                              <xs:documentation>The version of the element being referenced.</xs:documentation>
495                           </xs:annotation>
496                        </xs:element>
497                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
498                           <xs:annotation>
499                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
500                           </xs:annotation>
501                        </xs:element>
502                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
503                           <xs:annotation>
504                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
505                           </xs:annotation>
506                        </xs:element>
507                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
508                           <xs:annotation>
509                              <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>
510                           </xs:annotation>
511                        </xs:element>
512                     </xs:sequence>
513                     <xs:attribute ref="xlink:href" use="optional"/>
514                  </xs:complexType>
515               </xs:element>
516               <!-- this is an abstract class --><xs:element name="parentComponent" minOccurs="0" maxOccurs="1">
517                  <xs:complexType>
518                     <xs:choice minOccurs="1" maxOccurs="1">
519                        <xs:element ref="modelComponent"/>
520                        <xs:element ref="processorComponent"/>
521                     </xs:choice>
522                  </xs:complexType>
523               </xs:element>
524            </xs:choice>
525         </xs:complexType>
526      </xs:element>
527      <xs:element name="deployment" minOccurs="0" maxOccurs="unbounded" type="Deployment"/>
528   </xs:sequence>
529   <xs:attribute name="embedded" use="optional" type="xs:boolean">
530      <xs:annotation>
531         <xs:documentation>An embedded component cannot exist on its own as an atomic piece of software; instead it is embedded within another (parent) component. When embedded equals "true", the SoftwareComponent has a corresponding piece of software (otherwise it is acting as a "virtual" component which may be inexorably nested within a piece of software along with several other virtual components).</xs:documentation>
532      </xs:annotation>
533   </xs:attribute> 
534                            </xs:extension>
535                            </xs:complexContent>
536                        </xs:complexType>
537<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="TimeLag">
538   <xs:annotation>
539      <xs:documentation>The coupling field used in the target at a given time corresponds to a field produced by the source at a previous time. This lag specifies the difference in time.</xs:documentation>
540   </xs:annotation>
541   <xs:sequence>
542      <xs:element name="value" minOccurs="0" maxOccurs="1" type="xs:integer"/>
543   </xs:sequence>
544   <xs:attribute name="units" use="optional" type="TimingUnits"/>
545</xs:complexType>
546<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ComponentPropertyIntentType">
547   <xs:restriction base="xs:string">
548      <xs:enumeration value="in"/>
549      <xs:enumeration value="out"/>
550      <xs:enumeration value="inout"/>
551   </xs:restriction>
552</xs:simpleType>
553<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="SpatialRegriddingProperty">
554   <xs:annotation>
555      <xs:documentation>Used for OASIS-specific regridding information (ie: masked, order, normalisation, etc.)</xs:documentation>
556   </xs:annotation>
557                        <xs:complexContent>
558                        <xs:extension base="Property">
559                    <xs:sequence/> 
560                            </xs:extension>
561                            </xs:complexContent>
562                        </xs:complexType>
563<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="TimingUnits">
564   <xs:restriction base="xs:string">
565      <xs:enumeration value="seconds"/>
566      <xs:enumeration value="minutes"/>
567      <xs:enumeration value="hours"/>
568      <xs:enumeration value="days"/>
569      <xs:enumeration value="months"/>
570      <xs:enumeration value="years"/>
571      <xs:enumeration value="decades"/>
572      <xs:enumeration value="centuries"/>
573   </xs:restriction>
574</xs:simpleType>
575<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ComponentProperties">
576   <xs:annotation>
577      <xs:documentation>Just acting as a container for multiple component properties.</xs:documentation>
578   </xs:annotation>
579   <xs:sequence>
580      <xs:element name="componentProperty" minOccurs="0" maxOccurs="unbounded"
581                  type="ComponentProperty"/>
582   </xs:sequence>
583</xs:complexType>
584<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="TimeTransformation">
585   <xs:annotation>
586      <xs:documentation>Characteristics of the scheme used to interpolate a field from one grid (source grid) to another (target grid) </xs:documentation>
587   </xs:annotation>
588   <xs:sequence>
589      <xs:element name="mappingType" minOccurs="1" maxOccurs="1" type="TimeMappingType"/>
590      <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/>
591   </xs:sequence>
592</xs:complexType>
593<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ProcessorComponent">
594   <xs:annotation>
595      <xs:documentation>A ProcessorComponent is a component which does not model some physical phenomena.  It still processes data, but it is not a "scientific model" in the strict sense.  Examples of ProcessorComponents include transformers and post-processors.  ProcessorComponents may be assocaited with a DataProcessing activity as opposed to a Simulation activity.</xs:documentation>
596   </xs:annotation>
597                        <xs:complexContent>
598                        <xs:extension base="SoftwareComponent">
599                    <xs:sequence>
600      <xs:element name="type" minOccurs="1" maxOccurs="2" type="ProcessorComponentType">
601         <xs:annotation>
602            <xs:documentation>Describes the type of component.  IThere can be two of these because of the realm/domain distinction)</xs:documentation>
603         </xs:annotation>
604      </xs:element>
605      <xs:element name="spatialRegridding" minOccurs="0" maxOccurs="3" type="SpatialRegridding">
606         <xs:annotation>
607            <xs:documentation>Characteristics of the scheme used to interpolate a field from one grid (source grid) to another (target grid) </xs:documentation>
608         </xs:annotation>
609      </xs:element>
610      <xs:element name="timeTransformation" minOccurs="0" maxOccurs="1" type="TimeTransformation">
611         <xs:annotation>
612            <xs:documentation> Temporal transformation performed on the coupling field before or after regridding onto the target grid. </xs:documentation>
613         </xs:annotation>
614      </xs:element>
615      <xs:element name="activity" minOccurs="0" maxOccurs="1">
616         <xs:complexType>
617            <xs:choice>
618               <xs:element name="reference">
619                  <xs:complexType>
620                     <xs:sequence>
621                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
622                           <xs:annotation>
623                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
624                           </xs:annotation>
625                        </xs:element>
626                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
627                           <xs:annotation>
628                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
629                           </xs:annotation>
630                        </xs:element>
631                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
632                           <xs:annotation>
633                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
634                           </xs:annotation>
635                        </xs:element>
636                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
637                           <xs:annotation>
638                              <xs:documentation>The version of the element being referenced.</xs:documentation>
639                           </xs:annotation>
640                        </xs:element>
641                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
642                           <xs:annotation>
643                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
644                           </xs:annotation>
645                        </xs:element>
646                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
647                           <xs:annotation>
648                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
649                           </xs:annotation>
650                        </xs:element>
651                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
652                           <xs:annotation>
653                              <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>
654                           </xs:annotation>
655                        </xs:element>
656                     </xs:sequence>
657                     <xs:attribute ref="xlink:href" use="optional"/>
658                  </xs:complexType>
659               </xs:element>
660               <xs:element ref="dataProcessing"/>
661            </xs:choice>
662         </xs:complexType>
663      </xs:element>
664   </xs:sequence>
665   <xs:attribute name="conservative" use="required" type="xs:boolean">
666      <xs:annotation>
667         <xs:documentation>A conservative component conserves fluxes across corresponding times and areas for different grids.</xs:documentation>
668      </xs:annotation>
669   </xs:attribute> 
670                            </xs:extension>
671                            </xs:complexContent>
672                        </xs:complexType>
673<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="processorComponent">
674   <xs:annotation>
675      <xs:documentation>A ProcessorComponent is a component which does not model some physical phenomena.  It still processes data, but it is not a "scientific model" in the strict sense.  Examples of ProcessorComponents include transformers and post-processors.  ProcessorComponents may be assocaited with a DataProcessing activity as opposed to a Simulation activity.</xs:documentation>
676   </xs:annotation>
677   <xs:complexType>
678      <xs:complexContent>
679         <xs:extension base="ProcessorComponent">
680            <xs:sequence>
681               <xs:element name="documentID" minOccurs="1" maxOccurs="1" type="guid">
682                  <xs:annotation>
683                     <xs:documentation>a unique indentifier for this document</xs:documentation>
684                  </xs:annotation>
685               </xs:element>
686               <xs:element name="documentVersion" minOccurs="1" maxOccurs="1" type="version"/>
687               <xs:element name="metadataID" minOccurs="0" maxOccurs="1" type="xs:anyURI"/>
688               <xs:element name="metadataVersion" minOccurs="0" maxOccurs="1" type="version"/>
689               <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
690                  <xs:annotation>
691                     <xs:documentation>The id of this document as referenced by an external body (ie: DOI, or even IPSL)</xs:documentation>
692                  </xs:annotation>
693               </xs:element>
694               <xs:element name="documentAuthor" minOccurs="0" maxOccurs="1" type="ResponsibleParty">
695                  <xs:annotation>
696                     <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>
697                  </xs:annotation>
698               </xs:element>
699               <xs:element name="documentCreationDate" minOccurs="1" maxOccurs="1" type="xs:dateTime">
700                  <xs:annotation>
701                     <xs:documentation>The date the <i>document </i>was created.</xs:documentation>
702                  </xs:annotation>
703               </xs:element>
704               <xs:element name="documentGenealogy" minOccurs="0" maxOccurs="1" type="Genealogy">
705                  <xs:annotation>
706                     <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>
707                  </xs:annotation>
708               </xs:element>
709               <xs:element name="quality" minOccurs="0" maxOccurs="unbounded" type="Quality">
710                  <xs:annotation>
711                     <xs:documentation>a (set of) quality record(s) for this document.</xs:documentation>
712                  </xs:annotation>
713               </xs:element>
714            </xs:sequence>
715            <xs:attribute name="documentStatus" use="optional" type="DocumentStatusType"/>
716         </xs:extension>
717      </xs:complexContent>
718   </xs:complexType>
719</xs:element>
720<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Coupling">
721   <xs:annotation>
722      <xs:documentation>A coupling represents a set of Connections between a source and target component.  Couplings can be complete or incomplete.  If they are complete then they must include all Connections between model properties.  If they are incomplete then the connections can be underspecified or not listed at all.</xs:documentation>
723   </xs:annotation>
724   <xs:sequence>
725      <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
726         <xs:annotation>
727            <xs:documentation>A free-text description of the coupling.</xs:documentation>
728         </xs:annotation>
729      </xs:element>
730      <xs:element name="type" minOccurs="0" maxOccurs="1" type="ConnectionType">
731         <xs:annotation>
732            <xs:documentation>Describes the method of coupling.</xs:documentation>
733         </xs:annotation>
734      </xs:element>
735      <xs:element name="timeProfile" minOccurs="0" maxOccurs="1" type="Timing">
736         <xs:annotation>
737            <xs:documentation>Describes how often the coupling takes place.</xs:documentation>
738         </xs:annotation>
739      </xs:element>
740      <xs:element name="timeLag" minOccurs="0" maxOccurs="1" type="TimeLag">
741         <xs:annotation>
742            <xs:documentation> The coupling field used in the target at a given time corresponds to a field produced by the source at a previous time. </xs:documentation>
743         </xs:annotation>
744      </xs:element>
745      <xs:element name="spatialRegridding" minOccurs="0" maxOccurs="3" type="SpatialRegridding">
746         <xs:annotation>
747            <xs:documentation>Characteristics of the scheme used to interpolate a field from one grid (source grid) to another (target grid) </xs:documentation>
748         </xs:annotation>
749      </xs:element>
750      <xs:element name="timeTransformation" minOccurs="0" maxOccurs="1" type="TimeTransformation">
751         <xs:annotation>
752            <xs:documentation>Temporal transformation performed on the coupling field before or after regridding onto the target grid. </xs:documentation>
753         </xs:annotation>
754      </xs:element>
755      <xs:element name="couplingSource" minOccurs="1" maxOccurs="unbounded">
756         <xs:annotation>
757            <xs:documentation>The source component of the coupling.  (note that there can be multiple sources)</xs:documentation>
758         </xs:annotation>
759         <xs:complexType>
760            <xs:choice>
761               <xs:element name="reference">
762                  <xs:complexType>
763                     <xs:sequence>
764                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
765                           <xs:annotation>
766                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
767                           </xs:annotation>
768                        </xs:element>
769                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
770                           <xs:annotation>
771                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
772                           </xs:annotation>
773                        </xs:element>
774                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
775                           <xs:annotation>
776                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
777                           </xs:annotation>
778                        </xs:element>
779                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
780                           <xs:annotation>
781                              <xs:documentation>The version of the element being referenced.</xs:documentation>
782                           </xs:annotation>
783                        </xs:element>
784                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
785                           <xs:annotation>
786                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
787                           </xs:annotation>
788                        </xs:element>
789                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
790                           <xs:annotation>
791                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
792                           </xs:annotation>
793                        </xs:element>
794                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
795                           <xs:annotation>
796                              <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>
797                           </xs:annotation>
798                        </xs:element>
799                     </xs:sequence>
800                     <xs:attribute ref="xlink:href" use="optional"/>
801                  </xs:complexType>
802               </xs:element>
803               <!-- this is an abstract class --><xs:element name="couplingSource" minOccurs="1" maxOccurs="unbounded">
804                  <xs:complexType>
805                     <xs:choice minOccurs="1" maxOccurs="1">
806                        <xs:element ref="dataObject"/>
807                        <xs:element name="dataContent" type="DataContent"/>
808                        <xs:element name="componentProperty" type="ComponentProperty"/>
809                        <xs:element name="softwareComponent" type="SoftwareComponent"/>
810                     </xs:choice>
811                  </xs:complexType>
812               </xs:element>
813            </xs:choice>
814         </xs:complexType>
815      </xs:element>
816      <xs:element name="couplingTarget" minOccurs="1" maxOccurs="1">
817         <xs:annotation>
818            <xs:documentation>The target component of the coupling</xs:documentation>
819         </xs:annotation>
820         <xs:complexType>
821            <xs:choice>
822               <xs:element name="reference">
823                  <xs:complexType>
824                     <xs:sequence>
825                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
826                           <xs:annotation>
827                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
828                           </xs:annotation>
829                        </xs:element>
830                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
831                           <xs:annotation>
832                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
833                           </xs:annotation>
834                        </xs:element>
835                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
836                           <xs:annotation>
837                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
838                           </xs:annotation>
839                        </xs:element>
840                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
841                           <xs:annotation>
842                              <xs:documentation>The version of the element being referenced.</xs:documentation>
843                           </xs:annotation>
844                        </xs:element>
845                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
846                           <xs:annotation>
847                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
848                           </xs:annotation>
849                        </xs:element>
850                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
851                           <xs:annotation>
852                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
853                           </xs:annotation>
854                        </xs:element>
855                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
856                           <xs:annotation>
857                              <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>
858                           </xs:annotation>
859                        </xs:element>
860                     </xs:sequence>
861                     <xs:attribute ref="xlink:href" use="optional"/>
862                  </xs:complexType>
863               </xs:element>
864               <!-- this is an abstract class --><xs:element name="couplingTarget" minOccurs="1" maxOccurs="1">
865                  <xs:complexType>
866                     <xs:choice minOccurs="1" maxOccurs="1">
867                        <xs:element ref="dataObject"/>
868                        <xs:element name="dataContent" type="DataContent"/>
869                        <xs:element name="componentProperty" type="ComponentProperty"/>
870                        <xs:element name="softwareComponent" type="SoftwareComponent"/>
871                     </xs:choice>
872                  </xs:complexType>
873               </xs:element>
874            </xs:choice>
875         </xs:complexType>
876      </xs:element>
877      <xs:element name="transformer" minOccurs="0" maxOccurs="unbounded">
878         <xs:annotation>
879            <xs:documentation>An "in-line" transformer.  This references a fully-described transformer (typically that forms part of the top-level composition) used in the context of this coupling.  It is used instead of separately specifying a spatialRegridding, timeTransformation, etc. here.</xs:documentation>
880         </xs:annotation>
881         <xs:complexType>
882            <xs:choice>
883               <xs:element name="reference">
884                  <xs:complexType>
885                     <xs:sequence>
886                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
887                           <xs:annotation>
888                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
889                           </xs:annotation>
890                        </xs:element>
891                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
892                           <xs:annotation>
893                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
894                           </xs:annotation>
895                        </xs:element>
896                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
897                           <xs:annotation>
898                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
899                           </xs:annotation>
900                        </xs:element>
901                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
902                           <xs:annotation>
903                              <xs:documentation>The version of the element being referenced.</xs:documentation>
904                           </xs:annotation>
905                        </xs:element>
906                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
907                           <xs:annotation>
908                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
909                           </xs:annotation>
910                        </xs:element>
911                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
912                           <xs:annotation>
913                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
914                           </xs:annotation>
915                        </xs:element>
916                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
917                           <xs:annotation>
918                              <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>
919                           </xs:annotation>
920                        </xs:element>
921                     </xs:sequence>
922                     <xs:attribute ref="xlink:href" use="optional"/>
923                  </xs:complexType>
924               </xs:element>
925               <xs:element ref="processorComponent"/>
926            </xs:choice>
927         </xs:complexType>
928      </xs:element>
929      <xs:element name="priming" minOccurs="0" maxOccurs="1">
930         <xs:annotation>
931            <xs:documentation>A priming source is one that is active on the first available timestep only (before "proper" coupling can ocurr).  It can either be described here explicitly, or else a separate coupling/connection with a timing profile that is active on only the first timestep can be created.</xs:documentation>
932         </xs:annotation>
933         <xs:complexType>
934            <xs:choice>
935               <xs:element name="reference">
936                  <xs:complexType>
937                     <xs:sequence>
938                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
939                           <xs:annotation>
940                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
941                           </xs:annotation>
942                        </xs:element>
943                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
944                           <xs:annotation>
945                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
946                           </xs:annotation>
947                        </xs:element>
948                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
949                           <xs:annotation>
950                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
951                           </xs:annotation>
952                        </xs:element>
953                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
954                           <xs:annotation>
955                              <xs:documentation>The version of the element being referenced.</xs:documentation>
956                           </xs:annotation>
957                        </xs:element>
958                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
959                           <xs:annotation>
960                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
961                           </xs:annotation>
962                        </xs:element>
963                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
964                           <xs:annotation>
965                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
966                           </xs:annotation>
967                        </xs:element>
968                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
969                           <xs:annotation>
970                              <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>
971                           </xs:annotation>
972                        </xs:element>
973                     </xs:sequence>
974                     <xs:attribute ref="xlink:href" use="optional"/>
975                  </xs:complexType>
976               </xs:element>
977               <!-- this is an abstract class --><xs:element name="priming" minOccurs="0" maxOccurs="1">
978                  <xs:complexType>
979                     <xs:choice minOccurs="1" maxOccurs="1">
980                        <xs:element ref="dataObject"/>
981                        <xs:element name="dataContent" type="DataContent"/>
982                        <xs:element name="componentProperty" type="ComponentProperty"/>
983                        <xs:element name="softwareComponent" type="SoftwareComponent"/>
984                     </xs:choice>
985                  </xs:complexType>
986               </xs:element>
987            </xs:choice>
988         </xs:complexType>
989      </xs:element>
990      <xs:element name="couplingProperty" minOccurs="0" maxOccurs="unbounded"
991                  type="CouplingProperty"/>
992      <xs:element name="connection" minOccurs="0" maxOccurs="unbounded" type="Connection"/>
993   </xs:sequence>
994   <xs:attribute name="purpose" use="required" type="DataPurpose"/>
995   <xs:attribute name="fullySpecified" use="required" type="xs:boolean">
996      <xs:annotation>
997         <xs:documentation>If "true" then the coupling is fully-specified.  If "false" then not every Connection has been described within the coupling.</xs:documentation>
998      </xs:annotation>
999   </xs:attribute>
1000</xs:complexType>
1001<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="TimeMappingType" mixed="true">
1002   <xs:annotation>
1003      <xs:documentation>Enumerates the different ways that time can be mapped when transforming from one field to another.</xs:documentation>
1004   </xs:annotation>
1005   <xs:sequence>
1006      <xs:element name="vocabularyServer" minOccurs="0">
1007         <xs:complexType>
1008            <xs:sequence>
1009               <xs:element name="vocabularyName" type="xs:string"/>
1010               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
1011               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
1012                  <xs:annotation>
1013                     <xs:documentation>information about how to access the vocabulary
1014                                    </xs:documentation>
1015                  </xs:annotation>
1016               </xs:element>
1017            </xs:sequence>
1018            <xs:attribute name="href" type="xs:anyURI"/>
1019         </xs:complexType>
1020      </xs:element>
1021   </xs:sequence>
1022   <xs:attribute name="value" type="TimeMappingType_Enumeration" use="required"/>
1023</xs:complexType>
1024<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="TimeMappingType_Enumeration">
1025   <xs:restriction base="xs:string">
1026      <xs:enumeration value="TimeAccumulation"/>
1027      <xs:enumeration value="TimeAverage"/>
1028      <xs:enumeration value="LastAvailable"/>
1029      <xs:enumeration value="TimeInterpolation"/>
1030      <xs:enumeration value="Exact"/>
1031      <xs:enumeration value="Other"/>
1032   </xs:restriction>
1033</xs:simpleType>
1034<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ModelComponent">
1035   <xs:annotation>
1036      <xs:documentation>A ModelCompnent is a scientific model; it represents code which models some physical phenomena for a particular length of time.</xs:documentation>
1037   </xs:annotation>
1038                        <xs:complexContent>
1039                        <xs:extension base="SoftwareComponent">
1040                    <xs:sequence>
1041      <xs:element name="type" minOccurs="1" maxOccurs="2" type="ModelComponentType">
1042         <xs:annotation>
1043            <xs:documentation>Describes the type of component.  (There can be two of these because of the realm/domain distinction.)</xs:documentation>
1044         </xs:annotation>
1045      </xs:element>
1046      <xs:element name="timing" minOccurs="0" maxOccurs="1" type="Timing">
1047         <xs:annotation>
1048            <xs:documentation>Describes information about how this component simulates time.</xs:documentation>
1049         </xs:annotation>
1050      </xs:element>
1051      <xs:element name="activity" minOccurs="0" maxOccurs="1">
1052         <xs:complexType>
1053            <xs:choice>
1054               <xs:element name="reference">
1055                  <xs:complexType>
1056                     <xs:sequence>
1057                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
1058                           <xs:annotation>
1059                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
1060                           </xs:annotation>
1061                        </xs:element>
1062                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
1063                           <xs:annotation>
1064                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
1065                           </xs:annotation>
1066                        </xs:element>
1067                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
1068                           <xs:annotation>
1069                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
1070                           </xs:annotation>
1071                        </xs:element>
1072                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
1073                           <xs:annotation>
1074                              <xs:documentation>The version of the element being referenced.</xs:documentation>
1075                           </xs:annotation>
1076                        </xs:element>
1077                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
1078                           <xs:annotation>
1079                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
1080                           </xs:annotation>
1081                        </xs:element>
1082                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
1083                           <xs:annotation>
1084                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
1085                           </xs:annotation>
1086                        </xs:element>
1087                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
1088                           <xs:annotation>
1089                              <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>
1090                           </xs:annotation>
1091                        </xs:element>
1092                     </xs:sequence>
1093                     <xs:attribute ref="xlink:href" use="optional"/>
1094                  </xs:complexType>
1095               </xs:element>
1096               <xs:element ref="simulationRun"/>
1097            </xs:choice>
1098         </xs:complexType>
1099      </xs:element>
1100   </xs:sequence> 
1101                            </xs:extension>
1102                            </xs:complexContent>
1103                        </xs:complexType>
1104<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="modelComponent">
1105   <xs:annotation>
1106      <xs:documentation>A ModelCompnent is a scientific model; it represents code which models some physical phenomena for a particular length of time.</xs:documentation>
1107   </xs:annotation>
1108   <xs:complexType>
1109      <xs:complexContent>
1110         <xs:extension base="ModelComponent">
1111            <xs:sequence>
1112               <xs:element name="documentID" minOccurs="1" maxOccurs="1" type="guid">
1113                  <xs:annotation>
1114                     <xs:documentation>a unique indentifier for this document</xs:documentation>
1115                  </xs:annotation>
1116               </xs:element>
1117               <xs:element name="documentVersion" minOccurs="1" maxOccurs="1" type="version"/>
1118               <xs:element name="metadataID" minOccurs="0" maxOccurs="1" type="xs:anyURI"/>
1119               <xs:element name="metadataVersion" minOccurs="0" maxOccurs="1" type="version"/>
1120               <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
1121                  <xs:annotation>
1122                     <xs:documentation>The id of this document as referenced by an external body (ie: DOI, or even IPSL)</xs:documentation>
1123                  </xs:annotation>
1124               </xs:element>
1125               <xs:element name="documentAuthor" minOccurs="0" maxOccurs="1" type="ResponsibleParty">
1126                  <xs:annotation>
1127                     <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>
1128                  </xs:annotation>
1129               </xs:element>
1130               <xs:element name="documentCreationDate" minOccurs="1" maxOccurs="1" type="xs:dateTime">
1131                  <xs:annotation>
1132                     <xs:documentation>The date the <i>document </i>was created.</xs:documentation>
1133                  </xs:annotation>
1134               </xs:element>
1135               <xs:element name="documentGenealogy" minOccurs="0" maxOccurs="1" type="Genealogy">
1136                  <xs:annotation>
1137                     <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>
1138                  </xs:annotation>
1139               </xs:element>
1140               <xs:element name="quality" minOccurs="0" maxOccurs="unbounded" type="Quality">
1141                  <xs:annotation>
1142                     <xs:documentation>a (set of) quality record(s) for this document.</xs:documentation>
1143                  </xs:annotation>
1144               </xs:element>
1145            </xs:sequence>
1146            <xs:attribute name="documentStatus" use="optional" type="DocumentStatusType"/>
1147         </xs:extension>
1148      </xs:complexContent>
1149   </xs:complexType>
1150</xs:element>
1151<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ComponentProperty">
1152   <xs:annotation>
1153      <xs:documentation>ComponentProperties include things that a component simulates (ie: pressure, humidity) and things that prescribe that simulation (ie: gravity, choice of advection scheme).  Note that this is a specialisation of shared::DataSource.  data::DataObject is also a specialisation of shared::DataSource.  This allows software::Connections and/or activity::Conformance to refer to either ComponentProperties or DataObjects.  </xs:documentation>
1154   </xs:annotation>
1155                        <xs:complexContent>
1156                        <xs:extension base="DataSource">
1157                    <xs:sequence>
1158      <xs:element name="shortName" minOccurs="1" maxOccurs="1" type="xs:string"/>
1159      <xs:element name="longName" minOccurs="1" maxOccurs="1" type="xs:string"/>
1160      <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/>
1161      <xs:element name="units" minOccurs="0" maxOccurs="1" type="UnitType"/>
1162      <xs:element name="standardName" minOccurs="0" maxOccurs="unbounded" type="StandardName">
1163         <xs:annotation>
1164            <xs:documentation>The standard name that this property is known as (for example, its CF name)</xs:documentation>
1165         </xs:annotation>
1166      </xs:element>
1167      <xs:element name="value" minOccurs="0" maxOccurs="unbounded" type="PropertyValue">
1168         <xs:annotation>
1169            <xs:documentation>The value of the property (not applicable to fields)</xs:documentation>
1170         </xs:annotation>
1171      </xs:element>
1172      <xs:element name="citation" minOccurs="0" maxOccurs="unbounded"
1173                  type="gmd:CI_Citation_PropertyType"/>
1174      <xs:element name="grid" minOccurs="0" maxOccurs="1">
1175         <xs:annotation>
1176            <xs:documentation>A reference to the grid that this property maps onto; may override the ModelComponent grid.</xs:documentation>
1177         </xs:annotation>
1178         <xs:complexType>
1179            <xs:choice>
1180               <xs:element name="reference">
1181                  <xs:complexType>
1182                     <xs:sequence>
1183                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
1184                           <xs:annotation>
1185                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
1186                           </xs:annotation>
1187                        </xs:element>
1188                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
1189                           <xs:annotation>
1190                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
1191                           </xs:annotation>
1192                        </xs:element>
1193                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
1194                           <xs:annotation>
1195                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
1196                           </xs:annotation>
1197                        </xs:element>
1198                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
1199                           <xs:annotation>
1200                              <xs:documentation>The version of the element being referenced.</xs:documentation>
1201                           </xs:annotation>
1202                        </xs:element>
1203                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
1204                           <xs:annotation>
1205                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
1206                           </xs:annotation>
1207                        </xs:element>
1208                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
1209                           <xs:annotation>
1210                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
1211                           </xs:annotation>
1212                        </xs:element>
1213                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
1214                           <xs:annotation>
1215                              <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>
1216                           </xs:annotation>
1217                        </xs:element>
1218                     </xs:sequence>
1219                     <xs:attribute ref="xlink:href" use="optional"/>
1220                  </xs:complexType>
1221               </xs:element>
1222               <xs:element name="grid" type="gml:AbstractGeometryType"/>
1223            </xs:choice>
1224         </xs:complexType>
1225      </xs:element>
1226      <xs:element name="componentProperty" minOccurs="0" maxOccurs="unbounded"
1227                  type="ComponentProperty"/>
1228   </xs:sequence>
1229   <xs:attribute name="intent" use="optional" type="ComponentPropertyIntentType">
1230      <xs:annotation>
1231         <xs:documentation>The direction that this property is intended to be coupled: in, out, or inout.</xs:documentation>
1232      </xs:annotation>
1233   </xs:attribute>
1234   <xs:attribute name="represented" use="required" type="xs:boolean">
1235      <xs:annotation>
1236         <xs:documentation>When set to false, means that this property is not used by the component. Covers the case when, for instance, a modeler chooses not to represent some property in their model.  (But still allows meaningful comparisons between components which _do_ model this property.)</xs:documentation>
1237      </xs:annotation>
1238   </xs:attribute> 
1239                            </xs:extension>
1240                            </xs:complexContent>
1241                        </xs:complexType>
1242<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ProcessorComponentType"
1243                mixed="true">
1244   <xs:annotation>
1245      <xs:documentation>An enumeration of types of ProcessorComponent.  This includes things like transformers and post-processors.</xs:documentation>
1246   </xs:annotation>
1247   <xs:sequence>
1248      <xs:element name="vocabularyServer" minOccurs="0">
1249         <xs:complexType>
1250            <xs:sequence>
1251               <xs:element name="vocabularyName" type="xs:string"/>
1252               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
1253               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
1254                  <xs:annotation>
1255                     <xs:documentation>information about how to access the vocabulary
1256                                    </xs:documentation>
1257                  </xs:annotation>
1258               </xs:element>
1259            </xs:sequence>
1260            <xs:attribute name="href" type="xs:anyURI"/>
1261         </xs:complexType>
1262      </xs:element>
1263   </xs:sequence>
1264   <xs:attribute name="value" type="ProcessorComponentType_Enumeration" use="required"/>
1265</xs:complexType>
1266<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema"
1267               name="ProcessorComponentType_Enumeration">
1268   <xs:restriction base="xs:string">
1269      <xs:enumeration value="post_processor"/>
1270      <xs:enumeration value="transformer"/>
1271      <xs:enumeration value="Other"/>
1272   </xs:restriction>
1273</xs:simpleType>
1274<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ScientificProperties">
1275   <xs:annotation>
1276      <xs:documentation>This is just being used as a container for component properties.</xs:documentation>
1277   </xs:annotation>
1278   <xs:sequence>
1279      <xs:element name="componentProperty" minOccurs="0" maxOccurs="unbounded"
1280                  type="ComponentProperty"/>
1281   </xs:sequence>
1282</xs:complexType>
1283<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Parallelisation">
1284   <xs:annotation>
1285      <xs:documentation>Describes how a deployment has been parallelised across a computing platform.</xs:documentation>
1286   </xs:annotation>
1287   <xs:sequence>
1288      <xs:element name="processes" minOccurs="1" maxOccurs="1" type="xs:integer"/>
1289      <xs:element name="rank" minOccurs="1" maxOccurs="1" type="xs:integer"/>
1290   </xs:sequence>
1291</xs:complexType>
1292<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="CouplingProperty">
1293   <xs:annotation>
1294      <xs:documentation>A CouplingProperty is a name/value pair used to specify OASIS-specific properties.</xs:documentation>
1295   </xs:annotation>
1296                        <xs:complexContent>
1297                        <xs:extension base="Property">
1298                    <xs:sequence/> 
1299                            </xs:extension>
1300                            </xs:complexContent>
1301                        </xs:complexType>
1302<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="SpatialRegriddingMethodType">
1303   <xs:restriction base="xs:string">
1304      <xs:enumeration value="linear"/>
1305      <xs:enumeration value="near-neighbour"/>
1306      <xs:enumeration value="cubic"/>
1307      <xs:enumeration value="conservative-first-order"/>
1308      <xs:enumeration value="conservative-second-order"/>
1309   </xs:restriction>
1310</xs:simpleType>
1311<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ConnectionType" mixed="true">
1312   <xs:annotation>
1313      <xs:documentation>The ConnectionType enumeration describes the mechanism of transport for a connection.</xs:documentation>
1314   </xs:annotation>
1315   <xs:sequence>
1316      <xs:element name="vocabularyServer" minOccurs="0">
1317         <xs:complexType>
1318            <xs:sequence>
1319               <xs:element name="vocabularyName" type="xs:string"/>
1320               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
1321               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
1322                  <xs:annotation>
1323                     <xs:documentation>information about how to access the vocabulary
1324                                    </xs:documentation>
1325                  </xs:annotation>
1326               </xs:element>
1327            </xs:sequence>
1328            <xs:attribute name="href" type="xs:anyURI"/>
1329         </xs:complexType>
1330      </xs:element>
1331   </xs:sequence>
1332   <xs:attribute name="value" type="ConnectionType_Enumeration" use="required"/>
1333</xs:complexType>
1334<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ConnectionType_Enumeration">
1335   <xs:restriction base="xs:string">
1336      <xs:enumeration value="CCSM Flux Coupler"/>
1337      <xs:enumeration value="ESMF"/>
1338      <xs:enumeration value="FMS"/>
1339      <xs:enumeration value="Files"/>
1340      <xs:enumeration value="MCT"/>
1341      <xs:enumeration value="OASIS3"/>
1342      <xs:enumeration value="OASIS4"/>
1343      <xs:enumeration value="Shared Memory">
1344         <xs:annotation>
1345            <xs:documentation>a "direct" connection; implies a sequential rather than parallel simulation; also known as "argument passing."</xs:documentation>
1346         </xs:annotation>
1347      </xs:enumeration>
1348      <xs:enumeration value="Embedded">
1349         <xs:annotation>
1350            <xs:documentation>An embedded connection is a "virtual" connection.  It represents a connection between two embedded components which means that they are not implemented as separate comopnents in software and so there is no "real" inter-component coupling going on.</xs:documentation>
1351         </xs:annotation>
1352      </xs:enumeration>
1353      <xs:enumeration value="Other"/>
1354   </xs:restriction>
1355</xs:simpleType>
1356<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ModelComponentType"
1357                mixed="true">
1358   <xs:annotation>
1359      <xs:documentation>An enumeration of types of ModelComponent.  This includes things like atmosphere &amp; ocean models, radiation schemes, etc.   CIM best-practice is to describe every component for which there is a named ComponentType as a separate component, even if it is not a separate unit of software (ie: even if it is embedded), instead of as a (set of) ModelParameters.  This codelist is synonomous with "realm" for the purposes of CMIP5.</xs:documentation>
1360   </xs:annotation>
1361   <xs:sequence>
1362      <xs:element name="vocabularyServer" minOccurs="0">
1363         <xs:complexType>
1364            <xs:sequence>
1365               <xs:element name="vocabularyName" type="xs:string"/>
1366               <xs:element name="vocabularyVersion" minOccurs="0" type="version"/>
1367               <xs:element name="vocabularyDetails" type="xs:string" minOccurs="0">
1368                  <xs:annotation>
1369                     <xs:documentation>information about how to access the vocabulary
1370                                    </xs:documentation>
1371                  </xs:annotation>
1372               </xs:element>
1373            </xs:sequence>
1374            <xs:attribute name="href" type="xs:anyURI"/>
1375         </xs:complexType>
1376      </xs:element>
1377   </xs:sequence>
1378   <xs:attribute name="value" type="ModelComponentType_Enumeration" use="required"/>
1379</xs:complexType>
1380<xs:simpleType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ModelComponentType_Enumeration">
1381   <xs:restriction base="xs:string">
1382      <xs:enumeration value="Advection"/>
1383      <xs:enumeration value="Aerosol3D-Sources"/>
1384      <xs:enumeration value="Aerosol2D-Sources"/>
1385      <xs:enumeration value="AerolEmissionAndConc"/>
1386      <xs:enumeration value="AerosolKeyProperties"/>
1387      <xs:enumeration value="AerosolModel"/>
1388      <xs:enumeration value="Aerosols"/>
1389      <xs:enumeration value="AerosolSpaceConfig"/>
1390      <xs:enumeration value="AerosolTransport"/>
1391      <xs:enumeration value="AtmChem2D-Sources"/>
1392      <xs:enumeration value="AtmChem3D-Sources"/>
1393      <xs:enumeration value="AtmChemEmissionAndConc"/>
1394      <xs:enumeration value="AtmChemKeyProperties"/>
1395      <xs:enumeration value="AtmChemSpaceConfig"/>
1396      <xs:enumeration value="AtmChemTransport"/>
1397      <xs:enumeration value="AtmGasPhaseChemistry"/>
1398      <xs:enumeration value="AtmHeterogeneousChemistry"/>
1399      <xs:enumeration value="AtmosAdvection"/>
1400      <xs:enumeration value="AtmosCloudScheme"/>
1401      <xs:enumeration value="AtmosConvectTurbulCloud"/>
1402      <xs:enumeration value="AtmosDynamicalCore"/>
1403      <xs:enumeration value="AtmosHorizontalDomain"/>
1404      <xs:enumeration value="AtmosKeyProperties"/>
1405      <xs:enumeration value="AtmosOrographyAndWaves"/>
1406      <xs:enumeration value="Atmosphere"/>
1407      <xs:enumeration value="AtmosphericChemistry"/>
1408      <xs:enumeration value="AtmosRadiation"/>
1409      <xs:enumeration value="AtmosSpaceConfiguration"/>
1410      <xs:enumeration value="Climate"/>
1411      <xs:enumeration value="CloudSimulator"/>
1412      <xs:enumeration value="IceSheetDynamics"/>
1413      <xs:enumeration value="LandIce"/>
1414      <xs:enumeration value="LandIceGlaciers"/>
1415      <xs:enumeration value="LandIceKeyProperties"/>
1416      <xs:enumeration value="LandIceSheet"/>
1417      <xs:enumeration value="LandIceShelves"/>
1418      <xs:enumeration value="LandIceShelvesDynamics"/>
1419      <xs:enumeration value="LandSurface"/>
1420      <xs:enumeration value="LandSurfaceAlbedo"/>
1421      <xs:enumeration value="LandSurfaceCarbonCycle"/>
1422      <xs:enumeration value="LandSurfaceEnergyBalance"/>
1423      <xs:enumeration value="LandSurfaceKeyProperties"/>
1424      <xs:enumeration value="LandSurfaceLakes"/>
1425      <xs:enumeration value="LandSurfaceSnow"/>
1426      <xs:enumeration value="LandSurfaceSoil"/>
1427      <xs:enumeration value="LandSurfaceSpaceConfiguration"/>
1428      <xs:enumeration value="LandSurfaceVegetation"/>
1429      <xs:enumeration value="LandSurfSoilHeatTreatment"/>
1430      <xs:enumeration value="LandSurfSoilHydrology"/>
1431      <xs:enumeration value="Ocean"/>
1432      <xs:enumeration value="OceanAdvection"/>
1433      <xs:enumeration value="OceanBioBoundaryForcing"/>
1434      <xs:enumeration value="OceanBioChemistry"/>
1435      <xs:enumeration value="OceanBioGasExchange"/>
1436      <xs:enumeration value="OceanBioGeoChemistry"/>
1437      <xs:enumeration value="OceanBioKeyProperties"/>
1438      <xs:enumeration value="OceanBioSpaceConfig"/>
1439      <xs:enumeration value="OceanBioTimeStepFramework"/>
1440      <xs:enumeration value="OceanBioTracers"/>
1441      <xs:enumeration value="OceanBioTracersEcosystem"/>
1442      <xs:enumeration value="OceanBoundaryForcing"/>
1443      <xs:enumeration value="OceanBoundaryForcingTracers"/>
1444      <xs:enumeration value="OceanHorizontalDomain"/>
1445      <xs:enumeration value="OceanInteriorMixing"/>
1446      <xs:enumeration value="OceanKeyProperties"/>
1447      <xs:enumeration value="OceanLateralPhysics"/>
1448      <xs:enumeration value="OceanLateralPhysMomentum"/>
1449      <xs:enumeration value="OceanLateralPhysTracers"/>
1450      <xs:enumeration value="OceanMixedLayer"/>
1451      <xs:enumeration value="OceanNudging"/>
1452      <xs:enumeration value="OceanSpaceConfiguration"/>
1453      <xs:enumeration value="OceanUpAndLowBoundaries"/>
1454      <xs:enumeration value="OceanVerticalPhysics"/>
1455      <xs:enumeration value="PhotoChemistry"/>
1456      <xs:enumeration value="RiverRouting"/>
1457      <xs:enumeration value="SeaIce"/>
1458      <xs:enumeration value="SeaIceDynamics"/>
1459      <xs:enumeration value="SeaIceKeyProperties"/>
1460      <xs:enumeration value="SeaIceSpaceConfiguration"/>
1461      <xs:enumeration value="SeaIceThermodynamics"/>
1462      <xs:enumeration value="StratosphericHeterChem"/>
1463      <xs:enumeration value="TopOfAtmosInsolation"/>
1464      <xs:enumeration value="ToposphericHeterChem"/>
1465      <xs:enumeration value="VegetationCarbonCycle"/>
1466      <xs:enumeration value="Other"/>
1467   </xs:restriction>
1468</xs:simpleType>
1469<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="NumericalProperties">
1470   <xs:annotation>
1471      <xs:documentation>This is just being used as a container for component properties.</xs:documentation>
1472   </xs:annotation>
1473   <xs:sequence>
1474      <xs:element name="componentProperty" minOccurs="0" maxOccurs="unbounded"
1475                  type="ComponentProperty"/>
1476   </xs:sequence>
1477</xs:complexType>
1478<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Deployment">
1479   <xs:annotation>
1480      <xs:documentation>Gives information about the technical properties of a component: what machine it was run on, which compilers were used, how it was parallised, etc.
1481
1482A deployment basically associates a deploymentDate with a Platform.  A deployment only exists if something has been deployed.  A platform, in contrast, can exist independently, waiting to be used in deployments.
1483</xs:documentation>
1484   </xs:annotation>
1485   <xs:sequence>
1486      <xs:element name="deploymentDate" minOccurs="0" maxOccurs="1" type="xs:dateTime"/>
1487      <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/>
1488      <xs:element name="parallelisation" minOccurs="0" maxOccurs="1" type="Parallelisation"/>
1489      <xs:element name="platform" minOccurs="1" maxOccurs="1">
1490         <xs:complexType>
1491            <xs:choice>
1492               <xs:element name="reference">
1493                  <xs:complexType>
1494                     <xs:sequence>
1495                        <xs:element name="id" minOccurs="0" maxOccurs="1" type="guid">
1496                           <xs:annotation>
1497                              <xs:documentation>the ID of the element being referenced.</xs:documentation>
1498                           </xs:annotation>
1499                        </xs:element>
1500                        <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string">
1501                           <xs:annotation>
1502                              <xs:documentation>The name of the instance being referenced.</xs:documentation>
1503                           </xs:annotation>
1504                        </xs:element>
1505                        <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string">
1506                           <xs:annotation>
1507                              <xs:documentation>The type of item being referenced (should correspond to the name of the referenced XML element).</xs:documentation>
1508                           </xs:annotation>
1509                        </xs:element>
1510                        <xs:element name="version" minOccurs="0" maxOccurs="1" type="version">
1511                           <xs:annotation>
1512                              <xs:documentation>The version of the element being referenced.</xs:documentation>
1513                           </xs:annotation>
1514                        </xs:element>
1515                        <xs:element name="externalID" minOccurs="0" maxOccurs="unbounded" type="StandardName">
1516                           <xs:annotation>
1517                              <xs:documentation>A non-CIM (non-GUID) id used to reference the element in question.</xs:documentation>
1518                           </xs:annotation>
1519                        </xs:element>
1520                        <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string">
1521                           <xs:annotation>
1522                              <xs:documentation>A description of the element being referenced, in the context of the current class.</xs:documentation>
1523                           </xs:annotation>
1524                        </xs:element>
1525                        <xs:element name="change" minOccurs="0" maxOccurs="unbounded" type="Change">
1526                           <xs:annotation>
1527                              <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>
1528                           </xs:annotation>
1529                        </xs:element>
1530                     </xs:sequence>
1531                     <xs:attribute ref="xlink:href" use="optional"/>
1532                  </xs:complexType>
1533               </xs:element>
1534               <xs:element ref="platform"/>
1535            </xs:choice>
1536         </xs:complexType>
1537      </xs:element>
1538      <xs:element name="executibleName" minOccurs="0" maxOccurs="1" type="xs:string"/>
1539      <xs:element name="executibleArgument" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
1540   </xs:sequence>
1541</xs:complexType>
1542<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Timing">
1543   <xs:annotation>
1544      <xs:documentation>Provides information about the rate of couplings and connections and/or the timing characteristics of individual components - for example, the start and stop times that the component was run for or the units of time that a component is able to model (in a single timestep).</xs:documentation>
1545   </xs:annotation>
1546   <xs:sequence>
1547      <xs:element name="start" minOccurs="0" maxOccurs="1" type="xs:dateTime"/>
1548      <xs:element name="end" minOccurs="0" maxOccurs="1" type="xs:dateTime"/>
1549      <xs:element name="rate" minOccurs="1" maxOccurs="1" type="xs:integer"/>
1550   </xs:sequence>
1551   <xs:attribute name="units" use="required" type="TimingUnits"/>
1552</xs:complexType>       
1553</xs:schema>
Note: See TracBrowser for help on using the repository browser.