adiwg-mdtranslator 2.8.0 → 2.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -1
  3. data/adiwg-mdtranslator.gemspec +1 -1
  4. data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +552 -500
  5. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_attribute.rb +1 -0
  6. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_contact.rb +63 -16
  7. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_distribution.rb +7 -16
  8. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_entity.rb +1 -1
  9. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_entityOverview.rb +1 -0
  10. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_enumerated.rb +7 -1
  11. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_fgdc.rb +2 -2
  12. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_identification.rb +4 -1
  13. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_metadataInfo.rb +4 -3
  14. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_transferInfo.rb +15 -11
  15. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_constraint.rb +134 -134
  16. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataDictionary.rb +9 -4
  17. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distribution.rb +52 -36
  18. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domainItem.rb +65 -51
  19. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataInfo.rb +133 -121
  20. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceInfo.rb +1 -1
  21. data/lib/adiwg/mdtranslator/version.rb +4 -1
  22. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_attribute.rb +178 -0
  23. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_dataDomain.rb +122 -0
  24. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_dictionary.rb +66 -0
  25. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_digitalForm.rb +81 -0
  26. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_distribution.rb +156 -0
  27. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_entityDetail.rb +78 -0
  28. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_entityOverview.rb +48 -0
  29. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_fgdc.rb +41 -4
  30. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_metadataInfo.rb +215 -0
  31. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_offlineOption.rb +86 -0
  32. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_onlineOption.rb +77 -0
  33. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_orderProcess.rb +100 -0
  34. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_timePeriod.rb +9 -7
  35. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_transferInfo.rb +135 -0
  36. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataDictionary.rb +4 -4
  37. data/lib/adiwg/mdtranslator/writers/html/sections/html_distribution.rb +18 -0
  38. data/lib/adiwg/mdtranslator/writers/html/sections/html_domainItem.rb +18 -3
  39. data/lib/adiwg/mdtranslator/writers/html/sections/html_metadataInfo.rb +20 -0
  40. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_fcFeatureCatalogue.rb +1 -1
  41. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_listedValue.rb +14 -0
  42. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataIdentification.rb +21 -2
  43. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distribution.rb +44 -44
  44. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_legalConstraints.rb +67 -66
  45. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_mdIdentifier.rb +53 -54
  46. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_miMetadata.rb +51 -23
  47. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dictionary.rb +1 -1
  48. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_distribution.rb +2 -0
  49. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_domainItem.rb +4 -0
  50. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadataInfo.rb +2 -0
  51. data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_rights.rb +7 -1
  52. data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_sbJson.rb +12 -1
  53. metadata +16 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b8967380488c638b7c04f98f0fd3d51d68bccf9a
4
- data.tar.gz: 695fbc3cff2ddf09eda1fabcba0478c035d5a990
3
+ metadata.gz: 95e15d92713059c8c6ebf9fe68e8e470ba617d96
4
+ data.tar.gz: '0094df70ff7fbb3e469bafcf5e888028937315dc'
5
5
  SHA512:
6
- metadata.gz: 25f1962901b59cd7c317ab6d1c70d88362fa8a1018a98ff55fcc9311d243b8152132f2779f38c8ed7ac32de3f40a14c0eb612942f1adb7a65a4dca5042cfa26a
7
- data.tar.gz: fc110571208fd0f094ddb53a31a42b204a6d655dfa1bf7a603a6f267022f62bea71b9269734b7c3eac190cbe348577ee25d2a0514b4552bb930340f50680626f
6
+ metadata.gz: 1df4d37ba5555ca5ed687bea01eca86059d963d73633095a5b83dd1424da28d087617e1ad553c903a471b5c427e18d0665d3b1d5e441ad667d7860f49a18c007
7
+ data.tar.gz: 8e87753759f7592cc5c94563243a0a0e95fb0d2d698ffdf80234a28b642c56ccf9042da5fdf2ce80345b266fdff2a64eec8c1c650116dea129e6e0793be56f66
@@ -1,7 +1,14 @@
1
1
  # Change Log
2
2
 
3
- ## [v2.8.0](https://github.com/adiwg/mdTranslator/tree/v2.8.0)
3
+ ## [v2.9.0](https://github.com/adiwg/mdTranslator/tree/v2.9.0)
4
4
 
