dcc 0.2.0

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 (336) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +16 -0
  5. data/.rubocop_todo.yml +10 -0
  6. data/CHANGELOG.adoc +54 -0
  7. data/CONTRIBUTING.adoc +64 -0
  8. data/Gemfile +25 -0
  9. data/LICENSE +21 -0
  10. data/README.adoc +69 -0
  11. data/Rakefile +13 -0
  12. data/dcc.gemspec +41 -0
  13. data/docs/cli-reference.adoc +67 -0
  14. data/docs/getting-started.adoc +117 -0
  15. data/docs/schema-versions.adoc +65 -0
  16. data/examples/build_minimal_dcc.rb +23 -0
  17. data/examples/convert_all_formats.rb +19 -0
  18. data/examples/parse_and_inspect.rb +19 -0
  19. data/examples/quantity_math_demo.rb +32 -0
  20. data/examples/validate_full.rb +27 -0
  21. data/exe/dcc +7 -0
  22. data/lib/dcc/base/administrative_data.rb +43 -0
  23. data/lib/dcc/base/byte_data.rb +36 -0
  24. data/lib/dcc/base/calibration_laboratory.rb +29 -0
  25. data/lib/dcc/base/comment.rb +23 -0
  26. data/lib/dcc/base/condition.rb +34 -0
  27. data/lib/dcc/base/contact.rb +38 -0
  28. data/lib/dcc/base/contact_not_strict.rb +38 -0
  29. data/lib/dcc/base/core_data.rb +44 -0
  30. data/lib/dcc/base/data.rb +42 -0
  31. data/lib/dcc/base/digital_calibration_certificate.rb +32 -0
  32. data/lib/dcc/base/equipment_class.rb +24 -0
  33. data/lib/dcc/base/formula.rb +33 -0
  34. data/lib/dcc/base/hash_type.rb +34 -0
  35. data/lib/dcc/base/identification.rb +27 -0
  36. data/lib/dcc/base/identifications.rb +27 -0
  37. data/lib/dcc/base/influence_condition.rb +16 -0
  38. data/lib/dcc/base/influence_condition_list.rb +40 -0
  39. data/lib/dcc/base/item.rb +38 -0
  40. data/lib/dcc/base/item_list.rb +38 -0
  41. data/lib/dcc/base/list.rb +44 -0
  42. data/lib/dcc/base/location.rb +36 -0
  43. data/lib/dcc/base/measurement_meta_data.rb +15 -0
  44. data/lib/dcc/base/measurement_meta_data_list.rb +27 -0
  45. data/lib/dcc/base/measurement_result.rb +41 -0
  46. data/lib/dcc/base/measurement_result_list.rb +28 -0
  47. data/lib/dcc/base/measuring_equipment.rb +41 -0
  48. data/lib/dcc/base/measuring_equipment_list.rb +38 -0
  49. data/lib/dcc/base/quantity.rb +61 -0
  50. data/lib/dcc/base/ref_type_definition.rb +36 -0
  51. data/lib/dcc/base/ref_type_definition_list.rb +21 -0
  52. data/lib/dcc/base/resp_person.rb +38 -0
  53. data/lib/dcc/base/resp_person_list.rb +27 -0
  54. data/lib/dcc/base/result.rb +31 -0
  55. data/lib/dcc/base/result_list.rb +27 -0
  56. data/lib/dcc/base/rich_content.rb +34 -0
  57. data/lib/dcc/base/software.rb +35 -0
  58. data/lib/dcc/base/software_list.rb +27 -0
  59. data/lib/dcc/base/statement.rb +50 -0
  60. data/lib/dcc/base/statement_list.rb +27 -0
  61. data/lib/dcc/base/string_with_lang.rb +24 -0
  62. data/lib/dcc/base/text.rb +33 -0
  63. data/lib/dcc/base/used_method.rb +31 -0
  64. data/lib/dcc/base/used_method_list.rb +27 -0
  65. data/lib/dcc/base/xml_blob.rb +20 -0
  66. data/lib/dcc/base.rb +58 -0
  67. data/lib/dcc/builder/dsl.rb +10 -0
  68. data/lib/dcc/builder/session.rb +170 -0
  69. data/lib/dcc/builder.rb +34 -0
  70. data/lib/dcc/cli/cli.rb +149 -0
  71. data/lib/dcc/cli/formatters.rb +77 -0
  72. data/lib/dcc/cli.rb +7 -0
  73. data/lib/dcc/common_elements.rb +20 -0
  74. data/lib/dcc/context_configuration.rb +167 -0
  75. data/lib/dcc/context_options.rb +47 -0
  76. data/lib/dcc/convert/csv.rb +129 -0
  77. data/lib/dcc/convert/html.rb +127 -0
  78. data/lib/dcc/convert/json.rb +62 -0
  79. data/lib/dcc/convert/result.rb +51 -0
  80. data/lib/dcc/convert/yaml.rb +21 -0
  81. data/lib/dcc/convert.rb +14 -0
  82. data/lib/dcc/diff/change.rb +21 -0
  83. data/lib/dcc/diff/result.rb +58 -0
  84. data/lib/dcc/diff.rb +83 -0
  85. data/lib/dcc/error.rb +54 -0
  86. data/lib/dcc/extract/file.rb +143 -0
  87. data/lib/dcc/extract/ring.rb +28 -0
  88. data/lib/dcc/extract.rb +9 -0
  89. data/lib/dcc/i18n/text_lookup.rb +67 -0
  90. data/lib/dcc/i18n.rb +12 -0
  91. data/lib/dcc/inspect/report.rb +139 -0
  92. data/lib/dcc/inspect.rb +9 -0
  93. data/lib/dcc/migrate.rb +41 -0
  94. data/lib/dcc/namespace/dcc.rb +30 -0
  95. data/lib/dcc/namespace/dsig.rb +15 -0
  96. data/lib/dcc/namespace/math_ml.rb +14 -0
  97. data/lib/dcc/namespace/qudt.rb +15 -0
  98. data/lib/dcc/namespace/si.rb +26 -0
  99. data/lib/dcc/namespace.rb +18 -0
  100. data/lib/dcc/plugin/registry.rb +45 -0
  101. data/lib/dcc/plugin.rb +42 -0
  102. data/lib/dcc/quantity_format/formatter.rb +90 -0
  103. data/lib/dcc/quantity_format.rb +10 -0
  104. data/lib/dcc/quantity_math/quantity.rb +46 -0
  105. data/lib/dcc/quantity_math/real.rb +116 -0
  106. data/lib/dcc/quantity_math.rb +14 -0
  107. data/lib/dcc/schema/resources/dcc/dsi/v1.0.1.xsd +415 -0
  108. data/lib/dcc/schema/resources/dcc/dsi/v1.3.0.xsd +814 -0
  109. data/lib/dcc/schema/resources/dcc/dsi/v1.3.1.xsd +814 -0
  110. data/lib/dcc/schema/resources/dcc/dsi/v2.0.0.xsd +869 -0
  111. data/lib/dcc/schema/resources/dcc/dsi/v2.1.0.xsd +1031 -0
  112. data/lib/dcc/schema/resources/dcc/dsi/v2.2.1.xsd +1574 -0
  113. data/lib/dcc/schema/resources/dcc/qudt/v2.2.1.xsd +44 -0
  114. data/lib/dcc/schema/resources/dcc/v2.1.0/dcc.xsd +650 -0
  115. data/lib/dcc/schema/resources/dcc/v2.1.1/dcc.xsd +669 -0
  116. data/lib/dcc/schema/resources/dcc/v2.2.0/dcc.xsd +730 -0
  117. data/lib/dcc/schema/resources/dcc/v2.3.0/dcc.xsd +708 -0
  118. data/lib/dcc/schema/resources/dcc/v2.4.0/dcc.xsd +725 -0
  119. data/lib/dcc/schema/resources/dcc/v3.0.0/dcc.xsd +749 -0
  120. data/lib/dcc/schema/resources/dcc/v3.1.0/dcc.xsd +843 -0
  121. data/lib/dcc/schema/resources/dcc/v3.1.1/dcc.xsd +843 -0
  122. data/lib/dcc/schema/resources/dcc/v3.1.2/dcc.xsd +844 -0
  123. data/lib/dcc/schema/resources/dcc/v3.2.0/dcc.xsd +940 -0
  124. data/lib/dcc/schema/resources/dcc/v3.2.1/dcc.xsd +963 -0
  125. data/lib/dcc/schema/resources/dcc/v3.3.0/dcc.xsd +1008 -0
  126. data/lib/dcc/schema/resources/dcc/xmldsig-core-schema.xsd +312 -0
  127. data/lib/dcc/schema/resources/dsi/qudt/v2.2.1.xsd +44 -0
  128. data/lib/dcc/schema/resources/dsi/v1.0.1/SI_Format.xsd +415 -0
  129. data/lib/dcc/schema/resources/dsi/v1.3.0/SI_Format.xsd +814 -0
  130. data/lib/dcc/schema/resources/dsi/v1.3.1/SI_Format.xsd +814 -0
  131. data/lib/dcc/schema/resources/dsi/v2.0.0/SI_Format.xsd +869 -0
  132. data/lib/dcc/schema/resources/dsi/v2.1.0/SI_Format.xsd +1031 -0
  133. data/lib/dcc/schema/resources/dsi/v2.2.1/SI_Format.xsd +1574 -0
  134. data/lib/dcc/schema/resources/qudt/qudt.xsd +44 -0
  135. data/lib/dcc/schema/resources/schematron/dcc.sch +523 -0
  136. data/lib/dcc/schema/resources/schematron/dcc.svrl +2302 -0
  137. data/lib/dcc/schema/resources/xmldsig/xmldsig-core-schema.xsd +312 -0
  138. data/lib/dcc/schema/version.rb +94 -0
  139. data/lib/dcc/schema.rb +35 -0
  140. data/lib/dcc/server/app.rb +133 -0
  141. data/lib/dcc/server/storage/entry.rb +15 -0
  142. data/lib/dcc/server/storage/memory.rb +57 -0
  143. data/lib/dcc/server/storage.rb +13 -0
  144. data/lib/dcc/server.rb +33 -0
  145. data/lib/dcc/si/base/complex.rb +43 -0
  146. data/lib/dcc/si/base/complex_list_xml_list.rb +39 -0
  147. data/lib/dcc/si/base/constant.rb +39 -0
  148. data/lib/dcc/si/base/coverage_interval_mu.rb +31 -0
  149. data/lib/dcc/si/base/expanded_mu.rb +29 -0
  150. data/lib/dcc/si/base/expanded_unc_xml_list.rb +30 -0
  151. data/lib/dcc/si/base/hybrid.rb +42 -0
  152. data/lib/dcc/si/base/measurement_uncertainty_univariate.rb +28 -0
  153. data/lib/dcc/si/base/real.rb +48 -0
  154. data/lib/dcc/si/base/real_list_xml_list.rb +45 -0
  155. data/lib/dcc/si/base/si_list.rb +37 -0
  156. data/lib/dcc/si/base/standard_mu.rb +25 -0
  157. data/lib/dcc/si/base.rb +24 -0
  158. data/lib/dcc/si/common_elements.rb +13 -0
  159. data/lib/dcc/si/namespace.rb +7 -0
  160. data/lib/dcc/si/v1/common_elements.rb +13 -0
  161. data/lib/dcc/si/v1/complex.rb +8 -0
  162. data/lib/dcc/si/v1/complex_list_xml_list.rb +8 -0
  163. data/lib/dcc/si/v1/configuration.rb +13 -0
  164. data/lib/dcc/si/v1/constant.rb +8 -0
  165. data/lib/dcc/si/v1/coverage_interval_mu.rb +8 -0
  166. data/lib/dcc/si/v1/expanded_mu.rb +8 -0
  167. data/lib/dcc/si/v1/expanded_unc.rb +23 -0
  168. data/lib/dcc/si/v1/expanded_unc_xml_list.rb +8 -0
  169. data/lib/dcc/si/v1/hybrid.rb +8 -0
  170. data/lib/dcc/si/v1/measurement_uncertainty_univariate.rb +8 -0
  171. data/lib/dcc/si/v1/namespace.rb +9 -0
  172. data/lib/dcc/si/v1/real.rb +8 -0
  173. data/lib/dcc/si/v1/real_list_xml_list.rb +8 -0
  174. data/lib/dcc/si/v1/si_list.rb +8 -0
  175. data/lib/dcc/si/v1/standard_mu.rb +8 -0
  176. data/lib/dcc/si/v1.rb +46 -0
  177. data/lib/dcc/si/v2/common_elements.rb +13 -0
  178. data/lib/dcc/si/v2/complex.rb +8 -0
  179. data/lib/dcc/si/v2/complex_list_xml_list.rb +8 -0
  180. data/lib/dcc/si/v2/configuration.rb +13 -0
  181. data/lib/dcc/si/v2/constant.rb +8 -0
  182. data/lib/dcc/si/v2/coverage_interval_mu.rb +8 -0
  183. data/lib/dcc/si/v2/coverage_interval_mu_xml_list.rb +24 -0
  184. data/lib/dcc/si/v2/expanded_mu.rb +8 -0
  185. data/lib/dcc/si/v2/expanded_mu_xml_list.rb +22 -0
  186. data/lib/dcc/si/v2/expanded_unc_xml_list.rb +8 -0
  187. data/lib/dcc/si/v2/hybrid.rb +8 -0
  188. data/lib/dcc/si/v2/measurement_uncertainty_univariate.rb +8 -0
  189. data/lib/dcc/si/v2/namespace.rb +9 -0
  190. data/lib/dcc/si/v2/real.rb +8 -0
  191. data/lib/dcc/si/v2/real_list_xml_list.rb +8 -0
  192. data/lib/dcc/si/v2/si_list.rb +8 -0
  193. data/lib/dcc/si/v2/standard_mu.rb +8 -0
  194. data/lib/dcc/si/v2/standard_mu_xml_list.rb +18 -0
  195. data/lib/dcc/si/v2.rb +49 -0
  196. data/lib/dcc/si.rb +34 -0
  197. data/lib/dcc/signature/result.rb +43 -0
  198. data/lib/dcc/signature/signer.rb +36 -0
  199. data/lib/dcc/signature/verifier.rb +41 -0
  200. data/lib/dcc/signature.rb +13 -0
  201. data/lib/dcc/transform/result.rb +24 -0
  202. data/lib/dcc/transform/xslt.rb +72 -0
  203. data/lib/dcc/transform.rb +12 -0
  204. data/lib/dcc/type/base64_binary.rb +55 -0
  205. data/lib/dcc/type/decimal_xml_list.rb +47 -0
  206. data/lib/dcc/type/iso_country_code.rb +23 -0
  207. data/lib/dcc/type/iso_language_code.rb +23 -0
  208. data/lib/dcc/type/schema_version.rb +37 -0
  209. data/lib/dcc/type/si_unit.rb +26 -0
  210. data/lib/dcc/type.rb +16 -0
  211. data/lib/dcc/type_guards.rb +140 -0
  212. data/lib/dcc/v2/administrative_data.rb +8 -0
  213. data/lib/dcc/v2/byte_data.rb +8 -0
  214. data/lib/dcc/v2/calibration_laboratory.rb +8 -0
  215. data/lib/dcc/v2/comment.rb +8 -0
  216. data/lib/dcc/v2/common_elements.rb +13 -0
  217. data/lib/dcc/v2/condition.rb +8 -0
  218. data/lib/dcc/v2/configuration.rb +17 -0
  219. data/lib/dcc/v2/contact.rb +8 -0
  220. data/lib/dcc/v2/contact_not_strict.rb +8 -0
  221. data/lib/dcc/v2/core_data.rb +8 -0
  222. data/lib/dcc/v2/data.rb +8 -0
  223. data/lib/dcc/v2/digital_calibration_certificate.rb +8 -0
  224. data/lib/dcc/v2/equipment_class.rb +8 -0
  225. data/lib/dcc/v2/formula.rb +8 -0
  226. data/lib/dcc/v2/hash_type.rb +8 -0
  227. data/lib/dcc/v2/identification.rb +8 -0
  228. data/lib/dcc/v2/identifications.rb +8 -0
  229. data/lib/dcc/v2/influence_condition.rb +7 -0
  230. data/lib/dcc/v2/influence_condition_list.rb +8 -0
  231. data/lib/dcc/v2/item.rb +8 -0
  232. data/lib/dcc/v2/item_list.rb +8 -0
  233. data/lib/dcc/v2/list.rb +8 -0
  234. data/lib/dcc/v2/location.rb +8 -0
  235. data/lib/dcc/v2/measurement_meta_data.rb +8 -0
  236. data/lib/dcc/v2/measurement_meta_data_list.rb +8 -0
  237. data/lib/dcc/v2/measurement_result.rb +8 -0
  238. data/lib/dcc/v2/measurement_result_list.rb +8 -0
  239. data/lib/dcc/v2/measuring_equipment.rb +8 -0
  240. data/lib/dcc/v2/measuring_equipment_list.rb +8 -0
  241. data/lib/dcc/v2/namespace.rb +8 -0
  242. data/lib/dcc/v2/quantity.rb +49 -0
  243. data/lib/dcc/v2/ref_type_definition.rb +11 -0
  244. data/lib/dcc/v2/ref_type_definition_list.rb +15 -0
  245. data/lib/dcc/v2/resp_person.rb +8 -0
  246. data/lib/dcc/v2/resp_person_list.rb +8 -0
  247. data/lib/dcc/v2/result.rb +8 -0
  248. data/lib/dcc/v2/result_list.rb +8 -0
  249. data/lib/dcc/v2/rich_content.rb +12 -0
  250. data/lib/dcc/v2/software.rb +8 -0
  251. data/lib/dcc/v2/software_list.rb +8 -0
  252. data/lib/dcc/v2/statement.rb +8 -0
  253. data/lib/dcc/v2/statement_list.rb +8 -0
  254. data/lib/dcc/v2/string_with_lang.rb +8 -0
  255. data/lib/dcc/v2/text.rb +8 -0
  256. data/lib/dcc/v2/used_method.rb +8 -0
  257. data/lib/dcc/v2/used_method_list.rb +8 -0
  258. data/lib/dcc/v2/xml_blob.rb +8 -0
  259. data/lib/dcc/v2.rb +84 -0
  260. data/lib/dcc/v3/administrative_data.rb +8 -0
  261. data/lib/dcc/v3/byte_data.rb +8 -0
  262. data/lib/dcc/v3/calibration_laboratory.rb +8 -0
  263. data/lib/dcc/v3/comment.rb +8 -0
  264. data/lib/dcc/v3/common_elements.rb +11 -0
  265. data/lib/dcc/v3/condition.rb +8 -0
  266. data/lib/dcc/v3/configuration.rb +17 -0
  267. data/lib/dcc/v3/contact.rb +8 -0
  268. data/lib/dcc/v3/contact_not_strict.rb +8 -0
  269. data/lib/dcc/v3/core_data.rb +8 -0
  270. data/lib/dcc/v3/data.rb +8 -0
  271. data/lib/dcc/v3/digital_calibration_certificate.rb +8 -0
  272. data/lib/dcc/v3/equipment_class.rb +8 -0
  273. data/lib/dcc/v3/formula.rb +8 -0
  274. data/lib/dcc/v3/hash_type.rb +8 -0
  275. data/lib/dcc/v3/identification.rb +8 -0
  276. data/lib/dcc/v3/identifications.rb +8 -0
  277. data/lib/dcc/v3/influence_condition.rb +7 -0
  278. data/lib/dcc/v3/influence_condition_list.rb +8 -0
  279. data/lib/dcc/v3/item.rb +8 -0
  280. data/lib/dcc/v3/item_list.rb +8 -0
  281. data/lib/dcc/v3/list.rb +8 -0
  282. data/lib/dcc/v3/location.rb +8 -0
  283. data/lib/dcc/v3/measurement_meta_data.rb +8 -0
  284. data/lib/dcc/v3/measurement_meta_data_list.rb +8 -0
  285. data/lib/dcc/v3/measurement_result.rb +8 -0
  286. data/lib/dcc/v3/measurement_result_list.rb +8 -0
  287. data/lib/dcc/v3/measuring_equipment.rb +8 -0
  288. data/lib/dcc/v3/measuring_equipment_list.rb +8 -0
  289. data/lib/dcc/v3/namespace.rb +7 -0
  290. data/lib/dcc/v3/quantity.rb +49 -0
  291. data/lib/dcc/v3/ref_type_definition.rb +8 -0
  292. data/lib/dcc/v3/ref_type_definition_list.rb +8 -0
  293. data/lib/dcc/v3/resp_person.rb +8 -0
  294. data/lib/dcc/v3/resp_person_list.rb +8 -0
  295. data/lib/dcc/v3/result.rb +8 -0
  296. data/lib/dcc/v3/result_list.rb +8 -0
  297. data/lib/dcc/v3/rich_content.rb +8 -0
  298. data/lib/dcc/v3/software.rb +8 -0
  299. data/lib/dcc/v3/software_list.rb +8 -0
  300. data/lib/dcc/v3/statement.rb +8 -0
  301. data/lib/dcc/v3/statement_list.rb +8 -0
  302. data/lib/dcc/v3/string_with_lang.rb +8 -0
  303. data/lib/dcc/v3/text.rb +8 -0
  304. data/lib/dcc/v3/used_method.rb +8 -0
  305. data/lib/dcc/v3/used_method_list.rb +8 -0
  306. data/lib/dcc/v3/xml_blob.rb +8 -0
  307. data/lib/dcc/v3.rb +111 -0
  308. data/lib/dcc/validate/business_rules.rb +121 -0
  309. data/lib/dcc/validate/issue.rb +56 -0
  310. data/lib/dcc/validate/result.rb +105 -0
  311. data/lib/dcc/validate/schematron/profile.rb +64 -0
  312. data/lib/dcc/validate/schematron/rule.rb +49 -0
  313. data/lib/dcc/validate/schematron/rules/administrative_data_completeness.rb +42 -0
  314. data/lib/dcc/validate/schematron/rules/base.rb +15 -0
  315. data/lib/dcc/validate/schematron/rules/date_range_check.rb +41 -0
  316. data/lib/dcc/validate/schematron/rules/id_refid_linking.rb +61 -0
  317. data/lib/dcc/validate/schematron/rules/influence_conditions_placement.rb +58 -0
  318. data/lib/dcc/validate/schematron/rules/iso_code_validation.rb +53 -0
  319. data/lib/dcc/validate/schematron/rules/language_code_dedup.rb +39 -0
  320. data/lib/dcc/validate/schematron/rules/non_si_declaration.rb +82 -0
  321. data/lib/dcc/validate/schematron/rules/release_format_check.rb +44 -0
  322. data/lib/dcc/validate/schematron/rules/schema_version_check.rb +31 -0
  323. data/lib/dcc/validate/schematron/rules/uncertainty_consistency.rb +58 -0
  324. data/lib/dcc/validate/schematron/rules/unit_format_check.rb +74 -0
  325. data/lib/dcc/validate/schematron/rules/used_methods_placement.rb +65 -0
  326. data/lib/dcc/validate/schematron/rules/used_software_placement.rb +43 -0
  327. data/lib/dcc/validate/schematron/rules/xml_list_spacing.rb +42 -0
  328. data/lib/dcc/validate/schematron/rules.rb +30 -0
  329. data/lib/dcc/validate/schematron.rb +22 -0
  330. data/lib/dcc/validate/severity.rb +39 -0
  331. data/lib/dcc/validate/xsd.rb +97 -0
  332. data/lib/dcc/validate.rb +15 -0
  333. data/lib/dcc/version.rb +5 -0
  334. data/lib/dcc/versioned_parser.rb +48 -0
  335. data/lib/dcc.rb +141 -0
  336. metadata +425 -0
