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
@@ -0,0 +1,48 @@
1
+ # ISO <<Class>> Measure
2
+ # 19115-2 writer output in XML
3
+
4
+ # History:
5
+ # Stan Smith 2016-11-22 original script.
6
+
7
+ module ADIWG
8
+ module Mdtranslator
9
+ module Writers
10
+ module Iso19115_2
11
+
12
+ class Measure
13
+
14
+ def initialize(xml, hResponseObj)
15
+ @xml = xml
16
+ @hResponseObj = hResponseObj
17
+ end
18
+
19
+ def writeXML(hResolution)
20
+
21
+ # measure
22
+ type = hResolution[:type]
23
+ value = hResolution[:value]
24
+ uom = hResolution[:unitOfMeasure]
25
+
26
+ if type == 'distance'
27
+ @xml.tag!('gco:Distance', {'uom'=>uom}, value)
28
+ end
29
+ if type == 'length'
30
+ @xml.tag!('gco:Length', {'uom'=>uom}, value)
31
+ end
32
+ if type == 'angle'
33
+ @xml.tag!('gco:Angle', {'uom'=>uom}, value)
34
+ end
35
+ if type == 'measure'
36
+ @xml.tag!('gco:Measure', {'uom'=>uom}, value)
37
+ end
38
+ if type == 'scale'
39
+ @xml.tag!('gco:Scale', {'uom'=>uom}, value)
40
+ end
41
+
42
+ end # write XML
43
+ end # CI_Telephone class
44
+
45
+ end
46
+ end
47
+ end
48
+ end
@@ -1,15 +1,16 @@
1
1
  # ISO <<Class>> MD_Medium
2
- # writer output in XML
2
+ # 19115-2 writer output in XML
3
3
 
4
4
  # History:
5
- # Stan Smith 2013-09-26 original script.
6
- # Stan Smith 2014-07-08 modify require statements to function in RubyGem structure
7
- # Stan Smith 2014-12-12 refactored to handle namespacing readers and writers
8
- # Stan Smith 2015-06-11 change all codelists to use 'class_codelist' method
9
- # Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
10
- # Stan Smith 2015-07-14 refactored to make iso19110 independent of iso19115_2 classes
11
- # Stan Smith 2015-07-14 refactored to eliminate namespace globals $WriterNS and $IsoNS
5
+ # Stan Smith 2016-11-30 refactored for mdTranslator/mdJson 2.0
12
6
  # Stan Smith 2015-09-15 added density, densityUnits elements
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-11 change all codelists to use 'class_codelist' method
11
+ # Stan Smith 2014-12-12 refactored to handle namespacing readers and writers
12
+ # Stan Smith 2014-07-08 modify require statements to function in RubyGem structure
13
+ # Stan Smith 2013-09-26 original script.
13
14
 
14
15
  require_relative 'class_codelist'
15
16
 
@@ -20,69 +21,92 @@ module ADIWG
20
21
 
21
22
  class MD_Medium
22
23
 
23
- def initialize(xml, responseObj)
24
+ def initialize(xml, hResponseObj)
24
25
  @xml = xml
25
- @responseObj = responseObj
26
+ @hResponseObj = hResponseObj
26
27
  end
27
28
 
28
- def writeXML(medium)
29
+ def writeXML(hMedium)
29
30
 
30
31
  # classes used
31
- codelistClass = MD_Codelist.new(@xml, @responseObj)
32
+ codelistClass = MD_Codelist.new(@xml, @hResponseObj)
32
33
 
33
34
  @xml.tag!('gmd:MD_Medium') do
34
35
 
35
- # medium - name - MD_MediumNameCode
36
- s = medium[:mediumName]
37
- if !s.nil?
38
- @xml.tag!('gmd:name') do
39
- codelistClass.writeXML('iso_mediumName',s)
36
+ # medium - name {MD_MediumNameCode}
37
+ hIdentifier = hMedium[:identifier]
38
+ s = nil
39
+ unless hIdentifier.empty?
40
+ s = hIdentifier[:identifier]
41
+ unless s.nil?
42
+ @xml.tag!('gmd:name') do
43
+ codelistClass.writeXML('gmd', 'iso_mediumName', s)
44
+ end
40
45
  end
