adiwg-mdtranslator 1.4.0 → 2.0.0rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (525) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +1 -3
  3. data/.travis.yml +4 -3
  4. data/README.md +1 -3
  5. data/Rakefile +5 -1
  6. data/adiwg-mdtranslator.gemspec +5 -5
  7. data/bin/mdtranslator +3 -205
  8. data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +600 -316
  9. data/lib/adiwg/mdtranslator/internal/module_coordinates.rb +123 -7
  10. data/lib/adiwg/mdtranslator/internal/module_dateTimeFun.rb +45 -0
  11. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb +83 -178
  12. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_validator.rb +21 -22
  13. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_additionalDocumentation.rb +77 -0
  14. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_address.rb +101 -0
  15. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_allocation.rb +84 -0
  16. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_associatedResource.rb +111 -0
  17. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attribute.rb +224 -0
  18. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attributeGroup.rb +63 -0
  19. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_boundingBox.rb +95 -0
  20. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_citation.rb +164 -0
  21. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_constraint.rb +163 -0
  22. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_contact.rb +172 -0
  23. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageDescription.rb +96 -0
  24. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataDictionary.rb +151 -0
  25. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_date.rb +74 -0
  26. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_v1 → modules}/module_dateTime.rb +19 -5
  27. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dimension.rb +87 -0
  28. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distribution.rb +56 -0
  29. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distributor.rb +78 -0
  30. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domain.rb +95 -0
  31. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domainItem.rb +70 -0
  32. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_duration.rb +112 -0
  33. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entity.rb +135 -0
  34. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityAttribute.rb +130 -0
  35. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityForeignKey.rb +78 -0
  36. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityIndex.rb +72 -0
  37. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_extent.rb +83 -0
  38. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_featureCollection.rb +87 -0
  39. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_format.rb +68 -0
  40. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_funding.rb +67 -0
  41. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geoJson.rb +70 -0
  42. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geographicExtent.rb +98 -0
  43. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryCollection.rb +87 -0
  44. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryFeature.rb +112 -0
  45. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryObject.rb +70 -0
  46. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryProperties.rb +79 -0
  47. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georectifiedRepresentation.rb +113 -0
  48. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georeferenceableRepresentation.rb +99 -0
  49. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gmlIdentifier.rb +55 -0
  50. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_graphic.rb +96 -0
  51. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gridRepresentation.rb +79 -0
  52. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_identifier.rb +87 -0
  53. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_imageDescription.rb +120 -0
  54. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keyword.rb +83 -0
  55. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keywordObject.rb +55 -0
  56. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb +77 -0
  57. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_lineage.rb +104 -0
  58. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_locale.rb +66 -0
  59. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_maintenance.rb +93 -0
  60. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_mdJson.rb +136 -0
  61. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_measure.rb +75 -0
  62. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_medium.rb +105 -0
  63. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadata.rb +131 -0
  64. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataInfo.rb +157 -0
  65. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataRepository.rb +53 -0
  66. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_onlineResource.rb +82 -0
  67. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_orderProcess.rb +68 -0
  68. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_party.rb +79 -0
  69. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_phone.rb +68 -0
  70. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_processStep.rb +113 -0
  71. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_releasability.rb +71 -0
  72. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceInfo.rb +364 -0
  73. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceType.rb +55 -0
  74. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceUsage.rb +117 -0
  75. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_responsibleParty.rb +91 -0
  76. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_schema.rb +56 -0
  77. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scope.rb +72 -0
  78. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scopeDescription.rb +73 -0
  79. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_securityConstraint.rb +72 -0
  80. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_series.rb +57 -0
  81. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_source.rb +123 -0
  82. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialReference.rb +65 -0
  83. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialRepresentation.rb +96 -0
  84. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialResolution.rb +77 -0
  85. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicClassification.rb +87 -0
  86. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicSystem.rb +60 -0
  87. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomy.rb +138 -0
  88. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_temporalExtent.rb +70 -0
  89. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInstant.rb +87 -0
  90. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInterval.rb +69 -0
  91. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timePeriod.rb +120 -0
  92. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_transferOption.rb +95 -0
  93. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorObject.rb +55 -0
  94. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorRepresentation.rb +55 -0
  95. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_verticalExtent.rb +81 -0
  96. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_voucher.rb +64 -0
  97. data/lib/adiwg/mdtranslator/readers/mdJson/readme.md +3 -9
  98. data/lib/adiwg/mdtranslator/readers/mdJson/version.rb +14 -0
  99. data/lib/adiwg/mdtranslator/readers/mdReaders.rb +36 -30
  100. data/lib/adiwg/mdtranslator/readers/sbJson/sbJson_reader.rb +39 -40
  101. data/lib/adiwg/mdtranslator/version.rb +38 -29
  102. data/lib/adiwg/mdtranslator/writers/html/html_writer.rb +28 -25
  103. data/lib/adiwg/mdtranslator/writers/html/readme.md +3 -9
  104. data/lib/adiwg/mdtranslator/writers/html/sections/html_additionalDocumentation.rb +35 -34
  105. data/lib/adiwg/mdtranslator/writers/html/sections/html_allocation.rb +71 -0
  106. data/lib/adiwg/mdtranslator/writers/html/sections/html_associatedResource.rb +51 -51
  107. data/lib/adiwg/mdtranslator/writers/html/sections/html_attribute.rb +189 -0
  108. data/lib/adiwg/mdtranslator/writers/html/sections/html_attributeGroup.rb +51 -0
  109. data/lib/adiwg/mdtranslator/writers/html/sections/html_body.rb +275 -259
  110. data/lib/adiwg/mdtranslator/writers/html/sections/html_bodyScript.js +275 -150
  111. data/lib/adiwg/mdtranslator/writers/html/sections/html_boundingBox.rb +51 -0
  112. data/lib/adiwg/mdtranslator/writers/html/sections/html_citation.rb +142 -82
  113. data/lib/adiwg/mdtranslator/writers/html/sections/html_constraint.rb +118 -0
  114. data/lib/adiwg/mdtranslator/writers/html/sections/html_contact.rb +166 -94
  115. data/lib/adiwg/mdtranslator/writers/html/sections/html_coverageInfo.rb +57 -64
  116. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataDictionary.rb +102 -96
  117. data/lib/adiwg/mdtranslator/writers/html/sections/html_date.rb +42 -0
  118. data/lib/adiwg/mdtranslator/writers/html/sections/html_datetime.rb +42 -0
  119. data/lib/adiwg/mdtranslator/writers/html/sections/html_dimension.rb +50 -52
  120. data/lib/adiwg/mdtranslator/writers/html/sections/html_distribution.rb +49 -0
  121. data/lib/adiwg/mdtranslator/writers/html/sections/html_distributor.rb +48 -44
  122. data/lib/adiwg/mdtranslator/writers/html/sections/html_document.rb +63 -0
  123. data/lib/adiwg/mdtranslator/writers/html/sections/html_domain.rb +53 -62
  124. data/lib/adiwg/mdtranslator/writers/html/sections/html_domainItem.rb +49 -0
  125. data/lib/adiwg/mdtranslator/writers/html/sections/html_duration.rb +68 -0
  126. data/lib/adiwg/mdtranslator/writers/html/sections/html_entity.rb +99 -122
  127. data/lib/adiwg/mdtranslator/writers/html/sections/html_entityAttribute.rb +94 -100
  128. data/lib/adiwg/mdtranslator/writers/html/sections/html_entityForeignKey.rb +55 -0
  129. data/lib/adiwg/mdtranslator/writers/html/sections/html_entityIndex.rb +39 -39
  130. data/lib/adiwg/mdtranslator/writers/html/sections/html_extent.rb +53 -86
  131. data/lib/adiwg/mdtranslator/writers/html/sections/html_feature.rb +97 -0
  132. data/lib/adiwg/mdtranslator/writers/html/sections/html_featureCollection.rb +82 -0
  133. data/lib/adiwg/mdtranslator/writers/html/sections/html_featureProperties.rb +71 -0
  134. data/lib/adiwg/mdtranslator/writers/html/sections/html_format.rb +46 -34
  135. data/lib/adiwg/mdtranslator/writers/html/sections/html_funding.rb +51 -0
  136. data/lib/adiwg/mdtranslator/writers/html/sections/html_geographicElement.rb +61 -194
  137. data/lib/adiwg/mdtranslator/writers/html/sections/html_geographicExtent.rb +112 -0
  138. data/lib/adiwg/mdtranslator/writers/html/sections/html_geometryCollection.rb +78 -0
  139. data/lib/adiwg/mdtranslator/writers/html/sections/html_geometryObject.rb +46 -0
  140. data/lib/adiwg/mdtranslator/writers/html/sections/html_georectifiedRepresentation.rb +93 -0
  141. data/lib/adiwg/mdtranslator/writers/html/sections/html_georeferenceableRepresentation.rb +78 -0
  142. data/lib/adiwg/mdtranslator/writers/html/sections/html_graphic.rb +75 -0
  143. data/lib/adiwg/mdtranslator/writers/html/sections/html_gridRepresentation.rb +61 -0
  144. data/lib/adiwg/mdtranslator/writers/html/sections/html_head.rb +47 -60
  145. data/lib/adiwg/mdtranslator/writers/html/sections/html_identifier.rb +73 -0
  146. data/lib/adiwg/mdtranslator/writers/html/sections/html_imageInfo.rb +92 -110
  147. data/lib/adiwg/mdtranslator/writers/html/sections/html_inlineCss.css +16 -8
  148. data/lib/adiwg/mdtranslator/writers/html/sections/html_keyword.rb +47 -45
  149. data/lib/adiwg/mdtranslator/writers/html/sections/html_legalConstraint.rb +41 -48
  150. data/lib/adiwg/mdtranslator/writers/html/sections/html_lineage.rb +87 -0
  151. data/lib/adiwg/mdtranslator/writers/html/sections/html_locale.rb +47 -0
  152. data/lib/adiwg/mdtranslator/writers/html/sections/html_maintenance.rb +96 -0
  153. data/lib/adiwg/mdtranslator/writers/html/sections/html_measure.rb +47 -0
  154. data/lib/adiwg/mdtranslator/writers/html/sections/html_medium.rb +74 -52
  155. data/lib/adiwg/mdtranslator/writers/html/sections/html_metadataInfo.rb +162 -131
  156. data/lib/adiwg/mdtranslator/writers/html/sections/html_metadataRepository.rb +40 -0
  157. data/lib/adiwg/mdtranslator/writers/html/sections/html_onlineResource.rb +52 -55
  158. data/lib/adiwg/mdtranslator/writers/html/sections/html_orderProcess.rb +53 -55
  159. data/lib/adiwg/mdtranslator/writers/html/sections/html_processStep.rb +89 -57
  160. data/lib/adiwg/mdtranslator/writers/html/sections/html_releasability.rb +63 -0
  161. data/lib/adiwg/mdtranslator/writers/html/sections/html_resolution.rb +46 -38
  162. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceInfo.rb +402 -291
  163. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceType.rb +31 -0
  164. data/lib/adiwg/mdtranslator/writers/html/sections/html_responsibility.rb +81 -0
  165. data/lib/adiwg/mdtranslator/writers/html/sections/html_scope.rb +60 -0
  166. data/lib/adiwg/mdtranslator/writers/html/sections/html_scopeDescription.rb +54 -0
  167. data/lib/adiwg/mdtranslator/writers/html/sections/html_securityConstraint.rb +46 -47
  168. data/lib/adiwg/mdtranslator/writers/html/sections/html_source.rb +123 -0
  169. data/lib/adiwg/mdtranslator/writers/html/sections/html_spatialReference.rb +43 -0
  170. data/lib/adiwg/mdtranslator/writers/html/sections/html_spatialRepresentation.rb +77 -0
  171. data/lib/adiwg/mdtranslator/writers/html/sections/html_taxonomy.rb +138 -90
  172. data/lib/adiwg/mdtranslator/writers/html/sections/html_taxonomyClass.rb +63 -50
  173. data/lib/adiwg/mdtranslator/writers/html/sections/html_temporalExtent.rb +66 -0
  174. data/lib/adiwg/mdtranslator/writers/html/sections/html_timeInstant.rb +60 -42
  175. data/lib/adiwg/mdtranslator/writers/html/sections/html_timeInterval.rb +40 -0
  176. data/lib/adiwg/mdtranslator/writers/html/sections/html_timePeriod.rb +88 -43
  177. data/lib/adiwg/mdtranslator/writers/html/sections/html_transferOption.rb +68 -50
  178. data/lib/adiwg/mdtranslator/writers/html/sections/html_usage.rb +118 -0
  179. data/lib/adiwg/mdtranslator/writers/html/sections/html_vectorObject.rb +40 -0
  180. data/lib/adiwg/mdtranslator/writers/html/sections/html_vectorRepresentation.rb +46 -0
  181. data/lib/adiwg/mdtranslator/writers/html/sections/html_verticalExtent.rb +62 -0
  182. data/lib/adiwg/mdtranslator/writers/html/version.rb +12 -11
  183. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_address.rb +70 -75
  184. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_baseUnit.rb +3 -3
  185. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_codelist.rb +14 -13
  186. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_contact.rb +50 -34
  187. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_conventionalUnit.rb +3 -3
  188. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_definitionUnit.rb +3 -3
  189. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_derivedUnit.rb +3 -3
  190. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_fcFeatureCatalogue.rb +205 -0
  191. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_featureAttribute.rb +39 -38
  192. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_featureConstraint.rb +9 -10
  193. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_featureType.rb +48 -40
  194. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_listedValue.rb +22 -20
  195. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_locale.rb +69 -0
  196. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_multiplicity.rb +24 -17
  197. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_onlineResource.rb +33 -29
  198. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_phone.rb +83 -0
  199. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_responsibleParty.rb +77 -64
  200. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_unitsOfMeasure.rb +20 -20
  201. data/lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb +21 -32
  202. data/lib/adiwg/mdtranslator/writers/iso19110/readme.md +3 -8
  203. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_address.rb +70 -74
  204. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_aggregateInformation.rb +30 -32
  205. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_attributeGroup.rb +70 -0
  206. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_baseUnit.rb +5 -5
  207. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_boundingBox.rb +77 -0
  208. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_browseGraphic.rb +26 -24
  209. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_citation.rb +111 -100
  210. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_codelist.rb +14 -13
  211. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_contact.rb +50 -34
  212. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_conventionalUnit.rb +5 -5
  213. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_coverageDescription.rb +99 -0
  214. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataIdentification.rb +195 -270
  215. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataQuality.rb +26 -35
  216. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_date.rb +31 -38
  217. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_definitionUnit.rb +5 -5
  218. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_derivedUnit.rb +5 -5
  219. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dimension.rb +26 -23
  220. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distribution.rb +19 -16
  221. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distributor.rb +51 -66
  222. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_enumerationList.rb +12 -12
  223. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_metadataExtension.rb → class_extension.rb} +94 -67
  224. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_extent.rb +43 -59
  225. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_feature.rb +67 -0
  226. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_featureCollection.rb +56 -0
  227. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_featureProperties.rb +65 -0
  228. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_format.rb +48 -27
  229. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_fraction.rb +40 -0
  230. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gcoDateTime.rb +48 -0
  231. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicElement.rb +55 -26
  232. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicExtent.rb +82 -0
  233. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geometricObjects.rb +56 -0
  234. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geometryCollection.rb +88 -0
  235. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_georectified.rb +121 -0
  236. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_georeferenceable.rb +86 -0
  237. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gmlIdentifier.rb +32 -0
  238. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_grid.rb +73 -0
  239. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gridRepresentation.rb +36 -0
  240. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_hierarchy.rb +58 -0
  241. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_image.rb +144 -0
  242. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_keyword.rb +41 -35
  243. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_legalConstraints.rb +46 -37
  244. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_lineString.rb +45 -51
  245. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_lineage.rb +29 -31
  246. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_locale.rb +21 -17
  247. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_maintenance.rb +119 -0
  248. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_mdBand.rb +121 -0
  249. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_identifier.rb → class_mdIdentifier.rb} +25 -27
  250. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_measure.rb +48 -0
  251. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_medium.rb +66 -42
  252. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_miBand.rb +91 -0
  253. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_miMetadata.rb +352 -0
  254. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiLine.rb +82 -0
  255. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiPoint.rb +82 -0
  256. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiPolygon.rb +82 -0
  257. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_onlineResource.rb +33 -29
  258. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_standardOrderProcess.rb → class_orderProcess.rb} +33 -35
  259. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_phone.rb +83 -0
  260. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_point.rb +46 -51
  261. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_polygon.rb +54 -61
  262. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_processStep.rb +46 -34
  263. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rangeDimension.rb +73 -0
  264. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_referenceSystem.rb +24 -25
  265. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_resolution.rb +32 -31
  266. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_responsibleParty.rb +75 -65
  267. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rsIdentifier.rb +86 -0
  268. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_scope.rb +71 -0
  269. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_scopeDescription.rb +54 -0
  270. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_securityConstraints.rb +47 -32
  271. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_series.rb +63 -0
  272. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_source.rb +58 -28
  273. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_spatialRepresentation.rb +64 -0
  274. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_taxonClassification.rb → class_taxonomicClassification.rb} +35 -38
  275. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomicSystem.rb +49 -0
  276. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomy.rb +144 -0
  277. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_temporalExtent.rb +15 -28
  278. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_timeInstant.rb +42 -19
  279. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_timePeriod.rb +79 -28
  280. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_transferOptions.rb +91 -0
  281. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_unitsOfMeasure.rb +22 -22
  282. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_usage.rb +70 -28
  283. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_useConstraints.rb +18 -17
  284. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_vectorRepresentation.rb +59 -0
  285. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_verticalExtent.rb +39 -26
  286. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_vouchers.rb +20 -20
  287. data/lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb +22 -133
  288. data/lib/adiwg/mdtranslator/writers/iso19115_2/readme.md +1 -7
  289. data/lib/adiwg/mdtranslator/writers/mdJson/mdJson_writer.rb +44 -41
  290. data/lib/adiwg/mdtranslator/writers/mdJson/readme.md +3 -9
  291. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_additionalDocumentation.rb +33 -0
  292. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_address.rb +29 -17
  293. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_allocation.rb +32 -0
  294. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_associatedResource.rb +30 -16
  295. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_attribute.rb +48 -22
  296. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_attributeGroup.rb +32 -0
  297. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_boundingBox.rb +30 -0
  298. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_citation.rb +41 -26
  299. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_constraint.rb +40 -23
  300. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_contact.rb +39 -24
  301. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_coverageDescription.rb +37 -0
  302. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_date.rb +42 -0
  303. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dateTime.rb +33 -13
  304. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dictionary.rb +35 -25
  305. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dimension.rb +32 -0
  306. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_distribution.rb +32 -0
  307. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_distributor.rb +34 -0
  308. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_domain.rb +30 -20
  309. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_domainItem.rb +29 -0
  310. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_duration.rb +33 -0
  311. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entity.rb +35 -32
  312. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entityAttribute.rb +37 -0
  313. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entityForeignKey.rb +29 -0
  314. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entityIndex.rb +29 -0
  315. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_extent.rb +31 -21
  316. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_format.rb +26 -14
  317. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_funding.rb +32 -0
  318. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_geographicExtent.rb +33 -0
  319. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_georectifiedRepresentation.rb +35 -0
  320. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_georeferenceableRepresentation.rb +36 -0
  321. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_graphicOverview.rb +31 -15
  322. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_gridRepresentation.rb +34 -0
  323. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_identifier.rb +33 -0
  324. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_imageDescription.rb +41 -0
  325. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_keyword.rb +28 -14
  326. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_keywordObject.rb +29 -0
  327. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_legalConstraint.rb +29 -0
  328. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_lineageInfo.rb +38 -0
  329. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_locale.rb +25 -14
  330. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_maintenance.rb +37 -0
  331. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_mdJson.rb +54 -0
  332. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_measure.rb +29 -0
  333. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_medium.rb +37 -0
  334. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadata.rb +35 -22
  335. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadataInfo.rb +39 -29
  336. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_onlineResource.rb +27 -16
  337. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_orderProcess.rb +31 -0
  338. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_party.rb +32 -0
  339. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_phone.rb +25 -14
  340. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_processStep.rb +34 -19
  341. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_releasability.rb +32 -0
  342. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_repository.rb +29 -0
  343. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceInfo.rb +61 -56
  344. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceType.rb +29 -0
  345. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_responsibleParty.rb +29 -13
  346. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_scope.rb +34 -0
  347. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_scopeDescription.rb +31 -0
  348. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_securityConstraint.rb +30 -0
  349. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_series.rb +30 -0
  350. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_source.rb +40 -0
  351. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialReference.rb +30 -0
  352. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialRepresentation.rb +34 -0
  353. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialResolution.rb +30 -0
  354. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomicClassification.rb +35 -0
  355. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomicSystem.rb +29 -0
  356. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomy.rb +36 -26
  357. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_temporalExtent.rb +31 -0
  358. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_timeInstant.rb +33 -0
  359. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_timeInterval.rb +29 -0
  360. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_timePeriod.rb +34 -15
  361. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_transferOption.rb +32 -26
  362. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_usage.rb +33 -17
  363. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_vectorObject.rb +28 -0
  364. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_vectorRepresentation.rb +31 -0
  365. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_verticalExtent.rb +32 -0
  366. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_voucher.rb +29 -0
  367. data/lib/adiwg/mdtranslator/writers/mdJson/version.rb +13 -9
  368. data/lib/adiwg/mdtranslator/writers/mdWriters.rb +36 -28
  369. data/lib/adiwg/mdtranslator.rb +135 -113
  370. data/lib/adiwg/mdtranslator_cli.rb +191 -0
  371. metadata +238 -215
  372. data/lib/adiwg/mdtranslator/internal/module_geoFormat.rb +0 -219
  373. data/lib/adiwg/mdtranslator/internal/module_lineString.rb +0 -18
  374. data/lib/adiwg/mdtranslator/internal/module_point.rb +0 -18
  375. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_additionalDocumentation.rb +0 -64
  376. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_address.rb +0 -91
  377. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_associatedResource.rb +0 -100
  378. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_boundingBox.rb +0 -64
  379. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_browseGraphic.rb +0 -79
  380. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_citation.rb +0 -141
  381. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_classedData.rb +0 -49
  382. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_classedDataItem.rb +0 -53
  383. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_contacts.rb +0 -164
  384. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_coverageInfo.rb +0 -83
  385. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_coverageItem.rb +0 -136
  386. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dataDictionary.rb +0 -65
  387. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dataQuality.rb +0 -65
  388. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_descriptiveKeyword.rb +0 -77
  389. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dictionaryInfo.rb +0 -82
  390. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_digitalTransferOption.rb +0 -80
  391. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dimension.rb +0 -81
  392. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_distributionInfo.rb +0 -89
  393. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_distributionOrder.rb +0 -62
  394. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_domain.rb +0 -96
  395. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_domainItem.rb +0 -72
  396. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entity.rb +0 -131
  397. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entityAttribute.rb +0 -134
  398. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entityForeignKey.rb +0 -73
  399. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entityIndex.rb +0 -72
  400. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_extent.rb +0 -75
  401. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_geoCoordSystem.rb +0 -59
  402. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_geoProperties.rb +0 -102
  403. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_geographicElement.rb +0 -189
  404. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_gridInfo.rb +0 -67
  405. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_imageInfo.rb +0 -119
  406. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_legalConstraint.rb +0 -62
  407. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_lineString.rb +0 -37
  408. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_lineage.rb +0 -67
  409. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_locale.rb +0 -57
  410. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_mdJson.rb +0 -68
  411. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_medium.rb +0 -73
  412. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_metadata.rb +0 -90
  413. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_metadataExtension.rb +0 -53
  414. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_metadataInfo.rb +0 -152
  415. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_onlineResource.rb +0 -84
  416. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_phone.rb +0 -81
  417. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_point.rb +0 -37
  418. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_polygon.rb +0 -67
  419. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_processStep.rb +0 -88
  420. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resolution.rb +0 -59
  421. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceFormat.rb +0 -57
  422. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceIdentifier.rb +0 -85
  423. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceInfo.rb +0 -374
  424. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceMaintenance.rb +0 -63
  425. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceSpecificUsage.rb +0 -63
  426. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_responsibleParty.rb +0 -68
  427. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_securityConstraint.rb +0 -65
  428. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_sensorInfo.rb +0 -69
  429. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_source.rb +0 -65
  430. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_spatialReference.rb +0 -61
  431. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_taxonClass.rb +0 -56
  432. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_taxonomy.rb +0 -96
  433. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_temporalElement.rb +0 -84
  434. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_timeInstant.rb +0 -58
  435. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_timePeriod.rb +0 -66
  436. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_verticalElement.rb +0 -66
  437. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_voucher.rb +0 -51
  438. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/version.rb +0 -19
  439. data/lib/adiwg/mdtranslator/readers/mdJson/validator.rb +0 -43
  440. data/lib/adiwg/mdtranslator/readers/sbJson/sbJson_validator.rb +0 -44
  441. data/lib/adiwg/mdtranslator/writers/html/md_html_writer.rb +0 -59
  442. data/lib/adiwg/mdtranslator/writers/html/sections/html_browseGraphic.rb +0 -59
  443. data/lib/adiwg/mdtranslator/writers/html/sections/html_coverageItem.rb +0 -139
  444. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataLineage.rb +0 -68
  445. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataSource.rb +0 -67
  446. data/lib/adiwg/mdtranslator/writers/html/sections/html_dateTime.rb +0 -41
  447. data/lib/adiwg/mdtranslator/writers/html/sections/html_domainMember.rb +0 -52
  448. data/lib/adiwg/mdtranslator/writers/html/sections/html_gridInfo.rb +0 -65
  449. data/lib/adiwg/mdtranslator/writers/html/sections/html_headScript.js +0 -18
  450. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceContact.rb +0 -37
  451. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceGeneral.rb +0 -133
  452. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceId.rb +0 -77
  453. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceMaint.rb +0 -56
  454. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceOther.rb +0 -88
  455. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceUsage.rb +0 -56
  456. data/lib/adiwg/mdtranslator/writers/html/sections/html_responsibleParty.rb +0 -39
  457. data/lib/adiwg/mdtranslator/writers/html/sections/html_spatialReferenceSystem.rb +0 -58
  458. data/lib/adiwg/mdtranslator/writers/html/sections/html_temporalElement.rb +0 -61
  459. data/lib/adiwg/mdtranslator/writers/html/sections/html_verticalElement.rb +0 -59
  460. data/lib/adiwg/mdtranslator/writers/iso19110/class_FCfeatureCatalogue.rb +0 -191
  461. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_telephone.rb +0 -92
  462. data/lib/adiwg/mdtranslator/writers/iso19110/version.rb +0 -14
  463. data/lib/adiwg/mdtranslator/writers/iso19115_2/class_MImetadata.rb +0 -391
  464. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_band.rb +0 -165
  465. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_boundingPolygon.rb +0 -90
  466. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_contentInfo.rb +0 -111
  467. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_digitalTransferOptions.rb +0 -92
  468. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicBoundingBox.rb +0 -89
  469. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicDescription.rb +0 -44
  470. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gridInfo.rb +0 -80
  471. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_imageDescription.rb +0 -157
  472. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_maintenanceInformation.rb +0 -80
  473. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiGeometry.rb +0 -156
  474. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rangeElementDescription.rb +0 -88
  475. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_resourceIdentifier.rb +0 -94
  476. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonSystem.rb +0 -115
  477. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_telephone.rb +0 -92
  478. data/lib/adiwg/mdtranslator/writers/iso19115_2/version.rb +0 -17
  479. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_additionalDoc.rb +0 -19
  480. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_base.rb +0 -19
  481. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQuality.rb +0 -32
  482. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_distributionInfo.rb +0 -31
  483. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_geographicElement.rb +0 -81
  484. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_gridInfo.rb +0 -27
  485. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceIdentifier.rb +0 -23
  486. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceMaintenance.rb +0 -23
  487. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialreference.rb +0 -19
  488. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxon.rb +0 -19
  489. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_temporalElement.rb +0 -38
  490. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_verticalElement.rb +0 -20
  491. data/test/readers/mdJson/v1/tc_reader_mdjson_additionalDocumentation.rb +0 -116
  492. data/test/readers/mdJson/v1/tc_reader_mdjson_address.rb +0 -111
  493. data/test/readers/mdJson/v1/tc_reader_mdjson_associatedResource.rb +0 -157
  494. data/test/readers/mdJson/v1/tc_reader_mdjson_browseGraphic.rb +0 -119
  495. data/test/readers/mdJson/v1/tc_reader_mdjson_citation.rb +0 -143
  496. data/test/readers/mdJson/v1/tc_reader_mdjson_contact.rb +0 -138
  497. data/test/readers/mdJson/v1/tc_reader_mdjson_dataQuality.rb +0 -111
  498. data/test/readers/mdJson/v1/tc_reader_mdjson_dateTime.rb +0 -159
  499. data/test/readers/mdJson/v1/tc_reader_mdjson_descriptiveKeyword.rb +0 -115
  500. data/test/readers/mdJson/v1/tc_reader_mdjson_dictionaryInfo.rb +0 -121
  501. data/test/readers/mdJson/v1/tc_reader_mdjson_digitalTransferOption.rb +0 -94
  502. data/test/readers/mdJson/v1/tc_reader_mdjson_distributionOrder.rb +0 -103
  503. data/test/readers/mdJson/v1/tc_reader_mdjson_domain.rb +0 -130
  504. data/test/readers/mdJson/v1/tc_reader_mdjson_domainItem.rb +0 -98
  505. data/test/readers/mdJson/v1/tc_reader_mdjson_entity.rb +0 -134
  506. data/test/readers/mdJson/v1/tc_reader_mdjson_entityAttribute.rb +0 -154
  507. data/test/readers/mdJson/v1/tc_reader_mdjson_entityForeignKey.rb +0 -100
  508. data/test/readers/mdJson/v1/tc_reader_mdjson_entityIndex.rb +0 -99
  509. data/test/readers/mdJson/v1/tc_reader_mdjson_legalConstraint.rb +0 -104
  510. data/test/readers/mdJson/v1/tc_reader_mdjson_lineage.rb +0 -117
  511. data/test/readers/mdJson/v1/tc_reader_mdjson_medium.rb +0 -98
  512. data/test/readers/mdJson/v1/tc_reader_mdjson_metadataInfo.rb +0 -141
  513. data/test/readers/mdJson/v1/tc_reader_mdjson_onlineResource.rb +0 -110
  514. data/test/readers/mdJson/v1/tc_reader_mdjson_phone.rb +0 -112
  515. data/test/readers/mdJson/v1/tc_reader_mdjson_processStep.rb +0 -118
  516. data/test/readers/mdJson/v1/tc_reader_mdjson_resolution.rb +0 -77
  517. data/test/readers/mdJson/v1/tc_reader_mdjson_source.rb +0 -117
  518. data/test/readers/mdJson/v1/tc_reader_mdjson_translation.rb +0 -85
  519. data/test/readers/mdJson/v1/tc_translation_19110.rb +0 -58
  520. data/test/readers/sbJson/v0/tc_reader_sbjson_translation.rb +0 -81
  521. data/test/readers/sbJson/v0/test.json +0 -431
  522. data/test/readers/sbJson/v0/test1.json +0 -383
  523. data/test/writers/iso19115_2/tc_writer_iso19115_2_address.rb +0 -229
  524. data/test/writers/mdJson/v1/tc_writer_mdJson.rb +0 -62
  525. data/test/writers/sbJson/v0/tc_writer_sbJson.rb +0 -62
