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