41
- elsif @responseObj[:writerShowTags]
46
+ end
47
+ if s.nil? && @hResponseObj[:writerShowTags]
42
48
  @xml.tag!('gmd:name')
43
49
  end
44
50
 
45
- # medium - density in MB / density units
46
- s = medium[:mediumCapacity]
47
- if !s.nil?
51
+ # medium - density {MB}
52
+ s = hMedium[:density]
53
+ unless s.nil?
48
54
  @xml.tag!('gmd:density') do
49
55
  @xml.tag!('gco:Real', s.to_s)
50
56
  end
51
- su = medium[:mediumCapacityUnits].upcase
52
- if !su.nil?
53
- @xml.tag!('gmd:densityUnits') do
54
- @xml.tag!('gco:CharacterString', su)
55
- end
56
- end
57
- elsif @responseObj[:writerShowTags]
57
+ end
58
+ if s.nil? && @hResponseObj[:writerShowTags]
58
59
  @xml.tag!('gmd:density')
59
60
  end
60
61
 
61
- # medium - medium format - MD_MediumFormatCode
62
- s = medium[:mediumFormat]
63
- if !s.nil?
62
+ # medium density units
63
+ s = hMedium[:units]
64
+ unless s.nil?
65
+ s = s.downcase
66
+ @xml.tag!('gmd:densityUnits') do
67
+ @xml.tag!('gco:CharacterString', s)
68
+ end
69
+ end
70
+ if s.nil? && @hResponseObj[:writerShowTags]
71
+ @xml.tag!('gmd:densityUnits')
72
+ end
73
+
74
+ # medium - volumes
75
+ s = hMedium[:numberOfVolumes]
76
+ unless s.nil?
77
+ @xml.tag!('gmd:volumes') do
78
+ @xml.tag!('gco:Integer', s.to_s)
79
+ end
80
+ end
81
+ if s.nil? && @hResponseObj[:writerShowTags]
82
+ @xml.tag!('gmd:volumes')
83
+ end
84
+
85
+ # medium - medium format code [] {MD_MediumFormatCode}
86
+ aCode = hMedium[:mediumFormat]
87
+ aCode.each do |code|
64
88
  @xml.tag!('gmd:mediumFormat') do
65
- codelistClass.writeXML('iso_mediumFormat', s)
89
+ codelistClass.writeXML('gmd', 'iso_mediumFormat', code)
66
90
  end
67
- elsif @responseObj[:writerShowTags]
91
+ end
92
+ if aCode.empty? && @hResponseObj[:writerShowTags]
68
93
  @xml.tag!('gmd:mediumFormat')
69
94
  end
70
95
 
71
- # medium - medium note
72
- s = medium[:mediumNote]
73
- if !s.nil?
96
+ # medium - note
97
+ s = hMedium[:note]
98
+ unless s.nil?
74
99
  @xml.tag!('gmd:mediumNote') do
75
100
  @xml.tag!('gco:CharacterString', s)
76
101
  end
77
- elsif @responseObj[:writerShowTags]
102
+ end
103
+ if s.nil? && @hResponseObj[:writerShowTags]
78
104
  @xml.tag!('gmd:mediumNote')
79
105
  end
80
106
 
81
- end
82
-
83
- end
84
-
85
- end
107
+ end # gmd:MD_Medium
108
+ end # writeXML
109
+ end # MD_Medium class
86
110
 
87
111
  end
88
112
  end