@@ -1,33 +1,34 @@
1
1
  # ISO <<Class>> MD_DataIdentification
2
- # writer output in XML
2
+ # 19115-2 writer output in XML
3
3
 
4
4
  # History:
5
- # Stan Smith 2013-08-26 original script
6
- # Stan Smith 2013-09-18 add descriptive keywords
7
- # Stan Smith 2013-11-01 add constraints
8
- # Stan Smith 2013-11-08 add extents
9
- # Stan Smith 2013-11-21 add taxonomy
10
- # Stan Smith 2013-11-22 add metadata extension
11
- # Stan Smith 2013-11-25 add resource usage
12
- # Stan Smith 2013-11-25 add spatial resolution
13
- # Stan Smith 2014-05-15 modify to support JSON schema version 0.4.0
14
- # Stan Smith 2014-05-21 added aggregate information section
15
- # Stan Smith 2014-07-08 modify require statements to function in RubyGem structure
16
- # Stan Smith 2014-10-29 add resource time period as a extent temporal element
5
+ # Stan Smith 2016-12-13 refactored for mdTranslator/mdJson 2.0
6
+ # Stan Smith 2015-07-30 added support for translating locale into language and characterSet
7
+ # Stan Smith 2015-07-14 refactored to eliminate namespace globals $WriterNS and $IsoNS
8
+ # Stan Smith 2015-07-14 refactored to make iso19110 independent of iso19115_2 classes
9
+ # Stan Smith 2015-06-22 replace global ($response) with passed in object (hResponseObj)
10
+ # Stan Smith 2015-06-12 added support for declaring multiple resource character sets
11
+ # Stan Smith 2015-06-11 change all codelists to use 'class_codelist' method
17
12
  # Stan Smith 2014-12-12 refactored to handle namespacing readers and writers