5
+ [Full Changelog](https://github.com/adiwg/mdTranslator/compare/v2.8.0...v2.9.0)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - mdTranslator version 2.9.0 [\#181](https://github.com/adiwg/mdTranslator/pull/181) ([stansmith907](https://github.com/stansmith907))
10
+
11
+ ## [v2.8.0](https://github.com/adiwg/mdTranslator/tree/v2.8.0) (2018-01-24)
5
12
  [Full Changelog](https://github.com/adiwg/mdTranslator/compare/v2.7.0...v2.8.0)
6
13
 
7
14
  **Implemented enhancements:**
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
33
33
  spec.add_runtime_dependency "thor", "~> 0.19"
34
34
  spec.add_runtime_dependency "uuidtools", "~> 2.1"
35
35
  spec.add_runtime_dependency "json-schema", "~> 2.7"
36
- spec.add_runtime_dependency "adiwg-mdjson_schemas", ">= 2.4.1"
36
+ spec.add_runtime_dependency "adiwg-mdjson_schemas", ">= 2.4.2"
37
37
  spec.add_runtime_dependency "adiwg-mdcodes", "~> 2.4.0"
38
38
  spec.add_runtime_dependency "jbuilder", "~> 2.5"
39
39
  spec.add_runtime_dependency "kramdown", "~> 1.13"
@@ -120,6 +120,8 @@ class InternalMetadata
120
120
  def initialize
121
121
  end
122
122
 
123
+
124
+ # base -----------------------------------
123
125
  def newBase
124
126
  {
125
127
  schema: {},
@@ -130,26 +132,36 @@ class InternalMetadata
130
132
  }
131
133
  end
132
134
 
133
- def newSchema
135
+ def newMetadata
134
136
  {
135
- name: nil,
136
- version: nil
137
+ metadataInfo: {},
138
+ resourceInfo: {},
139
+ lineageInfo: [],
140
+ distributorInfo: [],
141
+ associatedResources: [],
142
+ additionalDocuments: [],
143
+ funding: []
137
144
  }
138
145
  end
139
146
 
140
- def newDate
147
+ def newSchema
141
148
  {
142
- date: nil,
143
- dateResolution: nil,
144
- dateType: nil,
145
- description: nil
149
+ name: nil,
150
+ version: nil
146
151
  }
147
152
  end
148
153
 
149
- def newDateTime
154
+
155
+ # contacts--------------------------------
156
+ def newAddress
150
157
  {
151
- dateTime: nil,
152
- dateResolution: nil
158
+ addressTypes: [],
159
+ description: nil,
160
+ deliveryPoints: [],
161
+ city: nil,
162
+ adminArea: nil,
163
+ postalCode: nil,
164
+ country: nil
153
165
  }
154
166
  end
155
167
 
@@ -179,105 +191,8 @@ class InternalMetadata
179
191
  }
180
192
  end
181
193
 
182
- def newAddress
183
- {
184
- addressTypes: [],
185
- description: nil,
186
- deliveryPoints: [],
187
- city: nil,
188
- adminArea: nil,
189
- postalCode: nil,
190
- country: nil
191
- }
192
- end
193
-
194
- def newMetadata
195
- {
196
- metadataInfo: {},
197
- resourceInfo: {},
198
- lineageInfo: [],
199
- distributorInfo: [],
200
- associatedResources: [],
201
- additionalDocuments: [],
202
- funding: []
203
- }
204
- end
205
-
206
- def newMetadataInfo
207
- {
208
- metadataIdentifier: {},
209
- parentMetadata: {},
210
- defaultMetadataLocale: {},
211
- otherMetadataLocales: [],
212
- metadataContacts: [],
213
- metadataDates: [],
214
- metadataLinkages: [],
215
- metadataMaintenance: {},
216
- alternateMetadataReferences: [],
217
- metadataStatus: nil,
218
- extensions: []
219
- }
220
- end
221
-
222
- def newResponsibility
223
- {
224
- roleName: nil,
225
- roleExtents: [],
226
- parties: []
227
- }
228
- end
229
-
230
- def newParty
231
- {
232
- contactId: nil,
233
- contactIndex: nil,
234
- contactType: nil,
235
- organizationMembers: []
236
- }
237
- end
238
-
239
- def newOnlineResource
240
- {
241
- olResURI: nil,
242
- olResProtocol: nil,
243
- olResName: nil,
244
- olResDesc: nil,
245
- olResFunction: nil
246
- }
247
- end
248
-
249
- def newResourceInfo
250
- {
251
- resourceTypes: [],
252
- citation: {},
253
- abstract: nil,
254
- shortAbstract: nil,
255
- purpose: nil,
256
- credits: [],
257
- timePeriod: {},
258
- status: [],
259
- pointOfContacts: [],
260
- spatialReferenceSystems: [],
261
- spatialRepresentationTypes: [],
262
- spatialRepresentations: [],
263
- spatialResolutions: [],
264
- temporalResolutions: [],
265
- extents: [],
266
- coverageDescriptions: [],
267
- taxonomy: {},
268
- graphicOverviews: [],
269
- resourceFormats: [],
270
- keywords: [],
271
- resourceUsages: [],
272
- constraints: [],
273
- defaultResourceLocale: {},
274
- otherResourceLocales: [],
275
- resourceMaintenance: [],
276
- environmentDescription: nil,
277
- supplementalInfo: nil
278
- }
279
- end
280
194
 
195
+ # common ---------------------------------
281
196
  def newCitation
282
197
  {
283
198
  title: nil,
@@ -294,6 +209,15 @@ class InternalMetadata
294
209
  }
295
210
  end
296
211
 
212
+ def newGraphic
213
+ {
214
+ graphicName: nil,
215
+ graphicDescription: nil,
216
+ graphicType: nil,
217
+ graphicConstraints: [],
218
+ graphicURI: []
219
+ }
220
+ end
297
221
 
298
222
  def newIdentifier
299
223
  # handles MD_Identifier (ISO 19115-2 & -1)
@@ -308,6 +232,14 @@ class InternalMetadata
308
232
  }