@@ -0,0 +1,91 @@
1
+ # ISO <<Class>> MI_Band attributes
2
+ # 19115-2 writer output in XML
3
+
4
+ # History:
5
+ # Stan Smith 2016-11-29 refactored for mdTranslator/mdJson 2.0
6
+ # Stan Smith 2015-08-27 original script.
7
+
8
+ require_relative 'class_codelist'
9
+
10
+ module ADIWG
11
+ module Mdtranslator
12
+ module Writers
13
+ module Iso19115_2
14
+
15
+ class MI_Band
16
+
17
+ def initialize(xml, hResponseObj)
18
+ @xml = xml
19
+ @hResponseObj = hResponseObj
20
+ end
21
+
22
+ def writeXML(hAttribute)
23
+
24
+ # classes used
25
+ codelistClass = MD_Codelist.new(@xml, @hResponseObj)
26
+
27
+ # miBand - band boundary definition {MI_BandDefinition}
28
+ s = hAttribute[:bandBoundaryDefinition]
29
+ unless s.nil?
30
+ @xml.tag!('gmi:bandBoundaryDefinition') do
31
+ codelistClass.writeXML('gmi', 'iso_bandDefinition',s)
32
+ end
33
+ end
34
+ if s.nil? && @hResponseObj[:writerShowTags]
35
+ @xml.tag!('gmi:bandBoundaryDefinition')
36
+ end
37
+
38
+ # miBand - nominal spatial resolution {real}
39
+ s = hAttribute[:nominalSpatialResolution]
40
+ unless s.nil?
41
+ @xml.tag!('gmi:nominalSpatialResolution') do
42
+ @xml.tag!('gco:Real',s)
43
+ end
44
+ end
45
+ if s.nil? && @hResponseObj[:writerShowTags]
46
+ @xml.tag!('gmi:nominalSpatialResolution')
47
+ end
48
+
49
+ # miBand - transfer function type code
50
+ # {MI_TransferFunctionTypeCode}
51
+ s = hAttribute[:transferFunctionType]
52
+ unless s.nil?
53
+ @xml.tag!('gmi:transferFunctionType') do
54
+ codelistClass.writeXML('gmi', 'iso_transferFunctionTypeCode',s)
55
+ end
56
+ end
57
+ if s.nil? && @hResponseObj[:writerShowTags]
58
+ @xml.tag!('gmi:transferFunctionType')
59
+ end
60
+
61
+ # miBand - transmitted polarization orientation code
62
+ # {MI_PolarizationOrientationCode}
63
+ s = hAttribute[:transmittedPolarization]
64
+ unless s.nil?
65
+ @xml.tag!('gmi:transmittedPolarisation') do
66
+ codelistClass.writeXML('gmi','iso_polarisationOrientationCode',s)
67
+ end
68
+ end
69
+ if s.nil? && @hResponseObj[:writerShowTags]
70
+ @xml.tag!('gmi:transmittedPolarisation')
71
+ end
72
+
73
+ # miBand - detected polarization orientation code
74
+ # {MI_PolarizationOrientationCode}
75
+ s = hAttribute[:detectedPolarization]
76
+ unless s.nil?
77
+ @xml.tag!('gmi:detectedPolarisation') do
78
+ codelistClass.writeXML('gmi', 'iso_polarisationOrientationCode',s)
79
+ end
80
+ end
81
+ if s.nil? && @hResponseObj[:writerShowTags]
82
+ @xml.tag!('gmi:detectedPolarisation')
83
+ end
84
+
85
+ end # writeXML
86
+ end # MI_Band attributes
87
+
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,352 @@
1
+ # ISO 19115-2 <<Class>> MI_Metadata
2
+ # 19115-2 writer output in XML.
3
+
4
+ # History:
5
+ # Stan Smith 2016-11-15 refactored for mdTranslator/mdJson 2.0
6
+ # Stan Smith 2015-08-27 added support for content information
7
+ # Stan Smith 2015-07-30 added support for grid information
8
+ # Stan Smith 2015-07-28 added support for PT_Locale
9
+ # Stan Smith 2015-07-14 refactored to eliminate namespace globals $WriterNS and $IsoNS
10
+ # Stan Smith 2015-07-14 refactored to make iso19110 independent of iso19115_2 classes
11
+ # Stan Smith 2015-06-22 replace global ($response) with passed in object (hResponseObj)
12
+ # Stan Smith 2015-06-12 added support for user to specify metadataCharacterSet
13
+ # Stan Smith 2015-06-11 change all codelists to use 'class_codelist' method
14
+ # Stan Smith 2014-12-29 set builder object '@xml' into string 'metadata'
15
+ # Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
16
+ # Stan Smith 2014-11-06 changed hierarchy level to load values from resourceInfo > resourceType
17
+ # Stan Smith 2014-10-10 modified to pass minimum metadata input test
18
+ # ... test were added to handle a missing metadata > metadataInfo block in the input
19
+ # Stan Smith 2014-10-07 changed source of dataSetURI to
20
+ # ... metadata: {resourceInfo: {citation: {citOlResources[0]: {olResURI:}}}}
21
+ # Stan Smith 2014-09-19 changed file identifier to read from internal storage as
22
+ # ... an MD_Identifier class. To support version 0.8.0 json.
23
+ # Stan Smith 2014-09-03 replaced spatial reference system code with named, epsg, and
24
+ # ... wkt reference system descriptions using RS_Identifier for 0.7.0
25
+ # Stan Smith 2014-08-18 add dataSetURI
26
+ # Stan Smith 2014-07-08 modify require statements to function in RubyGem structure
27
+ # Stan Smith 2014-05-28 added resource URI
28
+ # Stan Smith 2014-05-14 refactored method calls to be consistent w/ other classes
29
+ # Stan Smith 2014-05-14 modify for JSON schema 0.4.0
30
+ # Stan Smith 2013-12-27 added parent identifier
31
+ # Stan Smith 2013-09-25 added reference system info
32
+ # Stan Smith 2013-09-25 added metadata maintenance
33
+ # Stan Smith 2013-09-25 added data quality
34
+ # Stan Smith 2013-09-25 added distribution
35
+ # Stan Smith 2013-08-09 original script
36
+
37
+ require 'uuidtools'
38
+ require 'adiwg/mdtranslator/internal/internal_metadata_obj'
39
+ require_relative 'class_codelist'
40
+ require_relative 'class_hierarchy'
41
+ require_relative 'class_responsibleParty'
42
+ require_relative 'class_locale'
43
+ require_relative 'class_spatialRepresentation'
44
+ require_relative 'class_referenceSystem'
45
+ require_relative 'class_extension'
46
+ require_relative 'class_dataIdentification'
47
+ require_relative 'class_coverageDescription'
48
+ require_relative 'class_distribution'
49
+ require_relative 'class_dataQuality'
50
+ require_relative 'class_maintenance'
51
+ require_relative 'class_gcoDateTime'
52
+
53
+ module ADIWG
54
+ module Mdtranslator
55
+ module Writers
56
+ module Iso19115_2
57
+
58
+ class MI_Metadata
59
+
60
+ def initialize(xml, hResponseObj)
61
+ @xml = xml
62
+ @hResponseObj = hResponseObj
63
+ end
64
+
65
+ def writeXML(intObj)
66
+
67
+ # classes used
68
+ intMetadataClass = InternalMetadata.new
69
+ codelistClass = MD_Codelist.new(@xml, @hResponseObj)
70
+ partyClass = CI_ResponsibleParty.new(@xml, @hResponseObj)
71
+ hierarchyClass = Hierarchy.new(@xml, @hResponseObj)
72
+ localeClass = PT_Locale.new(@xml, @hResponseObj)
73
+ representationClass = SpatialRepresentation.new(@xml, @hResponseObj)
74
+ systemClass = MD_ReferenceSystem.new(@xml, @hResponseObj)
75
+ extensionClass = MD_MetadataExtensionInformation.new(@xml, @hResponseObj)
76
+ dataIdClass = MD_DataIdentification.new(@xml, @hResponseObj)
77
+ coverageClass = CoverageDescription.new(@xml, @hResponseObj)
78
+ distClass = MD_Distribution.new(@xml, @hResponseObj)
79
+ dqClass = DQ_DataQuality.new(@xml, @hResponseObj)
80
+ maintenanceClass = MD_MaintenanceInformation.new(@xml, @hResponseObj)
81
+ dateTimeClass = GcoDateTime.new(@xml, @hResponseObj)
82
+
83
+ # create shortcuts to sections of internal object
84
+ hMetadata = intObj[:metadata]
85
+ hMetaInfo = hMetadata[:metadataInfo]
86
+ hResInfo = hMetadata[:resourceInfo]
87
+ aAssocRes = hMetadata[:associatedResources]
88
+ version = @hResponseObj[:translatorVersion]
89
+
90
+ # document head
91
+ metadata = @xml.instruct! :xml, encoding: 'UTF-8'
92
+ @xml.comment!('ISO 19115-2 METADATA')
93
+ @xml.comment!('Metadata file was constructed using the ADIwg mdTranslator, http://mdtranslator.adiwg.org')
94
+ @xml.comment!('mdTranslator software is an open-source project of the Alaska Data Integration working group (ADIwg)')
95
+ @xml.comment!('mdTranslator and other metadata tools are available at https://github.com/adiwg')
96
+ @xml.comment!('ADIwg is not responsible for the content of this metadata record')
97
+ @xml.comment!('This metadata record was generated by mdTranslator ' + version + ' at ' + Time.now.to_s)
98
+
99
+ # MI_Metadata
100
+ @xml.tag!('gmi:MI_Metadata',
101
+ {'xmlns:gmi' => 'http://www.isotc211.org/2005/gmi',
102
+ 'xmlns:gmd' => 'http://www.isotc211.org/2005/gmd',
103
+ 'xmlns:gco' => 'http://www.isotc211.org/2005/gco',
104
+ 'xmlns:gml' => 'http://www.opengis.net/gml/3.2',
105
+ 'xmlns:gsr' => 'http://www.isotc211.org/2005/gsr',
106
+ 'xmlns:gss' => 'http://www.isotc211.org/2005/gss',
107
+ 'xmlns:gst' => 'http://www.isotc211.org/2005/gst',
108
+ 'xmlns:gmx' => 'http://www.isotc211.org/2005/gmx',
109
+ 'xmlns:gfc' => 'http://www.isotc211.org/2005/gfc',
110
+ 'xmlns:srv' => 'http://www.isotc211.org/2005/srv',
111
+ 'xmlns:xlink' => 'http://www.w3.org/1999/xlink',
112
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
113
+ 'xsi:schemaLocation' => 'http://www.isotc211.org/2005/gmi ftp://ftp.ncddc.noaa.gov/pub/Metadata/Online_ISO_Training/Intro_to_ISO/schemas/ISObio/schema.xsd'}) do
114
+
115
+ # remote schema location - for deployment
116
+ # ftp://ftp.ncddc.noaa.gov/pub/Metadata/Online_ISO_Training/Intro_to_ISO/schemas/ISObio/schema.xsd
117
+ # local schema location - for development
118
+ # C:\Users\StanSmith\Projects\ISO\19115\NOAA\schema.xsd
119
+
120
+ # metadata information - file identifier (default: UUID)
121
+ s = hMetaInfo[:metadataIdentifier][:identifier]
122
+ @xml.tag!('gmd:fileIdentifier') do
123
+ unless s.nil?
124
+ @xml.tag!('gco:CharacterString', s)
125
+ end
126
+ if s.nil?
127
+ @xml.tag!('gco:CharacterString', UUIDTools::UUID.random_create.to_s)
128
+ end
129
+ end
130
+
131
+ # metadata information - metadata language ('eng; USA')
132
+ @xml.tag!('gmd:language') do
133
+ @xml.tag!('gco:CharacterString', 'eng; USA')
134
+ end
135
+
136
+ # metadata information - metadata character ('utf-8')
137
+ @xml.tag!('gmd:characterSet') do
138
+ codelistClass.writeXML('gmd', 'iso_characterSet', 'UTF-8')
139
+ end
140
+
141
+ # metadata information - parent identifier
142
+ s = nil
143
+ hParent = hMetaInfo[:parentMetadata]
144
+ unless hParent.empty?
145
+ s = hParent[:title]
146
+ end
147
+ unless s.nil?
148
+ @xml.tag!('gmd:parentIdentifier') do
149
+ @xml.tag!('gco:CharacterString', s)
150
+ end
151
+ end
152
+ if s.nil? && @hResponseObj[:writerShowTags]
153
+ @xml.tag!('gmd:parentIdentifier')
154
+ end
155
+
156
+ # metadata information - hierarchy level [] {MD_scopeCode}
157
+ # metadata information - hierarchy level Name [] {string}
158
+ # hierarchy comes from resourceInfo < resourceType []
159
+ # pass entire array to hierarchy
160
+ # all hierarchyLevel tags must precede the hierarchyLevelName tags
161
+ aResTypes = hResInfo[:resourceTypes]
162
+ unless aResTypes.empty?
163
+ hierarchyClass.writeXML(aResTypes)
164
+ end
165
+ if aResTypes.empty? && @hResponseObj[:writerShowTags]
166
+ @xml.tag!('gmd:hierarchyLevel')
167
+ @xml.tag!('gmd:hierarchyLevelName')
168
+ end
169
+
170
+ # metadata information - metadata contacts (required)
171
+ # [{CI_ResponsibleParty}]
172
+ aRParties = hMetaInfo[:metadataContacts]
173
+ aRParties.each do |hRParty|
174
+ role = hRParty[:roleName]
175
+ aParties = hRParty[:parties]
176
+ aParties.each do |hParty|
177
+ @xml.tag!('gmd:contact') do
178
+ partyClass.writeXML(role, hParty)
179
+ end
180
+ end
181
+ end
182
+ if aRParties.empty?
183
+ @xml.tag!('gmd:contact', {'gco:nilReason' => 'missing'})
184
+ end
185
+
186
+ # metadata information - date stamp (required) {default: now()}
187
+ hCreateDate = {}
188
+ hCreateDate[:date] = DateTime.now
189
+ hCreateDate[:dateResolution] = 'YMD'
190
+ aDates = hMetaInfo[:metadataDates]
191
+ aDates.each do |hDate|
192
+ if hDate[:dateType] == 'creation'
193
+ hCreateDate = hDate
194
+ end
195
+ end
196
+ @xml.tag!('gmd:dateStamp') do
197
+ dateTimeClass.writeXML(hCreateDate)
198
+ end
199
+
200
+ # metadata information - metadata standard name (default)
201
+ @xml.tag!('gmd:metadataStandardName') do
202
+ @xml.tag!('gco:CharacterString', 'ISO 19115-2')
203
+ end
204
+
205
+ # metadata information - metadata standard version (default)
206
+ @xml.tag!('gmd:metadataStandardVersion') do
207
+ @xml.tag!('gco:CharacterString', 'ISO 19115-2:2009(E)')
208
+ end
209
+
210
+ # metadata information - metadata linkage
211
+ s = nil
212
+ unless hMetaInfo[:metadataLinkages].empty?
213
+ hLinkage = hMetaInfo[:metadataLinkages][0]
214
+ s = hLinkage[:olResURI]
215
+ @xml.tag!('gmd:dataSetURI') do
216
+ @xml.tag!('gco:CharacterString', s)
217
+ end
218
+ end
219
+ if s.nil? && @hResponseObj[:writerShowTags]
220
+ @xml.tag!('gmd:dataSetURI')
221
+ end
222
+
223
+ # metadata information - locale []
224
+ aLocales = hMetaInfo[:otherMetadataLocales]
225
+ unless hMetaInfo[:defaultMetadataLocale].empty?
226
+ aLocales.insert(0, hMetaInfo[:defaultMetadataLocale])
227
+ end
228
+ aLocales.each do |hLocale|
229
+ @xml.tag!('gmd:locale') do
230
+ localeClass.writeXML(hLocale)
231
+ end
232
+ end
233
+ if aLocales.empty? && @hResponseObj[:writerShowTags]
234
+ @xml.tag!('gmd:locale')
235
+ end
236
+
237
+ # metadata information - spatial representation []
238
+ aReps = hResInfo[:spatialRepresentations]
239
+ aReps.each do |hRep|
240
+ @xml.tag!('gmd:spatialRepresentationInfo') do
241
+ representationClass.writeXML(hRep)
242
+ end
243
+ end
244
+ if aReps.empty? && @hResponseObj[:writerShowTags]
245
+ @xml.tag!('gmd:spatialRepresentationInfo')
246
+ end
247
+
248
+ # metadata information - reference system []
249
+ aSystems = hResInfo[:spatialReferenceSystems]
250
+ aSystems.each do |hSystem|
251
+ @xml.tag!('gmd:referenceSystemInfo') do
252
+ systemClass.writeXML(hSystem)
253
+ end
254
+ end
255
+ if aSystems.empty? && @hResponseObj[:writerShowTags]
256
+ @xml.tag!('gmd:referenceSystemInfo')
257
+ end
258
+
259
+ # metadata information - metadata extension info
260
+ # add biological profile to all metadata records
261
+ intBio = intMetadataClass.newMetadataExtension
262
+ intBio[:name] = 'Taxonomy System'
263
+ intBio[:shortName] = 'TaxonSys'
264
+ intBio[:definition] = 'Documentation of taxonomic sources, procedures, and treatments'
265
+ intBio[:obligation] = 'optional'
266
+ intBio[:dataType] = 'class'
267
+ intBio[:maxOccurrence] = '1'
268
+ intBio[:parentEntities] << 'MD_Identification'
269
+ intBio[:rule] = 'New Metadata section as a class to MD_Identification'
270
+ intBio[:rationales] << 'The set of data elements contained within this class element ' +
271
+ 'represents an attempt to provide better documentation of ' +
272
+ 'taxonomic sources, procedures, and treatments.'
273
+ intBio[:sourceOrganization] = 'National Biological Information Infrastructure'
274
+ intBio[:sourceURI] = 'https://www2.usgs.gov/core_science_systems/Access/p1111-1.html'
275
+ intBio[:sourceRole] = 'author'
276
+
277
+ @xml.tag!('gmd:metadataExtensionInfo') do
278
+ extensionClass.writeXML(intBio)
279
+ end
280
+
281
+ # ###################### Begin Data Identification #####################
282
+
283
+ # metadata information - identification info - required
284
+ unless hResInfo.empty?
285
+ @xml.tag!('gmd:identificationInfo') do
286
+ dataIdClass.writeXML(hResInfo, aAssocRes)
287
+ end
288
+ end
289
+ if hResInfo.empty?
290
+ @xml.tag!('gmd:identificationInfo', {'gco:nilReason' => 'missing'})
291
+ end
292
+
293
+ # ###################### End Data Identification #######################
294
+
295
+ # metadata information - coverageDescription []
296
+ aItems = hResInfo[:coverageDescriptions]
297
+ aItems.each do |hItem|
298
+ @xml.tag!('gmd:contentInfo') do
299
+ coverageClass.writeXML(hItem)
300
+ end
301
+ end
302
+ if aItems.empty? && @hResponseObj[:writerShowTags]
303
+ @xml.tag!('gmd:contentInfo')
304
+ end
305
+
306
+ # metadata information - distribution info [0]
307
+ aDistInfo = hMetadata[:distributorInfo]
308
+ unless aDistInfo.empty?
309
+ hDistInfo = aDistInfo[0]
310
+ unless hDistInfo.empty?
311
+ @xml.tag!('gmd:distributionInfo') do
312
+ distClass.writeXML(hDistInfo)
313
+ end
314
+ end
315
+ end
316
+ if aDistInfo.empty? && @hResponseObj[:writerShowTags]
317
+ @xml.tag!('gmd:distributionInfo')
318
+ end
319
+
320
+ # metadata information - data quality info []
321
+ aDQInfo = hMetadata[:lineageInfo]
322
+ aDQInfo.each do |hDQInfo|
323
+ @xml.tag!('gmd:dataQualityInfo') do
324
+ dqClass.writeXML(hDQInfo)
325
+ end
326
+ end
327
+ if aDQInfo.empty? && @hResponseObj[:writerShowTags]
328
+ @xml.tag!('gmd:dataQualityInfo')
329
+ end
330
+
331
+ # metadata information - metadata maintenance
332
+ hMaintenance = hMetaInfo[:metadataMaintenance]
333
+ unless hMaintenance.empty?
334
+ @xml.tag!('gmd:metadataMaintenance') do
335
+ maintenanceClass.writeXML(hMaintenance)
336
+ end
337
+ end
338
+ if hMaintenance.empty? && @hResponseObj[:writerShowTags]
339
+ @xml.tag!('gmd:metadataMaintenance')
340
+ end
341
+
342
+ end # gmi:MI_Metadata tag
343
+
344
+ return metadata
345
+
346
+ end # writeXML
347
+ end # MI_Metadata class
348
+
349
+ end
350
+ end
351
+ end
352
+ end