18
13
  # Stan Smith 2014-12-12 refactored to handle namespacing readers and writers
19
- # Stan Smith 2015-06-11 change all codelists to use 'class_codelist' method
20
- # Stan Smith 2015-06-12 added support for declaring multiple resource character sets
21
- # Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
22
- # Stan Smith 2015-07-14 refactored to make iso19110 independent of iso19115_2 classes
23
- # Stan Smith 2015-07-14 refactored to eliminate namespace globals $WriterNS and $IsoNS
24
- # Stan Smith 2015-07-30 added support for translating locale into language and characterSet
14
+ # Stan Smith 2014-10-29 add resource time period as a extent temporal element
15
+ # Stan Smith 2014-07-08 modify require statements to function in RubyGem structure
16
+ # Stan Smith 2014-05-21 added aggregate information section
17
+ # Stan Smith 2014-05-15 modify to support JSON schema version 0.4.0
18
+ # Stan Smith 2013-11-25 add spatial resolution
19
+ # Stan Smith 2013-11-25 add resource usage
20
+ # Stan Smith 2013-11-22 add metadata extension
21
+ # Stan Smith 2013-11-21 add taxonomy
22
+ # Stan Smith 2013-11-08 add extents
23
+ # Stan Smith 2013-11-01 add constraints
24
+ # Stan Smith 2013-09-18 add descriptive keywords
25
+ # Stan Smith 2013-08-26 original script
25
26
 
