source: TI07-MOLES/trunk/v1Schema/Schemae/ndgmetadata1.2.5.xsd @ 1374

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI07-MOLES/trunk/v1Schema/Schemae/ndgmetadata1.2.5.xsd@1374
Revision 1374, 55.3 KB checked in by ko23, 13 years ago (diff)
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Kev O'Neill (CCLRC) -->
3<xs:schema targetNamespace="http://ndg.nerc.ac.uk/moles" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:moles="http://ndg.nerc.ac.uk/moles" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.02.05">
4        <!--version 1.02.05 of NDG metadata schema. Modifications from 1.02.04:
5                correction of potential multiplicity of activity type;
6                extension of dgCruise to allow addition of cruise reports;
7                Ship for cruise explicitly linked via a "dgVessel" element under dgCruise;
8                Port of departure/return  added as explicit elements under dgCruise, as terms from a vocab/gazeteer.
9                vesselType under dgShip added as term;
10                extension of dgCourse to allow addition of cruise map URLs;
11                creation of dgMandatoryStringType to constrain xs:string to have some kind of content;
12                extension of dgDataGranule to include a data summary
13                addition of an optional logos section
14                addition of dgMandatoryStringType to require content in a field otherwise of type xs:string
15                allocation of dgMandatoryStringType to dgMetadataRecord/abbrev
16                        -->
17        <xs:element name="dgMetadata">
18                <xs:annotation>
19                        <xs:documentation>Root element of schema</xs:documentation>
20                </xs:annotation>
21                <xs:complexType>
22                        <xs:sequence minOccurs="0">
23                                <xs:element name="dgMetadataRecord" type="moles:dgMetadataRecordType" minOccurs="0" maxOccurs="unbounded">
24                                        <xs:annotation>
25                                                <xs:documentation>Specialises to give the metadata entities that we're really interested in.</xs:documentation>
26                                        </xs:annotation>
27                                </xs:element>
28                                <xs:element ref="moles:dgPerson" minOccurs="0" maxOccurs="unbounded"/>
29                                <xs:element ref="moles:dgOrganisation" minOccurs="0" maxOccurs="unbounded"/>
30                        </xs:sequence>
31                        <xs:attribute name="version" type="xs:string" default="1.02.05"/>
32                </xs:complexType>
33        </xs:element>
34        <xs:element name="dgStructuredKeyword" type="moles:dgStructuredKeywordType">
35                <xs:annotation>
36                        <xs:documentation>An entry in an identified structured keyword list. </xs:documentation>
37                </xs:annotation>
38        </xs:element>
39        <xs:complexType name="dgStructuredKeywordType">
40                <xs:sequence>
41                        <xs:element name="dgValidTerm" type="xs:string"/>
42                        <xs:element name="dgValidTermID" type="moles:dgValidTermIDType"/>
43                        <xs:element name="dgValidTermAbbrev" type="xs:string" minOccurs="0">
44                                <xs:annotation>
45                                        <xs:documentation>We'll avoid synonyms for now...</xs:documentation>
46                                </xs:annotation>
47                        </xs:element>
48                        <xs:element name="dgValidTermParentID" type="moles:dgValidTermIDType" minOccurs="0"/>
49                        <xs:element name="dgValidSubterm" type="moles:dgStructuredKeywordType" minOccurs="0" maxOccurs="unbounded"/>
50                        <xs:element name="ListLevel" type="xs:integer" minOccurs="0">
51                                <xs:annotation>
52                                        <xs:documentation>Zero is root, and add one as you go down...</xs:documentation>
53                                </xs:annotation>
54                        </xs:element>
55                        <xs:element name="Definition" type="xs:string" minOccurs="0"/>
56                </xs:sequence>
57        </xs:complexType>
58        <xs:complexType name="dgDeploymentType">
59                <xs:sequence>
60                        <xs:element name="DateStart" type="xs:date"/>
61                        <xs:element name="DateEnd" type="xs:date" minOccurs="0"/>
62                        <xs:element ref="moles:dgMetadataID"/>
63                        <xs:element name="ActivityID" type="moles:dgMetadataIDType"/>
64                        <xs:element name="DataProductionToolID" type="moles:dgMetadataIDType"/>
65                        <xs:element name="ObservationStationID" type="moles:dgMetadataIDType"/>
66                        <xs:element name="Coverage" type="moles:dgCoverageType" minOccurs="0"/>
67                </xs:sequence>
68        </xs:complexType>
69        <xs:element name="dgMetadataID" type="moles:dgMetadataIDType">
70                <xs:annotation>
71                        <xs:documentation>Intended to be globally unique, yet allow local repositories to carry on as normal</xs:documentation>
72                </xs:annotation>
73        </xs:element>
74        <xs:complexType name="dgMetadataIDType">
75                <xs:annotation>
76                        <xs:documentation>ObjectID for all metadata objects</xs:documentation>
77                </xs:annotation>
78                <xs:sequence>
79                        <xs:element name="schemeIdentifier">
80                                <xs:simpleType>
81                                        <xs:restriction base="xs:string">
82                                                <xs:enumeration value="URI"/>
83                                                <xs:enumeration value="NDG-A0"/>
84                                                <xs:enumeration value="NDG-B0"/>
85                                                <xs:enumeration value="NDG-B1"/>
86                                                <xs:enumeration value="CDML-0"/>
87                                                <xs:enumeration value="DIF"/>
88                                                <xs:enumeration value="ISO19115"/>
89                                        </xs:restriction>
90                                </xs:simpleType>
91                        </xs:element>
92                        <xs:element name="repositoryIdentifier">
93                                <xs:simpleType>
94                                        <xs:restriction base="xs:string">
95                                                <xs:pattern value="[a-zA-Z][a-zA-Z0-9.\-/_]*"/>
96                                        </xs:restriction>
97                                </xs:simpleType>
98                        </xs:element>
99                        <xs:element name="localIdentifier">
100                                <xs:simpleType>
101                                        <xs:restriction base="xs:string">
102                                                <xs:pattern value="[a-zA-Z][a-zA-Z0-9.\-/_]*"/>
103                                        </xs:restriction>
104                                </xs:simpleType>
105                        </xs:element>
106                </xs:sequence>
107        </xs:complexType>
108        <xs:complexType name="dgRoleType">
109                <xs:sequence>
110                        <xs:element ref="moles:dgMetadataID"/>
111                        <xs:element name="roleName" type="xs:string">
112                                <xs:annotation>
113                                        <xs:documentation>Standard name of the role throughout the NDG</xs:documentation>
114                                </xs:annotation>
115                        </xs:element>
116                        <xs:element name="abbreviation" type="xs:string"/>
117                        <xs:element name="dgRoleHolder" maxOccurs="unbounded">
118                                <xs:annotation>
119                                        <xs:documentation>Key is the holder and start date</xs:documentation>
120                                </xs:annotation>
121                                <xs:complexType>
122                                        <xs:sequence>
123                                                <xs:choice>
124                                                        <xs:element name="dgOrganisationID" type="moles:dgMetadataIDType"/>
125                                                        <xs:element name="dgPersonID" type="moles:dgMetadataIDType"/>
126                                                        <xs:element name="dgRoleID" type="moles:dgMetadataIDType">
127                                                                <xs:annotation>
128                                                                        <xs:documentation>Pointer to another role that must be stored within the system somewhere</xs:documentation>
129                                                                </xs:annotation>
130                                                        </xs:element>
131                                                </xs:choice>
132                                                <xs:element name="startDate" type="xs:date"/>
133                                                <xs:element name="endDate" type="xs:date" minOccurs="0"/>
134                                                <xs:element name="localName" type="xs:string" minOccurs="0">
135                                                        <xs:annotation>
136                                                                <xs:documentation>Title under which the role is being executed, with a default to the standard name</xs:documentation>
137                                                        </xs:annotation>
138                                                </xs:element>
139                                        </xs:sequence>
140                                </xs:complexType>
141                        </xs:element>
142                        <xs:element name="contactDetails" type="moles:dgContactDetailType" minOccurs="0"/>
143                </xs:sequence>
144        </xs:complexType>
145        <xs:complexType name="dgContactDetailType">
146                <xs:sequence>
147                        <xs:element name="eMail" type="xs:string" minOccurs="0"/>
148                        <xs:element name="fax" type="xs:string" minOccurs="0"/>
149                        <xs:element name="telephone" type="xs:string" minOccurs="0"/>
150                        <xs:element name="address" type="moles:dgAddressType" minOccurs="0"/>
151                        <xs:element name="URI" type="xs:anyURI" minOccurs="0"/>
152                </xs:sequence>
153        </xs:complexType>
154        <xs:complexType name="dgAddressType">
155                <xs:sequence>
156                        <xs:element name="addressline" type="xs:string" maxOccurs="unbounded"/>
157                        <xs:element name="city" type="xs:string"/>
158                        <xs:element name="postcode" type="xs:string" minOccurs="0"/>
159                        <xs:element name="country" type="xs:string"/>
160                </xs:sequence>
161        </xs:complexType>
162        <xs:complexType name="dgPersonalNameType">
163                <xs:sequence>
164                        <xs:element name="title" type="xs:string" minOccurs="0"/>
165                        <xs:element name="knownAs" type="xs:string" minOccurs="0"/>
166                        <xs:element name="personalName" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
167                        <xs:element name="initials" type="xs:string"/>
168                        <xs:element name="familyName" type="xs:string"/>
169                        <xs:element name="nameOrder" default="L2R">
170                                <xs:annotation>
171                                        <xs:documentation>order of names to allow for east/west difference</xs:documentation>
172                                </xs:annotation>
173                                <xs:simpleType>
174                                        <xs:restriction base="xs:string">
175                                                <xs:enumeration value="L2R"/>
176                                                <xs:enumeration value="R2L"/>
177                                        </xs:restriction>
178                                </xs:simpleType>
179                        </xs:element>
180                </xs:sequence>
181        </xs:complexType>
182        <xs:complexType name="dgCoverageType">
183                <xs:annotation>
184                        <xs:documentation>This is to allow the statement of the coverage. We will start minimally, and extend as required.</xs:documentation>
185                </xs:annotation>
186                <xs:sequence>
187                        <xs:element ref="moles:dgSpatialCoverage" minOccurs="0"/>
188                        <xs:element ref="moles:dgTemporalCoverage" minOccurs="0"/>
189                        <xs:element name="dgSpatioTemporalCoverage" minOccurs="0">
190                                <xs:annotation>
191                                        <xs:documentation>Where there is a connection between spatial and temporal elements</xs:documentation>
192                                        <xs:documentation>Where there is a connection between spatial and temporal elements</xs:documentation>
193                                </xs:annotation>
194                                <xs:complexType>
195                                        <xs:sequence maxOccurs="unbounded">
196                                                <xs:element name="dgSpatioTemporalRange">
197                                                        <xs:complexType>
198                                                                <xs:sequence>
199                                                                        <xs:element ref="moles:dgSpatialCoverage"/>
200                                                                        <xs:element ref="moles:dgTemporalCoverage"/>
201                                                                </xs:sequence>
202                                                        </xs:complexType>
203                                                </xs:element>
204                                        </xs:sequence>
205                                </xs:complexType>
206                        </xs:element>
207                </xs:sequence>
208        </xs:complexType>
209        <xs:complexType name="dgUnitType">
210                <xs:annotation>
211                        <xs:documentation>Restriction of a term to allow a pointer to the definitive list (which will be "hard-wired" when it is fully agreed and set up)</xs:documentation>
212                </xs:annotation>
213                <xs:complexContent>
214                        <xs:restriction base="moles:dgStructuredKeywordType">
215                                <xs:sequence>
216                                        <xs:element name="dgValidTerm" type="xs:string"/>
217                                        <xs:element name="dgValidTermID" type="moles:dgValidTermIDType"/>
218                                        <xs:element name="dgValidTermAbbrev" type="xs:string" minOccurs="0">
219                                                <xs:annotation>
220                                                        <xs:documentation>We'll avoid synonyms for now...</xs:documentation>
221                                                </xs:annotation>
222                                        </xs:element>
223                                </xs:sequence>
224                        </xs:restriction>
225                </xs:complexContent>
226        </xs:complexType>
227        <xs:complexType name="dgOrganisationType">
228                <xs:sequence>
229                        <xs:element ref="moles:dgMetadataID"/>
230                        <xs:element name="name"/>
231                        <xs:element name="abbreviation"/>
232                        <xs:element name="contactDetails" type="moles:dgContactDetailType"/>
233                        <xs:element name="dgOrganisationRole" type="moles:dgRoleType" minOccurs="0" maxOccurs="unbounded"/>
234                </xs:sequence>
235        </xs:complexType>
236        <xs:complexType name="dgPersonType">
237                <xs:sequence>
238                        <xs:element name="name" type="moles:dgPersonalNameType"/>
239                        <xs:element name="contactDetails" type="moles:dgContactDetailType"/>
240                        <xs:element ref="moles:dgMetadataID"/>
241                </xs:sequence>
242        </xs:complexType>
243        <xs:element name="dgPerson" type="moles:dgPersonType">
244                <xs:annotation>
245                        <xs:documentation>Here to allow inclusion in schema.</xs:documentation>
246                </xs:annotation>
247        </xs:element>
248        <xs:element name="dgOrganisation" type="moles:dgOrganisationType">
249                <xs:annotation>
250                        <xs:documentation>Here to allow inclusion in schema.</xs:documentation>
251                </xs:annotation>
252        </xs:element>
253        <xs:complexType name="dgMetadataDescriptionType">
254                <xs:sequence>
255                        <xs:element name="metadataDescriptionID" type="moles:dgMetadataIDType"/>
256                        <xs:element name="metadataDescriptionLastUpdated" type="xs:dateTime"/>
257                        <xs:element name="abstract">
258                                <xs:annotation>
259                                        <xs:documentation>This is really the "NDG definitive" description.</xs:documentation>
260                                </xs:annotation>
261                                <xs:complexType>
262                                        <xs:sequence>
263                                                <xs:sequence>
264                                                        <xs:element name="abstractText" type="xs:string"/>
265                                                        <xs:element ref="moles:contentType" minOccurs="0"/>
266                                                </xs:sequence>
267                                                <xs:element name="abstractOnlineReference" minOccurs="0" maxOccurs="unbounded">
268                                                        <xs:complexType>
269                                                                <xs:complexContent>
270                                                                        <xs:restriction base="moles:dgOnlineReferenceType">
271                                                                                <xs:sequence>
272                                                                                        <xs:annotation>
273                                                                                                <xs:documentation>Name is to allow the creation of meaningful captions etc.</xs:documentation>
274                                                                                        </xs:annotation>
275                                                                                        <xs:element name="name" default="abstractOnlineReferenceEntry">
276                                                                                                <xs:simpleType>
277                                                                                                        <xs:restriction base="xs:string">
278                                                                                                                <xs:enumeration value="abstractOnlineReferenceEntry"/>
279                                                                                                        </xs:restriction>
280                                                                                                </xs:simpleType>
281                                                                                        </xs:element>
282                                                                                        <xs:element name="URI" type="xs:anyURI"/>
283                                                                                        <xs:element name="notes" type="xs:string" minOccurs="0"/>
284                                                                                </xs:sequence>
285                                                                        </xs:restriction>
286                                                                </xs:complexContent>
287                                                        </xs:complexType>
288                                                </xs:element>
289                                        </xs:sequence>
290                                </xs:complexType>
291                        </xs:element>
292                        <xs:element name="descriptionSection" minOccurs="0">
293                                <xs:complexType>
294                                        <xs:choice maxOccurs="unbounded">
295                                                <xs:sequence>
296                                                        <xs:element name="descriptionText" type="xs:string"/>
297                                                        <xs:element ref="moles:contentType" minOccurs="0"/>
298                                                </xs:sequence>
299                                                <xs:element name="descriptionOnlineReference" type="moles:dgOnlineReferenceType"/>
300                                        </xs:choice>
301                                </xs:complexType>
302                        </xs:element>
303                </xs:sequence>
304        </xs:complexType>
305        <xs:complexType name="dgOnlineReferenceType">
306                <xs:annotation>
307                        <xs:documentation>Type for online references to URIs. Could embrace "non-URI" references later. Name attribute is the key to sub-classing later, as particular vocabularies limit the values that will constrain and define a sub-class</xs:documentation>
308                </xs:annotation>
309                <xs:sequence>
310                        <xs:annotation>
311                                <xs:documentation>There is only a URI reference here at the moment, but one could see the need to include other online reference pointer schemes' pointers to the same object IDC</xs:documentation>
312                        </xs:annotation>
313                        <xs:element name="name" type="xs:string"/>
314                        <xs:element name="URI" type="xs:anyURI"/>
315                        <xs:element name="notes" type="xs:string" minOccurs="0"/>
316                </xs:sequence>
317        </xs:complexType>
318        <xs:complexType name="dgSpatialCoverageType">
319                <xs:sequence>
320                        <xs:sequence>
321                                <xs:element name="BoundingBox" type="moles:dgBoundingBoxType" minOccurs="0" maxOccurs="unbounded">
322                                        <xs:annotation>
323                                                <xs:documentation>Limits are in terms of lat/long. Note the limitations of these in searching certain parts of the globe.</xs:documentation>
324                                        </xs:annotation>
325                                </xs:element>
326                                <xs:element name="dgArea" type="moles:dgStructuredKeywordType" minOccurs="0" maxOccurs="unbounded">
327                                        <xs:annotation>
328                                                <xs:documentation>A geographical area as defined by a controlled vocabulary</xs:documentation>
329                                        </xs:annotation>
330                                </xs:element>
331                                <xs:element name="dgCourse" minOccurs="0" maxOccurs="unbounded">
332                                        <xs:annotation>
333                                                <xs:documentation>Note that there's only a 2D course in there at the moment. In principle you might want a 2D course and a 3D course (e.g. track of aircraft on ground and trajectory through air)</xs:documentation>
334                                        </xs:annotation>
335                                        <xs:complexType>
336                                                <xs:choice>
337                                                        <xs:element name="dgCourse2D" type="moles:dgCourse2DType"/>
338                                                        <xs:element name="dgCoursePlotURI" type="moles:dgOnlineReferenceType"/>
339                                                </xs:choice>
340                                        </xs:complexType>
341                                </xs:element>
342                                <xs:element name="dgPolygon2D" minOccurs="0" maxOccurs="unbounded">
343                                        <xs:complexType>
344                                                <xs:complexContent>
345                                                        <xs:extension base="moles:dgPolygon2DType"/>
346                                                </xs:complexContent>
347                                        </xs:complexType>
348                                </xs:element>
349                        </xs:sequence>
350                        <xs:element name="dgVerticalExtent" minOccurs="0">
351                                <xs:complexType>
352                                        <xs:sequence>
353                                                <xs:element name="dgVerticalExtentBaseRef" type="moles:dgStructuredKeywordType">
354                                                        <xs:annotation>
355                                                                <xs:documentation>Statement of where the "zero-point" is from, would you believe it, a vocab</xs:documentation>
356                                                        </xs:annotation>
357                                                </xs:element>
358                                                <xs:choice>
359                                                        <xs:annotation>
360                                                                <xs:documentation>All values, except verticalExtentText, are assumed to be in metres unless otherwise stated</xs:documentation>
361                                                        </xs:annotation>
362                                                        <xs:element name="dgVerticalExtentLevel" minOccurs="0" maxOccurs="unbounded">
363                                                                <xs:complexType>
364                                                                        <xs:sequence>
365                                                                                <xs:element name="verticalExtentLevelValue"/>
366                                                                                <xs:element name="verticalExtentLevelUnit" type="moles:dgUnitType" minOccurs="0"/>
367                                                                        </xs:sequence>
368                                                                </xs:complexType>
369                                                        </xs:element>
370                                                        <xs:element name="dgVerticalExtentRange" minOccurs="0" maxOccurs="unbounded">
371                                                                <xs:complexType>
372                                                                        <xs:sequence>
373                                                                                <xs:element name="verticalExtentRangeMin" type="xs:decimal"/>
374                                                                                <xs:element name="verticalExtentRangeMax" type="xs:decimal"/>
375                                                                                <xs:element name="verticalExtentRangeUnit" type="moles:dgUnitType" minOccurs="0"/>
376                                                                        </xs:sequence>
377                                                                </xs:complexType>
378                                                        </xs:element>
379                                                </xs:choice>
380                                                <xs:element name="dgVerticalExtentText" type="moles:dgStructuredKeywordType" minOccurs="0" maxOccurs="unbounded">
381                                                        <xs:annotation>
382                                                                <xs:documentation>Note that these terms should all be from the same vocab.</xs:documentation>
383                                                        </xs:annotation>
384                                                </xs:element>
385                                        </xs:sequence>
386                                </xs:complexType>
387                        </xs:element>
388                        <xs:element name="dgSpatialResolution" minOccurs="0">
389                                <xs:complexType>
390                                        <xs:sequence>
391                                                <xs:element name="xResolution" type="moles:dgResolutionType"/>
392                                                <xs:element name="yResolution" type="moles:dgResolutionType"/>
393                                                <xs:element name="zResolution" type="moles:dgResolutionType"/>
394                                        </xs:sequence>
395                                </xs:complexType>
396                        </xs:element>
397                </xs:sequence>
398        </xs:complexType>
399        <xs:element name="dgSpatialCoverage" type="moles:dgSpatialCoverageType">
400                <xs:annotation>
401                        <xs:documentation>Note that no provision is currently made for different CRS. The standard here is lat/long. This will provide a base for transation at the front-ends via the standard libraries and functions.</xs:documentation>
402                </xs:annotation>
403        </xs:element>
404        <xs:element name="dgTemporalCoverage" type="moles:dgTemporalCoverageType">
405                <xs:annotation>
406                        <xs:documentation>Note that no provision is currently made for different CRS. The standard here is UTC. This will provide a base for transation at the front-ends. Special calendars are part of the modelling definition.</xs:documentation>
407                </xs:annotation>
408        </xs:element>
409        <xs:complexType name="dgValidTermIDType">
410                <xs:sequence>
411                        <xs:element name="ParentListID" type="xs:anyURI">
412                                <xs:annotation>
413                                        <xs:documentation>Reference to location of the defining list to which the term belongs</xs:documentation>
414                                </xs:annotation>
415                        </xs:element>
416                        <xs:element name="TermID" type="xs:string">
417                                <xs:annotation>
418                                        <xs:documentation>Value assigned, unique  within a particular term list</xs:documentation>
419                                </xs:annotation>
420                        </xs:element>
421                </xs:sequence>
422        </xs:complexType>
423        <xs:complexType name="dgTemporalCoverageType">
424                <xs:sequence>
425                        <xs:choice>
426                                <xs:element name="DateRange" minOccurs="0" maxOccurs="unbounded">
427                                        <xs:annotation>
428                                                <xs:documentation>Note that a single year/month will be dealt with as a date range</xs:documentation>
429                                        </xs:annotation>
430                                        <xs:complexType>
431                                                <xs:sequence>
432                                                        <xs:element name="DateRangeStart" type="xs:date"/>
433                                                        <xs:element name="DateRangeEnd" type="xs:date"/>
434                                                </xs:sequence>
435                                        </xs:complexType>
436                                </xs:element>
437                                <xs:element name="DateSingle" type="xs:date" minOccurs="0" maxOccurs="unbounded"/>
438                        </xs:choice>
439                        <xs:element name="dgChronostratigraphicTerm" type="moles:dgStructuredKeywordType" minOccurs="0" maxOccurs="unbounded">
440                                <xs:annotation>
441                                        <xs:documentation>Keyword for palaeo temporal eras covered by data. Will be from a specific vocab</xs:documentation>
442                                </xs:annotation>
443                        </xs:element>
444                        <xs:element name="dgTemporalResolution" type="moles:dgResolutionType" minOccurs="0"/>
445                </xs:sequence>
446        </xs:complexType>
447        <xs:complexType name="dgParameterType">
448                <xs:sequence>
449                        <xs:element name="IsOutput" type="xs:boolean">
450                                <xs:annotation>
451                                        <xs:documentation>Whether the parameter described was "fixed" or generated by the measurement.</xs:documentation>
452                                </xs:annotation>
453                        </xs:element>
454                        <xs:choice>
455                                <xs:element name="dgValueDataParameter">
456                                        <xs:complexType>
457                                                <xs:sequence>
458                                                        <xs:element name="Value" type="xs:anySimpleType"/>
459                                                        <xs:element name="dgStandardUnit" type="moles:dgUnitType">
460                                                                <xs:annotation>
461                                                                        <xs:documentation>To allow proper searching, we will need a set of reference units</xs:documentation>
462                                                                </xs:annotation>
463                                                        </xs:element>
464                                                        <xs:element name="dgOriginalUnit" type="moles:dgUnitType" minOccurs="0">
465                                                                <xs:annotation>
466                                                                        <xs:documentation>If we keep a reference to the units of the original measurements, if known, then it will be useful.</xs:documentation>
467                                                                </xs:annotation>
468                                                        </xs:element>
469                                                </xs:sequence>
470                                        </xs:complexType>
471                                </xs:element>
472                                <xs:element name="dgRangeDataParameter">
473                                        <xs:complexType>
474                                                <xs:sequence>
475                                                        <xs:element name="HighValue" type="xs:anySimpleType"/>
476                                                        <xs:element name="LowValue" type="xs:anySimpleType"/>
477                                                        <xs:element name="dgStandardUnit" type="moles:dgUnitType">
478                                                                <xs:annotation>
479                                                                        <xs:documentation>To allow proper searching, we will need a set of reference units</xs:documentation>
480                                                                </xs:annotation>
481                                                        </xs:element>
482                                                        <xs:element name="dgOriginalUnit" type="moles:dgUnitType" minOccurs="0">
483                                                                <xs:annotation>
484                                                                        <xs:documentation>If we keep a reference to the units of the original measurements, if known, then it will be useful.</xs:documentation>
485                                                                </xs:annotation>
486                                                        </xs:element>
487                                                </xs:sequence>
488                                        </xs:complexType>
489                                </xs:element>
490                                <xs:element name="dgEnumerationParameter">
491                                        <xs:complexType>
492                                                <xs:sequence>
493                                                        <xs:element name="Value" type="xs:anySimpleType" maxOccurs="unbounded"/>
494                                                        <xs:element name="dgStandardUnit" type="moles:dgUnitType">
495                                                                <xs:annotation>
496                                                                        <xs:documentation>To allow proper searching, we will need a set of reference units</xs:documentation>
497                                                                </xs:annotation>
498                                                        </xs:element>
499                                                        <xs:element name="dgOriginalUnit" type="moles:dgUnitType" minOccurs="0">
500                                                                <xs:annotation>
501                                                                        <xs:documentation>If we keep a reference to the units of the original measurements, if known, then it will be useful.</xs:documentation>
502                                                                </xs:annotation>
503                                                        </xs:element>
504                                                </xs:sequence>
505                                        </xs:complexType>
506                                </xs:element>
507                                <xs:element name="dgParameterGroup">
508                                        <xs:complexType>
509                                                <xs:sequence>
510                                                        <xs:element name="dgComponentParameter" type="moles:dgParameterType" minOccurs="2" maxOccurs="unbounded"/>
511                                                </xs:sequence>
512                                        </xs:complexType>
513                                </xs:element>
514                        </xs:choice>
515                        <xs:element name="dgStdParameterMeasured" type="moles:dgStructuredKeywordType" maxOccurs="unbounded"/>
516                        <xs:element name="ParameterName" type="xs:string"/>
517                        <xs:element name="ParameterAbbreviation" type="xs:string"/>
518                        <xs:element name="ParameterLevel" type="xs:integer" default="0" minOccurs="0">
519                                <xs:annotation>
520                                        <xs:documentation>This is to allow you to know  how far down the potential parameter tree you are, to help with parameter groups. Top level is level 0 (the default)</xs:documentation>
521                                </xs:annotation>
522                        </xs:element>
523                </xs:sequence>
524        </xs:complexType>
525        <xs:element name="contentType">
526                <xs:annotation>
527                        <xs:documentation>This can only contain values from the official MIME list. See http://www.iana.org/assignments/media-types and be limited to: application/xhtml+xml; text/plain.</xs:documentation>
528                </xs:annotation>
529                <xs:simpleType>
530                        <xs:restriction base="xs:string">
531                                <xs:enumeration value="text/plain"/>
532                                <xs:enumeration value="application/xhtml+xml"/>
533                        </xs:restriction>
534                </xs:simpleType>
535        </xs:element>
536        <xs:complexType name="dgResolutionType">
537                <xs:choice>
538                        <xs:element name="resolutionTerm" type="moles:dgStructuredKeywordType"/>
539                        <xs:element name="resolutionValue">
540                                <xs:complexType>
541                                        <xs:sequence>
542                                                <xs:element name="resolutionDistance" type="xs:decimal"/>
543                                                <xs:element name="resolutionUnit" type="moles:dgUnitType"/>
544                                        </xs:sequence>
545                                </xs:complexType>
546                        </xs:element>
547                        <xs:element name="resolutionScaleDenominator" type="xs:decimal"/>
548                </xs:choice>
549        </xs:complexType>
550        <xs:complexType name="dgSecurityConditionType">
551                <xs:sequence>
552                        <xs:element name="effect">
553                                <xs:simpleType>
554                                        <xs:restriction base="xs:string">
555                                                <xs:enumeration value="allow"/>
556                                                <xs:enumeration value="deny"/>
557                                        </xs:restriction>
558                                </xs:simpleType>
559                        </xs:element>
560                        <xs:choice>
561                                <xs:element name="simpleCondition">
562                                        <xs:complexType>
563                                                <xs:sequence>
564                                                        <xs:element name="dgAttributeAuthority" type="xs:string"/>
565                                                        <xs:element name="attrauthRole" type="xs:string"/>
566                                                </xs:sequence>
567                                        </xs:complexType>
568                                </xs:element>
569                                <xs:element name="complexCondition">
570                                        <xs:annotation>
571                                                <xs:documentation>Place holder for when complex conditions arise</xs:documentation>
572                                        </xs:annotation>
573                                </xs:element>
574                        </xs:choice>
575                        <xs:element name="conditionExplanationText" type="xs:string" minOccurs="0">
576                                <xs:annotation>
577                                        <xs:documentation>Text to state condition in free text. This should allow it to be output to the relevant elements of things like GCMD DIF</xs:documentation>
578                                </xs:annotation>
579                        </xs:element>
580                </xs:sequence>
581        </xs:complexType>
582        <xs:complexType name="dgPolygon2DType">
583                <xs:annotation>
584                        <xs:documentation>A gross simplification, but should be enough for discovery. Note that this is the outer boundary. Note "isInclusive" attribute that must be (un)set to exclude an area. This does not allow nesting of extents, but this is not felt to be necessary for discovery.</xs:documentation>
585                </xs:annotation>
586                <xs:sequence>
587                        <xs:element name="point2D" type="moles:dgPoint2DType" minOccurs="3" maxOccurs="unbounded">
588                                <xs:annotation>
589                                        <xs:documentation>Note that order IS significant. First point is the starting point, and the others follow in order, with closure from the last to first point. X and Y are Lat/Long in decimal degrees</xs:documentation>
590                                </xs:annotation>
591                        </xs:element>
592                        <xs:element name="dgInternalPoint" type="moles:dgPoint2DType" minOccurs="0">
593                                <xs:annotation>
594                                        <xs:documentation>Optional point that is unambiguously inside the area for those "difficult cases"</xs:documentation>
595                                </xs:annotation>
596                        </xs:element>
597                </xs:sequence>
598                <xs:attributeGroup ref="moles:dgSpatialInclusionAttrGrp"/>
599        </xs:complexType>
600        <xs:complexType name="dgCitationType">
601                <xs:annotation>
602                        <xs:documentation>Note that these citations are intended to be "atomic". That is, that there is no attempt to link together editions for the same work. External systems should deal with this.</xs:documentation>
603                </xs:annotation>
604                <xs:sequence>
605                        <xs:element name="workTitle" type="xs:string"/>
606                        <xs:element name="citationIdentifier" maxOccurs="unbounded">
607                                <xs:annotation>
608                                        <xs:documentation>Lists the various citation identifiers recognised by NDG</xs:documentation>
609                                </xs:annotation>
610                                <xs:complexType>
611                                        <xs:sequence>
612                                                <xs:element name="citationIdentifierScheme">
613                                                        <xs:annotation>
614                                                                <xs:documentation>String identifying identifier scheme, which really should be a namespace, but will stick with enumeration for now...</xs:documentation>
615                                                        </xs:annotation>
616                                                        <xs:simpleType>
617                                                                <xs:restriction base="xs:string">
618                                                                        <xs:enumeration value="URI"/>
619                                                                        <xs:enumeration value="DOI"/>
620                                                                        <xs:enumeration value="ARK"/>
621                                                                        <xs:enumeration value="URN"/>
622                                                                        <xs:enumeration value=""/>
623                                                                </xs:restriction>
624                                                        </xs:simpleType>
625                                                </xs:element>
626                                                <xs:element name="citationIdentifierString">
627                                                        <xs:annotation>
628                                                                <xs:documentation>A valid identifier in the scheme indicated above as a string.</xs:documentation>
629                                                        </xs:annotation>
630                                                        <xs:complexType/>
631                                                </xs:element>
632                                        </xs:sequence>
633                                </xs:complexType>
634                        </xs:element>
635                        <xs:element name="editionIdentifier" type="xs:string" minOccurs="0"/>
636                        <xs:element name="editionDate" type="xs:date" minOccurs="0"/>
637                        <xs:element name="authors">
638                                <xs:complexType>
639                                        <xs:sequence maxOccurs="unbounded">
640                                                <xs:element name="author">
641                                                        <xs:complexType>
642                                                                <xs:sequence>
643                                                                        <xs:choice>
644                                                                                <xs:element name="nonPersonalAuthorName">
645                                                                                        <xs:annotation>
646                                                                                                <xs:documentation>For authors who are not people, e.g. BODC...</xs:documentation>
647                                                                                        </xs:annotation>
648                                                                                </xs:element>
649                                                                                <xs:element name="authorName" type="moles:dgPersonalNameType"/>
650                                                                        </xs:choice>
651                                                                        <xs:element name="authorOrdinal" type="xs:int" default="1">
652                                                                                <xs:annotation>
653                                                                                        <xs:documentation>First author = 1, second = 2, etc...</xs:documentation>
654                                                                                </xs:annotation>
655                                                                        </xs:element>
656                                                                </xs:sequence>
657                                                        </xs:complexType>
658                                                </xs:element>
659                                        </xs:sequence>
660                                        <xs:attribute name="authorCount" type="xs:int" use="optional"/>
661                                </xs:complexType>
662                        </xs:element>
663                </xs:sequence>
664        </xs:complexType>
665        <xs:complexType name="dgCourse2DType">
666                <xs:annotation>
667                        <xs:documentation>Note that point order IS significant. First point is the starting point, and the others follow in order. Note that there is no closure from the last to first listed points, unlike polygons.</xs:documentation>
668                </xs:annotation>
669                <xs:sequence>
670                        <xs:element name="point2D" type="moles:dgPoint2DType" minOccurs="2" maxOccurs="unbounded"/>
671                </xs:sequence>
672        </xs:complexType>
673        <xs:complexType name="dgPoint2DType">
674                <xs:annotation>
675                        <xs:documentation>co-ordinate system is "lat/long"</xs:documentation>
676                </xs:annotation>
677                <xs:sequence>
678                        <xs:element name="point2Dx" type="xs:decimal"/>
679                        <xs:element name="point2Dy" type="xs:decimal"/>
680                </xs:sequence>
681        </xs:complexType>
682        <xs:attributeGroup name="dgSpatialInclusionAttrGrp">
683                <xs:annotation>
684                        <xs:documentation>Set of attributes to resolve issues that there may be in searching for this extent</xs:documentation>
685                </xs:annotation>
686                <xs:attribute name="isInclusive" type="xs:boolean" use="optional" default="true">
687                        <xs:annotation>
688                                <xs:documentation>Clear to statement to make explicit the "obvious" :-)</xs:documentation>
689                        </xs:annotation>
690                </xs:attribute>
691                <xs:attribute name="includesNorthPole" type="xs:boolean" use="optional">
692                        <xs:annotation>
693                                <xs:documentation>Statement as to whether the North Pole is within the extent being searched for. This will aid external searches, given difficulties in some products spatial searching abilities. Note that there is no default, therefore absence = "do not know, work it out for yourself".</xs:documentation>
694                        </xs:annotation>
695                </xs:attribute>
696                <xs:attribute name="includesSouthPole" type="xs:boolean" use="optional">
697                        <xs:annotation>
698                                <xs:documentation>Statement as to whether the South Pole is within the extent being searched for. This will aid external searches, given difficulties in some products spatial searching abilities. Note that there is no default, therefore absence = "do not know, work it out for yourself".</xs:documentation>
699                        </xs:annotation>
700                </xs:attribute>
701                <xs:attribute name="includes180Degrees" type="xs:boolean" use="optional">
702                        <xs:annotation>
703                                <xs:documentation>Statement as to whether 180 degrees longitude is within the extent being searched for. This will aid external searches, given difficulties in some products spatial searching abilities. Note that there is no default, therefore absence = "do not know, work it out for yourself".</xs:documentation>
704                        </xs:annotation>
705                </xs:attribute>
706        </xs:attributeGroup>
707        <xs:complexType name="dgBoundingBoxType">
708                <xs:sequence>
709                        <xs:element name="LimitNorth" type="xs:decimal">
710                                <xs:annotation>
711                                        <xs:documentation>Northern-most coordinate of the limit of the extent, expressed in latitude in decimal degrees (positive north).</xs:documentation>
712                                </xs:annotation>
713                        </xs:element>
714                        <xs:element name="LimitSouth" type="xs:decimal">
715                                <xs:annotation>
716                                        <xs:documentation>Southern-most coordinate of the limit of the extent, expressed in latitude in decimal degrees (positive north).</xs:documentation>
717                                </xs:annotation>
718                        </xs:element>
719                        <xs:element name="LimitWest" type="xs:decimal">
720                                <xs:annotation>
721                                        <xs:documentation>Western-most coordinate of the limit of the extent, expressed in longitude in decimal degrees (positive east)</xs:documentation>
722                                </xs:annotation>
723                        </xs:element>
724                        <xs:element name="LimitEast" type="xs:decimal">
725                                <xs:annotation>
726                                        <xs:documentation>Eastern-most coordinate of the limit of the extent, expressed in longitude in decimal degrees (positive east).</xs:documentation>
727                                </xs:annotation>
728                        </xs:element>
729                        <xs:element name="dgInternalPoint" type="moles:dgPoint2DType" minOccurs="0">
730                                <xs:annotation>
731                                        <xs:documentation>Optional point that is unambiguously inside the area for those "difficult cases"</xs:documentation>
732                                </xs:annotation>
733                        </xs:element>
734                </xs:sequence>
735                <xs:attributeGroup ref="moles:dgSpatialInclusionAttrGrp"/>
736        </xs:complexType>
737        <xs:complexType name="dgMetadataRecordType">
738                <xs:sequence>
739                        <xs:element ref="moles:dgMetadataID"/>
740                        <xs:element name="dgMetadataDescription" type="moles:dgMetadataDescriptionType"/>
741                        <xs:element name="name" type="xs:string"/>
742                        <xs:element name="abbreviation" type="moles:dgMandatoryStringType">
743                                <xs:annotation>
744                                        <xs:documentation>Software should default name and abbreviation to (at least a truncated version of) the other, if only one is filled in.</xs:documentation>
745                                </xs:annotation>
746                        </xs:element>
747                        <xs:element name="logos" minOccurs="0">
748                                <xs:complexType>
749                                        <xs:sequence>
750                                                <xs:element name="logoURI" type="moles:dgOnlineReferenceType" minOccurs="0"/>
751                                                <xs:element name="thumbnailURI" type="moles:dgOnlineReferenceType" minOccurs="0"/>
752                                        </xs:sequence>
753                                </xs:complexType>
754                        </xs:element>
755                        <xs:choice>
756                                <xs:element name="dgActivity">
757                                        <xs:complexType>
758                                                <xs:sequence>
759                                                        <xs:element name="relatedActivity" minOccurs="0" maxOccurs="unbounded">
760                                                                <xs:complexType>
761                                                                        <xs:sequence>
762                                                                                <xs:element name="activityRelation" type="moles:dgStructuredKeywordType"/>
763                                                                                <xs:element name="relatedActivityID" type="moles:dgMetadataIDType"/>
764                                                                        </xs:sequence>
765                                                                </xs:complexType>
766                                                        </xs:element>
767                                                        <xs:choice>
768                                                                <xs:annotation>
769                                                                        <xs:documentation>dgActivityDataCollection
770
771This is expected to be an on-going collection process.
772
773dgActivityDataProject
774
775A data collection or generation project planned as having a limited duration like ERA-40 usually including several investigations ormodel runs, even if these will not be represented
776in MOLES.
777
778dgActivityDataCampaign
779
780A compound/umbrella activity, involving more than one major activity in its own
781right, such as ACSOE.
782
783dgActivityDataInvestigation
784
785A cruise/flight/something...
786</xs:documentation>
787                                                                </xs:annotation>
788                                                                <xs:element name="dgActivityDataCollection"/>
789                                                                <xs:element name="dgActivityDataProject"/>
790                                                                <xs:element name="dgActivityDataCampaign"/>
791                                                                <xs:element name="dgActivityDataInvestigation">
792                                                                        <xs:complexType>
793                                                                                <xs:choice>
794                                                                                        <xs:element name="dgFlight"/>
795                                                                                        <xs:element name="dgCruise">
796                                                                                                <xs:complexType>
797                                                                                                        <xs:sequence>
798                                                                                                                <xs:element name="dgVessel" type="moles:dgMetadataIDType"/>
799                                                                                                                <xs:element name="portDeparture" type="moles:dgStructuredKeywordType"/>
800                                                                                                                <xs:element name="portReturn" type="moles:dgStructuredKeywordType"/>
801                                                                                                                <xs:element name="dgCruiseReports" minOccurs="0">
802                                                                                                                        <xs:complexType>
803                                                                                                                                <xs:choice maxOccurs="unbounded">
804                                                                                                                                        <xs:element name="dgCruiseReportCitation" type="moles:dgCitationType"/>
805                                                                                                                                        <xs:element name="dgCruiseReportURL" type="moles:dgOnlineReferenceType"/>
806                                                                                                                                </xs:choice>
807                                                                                                                        </xs:complexType>
808                                                                                                                </xs:element>
809                                                                                                        </xs:sequence>
810                                                                                                </xs:complexType>
811                                                                                        </xs:element>
812                                                                                </xs:choice>
813                                                                        </xs:complexType>
814                                                                </xs:element>
815                                                        </xs:choice>
816                                                        <xs:element name="dgActivityRole">
817                                                                <xs:annotation>
818                                                                        <xs:documentation>Note that this is a part of the "abstract class" dgRoles</xs:documentation>
819                                                                </xs:annotation>
820                                                                <xs:complexType>
821                                                                        <xs:sequence>
822                                                                                <xs:element name="dgInvestigator">
823                                                                                        <xs:complexType>
824                                                                                                <xs:sequence>
825                                                                                                        <xs:element name="dgPrincipalInvestigator" type="moles:dgRoleType" maxOccurs="unbounded"/>
826                                                                                                        <xs:element name="dgCoInvestigator" type="moles:dgRoleType" minOccurs="0" maxOccurs="unbounded"/>
827                                                                                                </xs:sequence>
828                                                                                        </xs:complexType>
829                                                                                </xs:element>
830                                                                                <xs:element name="dgTechnicalContact" type="moles:dgRoleType" minOccurs="0"/>
831                                                                                <xs:element name="dgProjectManager" type="moles:dgRoleType" minOccurs="0"/>
832                                                                                <xs:element name="dg" type="moles:dgRoleType" minOccurs="0"/>
833                                                                        </xs:sequence>
834                                                                </xs:complexType>
835                                                        </xs:element>
836                                                        <xs:element name="ActivityDeployment" type="moles:dgDeploymentType" minOccurs="0" maxOccurs="unbounded"/>
837                                                        <xs:element name="dgActivityCoverage" type="moles:dgCoverageType" minOccurs="0"/>
838                                                        <xs:element name="ActivityDuration" minOccurs="0">
839                                                                <xs:complexType>
840                                                                        <xs:sequence>
841                                                                                <xs:element name="startDate" type="xs:date"/>
842                                                                                <xs:element name="endDate" type="xs:date" minOccurs="0"/>
843                                                                        </xs:sequence>
844                                                                </xs:complexType>
845                                                        </xs:element>
846                                                </xs:sequence>
847                                        </xs:complexType>
848                                </xs:element>
849                                <xs:element name="dgDataEntity">
850                                        <xs:complexType>
851                                                <xs:sequence>
852                                                        <xs:element name="dgDataSetType">
853                                                                <xs:annotation>
854                                                                        <xs:documentation>Simulation, analysis, or measurement</xs:documentation>
855                                                                </xs:annotation>
856                                                                <xs:complexType>
857                                                                        <xs:choice>
858                                                                                <xs:element name="dgSimulation"/>
859                                                                                <xs:element name="dgAnalysis"/>
860                                                                                <xs:element name="dgMeasurement"/>
861                                                                        </xs:choice>
862                                                                </xs:complexType>
863                                                        </xs:element>
864                                                        <xs:element name="dgDataObjectType">
865                                                                <xs:annotation>
866                                                                        <xs:documentation>Profile etc. </xs:documentation>
867                                                                </xs:annotation>
868                                                                <xs:complexType>
869                                                                        <xs:choice>
870                                                                                <xs:element name="dgBasicData">
871                                                                                        <xs:complexType>
872                                                                                                <xs:choice>
873                                                                                                        <xs:element name="dgEnsemble"/>
874                                                                                                        <xs:element name="dgLaGrangianPath"/>
875                                                                                                        <xs:element name="dgN-DimensionalDataset"/>
876                                                                                                        <xs:element name="dgSample"/>
877                                                                                                        <xs:element name="dgProfile"/>
878                                                                                                        <xs:element name="dgSection"/>
879                                                                                                </xs:choice>
880                                                                                        </xs:complexType>
881                                                                                </xs:element>
882                                                                                <xs:element name="dgDerivedData">
883                                                                                        <xs:complexType>
884                                                                                                <xs:sequence>
885                                                                                                        <xs:element name="dgInputDataGranuleID" type="moles:dgMetadataIDType" maxOccurs="unbounded">
886                                                                                                                <xs:annotation>
887                                                                                                                        <xs:documentation>Existence of these indicates a derived datatype, although I suppose a "unknown" DE will have to be registered...</xs:documentation>
888                                                                                                                </xs:annotation>
889                                                                                                        </xs:element>
890                                                                                                        <xs:choice>
891                                                                                                                <xs:element name="dgClimatology"/>
892                                                                                                                <xs:element name="dgTimeSeries"/>
893                                                                                                                <xs:element name="dgIntegration"/>
894                                                                                                        </xs:choice>
895                                                                                                </xs:sequence>
896                                                                                        </xs:complexType>
897                                                                                </xs:element>
898                                                                        </xs:choice>
899                                                                </xs:complexType>
900                                                        </xs:element>
901                                                        <xs:element name="dgDataGranule" maxOccurs="unbounded">
902                                                                <xs:annotation>
903                                                                        <xs:documentation>Link to DataModel. Could also hold summary of Andrew's "data descriptor"</xs:documentation>
904                                                                </xs:annotation>
905                                                                <xs:complexType>
906                                                                        <xs:sequence>
907                                                                                <xs:element name="dataModelID" type="moles:dgMetadataIDType">
908                                                                                        <xs:annotation>
909                                                                                                <xs:documentation>See IDIssues page on Wiki</xs:documentation>
910                                                                                        </xs:annotation>
911                                                                                </xs:element>
912                                                                                <xs:element name="instance" minOccurs="0" maxOccurs="unbounded">
913                                                                                        <xs:complexType>
914                                                                                                <xs:sequence>
915                                                                                                        <xs:element name="URI" type="xs:anyURI"/>
916                                                                                                        <xs:element name="format" type="xs:string">
917                                                                                                                <xs:annotation>
918                                                                                                                        <xs:documentation>Should be from a "supported formats" list IDC</xs:documentation>
919                                                                                                                </xs:annotation>
920                                                                                                        </xs:element>
921                                                                                                        <xs:element name="instanceComment" minOccurs="0"/>
922                                                                                                </xs:sequence>
923                                                                                        </xs:complexType>
924                                                                                </xs:element>
925                                                                                <xs:element name="accessControlPolicy" minOccurs="0">
926                                                                                        <xs:annotation>
927                                                                                                <xs:documentation>Contains either a text file giving the access control policy to the actual data granule, or a URL that points to such a document. In the long run, this is likely to be an XACML document. Note the assumption that there will be only one definitive source for such a policy.</xs:documentation>
928                                                                                        </xs:annotation>
929                                                                                        <xs:complexType>
930                                                                                                <xs:choice>
931                                                                                                        <xs:element name="accessControlPolicyURL" type="xs:anyURI"/>
932                                                                                                        <xs:element name="accessControlPolicyText" type="xs:string"/>
933                                                                                                        <xs:element name="dgSecurityCondition" type="moles:dgSecurityConditionType" maxOccurs="unbounded"/>
934                                                                                                </xs:choice>
935                                                                                        </xs:complexType>
936                                                                                </xs:element>
937                                                                                <xs:element name="dgGranuleSummary" minOccurs="0">
938                                                                                        <xs:complexType>
939                                                                                                <xs:sequence>
940                                                                                                        <xs:element name="dgGranuleName" minOccurs="0"/>
941                                                                                                        <xs:element name="dgGranuleAbbreviation" minOccurs="0"/>
942                                                                                                        <xs:element name="dgGranuleCoverage" type="moles:dgCoverageType" minOccurs="0"/>
943                                                                                                        <xs:element name="dgParameterSummary" type="moles:dgParameterType" maxOccurs="unbounded"/>
944                                                                                                </xs:sequence>
945                                                                                        </xs:complexType>
946                                                                                </xs:element>
947                                                                        </xs:sequence>
948                                                                </xs:complexType>
949                                                        </xs:element>
950                                                        <xs:element name="dgDataSummary">
951                                                                <xs:complexType>
952                                                                        <xs:sequence>
953                                                                                <xs:element name="dgParameterSummary" type="moles:dgParameterType" maxOccurs="unbounded"/>
954                                                                                <xs:element name="dgDataCoverage" type="moles:dgCoverageType" minOccurs="0"/>
955                                                                                <xs:element name="dgDatasetStatus" minOccurs="0">
956                                                                                        <xs:complexType>
957                                                                                                <xs:sequence>
958                                                                                                        <xs:element name="dgDatasetClosure">
959                                                                                                                <xs:simpleType>
960                                                                                                                        <xs:restriction base="xs:string">
961                                                                                                                                <xs:enumeration value="no_data"/>
962                                                                                                                                <xs:enumeration value="complete"/>
963                                                                                                                                <xs:enumeration value="updating"/>
964                                                                                                                                <xs:enumeration value="incomplete"/>
965                                                                                                                        </xs:restriction>
966                                                                                                                </xs:simpleType>
967                                                                                                        </xs:element>
968                                                                                                        <xs:element name="dgUpdateFrequency" type="moles:dgStructuredKeywordType" minOccurs="0"/>
969                                                                                                </xs:sequence>
970                                                                                        </xs:complexType>
971                                                                                </xs:element>
972                                                                                <xs:element name="dgDatasetProvenance" minOccurs="0">
973                                                                                        <xs:annotation>
974                                                                                                <xs:documentation>Another placeholder for when the data provenance issue has been addressed</xs:documentation>
975                                                                                        </xs:annotation>
976                                                                                </xs:element>
977                                                                                <xs:element name="dgDataEntityQuality" minOccurs="0">
978                                                                                        <xs:complexType>
979                                                                                                <xs:sequence>
980                                                                                                        <xs:element name="DQStatementReference" type="moles:dgCitationType" minOccurs="0" maxOccurs="unbounded"/>
981                                                                                                </xs:sequence>
982                                                                                        </xs:complexType>
983                                                                                </xs:element>
984                                                                        </xs:sequence>
985                                                                </xs:complexType>
986                                                        </xs:element>
987                                                        <xs:element name="dgDataRoles">
988                                                                <xs:annotation>
989                                                                        <xs:documentation>Note that this is a part of the "abstract and unimplemented class" dgRoles</xs:documentation>
990                                                                </xs:annotation>
991                                                                <xs:complexType>
992                                                                        <xs:sequence>
993                                                                                <xs:element name="dgDataCreator" type="moles:dgRoleType" minOccurs="0"/>
994                                                                                <xs:element name="dgDataCurator" type="moles:dgRoleType"/>
995                                                                                <xs:element name="dgDataOtherRoles" type="moles:dgRoleType" minOccurs="0" maxOccurs="unbounded"/>
996                                                                        </xs:sequence>
997                                                                </xs:complexType>
998                                                        </xs:element>
999                                                        <xs:element name="RelatedDeployment" type="moles:dgDeploymentType" minOccurs="0" maxOccurs="unbounded"/>
1000                                                        <xs:element name="dgRelatedDataEntity" minOccurs="0" maxOccurs="unbounded">
1001                                                                <xs:annotation>
1002                                                                        <xs:documentation>Relations other than Input...</xs:documentation>
1003                                                                </xs:annotation>
1004                                                                <xs:complexType>
1005                                                                        <xs:sequence>
1006                                                                                <xs:element name="RelatedDataGranuleID" type="moles:dgMetadataIDType"/>
1007                                                                                <xs:element name="RelationID" type="moles:dgStructuredKeywordType"/>
1008                                                                        </xs:sequence>
1009                                                                </xs:complexType>
1010                                                        </xs:element>
1011                                                </xs:sequence>
1012                                        </xs:complexType>
1013                                </xs:element>
1014                                <xs:element name="dgDataProductionTool">
1015                                        <xs:complexType>
1016                                                <xs:sequence>
1017                                                        <xs:element name="contactDetails" type="moles:dgContactDetailType"/>
1018                                                        <xs:choice>
1019                                                                <xs:element name="dgModel">
1020                                                                        <xs:complexType/>
1021                                                                </xs:element>
1022                                                                <xs:element name="dgInstrument">
1023                                                                        <xs:annotation>
1024                                                                                <xs:documentation>This will be radically reworked</xs:documentation>
1025                                                                        </xs:annotation>
1026                                                                        <xs:complexType>
1027                                                                                <xs:sequence>
1028                                                                                        <xs:element name="dgInstrumentComponentID" type="moles:dgMetadataIDType" minOccurs="0" maxOccurs="unbounded">
1029                                                                                                <xs:annotation>
1030                                                                                                        <xs:documentation>References to significant sub-parts of an instrument</xs:documentation>
1031                                                                                                </xs:annotation>
1032                                                                                        </xs:element>
1033                                                                                        <xs:choice>
1034                                                                                                <xs:element name="dgObserver">
1035                                                                                                        <xs:complexType>
1036                                                                                                                <xs:choice>
1037                                                                                                                        <xs:element ref="moles:dgOrganisation"/>
1038                                                                                                                        <xs:element ref="moles:dgPerson"/>
1039                                                                                                                </xs:choice>
1040                                                                                                        </xs:complexType>
1041                                                                                                </xs:element>
1042                                                                                                <xs:element name="dgLidar" type="xs:anySimpleType"/>
1043                                                                                                <xs:element name="dgRadar" type="xs:anySimpleType"/>
1044                                                                                                <xs:element name="dgSonde" type="xs:anySimpleType"/>
1045                                                                                                <xs:element name="dgNavigation" type="xs:anySimpleType"/>
1046                                                                                                <xs:element name="dgGasChromatograph" type="xs:anySimpleType"/>
1047                                                                                                <xs:element name="dgSpectrometer" type="xs:anySimpleType"/>
1048                                                                                                <xs:element name="dgMassSpectrometer" type="xs:anySimpleType"/>
1049                                                                                                <xs:element name="dgMetSensor" type="xs:anySimpleType"/>
1050                                                                                                <xs:element name="dgDOAS" type="xs:anySimpleType"/>
1051                                                                                                <xs:element name="dgASOZ" type="xs:anySimpleType"/>
1052                                                                                                <xs:element name="dgRadiometer" type="xs:anySimpleType"/>
1053                                                                                                <xs:element name="dgFAGE" type="xs:anySimpleType"/>
1054                                                                                                <xs:element name="dgImager" type="xs:anySimpleType"/>
1055                                                                                                <xs:element name="dgFilter" type="xs:anySimpleType"/>
1056                                                                                                <xs:element name="dgParticleCounter" type="xs:anySimpleType"/>
1057                                                                                                <xs:element name="dgSampler" type="xs:anySimpleType"/>
1058                                                                                                <xs:element name="dgOtherInstrumentType" type="xs:anySimpleType"/>
1059                                                                                        </xs:choice>
1060                                                                                </xs:sequence>
1061                                                                        </xs:complexType>
1062                                                                </xs:element>
1063                                                        </xs:choice>
1064                                                        <xs:element name="dgDPTRoles" minOccurs="0">
1065                                                                <xs:annotation>
1066                                                                        <xs:documentation>DPT = Data Production Tool</xs:documentation>
1067                                                                </xs:annotation>
1068                                                                <xs:complexType>
1069                                                                        <xs:complexContent>
1070                                                                                <xs:extension base="moles:dgRoleType">
1071                                                                                        <xs:sequence>
1072                                                                                                <xs:element name="dgDPTOperationTeam">
1073                                                                                                        <xs:annotation>
1074                                                                                                                <xs:documentation>OK, this is another placeholder and an example of the kind of role hierarchies that exist.</xs:documentation>
1075                                                                                                        </xs:annotation>
1076                                                                                                </xs:element>
1077                                                                                                <xs:element name="dgDPTOtherRoles" type="moles:dgRoleType" minOccurs="0"/>
1078                                                                                        </xs:sequence>
1079                                                                                </xs:extension>
1080                                                                        </xs:complexContent>
1081                                                                </xs:complexType>
1082                                                        </xs:element>
1083                                                        <xs:element name="DPTDeployment" type="moles:dgDeploymentType" minOccurs="0" maxOccurs="unbounded"/>
1084                                                </xs:sequence>
1085                                        </xs:complexType>
1086                                </xs:element>
1087                                <xs:element name="dgObservationStation">
1088                                        <xs:annotation>
1089                                                <xs:documentation>IDC, may want to add info about the type and number of instruments that can be deployed... Also, really don't like the name "ObservationStation...</xs:documentation>
1090                                        </xs:annotation>
1091                                        <xs:complexType>
1092                                                <xs:sequence>
1093                                                        <xs:element name="contactDetails" type="moles:dgContactDetailType"/>
1094                                                        <xs:choice>
1095                                                                <xs:element name="dgStationaryPlatform">
1096                                                                        <xs:complexType>
1097                                                                                <xs:sequence>
1098                                                                                        <xs:element name="position">
1099                                                                                                <xs:complexType>
1100                                                                                                        <xs:sequence>
1101                                                                                                                <xs:element name="positionLatitude" type="xs:decimal">
1102                                                                                                                        <xs:annotation>
1103                                                                                                                                <xs:documentation>North is positive ;-)</xs:documentation>
1104                                                                                                                        </xs:annotation>
1105                                                                                                                </xs:element>
1106                                                                                                                <xs:element name="positionLongitude" type="xs:decimal">
1107                                                                                                                        <xs:annotation>
1108                                                                                                                                <xs:documentation>East is positive</xs:documentation>
1109                                                                                                                        </xs:annotation>
1110                                                                                                                </xs:element>
1111                                                                                                        </xs:sequence>
1112                                                                                                </xs:complexType>
1113                                                                                        </xs:element>
1114                                                                                        <xs:choice>
1115                                                                                                <xs:element name="dgLandStation"/>
1116                                                                                                <xs:element name="dgMooring">
1117                                                                                                        <xs:complexType>
1118                                                                                                                <xs:sequence>
1119                                                                                                                        <xs:element name="dateStart" type="xs:date"/>
1120                                                                                                                        <xs:element name="dateEnd" type="xs:date"/>
1121                                                                                                                        <xs:element name="deployingCruise" type="moles:dgMetadataIDType">
1122                                                                                                                                <xs:annotation>
1123                                                                                                                                        <xs:documentation>Pointer to cruise that deployed the platform</xs:documentation>
1124                                                                                                                                </xs:annotation>
1125                                                                                                                        </xs:element>
1126                                                                                                                        <xs:element name="dgStationGrouping" type="moles:dgMetadataIDType" minOccurs="0">
1127                                                                                                                                <xs:annotation>
1128                                                                                                                                        <xs:documentation>Pointer to the OS of type dgStationGroup at which the mooring was deployed, if any.</xs:documentation>
1129                                                                                                                                </xs:annotation>
1130                                                                                                                        </xs:element>
1131                                                                                                                </xs:sequence>
1132                                                                                                        </xs:complexType>
1133                                                                                                </xs:element>
1134                                                                                                <xs:element name="dgStationGroup">
1135                                                                                                        <xs:annotation>
1136                                                                                                                <xs:documentation>The solution to the Great Station Controvesy! This is a known and defined location at which temporary observation stations, such as moorings, can be located. Note that current thinking is that it can't have data of its own. The apparently redundant grouping is to allow the dgStationGroup to have other elements attached in the future</xs:documentation>
1137                                                                                                        </xs:annotation>
1138                                                                                                        <xs:complexType>
1139                                                                                                                <xs:sequence>
1140                                                                                                                        <xs:element name="dgGroupedStations" minOccurs="0">
1141                                                                                                                                <xs:complexType>
1142                                                                                                                                        <xs:sequence>
1143                                                                                                                                                <xs:element name="dgGroupedStation" type="moles:dgMetadataIDType" maxOccurs="unbounded">
1144                                                                                                                                                        <xs:annotation>
1145                                                                                                                                                                <xs:documentation>Pointer to mooring or similar at this location.</xs:documentation>
1146                                                                                                                                                        </xs:annotation>
1147                                                                                                                                                </xs:element>
1148                                                                                                                                        </xs:sequence>
1149                                                                                                                                </xs:complexType>
1150                                                                                                                        </xs:element>
1151                                                                                                                </xs:sequence>
1152                                                                                                        </xs:complexType>
1153                                                                                                </xs:element>
1154                                                                                        </xs:choice>
1155                                                                                </xs:sequence>
1156                                                                        </xs:complexType>
1157                                                                </xs:element>
1158                                                                <xs:element name="dgMovingPlatform">
1159                                                                        <xs:annotation>
1160                                                                                <xs:documentation>Used to contain "trajectory", this has been replaced by the "Coverage" element of a deployment. However, adding a "history" element may well be useful, to include trips not linked to data etc.</xs:documentation>
1161                                                                        </xs:annotation>
1162                                                                        <xs:complexType>
1163                                                                                <xs:sequence>
1164                                                                                        <xs:choice>
1165                                                                                                <xs:element name="dgShip">
1166                                                                                                        <xs:complexType>
1167                                                                                                                <xs:sequence>
1168                                                                                                                        <xs:element name="callSign" type="xs:string" minOccurs="0"/>
1169                                                                                                                        <xs:element name="operatingCountry" type="xs:string">
1170                                                                                                                                <xs:annotation>
1171                                                                                                                                        <xs:documentation>Contents ISO 3166-1 and 3166-3, using 2 character code as key</xs:documentation>
1172                                                                                                                                </xs:annotation>
1173                                                                                                                        </xs:element>
1174                                                                                                                        <xs:element name="vesselType" type="moles:dgStructuredKeywordType" maxOccurs="unbounded">
1175                                                                                                                                <xs:annotation>
1176                                                                                                                                        <xs:documentation>Allows referencing to standard classification schemes such as WMO and SeaDataNet</xs:documentation>
1177                                                                                                                                </xs:annotation>
1178                                                                                                                        </xs:element>
1179                                                                                                                </xs:sequence>
1180                                                                                                        </xs:complexType>
1181                                                                                                </xs:element>
1182                                                                                                <xs:element name="dgAircraft"/>
1183                                                                                                <xs:element name="dgSatellite"/>
1184                                                                                        </xs:choice>
1185                                                                                </xs:sequence>
1186                                                                        </xs:complexType>
1187                                                                </xs:element>
1188                                                        </xs:choice>
1189                                                        <xs:element name="ObsStationDeployment" type="moles:dgDeploymentType" minOccurs="0" maxOccurs="unbounded"/>
1190                                                </xs:sequence>
1191                                        </xs:complexType>
1192                                </xs:element>
1193                        </xs:choice>
1194                        <xs:element ref="moles:dgStructuredKeyword" maxOccurs="unbounded"/>
1195                        <xs:element name="dgMetadataProvenance" minOccurs="0">
1196                                <xs:complexType>
1197                                        <xs:sequence>
1198                                                <xs:element name="RecordCreation">
1199                                                        <xs:complexType>
1200                                                                <xs:sequence>
1201                                                                        <xs:element name="CreatedDate" type="xs:date"/>
1202                                                                        <xs:element name="CreatedBy" type="xs:string"/>
1203                                                                </xs:sequence>
1204                                                        </xs:complexType>
1205                                                </xs:element>
1206                                                <xs:element name="RecordUpdate" minOccurs="0" maxOccurs="unbounded">
1207                                                        <xs:complexType>
1208                                                                <xs:sequence>
1209                                                                        <xs:element name="UpdateDate" type="xs:date"/>
1210                                                                        <xs:element name="UpdatedBy" type="xs:string"/>
1211                                                                        <xs:element name="UpdateSummary" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
1212                                                                </xs:sequence>
1213                                                        </xs:complexType>
1214                                                </xs:element>
1215                                                <xs:element name="RecordReview" minOccurs="0">
1216                                                        <xs:complexType>
1217                                                                <xs:sequence>
1218                                                                        <xs:element name="ReviewDate" type="xs:date"/>
1219                                                                        <xs:element name="ReviewContact" type="xs:string" minOccurs="0"/>
1220                                                                </xs:sequence>
1221                                                        </xs:complexType>
1222                                                </xs:element>
1223                                        </xs:sequence>
1224                                </xs:complexType>
1225                        </xs:element>
1226                        <xs:element name="dgMetadataSecurity" minOccurs="0">
1227                                <xs:annotation>
1228                                        <xs:documentation>Indicates security applied, if any, to the metadata record itself</xs:documentation>
1229                                </xs:annotation>
1230                                <xs:complexType>
1231                                        <xs:sequence>
1232                                                <xs:element name="dgSecurityCondition" type="moles:dgSecurityConditionType" maxOccurs="unbounded"/>
1233                                        </xs:sequence>
1234                                </xs:complexType>
1235                        </xs:element>
1236                </xs:sequence>
1237        </xs:complexType>
1238        <xs:simpleType name="dgMandatoryStringType">
1239                <xs:annotation>
1240                        <xs:documentation>Restricts xs:string to ensure the string is not empty</xs:documentation>
1241                </xs:annotation>
1242                <xs:restriction base="xs:string">
1243                        <xs:minLength value="1"/>
1244                        <xs:pattern value="\S(\S|\s)*"/>
1245                </xs:restriction>
1246        </xs:simpleType>
1247</xs:schema>
Note: See TracBrowser for help on using the repository browser.