309
233
  end
310
234
 
235
+ def newLocale
236
+ {
237
+ languageCode: nil,
238
+ countryCode: nil,
239
+ characterEncoding: nil
240
+ }
241
+ end
242
+
311
243
  def newMaintenance
312
244
  {
313
245
  frequency: nil,
@@ -318,21 +250,33 @@ class InternalMetadata
318
250
  }
319
251
  end
320
252
 
321
- def newKeyword
253
+ def newOnlineResource
322
254
  {
323
- keywords: [],
324
- keywordType: nil,
325
- thesaurus: {}
255
+ olResURI: nil,
256
+ olResProtocol: nil,
257
+ olResName: nil,
258
+ olResDesc: nil,
259
+ olResFunction: nil
326
260
  }
327
261
  end
328
262
 
329
- def newKeywordObject
263
+ def newResourceType
330
264
  {
331
- keyword: nil,
332
- keywordId: nil
265
+ type: nil,
266
+ name: nil
267
+ }
268
+ end
269
+
270
+ def newSeries
271
+ {
272
+ seriesName: nil,
273
+ seriesIssue: nil,
274
+ issuePage: nil
333
275
  }
334
276
  end
335
277
 
278
+
279
+ # constraint -----------------------------
336
280
  def newConstraint
337
281
  {
338
282
  type: nil,
@@ -372,54 +316,252 @@ class InternalMetadata
372
316
  }
373
317
  end
374
318
 
375
- def newDistribution
319
+ def newResourceUsage
376
320
  {
377
- description: nil,
378
- distributor: []
321
+ specificUsage: nil,
322
+ temporalExtents: [],
323
+ userLimitation: nil,
324
+ limitationResponses: [],
325
+ identifiedIssue: {},
326
+ additionalDocumentation: [],
327
+ userContacts: []
379
328
  }
380
329
  end
381
330
 
382
- def newDistributor
331
+
332
+ # coverage description -------------------
333
+ def newCoverageDescription
383
334
  {
384
- contact: {},
385
- orderProcess: [],
386
- transferOptions: []
335
+ coverageName: nil,
336
+ coverageDescription: nil,
337
+ processingLevelCode: {},
338
+ attributeGroups: [],
339
+ imageDescription: {}
387
340
  }
388
341
  end
389
342
 
390
- def newOrderProcess
343
+ def newAttributeGroup
391
344
  {
392
- fees: nil,
393
- plannedAvailability: {},
394
- orderingInstructions: nil,
395
- turnaround: nil
345
+ attributeContentTypes: [],
346
+ attributes: []
396
347
  }
397
348
  end
398
349
 
399
- def newTransferOption
350
+ def newAttribute
400
351
  {
401
- unitsOfDistribution: nil,
402
- transferSize: nil,
403
- onlineOptions: [],
404
- offlineOptions: [],
405
- transferFrequency: {},
406
- distributionFormats: []
352
+ sequenceIdentifier: nil,
353
+ sequenceIdentifierType: nil,
354
+ attributeDescription: nil,
355
+ attributeIdentifiers: [],
356
+ minValue: nil,
357
+ maxValue: nil,
358
+ units: nil,
359
+ scaleFactor: nil,
360
+ offset: nil,
361
+ meanValue: nil,
362
+ numberOfValues: nil,
363
+ standardDeviation: nil,
364
+ bitsPerValue: nil,
365
+ boundMin: nil,
366
+ boundMax: nil,
367
+ boundUnits: nil,
368
+ peakResponse: nil,
369
+ toneGradations: nil,
370
+ bandBoundaryDefinition: nil,
371
+ nominalSpatialResolution: nil,
372
+ transferFunctionType: nil,
373
+ transmittedPolarization: nil,
374
+ detectedPolarization: nil
407
375
  }
408
376
  end
409
377
 
410
- def newMedium
378
+ def newImageDescription
411
379
  {
412
- mediumSpecification: {},
413
- density: nil,
414
- units: nil,
415
- numberOfVolumes: nil,
416
- mediumFormat: [],
417
- note: nil,
418
- identifier: {}
380
+ illuminationElevationAngle: nil,
381
+ illuminationAzimuthAngle: nil,
382
+ imagingCondition: nil,
383
+ imageQualityCode: {},
384
+ cloudCoverPercent: nil,
385
+ compressionQuantity: nil,
386
+ triangulationIndicator: false,
387
+ radiometricCalibrationAvailable: false,
388
+ cameraCalibrationAvailable: false,
389
+ filmDistortionAvailable: false,
390
+ lensDistortionAvailable: false
419
391
  }
420
392
  end
421
393
 