26
27
  require_relative 'class_codelist'
27
28
  require_relative 'class_enumerationList'
28
29
  require_relative 'class_citation'
29
30
  require_relative 'class_responsibleParty'
30
- require_relative 'class_maintenanceInformation'
31
+ require_relative 'class_maintenance'
31
32
  require_relative 'class_browseGraphic'
32
33
  require_relative 'class_format'
33
34
  require_relative 'class_keyword'
@@ -36,7 +37,7 @@ require_relative 'class_useConstraints'
36
37
  require_relative 'class_legalConstraints'
37
38
  require_relative 'class_securityConstraints'
38
39
  require_relative 'class_aggregateInformation'
39
- require_relative 'class_taxonSystem'
40
+ require_relative 'class_taxonomy'
40
41
  require_relative 'class_resolution'
41
42
  require_relative 'class_extent'
42
43
 
@@ -47,380 +48,304 @@ module ADIWG
47
48
 
48
49
  class MD_DataIdentification
49
50
 
50
- def initialize(xml, responseObj)
51
+ def initialize(xml, hResponseObj)
51
52
  @xml = xml
52
- @responseObj = responseObj
53
+ @hResponseObj = hResponseObj
53
54
  end
54
55
 
55
- def writeXML(hDataId, aAssocRes)
56
+ def writeXML(hData, aAssocRes)
56
57
 