@@ -0,0 +1,415 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ targetNamespace="https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/SI"
4
+ xmlns:si="https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/SI"
5
+ elementFormDefault="qualified">
6
+ <!--
7
+ XML-schema implementation of the unified SmartCom meta data format for the exchange of measurement data
8
+ in digital ICT applications.
9
+
10
+ ##################################################################################################
11
+ # STATUS: PROTOTYPE #
12
+ # The defined elements are supposed to be modified or deprecated in following versions. #
13
+ # Only the definition of si:real is considered as stable element in this version. #
14
+ ##################################################################################################
15
+
16
+ THIS SCHEMA IS A PROTOTYPE FOR THE INTERNAL USE IN EMPRI 17IND02 SMARTCOM PROJECT AND THE INTERNAL.
17
+ ANY DISTRIBUTION REQUIRES THE PERMISSION BY THE SMARTCOM CONSORTIUM (smartcom@ptb.de).
18
+
19
+ Contact: smartcom@ptb.de
20
+ Version: 1.0.1
21
+ Date: 2018-11-20
22
+ DOI: (not assigned to this version)
23
+
24
+ Acknowledgment
25
+
26
+ The development of the unified meta data format for the exchange of measurement data in ICT applications and
27
+ its implementation using XML is funded by the joint research project EMPIR 17IND02 (title: SmartCom).
28
+ The EMPIR initiative is co-funded by the European Union's Horizon 2020 research and innovation programme
29
+ and the EMPIR Participating States.
30
+ -->
31
+
32
+
33
+
34
+ <!--
35
+ ##############################################################################################
36
+ First part of the XML-schema: Elements for the SI-based exchange of measured quantities.
37
+ ##############################################################################################
38
+ -->
39
+ <!--
40
+ Meta data element definition for a real measurement quantity.
41
+
42
+ The following statements of a real quantity are possible.
43
+ [(m)-mandatory, (o)-optional]
44
+
45
+ 1. Basic measured quantity
46
+ (m) - element value
47
+ (m) - element unit
48
+ (o) - label
49
+ (o) - element dateTime
50
+
51
+ 2. Measured quantity with expanded measurement uncertainty
52
+ (m) - element value
53
+ (m) - element unit
54
+ (o) - label
55
+ (o) - element dateTime
56
+ (m) - element uncertainty
57
+ (m) - element coverageFactor
58
+ (m) - element coverageProbability
59
+ (o) - element distribution
60
+
61
+ 3. Measured quantity with uncertainty coverage interval (probabilistic symmetric or shortest)
62
+ (m) - element value
63
+ (m) - element unit
64
+ (o) - label
65
+ (o) - element dateTime
66
+ (m) - element intervalType
67
+ (m) - element intervalMin
68
+ (m) - element intervalMax
69
+ (m) - element coverageProbability
70
+ (o) - element distribution
71
+
72
+ 4. Measured quantity with standard uncertainty (under discussion for upcoming version)
73
+
74
+ Example:
75
+ <si:real>
76
+ <si:value>1</si:value>
77
+ <si:unit>\metre</si:unit>
78
+ </si:real>
79
+
80
+ Integration into external XML-schema:
81
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:si="https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/SI">
82
+ <xs:element name="individualElement">
83
+ <xs:complexType>
84
+ <xs:sequence>
85
+ <xs:element ref="si:real"/>
86
+ </xs:sequence>
87
+ </xs:complexType>
88
+ </xs:element>
89
+ </xs:element>
90
+ -->
91
+ <xs:element name="real">
92
+ <xs:complexType>
93
+
94
+ <xs:annotation>
95
+ <xs:documentation>
96
+ Implementation of a real valued quantity.
97
+ </xs:documentation>
98
+ </xs:annotation>
99
+
100
+ <xs:sequence>
101
+ <!-- mandatory information -->
102
+ <xs:element name="value" type="xs:string"/>
103
+ <xs:element name="unit" type="xs:string"/>
104
+
105
+ <!-- optional label -->
106
+ <xs:element name="label" type="xs:string" minOccurs="0"/>
107
+
108
+ <!-- optional timestamp -->
109
+ <xs:element name="dateTime" type="xs:string" minOccurs="0"/>
110
+
111
+ <!-- optional choice of uncertainty statements -->
112
+ <xs:choice minOccurs="0">
113
+
114
+ <!-- specific for statement of expanded measurement uncertainty -->
115
+ <xs:sequence>
116
+ <!-- mandatory information -->
117
+ <xs:element name="uncertainty" type="xs:string"/>
118
+ <xs:element name="coverageFactor" type="xs:string"/>
119
+ <xs:element name="coverageProbability" type="xs:string"/>
120
+ <!-- optional information about distribution -->
121
+ <xs:element name="distribution" type="xs:string" minOccurs="0"/>
122
+ </xs:sequence>
123
+
124
+ <!-- specific for statement of coverage interval measurement uncertainty (probabilistic symmetric or shortest interval) -->
125
+ <xs:sequence>
126
+ <!-- mandatory information -->
127
+ <xs:element name="intervalType" type="xs:string"/>
128
+ <xs:element name="intervalMin" type="xs:string"/>
129
+ <xs:element name="intervalMax" type="xs:string"/>
130
+ <xs:element name="coverageProbability" type="xs:string"/>
131
+ <!-- optional information about distribution -->
132
+ <xs:element name="distribution" type="xs:string" minOccurs="0"/>
133
+ </xs:sequence>
134
+
135
+ </xs:choice>
136
+
137
+ </xs:sequence>
138
+
139
+ </xs:complexType>
140
+ </xs:element>
141
+
142
+
143
+
144
+ <!-- CS Structure for real quantity values
145
+ The comma separated structure has the status of a proposal.
146
+ In this version, the usage of si:real is recommended.
147
+ It is planned to provide amendments and if required changes to
148
+ the hybrid structure in future versions of the meta data format.
149
+ -->
150
+ <xs:element name="realCS">
151
+ <xs:complexType>
152
+
153
+ <xs:annotation>
154
+ <xs:documentation>
155
+ Real comma separated values or anything else.
156
+ The comma separated structure has the status of a proposal.
157
+ In this version, the usage of si:real is recommended.
158
+ </xs:documentation>
159
+ </xs:annotation>
160
+
161
+ <xs:sequence>
162
+ <xs:element name="pattern" type="xs:string"/>
163
+ <xs:element name="values" type="xs:string"/>
164
+ </xs:sequence>
165
+
166
+ </xs:complexType>
167
+ </xs:element>
168
+
169
+
170
+
171
+
172
+ <!--
173
+ Meta data element definition for a list of basic measurement quantities.
174
+ It is planned to provide amendments and if required changes to the list structure in future
175
+ versions of the meta data format.
176
+
177
+ A list can provide the following vector structures:
178
+
179
+ 1: A list of si:real quantities
180
+ - optional global timestamp, global label and/or uncertainty statement
181
+
182
+
183
+ 2: A recursive list of si:list elements
184
+ - optional global timestamp and global label
185
+
186
+
187
+
188
+
189
+ Example (list with local units):
190
+ <si:list>
191
+ <si:real>
192
+ <si:value>1</si:value>
193
+ <si:unit>\metre</si:unit>
194
+ </si:real>
195
+ <si:real>
196
+ <si:value>1</si:value>
197
+ <si:unit>\metre</si:unit>
198
+ </si:real>
199
+ <si:real>
200
+ <si:value>1</si:value>
201
+ <si:unit>\metre</si:unit>
202
+ </si:real>
203
+ </si:list>
204
+
205
+
206
+ Integration into external XML-schema:
207
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:si="https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/SI">
208
+ <xs:element name="individualElement">
209
+ <xs:complexType>
210
+ <xs:sequence>
211
+ <xs:element ref="si:list"/>
212
+ </xs:sequence>
213
+ </xs:complexType>
214
+ </xs:element>
215
+ </xs:schema>
216
+ -->
217
+ <xs:element name="list">
218
+ <xs:complexType>
219
+
220
+ <xs:annotation>
221
+ <xs:documentation>
222
+ List of basic meta data structure element. Recursion with lists allowed.
223
+ </xs:documentation>
224
+ </xs:annotation>
225
+
226
+ <xs:sequence>
227
+
228
+ <!-- collection of measured quantities -->
229
+ <xs:choice>
230
+
231
+ <!--
232
+ ### Definition 1:
233
+ ### list of real elements with
234
+ ### - optional global timestamp and/or uncertainty statement
235
+ -->
236
+ <xs:sequence>
237
+
238
+ <!-- mandatory list of real elements -->
239
+ <xs:element ref="si:real" maxOccurs="unbounded"/>
240
+
241
+ <!-- optional global label -->
242
+ <xs:element name="label" type="xs:string" minOccurs="0"/>
243
+ <!-- optional global time statement -->
244
+ <xs:element name="dateTime" type="xs:dateTime" minOccurs="0"/>
245
+
246
+ <!-- optional global uncertainty statement -->
247
+ <xs:choice minOccurs="0">
248
+ <!-- specific for statement of expanded measurement uncertainty -->
249
+ <xs:sequence>
250
+ <!-- mandatory information -->
251
+ <xs:element name="uncertainty" type="si:uncertaintyValueType"/>
252
+ <xs:element name="coverageFactor" type="si:kValueType"/>
253
+ <xs:element name="coverageProbability" type="si:probabilityValueType"/>
254
+ <!-- optional information about distribution -->
255
+ <xs:element name="distribution" type="xs:string" minOccurs="0"/>
256
+ </xs:sequence>
257
+ <!-- specific for statement of coverage interval measurement uncertainty (probabilistic symmetric or shortest interval) -->
258
+ <xs:sequence>
259
+ <!-- mandatory information -->
260
+ <xs:element name="intervalType" type="si:intervalType"/>
261
+ <xs:element name="intervalMin" type="xs:decimal"/>
262
+ <xs:element name="intervalMax" type="xs:decimal"/>
263
+ <xs:element name="coverageProbability" type="si:probabilityValueType"/>
264
+ <!-- optional information about distribution -->
265
+ <xs:element name="distribution" type="xs:string" minOccurs="0"/>
266
+ </xs:sequence>
267
+ </xs:choice>
268
+ </xs:sequence>
269
+
270
+
271
+
272
+ <!--
273
+ ### Definition 2:
274
+ ### recursive list of lists with
275
+ ### - optional global timestamp and global label
276
+ -->
277
+ <!-- list of lists without global property statement -->
278
+ <xs:sequence>
279
+ <!-- mandatory statement of a list of quantities or lists -->
280
+ <xs:element ref="si:list" maxOccurs="unbounded"/>
281
+
282
+ <!-- optional global label -->
283
+ <xs:element name="label" type="xs:string" minOccurs="0"/>
284
+ <!-- optional global time statement -->
285
+ <xs:element name="dateTime" type="xs:dateTime" minOccurs="0"/>
286
+ </xs:sequence>
287
+
288
+ </xs:choice>
289
+
290
+ <!-- optional elements for global multivariate quantities (planned for future version) -->
291
+
292
+ </xs:sequence>
293
+ </xs:complexType>
294
+ </xs:element>
295
+
296
+
297
+
298
+ <!--
299
+ The hybrid element is a proposal for the definition of an adapter for arbitrary
300
+ measurement data to the SI unit based meta data format. It is planned to provide
301
+ amendments and if required changes to the hybrid structure in future versions of
302
+ the meta data format.
303
+
304
+ Example:
305
+ <si:hybrid>
306
+ <si:real>
307
+ <si:value>1</si:value>
308
+ <si:unit>\metre</si:unit>
309
+ </si:real>
310
+ <si:real>
311
+ <si:value>3.28084</si:value>
312
+ <si:unit>\feet</si:unit>
313
+ </si:real>
314
+ </si:hybrid>
315
+
316
+ Integration into external XML-schema:
317
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:si="https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/SI">
318
+ <xs:element name="individualElement">
319
+ <xs:complexType>
320
+ <xs:sequence>
321
+ <xs:element ref="si:hybrid"/>
322
+ </xs:sequence>
323
+ </xs:complexType>
324
+ </xs:element>
325
+ </xs:schema>
326
+ -->
327
+ <xs:element name="hybrid">
328
+ <xs:complexType>
329
+
330
+ <xs:annotation>
331
+ <xs:documentation>
332
+ Adapter for non-SI units and other XML formats.
333
+ </xs:documentation>
334
+ </xs:annotation>
335
+
336
+ <xs:sequence>
337
+
338
+ <!-- mandatory adapter for at least one SI quantity and additional (non-) SI quantities -->
339
+ <xs:choice>
340
+ <xs:element ref="si:real" minOccurs="1" maxOccurs="unbounded" />
341
+ </xs:choice>
342
+
343
+ <!-- optional adapter for any other user specific XML structure elements -->
344
+ <xs:any minOccurs="0" namespace="##other"/>
345
+ </xs:sequence>
346
+
347
+ </xs:complexType>
348
+ </xs:element>
349
+
350
+
351
+
352
+
353
+
354
+ <!--
355
+ ##############################################################################################
356
+ Second part of the XML-schema: internally used simple data types.
357
+ ##############################################################################################
358
+ -->
359
+
360
+ <xs:simpleType name="uncertaintyValueType">
361
+ <xs:annotation>
362
+ <xs:documentation>
363
+ Prototype: Implementation of meta data format type of uncertainty values.
364
+ A decimal value greater than 0.0 (IEEE 754 double precision).
365
+ Will be changed to a more general decimal representation.
366
+ </xs:documentation>
367
+ </xs:annotation>
368
+ <xs:restriction base="xs:double">
369
+ <xs:minInclusive value="0" />
370
+ </xs:restriction>
371
+ </xs:simpleType>
372
+
373
+ <xs:simpleType name="kValueType">
374
+ <xs:annotation>
375
+ <xs:documentation>
376
+ Prototype: Implementation of meta data format type of coverage factors.
377
+ A decimal value between 0.0 and 100.0 (IEEE 754 double precision).
378
+ Will be changed to a more general decimal representation.
379
+ </xs:documentation>
380
+ </xs:annotation>
381
+ <xs:restriction base="xs:double">
382
+ <xs:minExclusive value="0" />
383
+ <xs:maxExclusive value="100" />
384
+ </xs:restriction>
385
+ </xs:simpleType>
386
+
387
+ <xs:simpleType name="probabilityValueType">
388
+ <xs:annotation>
389
+ <xs:documentation>
390
+ Prototype: Implementation of meta data format type for probability statements.
391
+ A decimal value within 0.0 and 1.0 (IEEE 754 double precision).
392
+ Will be changed to a more general decimal representation.
393
+ </xs:documentation>
394
+ </xs:annotation>
395
+ <xs:restriction base="xs:double">
396
+ <xs:minInclusive value="0" />
397
+ <xs:maxInclusive value="1" />
398
+ </xs:restriction>
399
+ </xs:simpleType>
400
+
401
+ <xs:simpleType name="intervalType">
402
+ <xs:annotation>
403
+ <xs:documentation>
404
+ Implementation of meta data format enumeration for coverage interval types.
405
+ Either "shortest-interval" or "probabilistic-symmetric".
406
+ </xs:documentation>
407
+ </xs:annotation>
408
+ <xs:restriction base="xs:string">
409
+ <xs:enumeration value="shortest-interval"/>
410
+ <xs:enumeration value="probabilistic-symmetric"/>
411
+ </xs:restriction>
412
+ </xs:simpleType>
413
+
414
+
415
+ </xs:schema>