422
- def newResourceFormat
394
+
395
+ # data dictionary ------------------------
396
+ def newDataDictionary
397
+ {
398
+ description: nil,
399
+ subjects: [],
400
+ citation: {},
401
+ recommendedUses: [],
402
+ locales: [],
403
+ responsibleParty: {},
404
+ dictionaryFunctionalLanguage: nil,
405
+ includedWithDataset: false,
406
+ domains: [],
407
+ entities: []
408
+ }
409
+ end
410
+
411
+ def newDictionaryDomain
412
+ {
413
+ domainId: nil,
414
+ domainName: nil,
415
+ domainCode: nil,
416
+ domainDescription: nil,
417
+ domainReference: {},
418
+ domainItems: []
419
+ }
420
+ end
421
+
422
+ def newDomainItem
423
+ {
424
+ itemName: nil,
425
+ itemValue: nil,
426
+ itemDefinition: nil,
427
+ itemReference: {}
428
+ }
429
+ end
430
+
431
+ def newEntity
432
+ {
433
+ entityId: nil,
434
+ entityName: nil,
435
+ entityCode: nil,
436
+ entityAlias: [],
437
+ entityDefinition: nil,
438
+ entityReferences: [],
439
+ primaryKey: [],
440
+ indexes: [],
441
+ attributes: [],
442
+ foreignKeys: [],
443
+ fieldSeparatorCharacter: nil,
444
+ numberOfHeaderLines: nil,
445
+ quoteCharacter: nil
446
+ }
447
+ end
448
+
449
+ def newEntityIndex
450
+ {
451
+ indexCode: nil,
452
+ duplicate: false,
453
+ attributeNames: []
454
+ }
455
+ end
456
+
457
+ def newEntityAttribute
458
+ {
459
+ attributeName: nil,
460
+ attributeCode: nil,
461
+ attributeAlias: [],
462
+ attributeDefinition: nil,
463
+ attributeReference: {},
464
+ dataType: nil,
465
+ allowNull: false,
466
+ allowMany: false,
467
+ unitOfMeasure: nil,
468
+ measureResolution: nil,
469
+ isCaseSensitive: false,
470
+ fieldWidth: nil,
471
+ missingValue: nil,
472
+ domainId: nil,
473
+ minValue: nil,
474
+ maxValue: nil,
475
+ valueRange: [],
476
+ timePeriod: []
477
+ }
478
+ end
479
+
480
+ def newValueRange
481
+ {
482
+ minRangeValue: nil,
483
+ maxRangeValue: nil
484
+ }
485
+ end
486
+
487
+ def newEntityForeignKey
488
+ {
489
+ fkLocalAttributes: [],
490
+ fkReferencedEntity: nil,
491
+ fkReferencedAttributes: []
492
+ }
493
+ end
494
+
495
+
496
+ # date-time ------------------------------
497
+ def newDate
498
+ {
499
+ date: nil,
500
+ dateResolution: nil,
501
+ dateType: nil,
502
+ description: nil
503
+ }
504
+ end
505
+
506
+ def newDateTime
507
+ {
508
+ dateTime: nil,
509
+ dateResolution: nil
510
+ }
511
+ end
512
+
513
+
514
+ # distribution ---------------------------
515
+ def newDistribution
516
+ {
517
+ description: nil,
518
+ liabilityStatement: nil,
519
+ technicalPrerequisite: nil,
520
+ distributor: []
521
+ }
522
+ end
523
+
524
+ def newDistributor
525
+ {
526
+ contact: {},
527
+ orderProcess: [],
528
+ transferOptions: []
529
+ }
530
+ end
531
+
532
+ def newOrderProcess
533
+ {
534
+ fees: nil,
535
+ plannedAvailability: {},
536
+ orderingInstructions: nil,
537
+ turnaround: nil
538
+ }
539
+ end
540
+
541
+ def newTransferOption
542
+ {
543
+ unitsOfDistribution: nil,
544
+ transferSize: nil,
545
+ onlineOptions: [],
546
+ offlineOptions: [],
547
+ transferFrequency: {},
548
+ distributionFormats: []
549
+ }
550
+ end
551
+
552
+ def newMedium
553
+ {
554
+ mediumSpecification: {},
555
+ density: nil,
556
+ units: nil,
557
+ numberOfVolumes: nil,
558
+ mediumFormat: [],
559
+ note: nil,
560
+ identifier: {}
561
+ }
562
+ end
563
+
564
+ def newResourceFormat
423
565
  {
424
566
  formatSpecification: {},
425
567
  amendmentNumber: nil,
@@ -427,16 +569,31 @@ class InternalMetadata
427
569
  }
428
570
  end
429
571
 
430
- def newGraphic
572
+
573
+ # funding --------------------------------
574
+ def newAllocation
431
575
  {
432
- graphicName: nil,
433
- graphicDescription: nil,
434
- graphicType: nil,
435
- graphicConstraints: [],
436
- graphicURI: []
576
+ id: nil,
577
+ amount: nil,
578
+ currency: nil,
579
+ sourceId: nil,
580
+ recipientId: nil,
581
+ matching: false,
582
+ onlineResources: [],
583
+ comment: nil
584
+ }
585
+ end
586
+
587
+ def newFunding
588
+ {
589
+ description: nil,
590
+ timePeriod: {},
591
+ allocations: []
437
592
  }
438
593
  end
439
594
 
595
+
596
+ # graphic extent --------------------------
440
597
  def newExtent
441
598
  {
442
599
  description: nil,
@@ -520,125 +677,25 @@ class InternalMetadata
520
677
  }