57
58
  # classes used
58
- codelistClass = MD_Codelist.new(@xml, @responseObj)
59
- enumerationClass = MD_EnumerationList.new(@xml, @responseObj)
60
- intMetadataClass = InternalMetadata.new
61
- citationClass = CI_Citation.new(@xml, @responseObj)
62
- rPartyClass = CI_ResponsibleParty.new(@xml, @responseObj)
63
- mInfoClass = MD_MaintenanceInformation.new(@xml, @responseObj)
64
- bGraphicClass = MD_BrowseGraphic.new(@xml, @responseObj)
65
- rFormatClass = MD_Format.new(@xml, @responseObj)
66
- keywordClass = MD_Keywords.new(@xml, @responseObj)
67
- useClass = MD_Usage.new(@xml, @responseObj)
68
- uConClass = MD_Constraints.new(@xml, @responseObj)
69
- lConClass = MD_LegalConstraints.new(@xml, @responseObj)
70
- sConClass = MD_SecurityConstraints.new(@xml, @responseObj)
71
- aggInfoClass = MD_AggregateInformation.new(@xml, @responseObj)
72
- taxClass = MD_TaxonSys.new(@xml, @responseObj)
73
- resolutionClass = MD_Resolution.new(@xml, @responseObj)
74
- extentClass = EX_Extent.new(@xml, @responseObj)
59
+ codelistClass = MD_Codelist.new(@xml, @hResponseObj)
60
+ enumerationClass = MD_EnumerationList.new(@xml, @hResponseObj)
61
+ citationClass = CI_Citation.new(@xml, @hResponseObj)
62
+ rPartyClass = CI_ResponsibleParty.new(@xml, @hResponseObj)
63
+ mInfoClass = MD_MaintenanceInformation.new(@xml, @hResponseObj)
64
+ bGraphicClass = MD_BrowseGraphic.new(@xml, @hResponseObj)
65
+ rFormatClass = MD_Format.new(@xml, @hResponseObj)
66
+ keywordClass = MD_Keywords.new(@xml, @hResponseObj)
67
+ useClass = MD_Usage.new(@xml, @hResponseObj)
68
+ uConClass = MD_Constraints.new(@xml, @hResponseObj)
69
+ lConClass = MD_LegalConstraints.new(@xml, @hResponseObj)
70
+ sConClass = MD_SecurityConstraints.new(@xml, @hResponseObj)
71
+ aggInfoClass = MD_AggregateInformation.new(@xml, @hResponseObj)
72
+ taxClass = MD_TaxonSys.new(@xml, @hResponseObj)
73
+ resolutionClass = MD_Resolution.new(@xml, @hResponseObj)
74
+ extentClass = EX_Extent.new(@xml, @hResponseObj)
75
75
 
