source: TI07-MOLES/trunk/v1Schema/Schemae/ndgmetadata1.3.5.xsd @ 3064

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

Updates to MOLES schema ...

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