521
678
  end
522
679
 
523
- def newTemporalExtent
524
- {
525
- timeInstant: {},
526
- timePeriod: {}
527
- }
528
- end
529
-
530
- def newTimeInstant
531
- {
532
- timeId: nil,
533
- description: nil,
534
- identifier: {},
535
- instantNames: [],
536
- timeInstant: {},
537
- geologicAge: {}
538
- }
539
- end
540
-
541
- def newTimePeriod
542
- {
543
- timeId: nil,
544
- description: nil,
545
- identifier: {},
546
- periodNames: [],
547
- startDateTime: {},
548
- endDateTime: {},
549
- startGeologicAge: {},
550
- endGeologicAge: {},
551
- timeInterval: {},
552
- duration: {}
553
- }
554
- end
555
680
 
556
- def newGeologicAge
557
- {
558
- ageTimeScale: nil,
559
- ageEstimate: nil,
560
- ageUncertainty: nil,
561
- ageExplanation: nil,
562
- ageReferences: []
563
- }
564
- end
565
-
566
- def newDuration
567
- {
568
- years: nil,
569
- months: nil,
570
- days: nil,
571
- hours: nil,
572
- minutes: nil,
573
- seconds: nil
574
- }
575
- end
576
-
577
- def newTimeInterval
578
- {
579
- interval: nil,
580
- units: nil
581
- }
582
- end
583
-
584
- def newVerticalExtent
585
- {
586
- description: nil,
587
- minValue: nil,
588
- maxValue: nil,
589
- crsId: {}
590
- }
591
- end
592
-
593
- def newResourceUsage
594
- {
595
- specificUsage: nil,
596
- temporalExtents: [],
597
- userLimitation: nil,
598
- limitationResponses: [],
599
- identifiedIssue: {},
600
- additionalDocumentation: [],
601
- userContacts: []
602
- }
603
- end
604
-
605
- def newTaxonomy
606
- {
607
- taxonSystem: [],
608
- generalScope: nil,
609
- idReferences: [],
610
- observers: [],
611
- idProcedure: nil,
612
- idCompleteness: nil,
613
- vouchers: [],
614
- taxonClass: {}
615
- }
616
- end
617
-
618
- def newTaxonSystem
681
+ # keyword --------------------------------
682
+ def newKeyword
619
683
  {
620
- citation: {},
621
- modifications: nil
684
+ keywords: [],
685
+ keywordType: nil,
686
+ thesaurus: {}
622
687
  }
623
688
  end
624
689
 
625
- def newTaxonVoucher
690
+ def newKeywordObject
626
691
  {
627
- specimen: nil,
628
- repository: {}
692
+ keyword: nil,
693
+ keywordId: nil
629
694
  }
630
695
  end
631
696
 
632
- def newTaxonClass
633
- {
634
- taxonId: nil,
635
- taxonRank: nil,
636
- taxonValue: nil,
637
- commonNames: [],
638
- subClasses: []
639
- }
640
- end
641
697
 
698
+ # lineage --------------------------------
642
699
  def newLineage
643
700
  {
644
701
  statement: nil,
@@ -676,139 +733,99 @@ class InternalMetadata
676
733
  }
677
734
  end
678
735
 
679
- def newMetadataExtension
680
- {
681
- onLineResource: {},
682
- name: nil,
683
- shortName: nil,
684
- definition: nil,
685
- obligation: nil,
686
- dataType: nil,
687
- maxOccurrence: nil,
688
- parentEntities: [],
689
- rule: nil,
690
- rationales: [],
691
- sourceOrganization: nil,
692
- sourceURI: nil,
693
- sourceRole: nil
694
- }
695
- end
696
736
 
697
- def newAssociatedResource
737
+ # metadata info --------------------------
738
+ def newMetadataInfo
698
739
  {
699
- resourceTypes: [],
700
- associationType: nil,
701
- initiativeType: nil,
702
- resourceCitation: {},
703
- metadataCitation: {}
740
+ metadataIdentifier: {},
741
+ parentMetadata: {},
742
+ defaultMetadataLocale: {},
743
+ otherMetadataLocales: [],
744
+ metadataContacts: [],
745
+ metadataDates: [],
746
+ metadataLinkages: [],
747
+ metadataConstraints: [],
748
+ metadataMaintenance: {},
749
+ alternateMetadataReferences: [],
750
+ metadataStatus: nil,
751
+ extensions: []
704
752
  }
705
753
  end
706
754
 
707
- def newAdditionalDocumentation
708
- {
709
- resourceTypes: [],
710
- citation: []
711
- }
712
- end
713
755
 