76
76
  # data identification
77
77
  @xml.tag!('gmd:MD_DataIdentification') do
78
78
 
79
- # data identification - citation - required
80
- hCitation = hDataId[:citation]
81
- if hCitation.empty?
82
- @xml.tag!('gmd:citation', {'gco:nilReason' => 'missing'})
83
- else
79
+ # data identification - citation {CI_Citation} (required)
80
+ hCitation = hData[:citation]
81
+ unless hCitation.empty?
84
82
  @xml.tag!('gmd:citation') do
85
83
  citationClass.writeXML(hCitation)
86
84
  end
87
85
  end
86
+ if hCitation.empty?
87
+ @xml.tag!('gmd:citation', {'gco:nilReason' => 'missing'})
88
+ end
88
89
 
89
- # data identification - abstract - required
90
- s = hDataId[:abstract]
91
- if s.nil?
92
- @xml.tag!('gmd:abstract', {'gco:nilReason' => 'missing'})
93
- else
90
+ # data identification - abstract (required)
91
+ s = hData[:abstract]
92
+ unless s.nil?
94
93
  @xml.tag!('gmd:abstract') do
95
94
  @xml.tag!('gco:CharacterString', s)
96
95
  end
97
96
  end
97
+ if s.nil?
98
+ @xml.tag!('gmd:abstract', {'gco:nilReason' => 'missing'})
99
+ end
98
100
 
99
101
  # data identification - purpose
100
- s = hDataId[:purpose]
101
- if !s.nil?
102
+ s = hData[:purpose]
103
+ unless s.nil?
102
104
  @xml.tag!('gmd:purpose') do
103
105
  @xml.tag!('gco:CharacterString', s)
104
106
  end
105
- elsif @responseObj[:writerShowTags]
107
+ end
108
+ if s.nil? && @hResponseObj[:writerShowTags]
106
109
  @xml.tag!('gmd:purpose')
107
110
  end
108
111
 
109
- # data identification - credit
110
- aCredits = hDataId[:credits]
111
- if !aCredits.empty?
112
- aCredits.each do |credit|
113
- @xml.tag!('gmd:credit') do
114
- @xml.tag!('gco:CharacterString', credit)
115
- end
112
+ # data identification - credit []
113
+ aCredits = hData[:credits]
114
+ aCredits.each do |credit|
115
+ @xml.tag!('gmd:credit') do
116
+ @xml.tag!('gco:CharacterString', credit)
116
117
  end
117
- elsif @responseObj[:writerShowTags]
118
+ end
119
+ if aCredits.empty? && @hResponseObj[:writerShowTags]
118
120
  @xml.tag!('gmd:credit')
119
121
  end
120
122
 
121
- # data identification - status - required
122
- s = hDataId[:status]
123
- if s.nil?
124
- @xml.tag!('gmd:status', {'gco:nilReason' => 'missing'})
125
- else
123
+ # data identification - status []
124
+ aStatus = hData[:status]
125
+ aStatus.each do |code|
126
126
  @xml.tag!('gmd:status') do
127
- codelistClass.writeXML('iso_progress',s)
127
+ codelistClass.writeXML('gmd', 'iso_progress', code)
128
128
  end
129
129
  end
130
+ if aStatus.empty? && @hResponseObj[:writerShowTags]
131
+ @xml.tag!('gmd:status')
132
+ end
130
133
 
131
134
  # data identification - point of contact
132
- aPOCs = hDataId[:pointsOfContact]
133
- if !aPOCs.empty?
134
- aPOCs.each do |hPContact|
135
+ aRParties = hData[:pointOfContacts]
136
+ aRParties.each do |hRParty|
137
+ role = hRParty[:roleName]
138
+ aParties = hRParty[:parties]
139
+ aParties.each do |hParty|
135
140
  @xml.tag!('gmd:pointOfContact') do
136
- rPartyClass.writeXML(hPContact)
141
+ rPartyClass.writeXML(role, hParty)
137
142
  end
138
143
  end
139
- elsif @responseObj[:writerShowTags]
140
- @xml.tag!('gmd:pointOfContact')
144
+ end
145
+ if aRParties.empty? && @hResponseObj[:writerShowTags]
146
+ @xml.tag!('gmd:pointOfContact', {'gco:nilReason' => 'missing'})
141
147
  end
142
148
 
143
- # data identification - resource maintenance
144
- aMaintInfo = hDataId[:resourceMaint]
145
- if !aMaintInfo.empty?
146
- aMaintInfo.each do |hResMaintInfo|
147
- @xml.tag!('gmd:resourceMaintenance') do
148
- mInfoClass.writeXML(hResMaintInfo)
149
- end
149
+ # data identification - resource maintenance []
150
+ aMaint = hData[:resourceMaintenance]
151
+ aMaint.each do |hMaint|
152
+ @xml.tag!('gmd:resourceMaintenance') do
153
+ mInfoClass.writeXML(hMaint)
150
154
  end
151
- elsif @responseObj[:writerShowTags]
155
+ end
156
+ if aMaint.empty? && @hResponseObj[:writerShowTags]
152
157
  @xml.tag!('gmd:resourceMaintenance')
153
158
  end
154
159
 
155
- # data identification - graphic overview
156
- aGOverview = hDataId[:graphicOverview]
157
- if !aGOverview.empty?
158
- aGOverview.each do |graphic|
159
- gLink = graphic[:bGURI]
160
- attributes = {}
161
- attributes['xlink:href'] = gLink if gLink
162
- @xml.tag!('gmd:graphicOverview', attributes) do
163
- bGraphicClass.writeXML(graphic)
164
- end
160
+ # data identification - graphic overview []
161
+ aGraphics = hData[:graphicOverviews]
162
+ aGraphics.each do |hGraphic|
163
+ @xml.tag!('gmd:graphicOverview') do
164
+ bGraphicClass.writeXML(hGraphic)
165
165
  end
