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,669 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema version="2.1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:dcc="https://ptb.de/dcc"
4
+ xmlns:si="https://ptb.de/si/smartcom/d-si/v1_0_1"
5
+ targetNamespace="https://ptb.de/dcc"
6
+ elementFormDefault="qualified">
7
+
8
+ <xs:import
9
+ namespace="https://ptb.de/si/smartcom/d-si/v1_0_1"
10
+ schemaLocation="../dsi/v1.0.1.xsd" />
11
+
12
+ <xs:annotation>
13
+ <xs:documentation>
14
+ Copyright (c) 2019 - Physikalisch-Technische Bundesanstalt, alle Rechte vorbehalten - all rights reserved
15
+
16
+ Diese Software wurde in der Physikalisch-Technischen Bundesanstalt entwickelt. Die Software wird unentgeltlich,
17
+ wie sie ist, auf eigenes Risiko des Nutzers zur Verfügung gestellt. Die PTB übernimmt keine Haftung,
18
+ egal aus welchem Rechtsgrund, für die Nutzung der Software durch Andere und garantiert weder ausdrücklich noch
19
+ konkludent für die Qualität, Sicherheit, Zuverlässigkeit, Tauglichkeit, oder andere Merkmale der Software.
20
+ Soweit gesetzlich zulässig lehnt die PTB jede Haftung für direkte Schäden, indirekte Schäden oder für
21
+ Folgeschäden ab, die durch die Nutzung der Software entstehen.
22
+
23
+ This software was developed at the Physikalisch-Technische Bundesanstalt (PTB). The software is made available
24
+ “as is“ free of cost at your own risk. PTB assumes no responsibility whatsoever for its use by other parties,
25
+ and makes no guarantees, expressed or implied, about its quality, reliability, safety, suitability or any other
26
+ characteristic. As far as legally permitted PTB refuses any liability for any direct, indirect or consequential
27
+ damage arising in connection with the use of this software.
28
+ </xs:documentation>
29
+ <xs:documentation>
30
+ Die Entwicklung von Mindestanforderungen für ein digitales Kalibrierzertifikat (DCC) wird teilweise finanziert
31
+ und unterstützt durch die Verbundprojekt EMPIR 17IND02 (Titel: SmartCom). Die EMPIR-Initiative wird von der
32
+ Europäischen Kommission kofinanziert. Forschungs- und Innovationsprogramm der Union Horizon 2020 und die
33
+ EMPIR-Teilnehmerstaaten.
34
+
35
+ The development of minimum requirements for a digital calibration certificate (DCC) is partially funded and
36
+ supported by the joint research project EMPIR 17IND02 (title: SmartCom). The EMPIR initiative is co-funded
37
+ by the European Union's Horizon 2020 research and innovation programme and the EMPIR Participating States.
38
+ </xs:documentation>
39
+ </xs:annotation>
40
+
41
+ <xs:element name="digitalCalibrationCertificate">
42
+
43
+ <xs:complexType>
44
+ <xs:sequence>
45
+ <xs:element name="administrativeData">
46
+ <xs:complexType>
47
+ <xs:all>
48
+ <xs:element name="dccSoftware" type="dcc:softwareParameter"/>
49
+ <xs:element name="coreData" type="dcc:coreDataParameter"/>
50
+ <xs:element name="items" type="dcc:itemParameter"/>
51
+ <xs:element name="calibrationLaboratory" type="dcc:calibrationLaboratoryParameter"/>
52
+ <xs:element name="respPersons" type="dcc:respPersonParameter"/>
53
+ <xs:element name="customer" type="dcc:contact"/>
54
+ <xs:element name="statements" type="dcc:statementParameter" minOccurs="0"/>
55
+ </xs:all>
56
+ </xs:complexType>
57
+ </xs:element>
58
+
59
+ <xs:element name="measurementResults">
60
+ <xs:complexType>
61
+ <xs:sequence>
62
+ <!--
63
+ For this elements is community input needed.
64
+ Talk to us: gemimeg@ptb.de
65
+
66
+ <xs:element name="samplingDate" type="xs:date" minOccurs="0"/>
67
+ <xs:element name="sampledMaterials" type="dcc:sampledMaterialParameter" minOccurs="0"/>
68
+
69
+ <xs:element name="externals" type="dcc:externalParameter" minOccurs="0"/>
70
+
71
+ <xs:element name="metrologicallyTraceable" type="dcc:metrologicallyTraceableParameter" minOccurs="0"/>
72
+
73
+
74
+ <xs:element name="calibrationLocations" type="dcc:calibrationLocationParameter" maxOccurs="unbounded"/>
75
+
76
+ -->
77
+
78
+ <xs:element name="measurementResult" maxOccurs="unbounded">
79
+ <xs:complexType>
80
+ <xs:sequence>
81
+ <xs:element name="usedMethods" type="dcc:usedMethodParameter" minOccurs="0"/>
82
+ <xs:element name="usedSoftware" type="dcc:softwareParameter" minOccurs="0"/>
83
+ <xs:element name="influenceConditions" type="dcc:influenceConditionParameter"/>
84
+ <xs:element name="results" type="dcc:resultParameter"/>
85
+ </xs:sequence>
86
+ </xs:complexType>
87
+ </xs:element>
88
+
89
+ </xs:sequence>
90
+ </xs:complexType>
91
+ </xs:element>
92
+
93
+ <xs:element name="comments" type="xs:string" minOccurs="0"/>
94
+
95
+ <xs:element name="document" type="dcc:byteDataBlock" minOccurs="0"/>
96
+
97
+ </xs:sequence>
98
+ </xs:complexType>
99
+ </xs:element>
100
+
101
+ <!-- #####################################################################################
102
+ Elements of the administrativeData part of the DCC
103
+ #####################################################################################-->
104
+ <xs:complexType name="softwareParameter">
105
+ <xs:annotation>
106
+ <xs:documentation>
107
+ Clear description of the software-version and the creator of the software used to create and process the
108
+ DCC
109
+ </xs:documentation>
110
+ </xs:annotation>
111
+ <xs:sequence>
112
+ <xs:element name="software" maxOccurs="unbounded">
113
+ <xs:complexType>
114
+ <xs:sequence>
115
+ <xs:element name="name" type="dcc:textBlock"/>
116
+ <xs:element name="release" type="xs:string"/>
117
+ <xs:element name="description" type="dcc:textBlock" minOccurs="0" maxOccurs="unbounded"/>
118
+ </xs:sequence>
119
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
120
+ </xs:complexType>
121
+ </xs:element>
122
+ </xs:sequence>
123
+ </xs:complexType>
124
+
125
+ <xs:complexType name="coreDataParameter">
126
+ <xs:annotation>
127
+ <xs:documentation>
128
+ Basic parameters of the Digital Calibration Certificate (DCC)
129
+ </xs:documentation>
130
+ </xs:annotation>
131
+ <xs:sequence>
132
+ <xs:element name="countryCodeISO3166_1" type="dcc:elementStringISO3166"/>
133
+ <xs:element name="usedLangCodeISO639_1" type="dcc:elementStringISO639" maxOccurs="unbounded"/>
134
+ <xs:element name="mandatoryLangCodeISO639_1" type="dcc:elementStringISO639" maxOccurs="unbounded"/>
135
+ <xs:element name="uniqueIdentifier" type="xs:string"/>
136
+ <xs:element name="receiptDate" type="xs:date" minOccurs="0"/>
137
+
138
+ <xs:element name="beginPerformanceDate" type="xs:date"/>
139
+ <xs:element name="endPerformanceDate" type="xs:date"/>
140
+
141
+ <xs:element name="previousReport" type="dcc:hash" minOccurs="0"/>
142
+ </xs:sequence>
143
+ </xs:complexType>
144
+
145
+ <xs:complexType name="itemParameter">
146
+ <xs:annotation>
147
+ <xs:documentation>
148
+ Clear description of the calibration items
149
+ </xs:documentation>
150
+ </xs:annotation>
151
+ <xs:sequence>
152
+ <xs:element name="name" type="dcc:textBlock" minOccurs="0"/>
153
+ <xs:element name="description" type="dcc:textBlock" minOccurs="0"/>
154
+ <xs:element name="owner" type="dcc:contact" minOccurs="0"/>
155
+
156
+ <xs:element name="item" maxOccurs="unbounded">
157
+ <xs:complexType>
158
+ <xs:sequence>
159
+ <xs:element name="name" type="dcc:textBlock"/>
160
+ <xs:element name="description" type="dcc:textBlock" maxOccurs="unbounded"/>
161
+ <xs:element name="descriptionData" type="dcc:byteDataBlock" minOccurs="0" maxOccurs="unbounded"/>
162
+
163
+ <xs:element name="manufacturer" type="dcc:contactNotStrict"/>
164
+ <xs:element name="model" type="xs:string" minOccurs="0"/>
165
+
166
+ <xs:element name="identifications">
167
+ <xs:complexType>
168
+ <xs:sequence>
169
+ <xs:element name="identification" maxOccurs="unbounded">
170
+ <xs:complexType>
171
+ <xs:sequence>
172
+ <xs:element name="issuer">
173
+ <xs:simpleType>
174
+ <xs:restriction base="xs:string">
175
+ <xs:enumeration value="manufacturer"/>
176
+ <xs:enumeration value="calibrationLaboratory"/>
177
+ <xs:enumeration value="customer"/>
178
+ <xs:enumeration value="owner"/>
179
+ <xs:enumeration value="other"/>
180
+ </xs:restriction>
181
+ </xs:simpleType>
182
+ </xs:element>
183
+ <xs:element name="value" type="xs:string"/>
184
+ <xs:element name="description" type="dcc:textBlock" minOccurs="0"/>
185
+ </xs:sequence>
186
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
187
+ </xs:complexType>
188
+ </xs:element>
189
+ </xs:sequence>
190
+ </xs:complexType>
191
+ </xs:element>
192
+ </xs:sequence>
193
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
194
+ </xs:complexType>
195
+ </xs:element>
196
+ </xs:sequence>
197
+ </xs:complexType>
198
+
199
+ <xs:complexType name="calibrationLaboratoryParameter">
200
+ <xs:annotation>
201
+ <xs:documentation>
202
+ Informations about the calibration laboratory
203
+ </xs:documentation>
204
+ </xs:annotation>
205
+ <xs:sequence>
206
+ <xs:element name="calibrationLaboratoryCode" type="xs:string" minOccurs="0"/>
207
+ <xs:element name="contact" type="dcc:contact" maxOccurs="unbounded"/>
208
+ </xs:sequence>
209
+ </xs:complexType>
210
+
211
+ <xs:complexType name="respPersonParameter">
212
+ <xs:annotation>
213
+ <xs:documentation>
214
+ List of responsible persons for the DCC
215
+ </xs:documentation>
216
+ </xs:annotation>
217
+ <xs:sequence>
218
+ <xs:element name="respPerson" maxOccurs="unbounded">
219
+ <xs:complexType>
220
+ <xs:sequence>
221
+ <xs:element name="person" type="xs:string"/>
222
+ <xs:element name="mainSigner" type="xs:boolean" minOccurs="0"/>
223
+ <xs:element name="cryptElectronicSeal" type="xs:boolean" minOccurs="0"/>
224
+ <xs:element name="cryptElectronicSignature" type="xs:boolean" minOccurs="0"/>
225
+ <xs:element name="cryptElectronicTimeStamp" type="xs:boolean" minOccurs="0"/>
226
+ <xs:element name="eMailPerson" type="xs:string" minOccurs="0"/>
227
+ <xs:element name="furtherInfoPerson" type="dcc:textBlock" minOccurs="0" maxOccurs="unbounded"/>
228
+ <xs:element name="location" type="dcc:location" minOccurs="0"/>
229
+ </xs:sequence>
230
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
231
+ </xs:complexType>
232
+ </xs:element>
233
+ </xs:sequence>
234
+ </xs:complexType>
235
+
236
+ <xs:complexType name="statementParameter">
237
+ <xs:annotation>
238
+ <xs:documentation>
239
+ Elements for the statements
240
+ </xs:documentation>
241
+ </xs:annotation>
242
+ <xs:sequence>
243
+ <xs:element name="statement" type="dcc:statementMetaDataParameter" maxOccurs="unbounded"/>
244
+ </xs:sequence>
245
+ </xs:complexType>
246
+
247
+ <!-- #####################################################################################
248
+ Elements of the measurementResult part of the DCC
249
+ ##################################################################################### -->
250
+
251
+ <!-- We need community input about the following:
252
+ Talk to us: gemimeg@ptb.de
253
+
254
+ <xs:complexType name="externalParameter">
255
+ <xs:annotation>
256
+ <xs:documentation>
257
+ Information about the external partners
258
+
259
+ Community input needed! Talk to us: gemimeg@ptb.de
260
+ </xs:documentation>
261
+ </xs:annotation>
262
+ <xs:sequence>
263
+ <xs:element name="external" type="dcc:contact" maxOccurs="unbounded"/>
264
+ </xs:sequence>
265
+ </xs:complexType>
266
+
267
+ <xs:complexType name="sampledMaterialParameter">
268
+ <xs:annotation>
269
+ <xs:documentation>
270
+ Information about the sampled material
271
+
272
+ Community input needed! Talk to us: gemimeg@ptb.de
273
+ </xs:documentation>
274
+ </xs:annotation>
275
+ <xs:sequence>
276
+ <xs:element name="sampledMaterial" maxOccurs="unbounded">
277
+ <xs:complexType>
278
+ <xs:sequence>
279
+ <xs:element name="plan" type="dcc:textBlock"/>
280
+ <xs:element name="method" type="dcc:textBlock"/>
281
+ <xs:element name="descriptionData" type="dcc:byteDataBlock" minOccurs="0" maxOccurs="unbounded"/>
282
+ <xs:element name="externalSampler" type="dcc:contact" minOccurs="0" maxOccurs="unbounded"/>
283
+ </xs:sequence>
284
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
285
+ </xs:complexType>
286
+ </xs:element>
287
+ </xs:sequence>
288
+ </xs:complexType>
289
+
290
+ <xs:complexType name="metrologicallyTraceableParameter">
291
+ <xs:annotation>
292
+ <xs:documentation>
293
+ Elements for metrologically traceable measurements
294
+
295
+ Community input needed! Talk to us: gemimeg@ptb.de
296
+
297
+ </xs:documentation>
298
+ </xs:annotation>
299
+ <xs:sequence>
300
+ <xs:element name="name" type="dcc:textBlock" />
301
+ <xs:element name="description" type="dcc:textBlock" />
302
+ <xs:element name="identifier" type="dcc:hash" />
303
+ </xs:sequence>
304
+ </xs:complexType>
305
+
306
+ -->
307
+
308
+ <xs:complexType name="usedMethodParameter">
309
+ <xs:annotation>
310
+ <xs:documentation>
311
+ Clear description of the used method
312
+ </xs:documentation>
313
+ </xs:annotation>
314
+ <xs:sequence>
315
+ <xs:element name="usedMethod" maxOccurs="unbounded">
316
+ <xs:complexType>
317
+ <xs:sequence>
318
+ <xs:element name="name" type="dcc:textBlock"/>
319
+ <xs:element name="description" type="dcc:textBlock" maxOccurs="unbounded"/>
320
+ <xs:element name="norm" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
321
+ </xs:sequence>
322
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
323
+ </xs:complexType>
324
+ </xs:element>
325
+ </xs:sequence>
326
+ </xs:complexType>
327
+
328
+ <xs:complexType name="influenceConditionParameter">
329
+ <xs:annotation>
330
+ <xs:documentation>
331
+ Elements for the conditions (e.g. environmental) under which the calibrations were
332
+ made that have an influence on the measurement results
333
+ </xs:documentation>
334
+ </xs:annotation>
335
+ <xs:sequence>
336
+ <xs:element name="influenceCondition" type="dcc:conditionBlock" maxOccurs="unbounded"/>
337
+ </xs:sequence>
338
+ </xs:complexType>
339
+
340
+ <xs:complexType name="calibrationLocationParameter">
341
+ <xs:annotation>
342
+ <xs:documentation>
343
+ Locations, where the calibration was done
344
+ </xs:documentation>
345
+ </xs:annotation>
346
+ <xs:sequence>
347
+ <xs:element name="calibrationLocation" maxOccurs="unbounded">
348
+ <xs:complexType>
349
+ <xs:sequence>
350
+ <xs:element name="calibrationLocationSite" type="dcc:textBlock"/>
351
+ <xs:element name="beginLocationCalDateTime" type="xs:dateTime" minOccurs="0"/>
352
+ <xs:element name="endLocationCalDateTime" type="xs:dateTime" minOccurs="0"/>
353
+ <xs:element name="location" type="dcc:location" minOccurs="0"/>
354
+ </xs:sequence>
355
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
356
+ </xs:complexType>
357
+ </xs:element>
358
+ </xs:sequence>
359
+
360
+ </xs:complexType>
361
+
362
+ <xs:complexType name="conditionBlock">
363
+ <xs:annotation>
364
+ <xs:documentation>
365
+ All necessary information for one part of a measurement
366
+ </xs:documentation>
367
+ </xs:annotation>
368
+ <xs:sequence>
369
+ <xs:element name="name" type="dcc:textBlock"/>
370
+ <xs:element name="description" type="dcc:textBlock" minOccurs="0"/>
371
+ <xs:element name="state" minOccurs="0">
372
+ <xs:simpleType>
373
+ <xs:restriction base="xs:string">
374
+ <xs:enumeration value="beforeAdjustment"/>
375
+ <xs:enumeration value="afterAdjustment"/>
376
+ <xs:enumeration value="beforeRepair"/>
377
+ <xs:enumeration value="afterRepair"/>
378
+ </xs:restriction>
379
+ </xs:simpleType>
380
+ </xs:element>
381
+ <xs:element name="data" type="dcc:dataBlock"/>
382
+ </xs:sequence>
383
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
384
+ </xs:complexType>
385
+
386
+ <xs:complexType name="resultBlock">
387
+ <xs:annotation>
388
+ <xs:documentation>
389
+ The result itself
390
+ </xs:documentation>
391
+ </xs:annotation>
392
+ <xs:sequence>
393
+ <xs:element name="name" type="dcc:textBlock"/>
394
+ <xs:element name="description" type="dcc:textBlock" minOccurs="0"/>
395
+ <xs:element name="data" type="dcc:dataBlock"/>
396
+ </xs:sequence>
397
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
398
+ </xs:complexType>
399
+
400
+ <xs:complexType name="resultParameter">
401
+ <xs:annotation>
402
+ <xs:documentation>
403
+ Elements for the measurement results
404
+ </xs:documentation>
405
+ </xs:annotation>
406
+ <xs:sequence>
407
+ <xs:element name="result" type="dcc:resultBlock" maxOccurs="unbounded"/>
408
+ </xs:sequence>
409
+ </xs:complexType>
410
+
411
+ <xs:complexType name="dataBlock">
412
+ <xs:annotation>
413
+ <xs:documentation>
414
+ In the Element "outcome", any of the elements
415
+ "text", "formula", "byteData", "chart", "image", "data" and "xml"
416
+ can be used multiple times in an arbitrary order. The usage of each element
417
+ is optional. At least one of the elements must be provided.
418
+ </xs:documentation>
419
+ </xs:annotation>
420
+ <xs:choice maxOccurs="unbounded">
421
+ <xs:element name="text" type="dcc:textBlock"/>
422
+ <xs:element name="formula" type="dcc:formulaBlock"/>
423
+ <xs:element name="byteData" type="dcc:byteDataBlock"/>
424
+ <xs:element name="xml" type="dcc:xmlBlock"/>
425
+ <xs:element name="quantity" type="dcc:quantity"/>
426
+ <xs:element name="list" type="dcc:list"/>
427
+ </xs:choice>
428
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
429
+ </xs:complexType>
430
+
431
+ <!-- #####################################################################################
432
+ Elements for the specification of measurement data (quantities) in the DCC
433
+ (XMl Schema for the secure exchange of measurement data in ICT applications)
434
+ #####################################################################################-->
435
+
436
+ <xs:complexType name="quantity">
437
+ <xs:annotation>
438
+ <xs:documentation>
439
+ Basic element for the statement of measurement values in a DCC.
440
+ The measurement value, its unit and uncertainty are defined by type 'si:real'.
441
+ The 'unit' must be defined in the SI-system (siunitx format).
442
+ Additional information can be made according to MRA, Ilac and external
443
+ measurements in the 'measurementMetaData' element.
444
+ In addition, the 'quantity' can contain a comma separated list of independent real quantities
445
+ ('si:realCS').
446
+ The 'quantity' has an optional 'name' element and it can have a unique ID.
447
+ The 'name' element can be repeated with different languages.
448
+ </xs:documentation>
449
+ </xs:annotation>
450
+ <xs:sequence>
451
+ <xs:element name="name" type="dcc:textBlock" minOccurs="0"/>
452
+ <xs:choice>
453
+ <xs:element name="noQuantity" type="dcc:textBlock" />
454
+ <xs:element ref="si:real"/>
455
+ <xs:element ref="si:realCS"/>
456
+ <xs:element ref="si:list"/>
457
+ <xs:element ref="si:hybrid"/>
458
+ </xs:choice>
459
+ <xs:element name="usedMethods" type="dcc:usedMethodParameter" minOccurs="0"/>
460
+ <xs:element name="usedSoftware" type="dcc:softwareParameter" minOccurs="0"/>
461
+ <xs:element name="influenceConditions" type="dcc:influenceConditionParameter" minOccurs="0"/>
462
+ <xs:element name="measurementMetaData" type="dcc:measurementMetaDataParameter" minOccurs="0"/>
463
+ </xs:sequence>
464
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
465
+ </xs:complexType>
466
+
467
+ <xs:complexType name="list">
468
+ <xs:annotation>
469
+ <xs:documentation>
470
+ The 'list' element allows to define a collection of measurement results
471
+ which are subject to structures with integrity. Basic structures are
472
+ vector quantities. A recursive usage of 'list' allows the creation of
473
+ matrix and tensor structures as well as structures of higher dimension. The 'list'
474
+ may also be used to give measurement results in combination with some
475
+ ambient conditions at the measurement.
476
+ In this version of the data format, the 'list' supports a global definition of uncertainties
477
+ that are binding for all quantities inside the 'list' element.
478
+ For future versions it is planned to add uncertainty elements for vector quantities
479
+ (e.g. covariance matrix).
480
+ The 'list' element can have a unique ID and several name elements.
481
+ </xs:documentation>
482
+ </xs:annotation>
483
+ <xs:sequence>
484
+ <xs:element name="name" type="dcc:textBlock" minOccurs="0"/>
485
+ <xs:element name="dateTime" type="xs:dateTime" minOccurs="0"/>
486
+ <xs:choice>
487
+ <xs:element name="list" type="dcc:list" maxOccurs="unbounded"/>
488
+ <xs:element name="quantity" type="dcc:quantity" maxOccurs="unbounded"/>
489
+ </xs:choice>
490
+ <xs:element name="usedMethods" type="dcc:usedMethodParameter" minOccurs="0"/>
491
+ <xs:element name="usedSoftware" type="dcc:softwareParameter" minOccurs="0"/>
492
+ <xs:element name="influenceConditions" type="dcc:influenceConditionParameter" minOccurs="0"/>
493
+ <xs:element name="measurementMetaData" type="dcc:measurementMetaDataParameter" minOccurs="0"/>
494
+ </xs:sequence>
495
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
496
+ </xs:complexType>
497
+
498
+
499
+ <xs:complexType name="measurementMetaDataParameter">
500
+ <xs:annotation>
501
+ <xs:documentation>
502
+ TODO: noch anpassen an neue Struktur
503
+ The measurement meta data comprises optional information that lead to a measurement result.
504
+ The sub-elements should reference the specific and detailed information in the administrative part.
505
+ Each element is optional and the user should only provide the elements that are relevant
506
+ for the measurement result.
507
+ </xs:documentation>
508
+ </xs:annotation>
509
+ <xs:sequence>
510
+ <xs:element name="metaData" type="dcc:statementMetaDataParameter" maxOccurs="unbounded"/>
511
+ </xs:sequence>
512
+ </xs:complexType>
513
+
514
+
515
+ <!-- #####################################################################################
516
+ complexTypes for DCC
517
+ #####################################################################################-->
518
+
519
+ <xs:complexType name="statementMetaDataParameter">
520
+ <xs:sequence>
521
+ <xs:element name="countryCodeISO3166_1" type="dcc:elementStringISO3166" minOccurs="0" maxOccurs="unbounded"/>
522
+ <xs:element name="convention" type="xs:string" minOccurs="0"/>
523
+ <xs:element name="traceable" type="xs:boolean" minOccurs="0"/>
524
+ <xs:element name="norm" type="xs:string" minOccurs="0"/>
525
+ <xs:element name="reference" type="xs:string" minOccurs="0"/>
526
+ <xs:element name="declaration" type="dcc:textBlock" minOccurs="0"/>
527
+ <xs:element name="valid" type="xs:boolean" minOccurs="0"/>
528
+ <xs:element name="refId" type="xs:IDREF" minOccurs="0"/>
529
+ <xs:element name="date" type="xs:date" minOccurs="0"/>
530
+ <xs:element name="period" type="xs:duration" minOccurs="0"/>
531
+ </xs:sequence>
532
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
533
+ </xs:complexType>
534
+
535
+ <xs:simpleType name="elementStringISO3166">
536
+ <xs:restriction base="xs:string">
537
+ <xs:pattern value="[A-Z]{2}"/>
538
+ </xs:restriction>
539
+ </xs:simpleType>
540
+
541
+ <xs:simpleType name="elementStringISO639">
542
+ <xs:restriction base="xs:string">
543
+ <xs:pattern value="[a-z]{2}"/>
544
+ </xs:restriction>
545
+ </xs:simpleType>
546
+
547
+ <xs:complexType name="elementStringWithLang">
548
+ <xs:simpleContent>
549
+ <xs:extension base="xs:string">
550
+ <xs:attribute name="lang" type="dcc:elementStringISO639" use="optional"/>
551
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
552
+ </xs:extension>
553
+ </xs:simpleContent>
554
+ </xs:complexType>
555
+
556
+ <xs:complexType name="location">
557
+ <xs:choice maxOccurs="unbounded">
558
+ <xs:element name="further" type="dcc:textBlock"/>
559
+ <xs:element name="street" type="xs:string"/>
560
+ <xs:element name="streetNo" type="xs:string"/>
561
+ <xs:element name="postOfficeBox" type="xs:string"/>
562
+ <xs:element name="postCode" type="xs:string"/>
563
+ <xs:element name="city" type="xs:string"/>
564
+ <xs:element name="state" type="xs:string"/>
565
+ <xs:element name="countryCode" type="dcc:elementStringISO3166"/>
566
+ <xs:element name="descriptionData" type="dcc:byteDataBlock"/>
567
+ </xs:choice>
568
+ </xs:complexType>
569
+
570
+ <xs:complexType name="contact">
571
+ <xs:sequence>
572
+ <xs:element name="name" type="dcc:textBlock"/>
573
+ <xs:element name="eMail" type="xs:string"/>
574
+ <xs:element name="location" type="dcc:location"/>
575
+ </xs:sequence>
576
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
577
+ </xs:complexType>
578
+
579
+ <xs:complexType name="contactNotStrict">
580
+ <xs:sequence>
581
+ <xs:element name="name" type="dcc:textBlock"/>
582
+ <xs:element name="eMail" type="xs:string" minOccurs="0"/>
583
+ <xs:element name="location" type="dcc:location" minOccurs="0"/>
584
+ </xs:sequence>
585
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
586
+ </xs:complexType>
587
+
588
+ <xs:complexType name="hash">
589
+ <xs:sequence>
590
+ <xs:element name="reference" type="dcc:textBlock"/>
591
+ <xs:element name="referenceID" type="xs:string"/>
592
+ <xs:element name="procedure" type="xs:string"/>
593
+ <xs:element name="value" type="xs:string"/>
594
+ <xs:element name="linkedReport" type="dcc:hash" minOccurs="0"/>
595
+ </xs:sequence>
596
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
597
+ </xs:complexType>
598
+
599
+ <xs:complexType name="textBlock">
600
+ <xs:annotation>
601
+ <xs:documentation>
602
+ The textBlock defines the type for writing text in the DCC.
603
+ In this block, the element content can be used many times with different language definition (attribute
604
+ lang).
605
+ The optional attribute ID is for a unique ID.
606
+ </xs:documentation>
607
+ </xs:annotation>
608
+ <xs:sequence>
609
+ <xs:element name="content" type="dcc:elementStringWithLang" maxOccurs="unbounded"/>
610
+ </xs:sequence>
611
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
612
+ </xs:complexType>
613
+
614
+ <xs:complexType name="byteDataBlock">
615
+ <xs:annotation>
616
+ <xs:documentation>
617
+ The byteDataBlock defines a type which allows to add
618
+ binary encoded files to the measurement result section.
619
+ It is a good practise to use the Base64
620
+ Data Encodings standard (see RFC 4648).
621
+ The file must be encoded as base64Binary, see RFC 4648.
622
+ Examples for the content are image files or ZIP archives.
623
+ The element fileName gives the name of the original file.
624
+ Element mimeType is the underlying file type (e.g. zip, jpeg, png).
625
+ Element data contains the base64Binary encoded file.
626
+ The optional attribute ID is for a unique ID of this data block.
627
+ </xs:documentation>
628
+ </xs:annotation>
629
+ <xs:sequence>
630
+ <xs:element name="name" type="dcc:textBlock"/>
631
+ <xs:element name="description" type="dcc:textBlock"/>
632
+ <xs:element name="fileName" type="xs:string"/>
633
+ <xs:element name="mimeType" type="xs:string"/>
634
+ <xs:element name="data" type="xs:base64Binary"/>
635
+ </xs:sequence>
636
+ <xs:attribute name="id" type="xs:ID" use="optional"/><!--92200_A_I-->
637
+ </xs:complexType>
638
+
639
+ <xs:complexType name="formulaBlock">
640
+ <xs:annotation>
641
+ <xs:documentation>
642
+ This data block is used to add formulas and equations to the measurement result section of the DCC.
643
+ A formula is expected to by written by means of the LaTeX ams math formalism. All units in the
644
+ LaTeX expression must follow the siunitx LaTeX standard.
645
+ The formula is written to the siunitx element.
646
+ The optional attribute ID is for a unique ID of this block.
647
+ </xs:documentation>
648
+ </xs:annotation>
649
+ <xs:sequence>
650
+ <xs:element name="siunitx" type="xs:string"/>
651
+ </xs:sequence>
652
+ <xs:attribute name="lang" type="xs:string" use="optional"/>
653
+ <xs:attribute name="id" type="xs:ID" use="optional"/>
654
+ </xs:complexType>
655
+
656
+ <xs:complexType name="xmlBlock">
657
+ <xs:annotation>
658
+ <xs:documentation>
659
+ This data block is used to add user or application specific XML content to the
660
+ measurement result section of the DCC.
661
+ The optional attribute ID is for a unique ID of this block.
662
+ </xs:documentation>
663
+ </xs:annotation>
664
+ <xs:sequence>
665
+ <xs:any namespace="##other" minOccurs="0"/>
666
+ </xs:sequence>
667
+ </xs:complexType>
668
+
669
+ </xs:schema>