714
- def newDataDictionary
756
+ # resource info --------------------------
757
+ def newResourceInfo
715
758
  {
716
- description: nil,
717
- subjects: [],
759
+ resourceTypes: [],
718
760
  citation: {},
719
- recommendedUses: [],
720
- locales: [],
721
- responsibleParty: {},
722
- dictionaryFormat: nil,
723
- includedWithDataset: false,
724
- domains: [],
725
- entities: []
761
+ abstract: nil,
762
+ shortAbstract: nil,
763
+ purpose: nil,
764
+ credits: [],
765
+ timePeriod: {},
766
+ status: [],
767
+ pointOfContacts: [],
768
+ spatialReferenceSystems: [],
769
+ spatialRepresentationTypes: [],
770
+ spatialRepresentations: [],
771
+ spatialResolutions: [],
772
+ temporalResolutions: [],
773
+ extents: [],
774
+ coverageDescriptions: [],
775
+ taxonomy: {},
776
+ graphicOverviews: [],
777
+ resourceFormats: [],
778
+ keywords: [],
779
+ resourceUsages: [],
780
+ constraints: [],
781
+ defaultResourceLocale: {},
782
+ otherResourceLocales: [],
783
+ resourceMaintenance: [],
784
+ environmentDescription: nil,
785
+ supplementalInfo: nil
726
786
  }
727
787
  end
728
788
 
729
- def newDictionaryDomain
730
- {
731
- domainId: nil,
732
- domainName: nil,
733
- domainCode: nil,
734
- domainDescription: nil,
735
- domainReference: {},
736
- domainItems: []
737
- }
738
- end
739
789
 
740
- def newDomainItem
790
+ # responsibility -------------------------
791
+ def newResponsibility
741
792
  {
742
- itemName: nil,
743
- itemValue: nil,
744
- itemDefinition: nil
793
+ roleName: nil,
794
+ roleExtents: [],
795
+ parties: []
745
796
  }
746
797
  end
747
798
 
748
- def newEntity
799
+ def newParty
749
800
  {
750
- entityId: nil,
751
- entityName: nil,
752
- entityCode: nil,
753
- entityAlias: [],
754
- entityDefinition: nil,
755
- entityReferences: [],
756
- primaryKey: [],
757
- indexes: [],
758
- attributes: [],
759
- foreignKeys: [],
760
- fieldSeparatorCharacter: nil,
761
- numberOfHeaderLines: nil,
762
- quoteCharacter: nil
801
+ contactId: nil,
802
+ contactIndex: nil,
803
+ contactType: nil,
804
+ organizationMembers: []
763
805
  }
764
806
  end
765
807
 
766
- def newEntityIndex
767
- {
768
- indexCode: nil,
769
- duplicate: false,
770
- attributeNames: []
771
- }
772
- end
773
808
 
774
- def newEntityAttribute
809
+ # scope ----------------------------------
810
+ def newScope
775
811
  {
776
- attributeName: nil,
777
- attributeCode: nil,
778
- attributeAlias: [],
779
- attributeDefinition: nil,
780
- attributeReference: {},
781
- dataType: nil,
782
- allowNull: false,
783
- allowMany: false,
784
- unitOfMeasure: nil,
785
- measureResolution: nil,
786
- isCaseSensitive: false,
787
- fieldWidth: nil,
788
- missingValue: nil,
789
- domainId: nil,
790
- minValue: nil,
791
- maxValue: nil,
792
- valueRange: [],
793
- timePeriod: []
812
+ scopeCode: nil,
813
+ scopeDescriptions: [],
814
+ extents: []
794
815
  }
795
816
  end
796
817
 
797
- def newValueRange
818
+ def newScopeDescription
798
819
  {
799
- minRangeValue: nil,
800
- maxRangeValue: nil
820
+ dataset: nil,
821
+ attributes: nil,
822
+ features: nil,
823
+ other: nil
801
824
  }
802
825
  end
803
826
 
804
- def newEntityForeignKey
805
- {
806
- fkLocalAttributes: [],
807
- fkReferencedEntity: nil,
808
- fkReferencedAttributes: []
809
- }
810
- end
811
827
 
828
+ # spatial reference ----------------------
812
829
  def newSpatialReferenceSystem
813
830
  {
814
831
  systemType: nil,
@@ -857,72 +874,26 @@ class InternalMetadata
857
874
  localPlanarDescription: nil,
858
875
  localPlanarGeoreference: nil,
859
876
  otherGridDescription: nil,
860
- otherProjectionDescription: nil
861
- }
862
- end
863
-
864
- def newObliqueLinePoint
865
- {
866
- azimuthLineLatitude: nil,
867
- azimuthLineLongitude: nil
868
- }
869
- end
870
-
871
- def newGeodetic
872
- {
873
- datumIdentifier: {},
874
- datumName: nil,
875
- ellipsoidIdentifier: {},
876
- ellipsoidName: nil,
877
- semiMajorAxis: nil,
878
- axisUnits: nil,
879
- denominatorOfFlatteningRatio: nil
880
- }
881
- end
882
-
883
- def newSpatialResolution
884
- {
885
- scaleFactor: nil,
886
- measure: {},
887
- coordinateResolution: {},
888
- bearingDistanceResolution: {},
889
- geographicResolution: {},
890
- levelOfDetail: nil
891
- }
892
- end
893
-
894
- def newMeasure
895
- {
896
- type: nil,
897
- value: nil,
898
- unitOfMeasure: nil
899
- }
900
- end
901
-
902
- def newCoordinateResolution
903
- {
904
- abscissaResolutionX: nil,
905
- ordinateResolutionY: nil,
906
- unitOfMeasure: nil
877
+ otherProjectionDescription: nil
907
878
  }