166
- elsif @responseObj[:writerShowTags]
166
+ end
167
+ if aGraphics.empty? && @hResponseObj[:writerShowTags]
167
168
  @xml.tag!('gmd:graphicOverview')
168
169
  end
169
170
 
170
- # data identification - resource format
171
- aResFormats = hDataId[:resourceFormats]
172
- if !aResFormats.empty?
173
- aResFormats.each do |hResFormat|
174
- @xml.tag!('gmd:resourceFormat') do
175
- rFormatClass.writeXML(hResFormat)
176
- end
171
+ # data identification - resource format []
172
+ aFormats = hData[:resourceFormats]
173
+ aFormats.each do |hResFormat|
174
+ @xml.tag!('gmd:resourceFormat') do
175
+ rFormatClass.writeXML(hResFormat)
177
176
  end
178
- elsif @responseObj[:writerShowTags]
177
+ end
178
+ if aFormats.empty? && @hResponseObj[:writerShowTags]
179
179
  @xml.tag!('gmd:resourceFormat')
180
180
  end
181
181
 
182
- # data identification - descriptive keywords
183
- aDesKeywords = hDataId[:descriptiveKeywords]
184
- if !aDesKeywords.empty?
185
- aDesKeywords.each do |hDKeyword|
186
- @xml.tag!('gmd:descriptiveKeywords') do
187
- keywordClass.writeXML(hDKeyword)
188
- end
182
+ # data identification - descriptive keywords []
183
+ aKeywords = hData[:keywords]
184
+ aKeywords.each do |hKeyword|
185
+ @xml.tag!('gmd:descriptiveKeywords') do
186
+ keywordClass.writeXML(hKeyword)
189
187
  end
190
- elsif @responseObj[:writerShowTags]
188
+ end
189
+ if aKeywords.empty? && @hResponseObj[:writerShowTags]
191
190
  @xml.tag!('gmd:descriptiveKeywords')
192
191
  end
193
192
 
194
- # data identification - resource specific usage
195
- aResUses = hDataId[:resourceUses]
196
- if !aResUses.empty?
197
- aResUses.each do |hResUse|
198
- @xml.tag!('gmd:resourceSpecificUsage') do
199
- useClass.writeXML(hResUse)
200
- end
193
+ # data identification - resource specific usage []
194
+ aUses = hData[:resourceUsages]
195
+ aUses.each do |hResUse|
196
+ @xml.tag!('gmd:resourceSpecificUsage') do
197
+ useClass.writeXML(hResUse)
201
198
  end
202
- elsif @responseObj[:writerShowTags]
199
+ end
200
+ if aUses.empty? && @hResponseObj[:writerShowTags]
203
201
  @xml.tag!('gmd:resourceSpecificUsage')
204
202
  end
205
203
 
206
- # data identification - resource constraints - use constraints
207
- aUseLimits = hDataId[:useConstraints]
208
- if !aUseLimits.empty?
209
- @xml.tag!('gmd:resourceConstraints') do
210
- uConClass.writeXML(aUseLimits)
211
- end
212
- elsif @responseObj[:writerShowTags]
204
+ # data identification - resource constraints {}
205
+ aCons = hData[:constraints]
206
+ aCons.each do |hCon|
213
207
  @xml.tag!('gmd:resourceConstraints') do
214
- @xml.tag!('gmd:MD_Constraints')
215
- end
216
- end
217
-
218
- # data identification - resource constraints - legal constraints
219
- aLegalCons = hDataId[:legalConstraints]
220
- if !aLegalCons.empty?
221
- aLegalCons.each do |hLegalCon|
222
- @xml.tag!('gmd:resourceConstraints') do
223
- lConClass.writeXML(hLegalCon)
208
+ type = hCon[:type]
209
+ if type == 'use'
210
+ uConClass.writeXML(hCon)
224
211
  end
225
- end
226
- elsif @responseObj[:writerShowTags]
227
- @xml.tag!('gmd:resourceConstraints') do
228
- @xml.tag!('gmd:MD_LegalConstraints')
229
- end
230
- end
231
-
232
- # data identification - resource constraints - security constraints
233
- # empty tag cannot be shown for security constraints - XSD issue
234
- aSecurityCons = hDataId[:securityConstraints]
235
- unless aSecurityCons.empty?
236
- aSecurityCons.each do |hSecCon|
237
- @xml.tag!('gmd:resourceConstraints') do
238
- sConClass.writeXML(hSecCon)
212
+ if type == 'legal'
213
+ lConClass.writeXML(hCon)
214
+ end
215
+ if type == 'security'
216
+ sConClass.writeXML(hCon)
239
217
  end
240
218
  end
241
219
  end
220
+ if aCons.nil? && @hResponseObj[:writerShowTags]
221
+ @xml.tag!('gmd:resourceConstraints')
222
+ end
242
223
 
243
- # data identification - aggregate information
244
- if !aAssocRes.empty?
245
- aAssocRes.each do |hAssocRes|
246
- @xml.tag!('gmd:aggregationInfo') do
247
- aggInfoClass.writeXML(hAssocRes)
248
- end
224
+ # data identification - aggregate information []
225
+ aAssocRes.each do |hAssocRes|
226
+ @xml.tag!('gmd:aggregationInfo') do
227
+ aggInfoClass.writeXML(hAssocRes)
249
228
  end
250
- elsif @responseObj[:writerShowTags]
229
+ end
230
+ if aAssocRes.empty? && @hResponseObj[:writerShowTags]
251
231
  @xml.tag!('gmd:aggregationInfo')
252
232
  end
253
233
 
254
234
  # data identification - taxonomy
255
- hTaxonomy = hDataId[:taxonomy]
256
- if !hTaxonomy.empty?
235
+ hTaxonomy = hData[:taxonomy]
236
+ unless hTaxonomy.empty?
257
237
  @xml.tag!('gmd:taxonomy') do
258
238
  taxClass.writeXML(hTaxonomy)
259
239
  end
260
- elsif @responseObj[:writerShowTags]
240
+ end
241
+ if hTaxonomy.empty? && @hResponseObj[:writerShowTags]
261
242
  @xml.tag!('gmd:taxonomy')
262
243
  end
263
244
 
264
- # data identification - spatial representation type
265
- aSpatialType = hDataId[:spatialRepresentationTypes]
266
- if !aSpatialType.empty?
267
- aSpatialType.each do |spType|
268
- @xml.tag!('gmd:spatialRepresentationType') do
269
- codelistClass.writeXML('iso_spatialRepresentation',spType)
270
- end
245
+ # data identification - spatial representation type []
246
+ aSpatialType = hData[:spatialRepresentationTypes]
247
+ aSpatialType.each do |spType|
248
+ @xml.tag!('gmd:spatialRepresentationType') do
249
+ codelistClass.writeXML('gmd', 'iso_spatialRepresentation',spType)
271
250
  end
272
- elsif @responseObj[:writerShowTags]
251
+ end
252
+ if aSpatialType.empty? && @hResponseObj[:writerShowTags]
273
253
  @xml.tag!('gmd:spatialRepresentationType')
274
254
  end
275
255
 
276
- # data identification - spatial resolution
277
- aSpatialRes = hDataId[:spatialResolutions]
278
- if !aSpatialRes.empty?
279
- aSpatialRes.each do |hSpRes|
280
- @xml.tag!('gmd:spatialResolution') do
281
- resolutionClass.writeXML(hSpRes)
282
- end
256
+ # data identification - spatial resolution []
257
+ aSpatialRes = hData[:spatialResolutions]
258
+ aSpatialRes.each do |hSpRes|
259
+ @xml.tag!('gmd:spatialResolution') do
260
+ resolutionClass.writeXML(hSpRes)
283
261
  end
