source: TI07-MOLES/trunk/v1Schema/Schemae/ndgmetadata1.3.3.xsd @ 2973

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI07-MOLES/trunk/v1Schema/Schemae/ndgmetadata1.3.3.xsd@2973
Revision 2973, 58.4 KB checked in by lawrence, 13 years ago (diff)

Tiny modification to allow NumSim in the ndgmetadata id ...

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