908
879
  end
909
880
 
910
- def newBearingDistanceResolution
881
+ def newObliqueLinePoint
911
882
  {
912
- distanceResolution: nil,
913
- distanceUnitOfMeasure: nil,
914
- bearingResolution: nil,
915
- bearingUnitOfMeasure: nil,
916
- bearingReferenceDirection: nil,
917
- bearingReferenceMeridian: nil
883
+ azimuthLineLatitude: nil,
884
+ azimuthLineLongitude: nil
918
885
  }
919
886
  end
920
887
 
921
- def newGeographicResolution
888
+ def newGeodetic
922
889
  {
923
- latitudeResolution: nil,
924
- longitudeResolution: nil,
925
- unitOfMeasure: nil
890
+ datumIdentifier: {},
891
+ datumName: nil,
892
+ ellipsoidIdentifier: {},
893
+ ellipsoidName: nil,
894
+ semiMajorAxis: nil,
895
+ axisUnits: nil,
896
+ denominatorOfFlatteningRatio: nil
926
897
  }
927
898
  end
928
899
 
@@ -938,6 +909,8 @@ class InternalMetadata
938
909
 
939
910
  end
940
911
 
912
+
913
+ # spatial representation -----------------
941
914
  def newSpatialRepresentation
942
915
  {
943
916
  gridRepresentation: {},
@@ -1004,118 +977,201 @@ class InternalMetadata
1004
977
  }
1005
978
  end
1006
979
 
1007
- def newCoverageDescription
980
+
981
+ # spatial resolution ----------------------
982
+ def newSpatialResolution
1008
983
  {
1009
- coverageName: nil,
1010
- coverageDescription: nil,
1011
- processingLevelCode: {},
1012
- attributeGroups: [],
1013
- imageDescription: {}
984
+ scaleFactor: nil,
985
+ measure: {},
986
+ coordinateResolution: {},
987
+ bearingDistanceResolution: {},
988
+ geographicResolution: {},
989
+ levelOfDetail: nil
1014
990
  }
1015
991
  end
1016
992
 
1017
- def newAttributeGroup
993
+ def newMeasure
1018
994
  {
1019
- attributeContentTypes: [],
1020
- attributes: []
995
+ type: nil,
996
+ value: nil,
997
+ unitOfMeasure: nil
1021
998
  }
1022
999
  end
1023
1000
 
1024
- def newAttribute
1001
+ def newCoordinateResolution
1025
1002
  {
1026
- sequenceIdentifier: nil,
1027
- sequenceIdentifierType: nil,
1028
- attributeDescription: nil,
1029
- attributeIdentifiers: [],
1030
- minValue: nil,
1031
- maxValue: nil,
1032
- units: nil,
1033
- scaleFactor: nil,
1034
- offset: nil,
1035
- meanValue: nil,
1036
- numberOfValues: nil,
1037
- standardDeviation: nil,
1038
- bitsPerValue: nil,
1039
- boundMin: nil,
1040
- boundMax: nil,
1041
- boundUnits: nil,
1042
- peakResponse: nil,
1043
- toneGradations: nil,
1044
- bandBoundaryDefinition: nil,
1045
- nominalSpatialResolution: nil,
1046
- transferFunctionType: nil,
1047
- transmittedPolarization: nil,
1048
- detectedPolarization: nil
1003
+ abscissaResolutionX: nil,
1004
+ ordinateResolutionY: nil,
1005
+ unitOfMeasure: nil
1049
1006
  }
1050
1007
  end
1051
1008
 
1052
- def newImageDescription
1009
+ def newBearingDistanceResolution
1053
1010
  {
1054
- illuminationElevationAngle: nil,
1055
- illuminationAzimuthAngle: nil,
1056
- imagingCondition: nil,
1057
- imageQualityCode: {},
1058
- cloudCoverPercent: nil,
1059
- compressionQuantity: nil,
1060
- triangulationIndicator: false,
1061
- radiometricCalibrationAvailable: false,
1062
- cameraCalibrationAvailable: false,
1063
- filmDistortionAvailable: false,
1064
- lensDistortionAvailable: false
1011
+ distanceResolution: nil,
1012
+ distanceUnitOfMeasure: nil,
1013
+ bearingResolution: nil,
1014
+ bearingUnitOfMeasure: nil,
1015
+ bearingReferenceDirection: nil,
1016
+ bearingReferenceMeridian: nil
1065
1017
  }
1066
1018
  end
1067
1019
 
1068
- def newLocale
1020
+ def newGeographicResolution
1069
1021
  {
1070
- languageCode: nil,
1071
- countryCode: nil,
1072
- characterEncoding: nil
1022
+ latitudeResolution: nil,
1023
+ longitudeResolution: nil,
1024
+ unitOfMeasure: nil
1073
1025
  }
1074
1026
  end
1075
1027
 