284
- elsif @responseObj[:writerShowTags]
262
+ end
263
+ if aSpatialRes.empty? && @hResponseObj[:writerShowTags]
285
264
  @xml.tag!('gmd:spatialResolution')
286
265
  end
287
266
 
288
- # data identification - language - required
289
- languageTags = 0
290
- aLanguages = hDataId[:resourceLanguages]
291
- if !aLanguages.empty?
292
- aLanguages.each do |language|
293
- languageTags += 1
294
- @xml.tag!('gmd:language') do
295
- @xml.tag!('gco:CharacterString', language)
296
- end
267
+ # data identification - language [] (required)
268
+ aLocale = hData[:otherResourceLocales]
269
+ aLocale.insert(0, hData[:defaultResourceLocale])
270
+ aLocale.each do |hLocale|
271
+ s = hLocale[:languageCode]
272
+ unless hLocale[:countryCode].nil?
273
+ s += '; ' + hLocale[:countryCode]
297
274
  end
298
- end
299
-
300
- # data identification - locale - not supported in 19115-2
301
- # encode languageCode and country as a string for gmd:language
302
- aLocale = hDataId[:resourceLocales]
303
- if !aLocale.empty?
304
- aLocale.each do |hLocale|
305
- if !hLocale[:languageCode].nil?
306
- s = hLocale[:languageCode]
307
- if !hLocale[:countryCode].nil?
308
- s += '; ' + hLocale[:countryCode]
309
- end
310
- languageTags += 1
311
- @xml.tag!('gmd:language') do
312
- @xml.tag!('gco:CharacterString', s)
313
- end
314
- end
275
+ @xml.tag!('gmd:language') do
276
+ @xml.tag!('gco:CharacterString', s)
315
277
  end
316
278
  end
317
-
318
- # language for resource was not specified, use 'eng; USA' as default
319
- if languageTags == 0
279
+ if aLocale.empty?
320
280
  @xml.tag!('gmd:language') do
321
281
  @xml.tag!('gco:CharacterString', 'eng; USA')
322
282
  end
323
283
  end
324
284
 
325
- # data identification - characterSet - not required - default 'utf8'
326
- characterSetTags = 0
327
- aCharSets = hDataId[:resourceCharacterSets]
328
- if !aCharSets.empty?
329
- aCharSets.each do |charSet|
330
- characterSetTags += 1
285
+ # data identification - characterSet [] (default 'utf8')
286
+ charSets = 0
287
+ aLocale.each do |hLocale|
288
+ s = hLocale[:characterEncoding]
289
+ unless s.nil?
331
290
  @xml.tag!('gmd:characterSet') do
332
- codelistClass.writeXML('iso_characterSet',charSet)
291
+ codelistClass.writeXML('gmd', 'iso_characterSet', s)
292
+ charSets += 1
333
293
  end
334
294
  end
335
295
  end
336
-
337
- # data identification - locale - not supported in 19115-2
338
- # copy characterEncoding to gmd:characterSet
339
- if !aLocale.empty?
340
- aLocale.each do |hLocale|
341
- s = hLocale[:characterEncoding]
342
- if !s.nil?
343
- characterSetTags += 1
344
- @xml.tag!('gmd:characterSet') do
345
- codelistClass.writeXML('iso_characterSet', s)
346
- end
347
- end
296
+ if charSets == 0
297
+ @xml.tag!('gmd:language') do
298
+ @xml.tag!('gco:CharacterString', 'eng; USA')
348
299
  end
349
300
  end
350
301
 
351
- # characterSet encoding for resource was not specified, use 'utf8' as default
352
- if characterSetTags == 0
353
- @xml.tag!('gmd:characterSet') do
354
- codelistClass.writeXML('iso_characterSet','utf8')
302
+ # data identification - topic category []
303
+ aTopics = hData[:topicCategories]
304
+ aTopics.each do |spType|
305
+ @xml.tag!('gmd:topicCategory') do
306
+ enumerationClass.writeXML('iso_topicCategory', spType)
355
307
  end
356
308
  end
357
-
358
- # data identification - topic category
359
- aTopics = hDataId[:topicCategories]
360
- if !aTopics.empty?
361
- aTopics.each do |spType|
362
- @xml.tag!('gmd:topicCategory') do
363
- enumerationClass.writeXML('iso_topicCategory',spType)
364
- end
365
- end
366
- elsif @responseObj[:writerShowTags]
309
+ if aTopics.empty? && @hResponseObj[:writerShowTags]
367
310
  @xml.tag!('gmd:topicCategory')
368
311
  end
369
312
 
370
313
  # data identification - environment description
371
- s = hDataId[:environmentDescription]
372
- if !s.nil?
314
+ s = hData[:environmentDescription]
315
+ unless s.nil?
373
316
  @xml.tag!('gmd:environmentDescription') do
374
317
  @xml.tag!('gco:CharacterString', s)
375
318
  end
376
- elsif @responseObj[:writerShowTags]
319
+ end
320
+ if s.nil? && @hResponseObj[:writerShowTags]
377
321
  @xml.tag!('gmd:environmentDescription')
378
322
  end
379
323
 
380
- # data identification - extent
381
- # if resource time period, represent the time period as
382
- # a temporal element in the first extent
383
- needTag = true
384
- hTimePeriod = hDataId[:timePeriod]
385
- if !hTimePeriod.empty?
386
- hTempEle = intMetadataClass.newTemporalElement
387
- hTempEle[:timePeriod] = hTimePeriod
388
- hExt = intMetadataClass.newExtent
389
- hExt[:extDesc] = 'Temporal span of the resource (data or project)'
390
- hExt[:extTempElements] << hTempEle
324
+ # data identification - extent []
325
+ aExtents = hData[:extents]
326
+ aExtents.each do |hExtent|
391
327
  @xml.tag!('gmd:extent') do
392
- extentClass.writeXML(hExt)
328
+ extentClass.writeXML(hExtent)
393
329
  end
394
- needTag = false
395
330
  end
396
-
397
- # add the remaining geographic, temporal, and vertical extents
398
- aExtents = hDataId[:extents]
399
- if !aExtents.empty?
400
- aExtents.each do |hExtent|
401
- @xml.tag!('gmd:extent') do
402
- extentClass.writeXML(hExtent)
403
- end
404
- end
405
- elsif @responseObj[:writerShowTags] && needTag
331
+ if aExtents.empty? && @hResponseObj[:writerShowTags]
406
332
  @xml.tag!('gmd:extent')
407
333
  end
408
334
 
409
335
  # data identification - supplemental info
410
- s = hDataId[:supplementalInfo]
411
- if !s.nil?
336
+ s = hData[:supplementalInfo]
337
+ unless s.nil?
412
338
  @xml.tag!('gmd:supplementalInformation') do
413
339
  @xml.tag!('gco:CharacterString', s)
414
340
  end
415
- elsif @responseObj[:writerShowTags]
341
+ end
342
+ if s.nil? && @hResponseObj[:writerShowTags]
416
343
  @xml.tag!('gmd:supplementalInformation')
417
344
  end
418
345
 
419
- end
420
-
421
- end
422
-
423
- end
346
+ end # gmd:MD_DataIdentification tag
347
+ end # writeXML
348
+ end # MD_DataIdentification class
424
349
 
425
350
  end
426
351
  end