source: TI07-MOLES/trunk/v1Schema/Schemae/ndgmetadata1.3.xsd @ 1893

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

Minor 1.3 updt/correction

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