1076
- def newSeries
1028
+
1029
+ # taxonomy -------------------------------
1030
+ def newTaxonomy
1077
1031
  {
1078
- seriesName: nil,
1079
- seriesIssue: nil,
1080
- issuePage: nil
1032
+ taxonSystem: [],
1033
+ generalScope: nil,
1034
+ idReferences: [],
1035
+ observers: [],
1036
+ idProcedure: nil,
1037
+ idCompleteness: nil,
1038
+ vouchers: [],
1039
+ taxonClass: {}
1081
1040
  }
1082
1041
  end
1083
1042
 
1084
- def newScope
1043
+ def newTaxonSystem
1085
1044
  {
1086
- scopeCode: nil,
1087
- scopeDescriptions: [],
1088
- extents: []
1045
+ citation: {},
1046
+ modifications: nil
1089
1047
  }
1090
1048
  end
1091
1049
 
1092
- def newScopeDescription
1050
+ def newTaxonVoucher
1093
1051
  {
1094
- dataset: nil,
1095
- attributes: nil,
1096
- features: nil,
1097
- other: nil
1052
+ specimen: nil,
1053
+ repository: {}
1098
1054
  }
1099
1055
  end
1100
1056
 
1101
- def newAllocation
1057
+ def newTaxonClass
1102
1058
  {
1103
- id: nil,
1104
- amount: nil,
1105
- currency: nil,
1106
- sourceId: nil,
1107
- recipientId: nil,
1108
- matching: false,
1109
- onlineResources: [],
1110
- comment: nil
1059
+ taxonId: nil,
1060
+ taxonRank: nil,
1061
+ taxonValue: nil,
1062
+ commonNames: [],
1063
+ subClasses: []
1111
1064
  }
1112
1065
  end
1113
1066
 
1114
- def newFunding
1067
+
1068
+ # temporal extent ------------------------
1069
+ def newTemporalExtent
1070
+ {
1071
+ timeInstant: {},
1072
+ timePeriod: {}
1073
+ }
1074
+ end
1075
+
1076
+ def newTimeInstant
1115
1077
  {
1078
+ timeId: nil,
1116
1079
  description: nil,
1117
- timePeriod: {},
1118
- allocations: []
1080
+ identifier: {},
1081
+ instantNames: [],
1082
+ timeInstant: {},
1083
+ geologicAge: {}
1084
+ }
1085
+ end
1086
+
1087
+ def newTimePeriod
1088
+ {
1089
+ timeId: nil,
1090
+ description: nil,
1091
+ identifier: {},
1092
+ periodNames: [],
1093
+ startDateTime: {},
1094
+ endDateTime: {},
1095
+ startGeologicAge: {},
1096
+ endGeologicAge: {},
1097
+ timeInterval: {},
1098
+ duration: {}
1099
+ }
1100
+ end
1101
+
1102
+ def newGeologicAge
1103
+ {
1104
+ ageTimeScale: nil,
1105
+ ageEstimate: nil,
1106
+ ageUncertainty: nil,
1107
+ ageExplanation: nil,
1108
+ ageReferences: []
1109
+ }
1110
+ end
1111
+
1112
+ def newDuration
1113
+ {
1114
+ years: nil,
1115
+ months: nil,
1116
+ days: nil,
1117
+ hours: nil,
1118
+ minutes: nil,
1119
+ seconds: nil
1120
+ }
1121
+ end
1122
+
1123
+ def newTimeInterval
1124
+ {
1125
+ interval: nil,
1126
+ units: nil
1127
+ }
1128
+ end
1129
+
1130
+
1131
+ # vertical extent ------------------------
1132
+ def newVerticalExtent
1133
+ {
1134
+ description: nil,
1135
+ minValue: nil,
1136
+ maxValue: nil,
1137
+ crsId: {}
1138
+ }
1139
+ end
1140
+
1141
+
1142
+ # miscellaneous---------------------------
1143
+ def newAssociatedResource
1144
+ {
1145
+ resourceTypes: [],
1146
+ associationType: nil,
1147
+ initiativeType: nil,
1148
+ resourceCitation: {},
1149
+ metadataCitation: {}
1150
+ }
1151
+ end
1152
+
1153
+ def newAdditionalDocumentation
1154
+ {
1155
+ resourceTypes: [],
1156
+ citation: []
1157
+ }
1158
+ end
1159
+
1160
+ def newMetadataExtension
1161
+ {
1162
+ onLineResource: {},
1163
+ name: nil,
1164
+ shortName: nil,
1165
+ definition: nil,
1166
+ obligation: nil,
1167
+ dataType: nil,
1168
+ maxOccurrence: nil,
1169
+ parentEntities: [],
1170
+ rule: nil,
1171
+ rationales: [],
1172
+ sourceOrganization: nil,
1173
+ sourceURI: nil,
1174
+ sourceRole: nil
1119
1175
  }
1120
1176
  end
1121
1177
 
@@ -1127,11 +1183,7 @@ class InternalMetadata
1127
1183
  }
1128
1184
  end
1129
1185
 
1130
- def newResourceType
1131
- {
1132
- type: nil,
1133
- name: nil
1134
- }
1135
- end
1186
+ # ----------------------------------------
1187
+ # ----------------------------------------
1136
1188
 
1137
1189
  end