dsp-tools 0.9.13__py3-none-any.whl → 18.3.0.post13__py3-none-any.whl

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 (348) hide show
  1. dsp_tools/__init__.py +5 -0
  2. dsp_tools/cli/args.py +47 -0
  3. dsp_tools/cli/call_action.py +85 -0
  4. dsp_tools/cli/call_action_files_only.py +101 -0
  5. dsp_tools/cli/call_action_with_network.py +207 -0
  6. dsp_tools/cli/create_parsers.py +479 -0
  7. dsp_tools/cli/entry_point.py +322 -0
  8. dsp_tools/cli/utils.py +87 -0
  9. dsp_tools/clients/CLAUDE.md +420 -0
  10. dsp_tools/clients/authentication_client.py +14 -0
  11. dsp_tools/clients/authentication_client_live.py +66 -0
  12. dsp_tools/clients/connection.py +35 -0
  13. dsp_tools/clients/connection_live.py +233 -0
  14. dsp_tools/clients/fuseki_metrics.py +60 -0
  15. dsp_tools/clients/group_user_clients.py +35 -0
  16. dsp_tools/clients/group_user_clients_live.py +181 -0
  17. dsp_tools/clients/legal_info_client.py +23 -0
  18. dsp_tools/clients/legal_info_client_live.py +132 -0
  19. dsp_tools/clients/list_client.py +49 -0
  20. dsp_tools/clients/list_client_live.py +166 -0
  21. dsp_tools/clients/metadata_client.py +24 -0
  22. dsp_tools/clients/metadata_client_live.py +47 -0
  23. dsp_tools/clients/ontology_clients.py +49 -0
  24. dsp_tools/clients/ontology_create_client_live.py +166 -0
  25. dsp_tools/clients/ontology_get_client_live.py +80 -0
  26. dsp_tools/clients/permissions_client.py +68 -0
  27. dsp_tools/clients/project_client.py +16 -0
  28. dsp_tools/clients/project_client_live.py +66 -0
  29. dsp_tools/commands/create/communicate_problems.py +24 -0
  30. dsp_tools/commands/create/create.py +134 -0
  31. dsp_tools/commands/create/create_on_server/cardinalities.py +111 -0
  32. dsp_tools/commands/create/create_on_server/classes.py +99 -0
  33. dsp_tools/commands/create/create_on_server/complete_ontologies.py +116 -0
  34. dsp_tools/commands/create/create_on_server/default_permissions.py +134 -0
  35. dsp_tools/commands/create/create_on_server/group_users.py +165 -0
  36. dsp_tools/commands/create/create_on_server/lists.py +163 -0
  37. dsp_tools/commands/create/create_on_server/mappers.py +12 -0
  38. dsp_tools/commands/create/create_on_server/onto_utils.py +74 -0
  39. dsp_tools/commands/create/create_on_server/ontology.py +52 -0
  40. dsp_tools/commands/create/create_on_server/project.py +68 -0
  41. dsp_tools/commands/create/create_on_server/properties.py +119 -0
  42. dsp_tools/commands/create/exceptions.py +29 -0
  43. dsp_tools/commands/create/lists_only.py +66 -0
  44. dsp_tools/commands/create/models/create_problems.py +87 -0
  45. dsp_tools/commands/create/models/parsed_ontology.py +88 -0
  46. dsp_tools/commands/create/models/parsed_project.py +81 -0
  47. dsp_tools/commands/create/models/rdf_ontology.py +12 -0
  48. dsp_tools/commands/create/models/server_project_info.py +100 -0
  49. dsp_tools/commands/create/parsing/parse_lists.py +45 -0
  50. dsp_tools/commands/create/parsing/parse_ontology.py +243 -0
  51. dsp_tools/commands/create/parsing/parse_project.py +149 -0
  52. dsp_tools/commands/create/parsing/parsing_utils.py +40 -0
  53. dsp_tools/commands/create/project_validate.py +595 -0
  54. dsp_tools/commands/create/serialisation/ontology.py +119 -0
  55. dsp_tools/commands/create/serialisation/project.py +44 -0
  56. dsp_tools/commands/excel2json/CLAUDE.md +101 -0
  57. dsp_tools/commands/excel2json/json_header.py +321 -0
  58. dsp_tools/commands/excel2json/lists/__init__.py +0 -0
  59. dsp_tools/commands/excel2json/lists/compliance_checks.py +292 -0
  60. dsp_tools/commands/excel2json/lists/make_lists.py +247 -0
  61. dsp_tools/commands/excel2json/lists/models/__init__.py +0 -0
  62. dsp_tools/commands/excel2json/lists/models/deserialise.py +30 -0
  63. dsp_tools/commands/excel2json/lists/models/input_error.py +216 -0
  64. dsp_tools/commands/excel2json/lists/models/serialise.py +57 -0
  65. dsp_tools/commands/excel2json/lists/utils.py +81 -0
  66. dsp_tools/commands/excel2json/models/__init__.py +0 -0
  67. dsp_tools/commands/excel2json/models/input_error.py +416 -0
  68. dsp_tools/commands/excel2json/models/json_header.py +175 -0
  69. dsp_tools/commands/excel2json/models/list_node_name.py +16 -0
  70. dsp_tools/commands/excel2json/models/ontology.py +76 -0
  71. dsp_tools/commands/excel2json/old_lists.py +328 -0
  72. dsp_tools/commands/excel2json/project.py +280 -0
  73. dsp_tools/commands/excel2json/properties.py +370 -0
  74. dsp_tools/commands/excel2json/resources.py +336 -0
  75. dsp_tools/commands/excel2json/utils.py +352 -0
  76. dsp_tools/commands/excel2xml/__init__.py +7 -0
  77. dsp_tools/commands/excel2xml/excel2xml_cli.py +523 -0
  78. dsp_tools/commands/excel2xml/excel2xml_lib.py +1953 -0
  79. dsp_tools/commands/excel2xml/propertyelement.py +47 -0
  80. dsp_tools/commands/get/__init__.py +0 -0
  81. dsp_tools/commands/get/get.py +166 -0
  82. dsp_tools/commands/get/get_permissions.py +257 -0
  83. dsp_tools/commands/get/get_permissions_legacy.py +89 -0
  84. dsp_tools/commands/get/legacy_models/__init__.py +0 -0
  85. dsp_tools/commands/get/legacy_models/context.py +318 -0
  86. dsp_tools/commands/get/legacy_models/group.py +241 -0
  87. dsp_tools/commands/get/legacy_models/helpers.py +47 -0
  88. dsp_tools/commands/get/legacy_models/listnode.py +390 -0
  89. dsp_tools/commands/get/legacy_models/model.py +12 -0
  90. dsp_tools/commands/get/legacy_models/ontology.py +324 -0
  91. dsp_tools/commands/get/legacy_models/project.py +366 -0
  92. dsp_tools/commands/get/legacy_models/propertyclass.py +417 -0
  93. dsp_tools/commands/get/legacy_models/resourceclass.py +676 -0
  94. dsp_tools/commands/get/legacy_models/user.py +438 -0
  95. dsp_tools/commands/get/models/__init__.py +0 -0
  96. dsp_tools/commands/get/models/permissions_models.py +10 -0
  97. dsp_tools/commands/id2iri.py +258 -0
  98. dsp_tools/commands/ingest_xmlupload/__init__.py +0 -0
  99. dsp_tools/commands/ingest_xmlupload/bulk_ingest_client.py +178 -0
  100. dsp_tools/commands/ingest_xmlupload/create_resources/__init__.py +0 -0
  101. dsp_tools/commands/ingest_xmlupload/create_resources/apply_ingest_id.py +69 -0
  102. dsp_tools/commands/ingest_xmlupload/create_resources/upload_xml.py +166 -0
  103. dsp_tools/commands/ingest_xmlupload/create_resources/user_information.py +121 -0
  104. dsp_tools/commands/ingest_xmlupload/ingest_files/__init__.py +0 -0
  105. dsp_tools/commands/ingest_xmlupload/ingest_files/ingest_files.py +64 -0
  106. dsp_tools/commands/ingest_xmlupload/upload_files/__init__.py +0 -0
  107. dsp_tools/commands/ingest_xmlupload/upload_files/filechecker.py +20 -0
  108. dsp_tools/commands/ingest_xmlupload/upload_files/input_error.py +57 -0
  109. dsp_tools/commands/ingest_xmlupload/upload_files/upload_failures.py +66 -0
  110. dsp_tools/commands/ingest_xmlupload/upload_files/upload_files.py +67 -0
  111. dsp_tools/commands/resume_xmlupload/__init__.py +0 -0
  112. dsp_tools/commands/resume_xmlupload/resume_xmlupload.py +96 -0
  113. dsp_tools/commands/start_stack.py +428 -0
  114. dsp_tools/commands/update_legal/CLAUDE.md +344 -0
  115. dsp_tools/commands/update_legal/__init__.py +0 -0
  116. dsp_tools/commands/update_legal/core.py +182 -0
  117. dsp_tools/commands/update_legal/csv_operations.py +135 -0
  118. dsp_tools/commands/update_legal/models.py +87 -0
  119. dsp_tools/commands/update_legal/xml_operations.py +247 -0
  120. dsp_tools/commands/validate_data/CLAUDE.md +159 -0
  121. dsp_tools/commands/validate_data/__init__.py +0 -0
  122. dsp_tools/commands/validate_data/constants.py +59 -0
  123. dsp_tools/commands/validate_data/mappers.py +143 -0
  124. dsp_tools/commands/validate_data/models/__init__.py +0 -0
  125. dsp_tools/commands/validate_data/models/api_responses.py +45 -0
  126. dsp_tools/commands/validate_data/models/input_problems.py +119 -0
  127. dsp_tools/commands/validate_data/models/rdf_like_data.py +117 -0
  128. dsp_tools/commands/validate_data/models/validation.py +106 -0
  129. dsp_tools/commands/validate_data/prepare_data/__init__.py +0 -0
  130. dsp_tools/commands/validate_data/prepare_data/get_rdf_like_data.py +296 -0
  131. dsp_tools/commands/validate_data/prepare_data/make_data_graph.py +91 -0
  132. dsp_tools/commands/validate_data/prepare_data/prepare_data.py +184 -0
  133. dsp_tools/commands/validate_data/process_validation_report/__init__.py +0 -0
  134. dsp_tools/commands/validate_data/process_validation_report/get_user_validation_message.py +358 -0
  135. dsp_tools/commands/validate_data/process_validation_report/query_validation_result.py +507 -0
  136. dsp_tools/commands/validate_data/process_validation_report/reformat_validation_results.py +150 -0
  137. dsp_tools/commands/validate_data/shacl_cli_validator.py +70 -0
  138. dsp_tools/commands/validate_data/sparql/__init__.py +0 -0
  139. dsp_tools/commands/validate_data/sparql/cardinality_shacl.py +209 -0
  140. dsp_tools/commands/validate_data/sparql/construct_shacl.py +92 -0
  141. dsp_tools/commands/validate_data/sparql/legal_info_shacl.py +36 -0
  142. dsp_tools/commands/validate_data/sparql/value_shacl.py +357 -0
  143. dsp_tools/commands/validate_data/utils.py +59 -0
  144. dsp_tools/commands/validate_data/validate_data.py +283 -0
  145. dsp_tools/commands/validate_data/validation/__init__.py +0 -0
  146. dsp_tools/commands/validate_data/validation/check_duplicate_files.py +55 -0
  147. dsp_tools/commands/validate_data/validation/check_for_unknown_classes.py +67 -0
  148. dsp_tools/commands/validate_data/validation/get_validation_report.py +94 -0
  149. dsp_tools/commands/validate_data/validation/validate_ontology.py +107 -0
  150. dsp_tools/commands/xmlupload/CLAUDE.md +292 -0
  151. dsp_tools/commands/xmlupload/__init__.py +0 -0
  152. dsp_tools/commands/xmlupload/iri_resolver.py +21 -0
  153. dsp_tools/commands/xmlupload/make_rdf_graph/__init__.py +0 -0
  154. dsp_tools/commands/xmlupload/make_rdf_graph/constants.py +63 -0
  155. dsp_tools/commands/xmlupload/make_rdf_graph/jsonld_utils.py +44 -0
  156. dsp_tools/commands/xmlupload/make_rdf_graph/make_file_value.py +77 -0
  157. dsp_tools/commands/xmlupload/make_rdf_graph/make_resource_and_values.py +114 -0
  158. dsp_tools/commands/xmlupload/make_rdf_graph/make_values.py +262 -0
  159. dsp_tools/commands/xmlupload/models/__init__.py +0 -0
  160. dsp_tools/commands/xmlupload/models/bitstream_info.py +18 -0
  161. dsp_tools/commands/xmlupload/models/formatted_text_value.py +10 -0
  162. dsp_tools/commands/xmlupload/models/ingest.py +143 -0
  163. dsp_tools/commands/xmlupload/models/input_problems.py +58 -0
  164. dsp_tools/commands/xmlupload/models/lookup_models.py +21 -0
  165. dsp_tools/commands/xmlupload/models/permission.py +45 -0
  166. dsp_tools/commands/xmlupload/models/permissions_parsed.py +93 -0
  167. dsp_tools/commands/xmlupload/models/processed/__init__.py +0 -0
  168. dsp_tools/commands/xmlupload/models/processed/file_values.py +29 -0
  169. dsp_tools/commands/xmlupload/models/processed/res.py +27 -0
  170. dsp_tools/commands/xmlupload/models/processed/values.py +101 -0
  171. dsp_tools/commands/xmlupload/models/rdf_models.py +26 -0
  172. dsp_tools/commands/xmlupload/models/upload_clients.py +14 -0
  173. dsp_tools/commands/xmlupload/models/upload_state.py +20 -0
  174. dsp_tools/commands/xmlupload/prepare_xml_input/__init__.py +0 -0
  175. dsp_tools/commands/xmlupload/prepare_xml_input/ark2iri.py +55 -0
  176. dsp_tools/commands/xmlupload/prepare_xml_input/get_processed_resources.py +252 -0
  177. dsp_tools/commands/xmlupload/prepare_xml_input/iiif_uri_validator.py +50 -0
  178. dsp_tools/commands/xmlupload/prepare_xml_input/list_client.py +120 -0
  179. dsp_tools/commands/xmlupload/prepare_xml_input/prepare_xml_input.py +67 -0
  180. dsp_tools/commands/xmlupload/prepare_xml_input/read_validate_xml_file.py +58 -0
  181. dsp_tools/commands/xmlupload/prepare_xml_input/transform_input_values.py +118 -0
  182. dsp_tools/commands/xmlupload/resource_create_client.py +25 -0
  183. dsp_tools/commands/xmlupload/richtext_id2iri.py +37 -0
  184. dsp_tools/commands/xmlupload/stash/__init__.py +0 -0
  185. dsp_tools/commands/xmlupload/stash/analyse_circular_reference_graph.py +236 -0
  186. dsp_tools/commands/xmlupload/stash/create_info_for_graph.py +53 -0
  187. dsp_tools/commands/xmlupload/stash/graph_models.py +87 -0
  188. dsp_tools/commands/xmlupload/stash/stash_circular_references.py +68 -0
  189. dsp_tools/commands/xmlupload/stash/stash_models.py +109 -0
  190. dsp_tools/commands/xmlupload/stash/upload_stashed_resptr_props.py +106 -0
  191. dsp_tools/commands/xmlupload/stash/upload_stashed_xml_texts.py +196 -0
  192. dsp_tools/commands/xmlupload/upload_config.py +76 -0
  193. dsp_tools/commands/xmlupload/write_diagnostic_info.py +27 -0
  194. dsp_tools/commands/xmlupload/xmlupload.py +516 -0
  195. dsp_tools/config/__init__.py +0 -0
  196. dsp_tools/config/logger_config.py +69 -0
  197. dsp_tools/config/warnings_config.py +32 -0
  198. dsp_tools/error/__init__.py +0 -0
  199. dsp_tools/error/custom_warnings.py +39 -0
  200. dsp_tools/error/exceptions.py +204 -0
  201. dsp_tools/error/problems.py +10 -0
  202. dsp_tools/error/xmllib_errors.py +20 -0
  203. dsp_tools/error/xmllib_warnings.py +54 -0
  204. dsp_tools/error/xmllib_warnings_util.py +159 -0
  205. dsp_tools/error/xsd_validation_error_msg.py +19 -0
  206. dsp_tools/legacy_models/__init__.py +0 -0
  207. dsp_tools/legacy_models/datetimestamp.py +81 -0
  208. dsp_tools/legacy_models/langstring.py +253 -0
  209. dsp_tools/legacy_models/projectContext.py +49 -0
  210. dsp_tools/py.typed +0 -0
  211. dsp_tools/resources/schema/data.xsd +648 -0
  212. dsp_tools/resources/schema/lists-only.json +72 -0
  213. dsp_tools/resources/schema/project.json +1258 -0
  214. dsp_tools/resources/schema/properties-only.json +874 -0
  215. dsp_tools/resources/schema/resources-only.json +140 -0
  216. dsp_tools/resources/start-stack/docker-compose.override-host.j2 +11 -0
  217. dsp_tools/resources/start-stack/docker-compose.override.yml +11 -0
  218. dsp_tools/resources/start-stack/docker-compose.yml +88 -0
  219. dsp_tools/resources/start-stack/dsp-app-config.json +45 -0
  220. dsp_tools/resources/start-stack/dsp-app-config.override-host.j2 +26 -0
  221. dsp_tools/resources/validate_data/api-shapes-resource-cardinalities.ttl +191 -0
  222. dsp_tools/resources/validate_data/api-shapes.ttl +804 -0
  223. dsp_tools/resources/validate_data/shacl-cli-image.yml +4 -0
  224. dsp_tools/resources/validate_data/validate-ontology.ttl +99 -0
  225. dsp_tools/utils/__init__.py +0 -0
  226. dsp_tools/utils/ansi_colors.py +32 -0
  227. dsp_tools/utils/data_formats/__init__.py +0 -0
  228. dsp_tools/utils/data_formats/date_util.py +166 -0
  229. dsp_tools/utils/data_formats/iri_util.py +30 -0
  230. dsp_tools/utils/data_formats/shared.py +81 -0
  231. dsp_tools/utils/data_formats/uri_util.py +76 -0
  232. dsp_tools/utils/fuseki_bloating.py +63 -0
  233. dsp_tools/utils/json_parsing.py +22 -0
  234. dsp_tools/utils/rdf_constants.py +42 -0
  235. dsp_tools/utils/rdflib_utils.py +10 -0
  236. dsp_tools/utils/replace_id_with_iri.py +66 -0
  237. dsp_tools/utils/request_utils.py +238 -0
  238. dsp_tools/utils/xml_parsing/__init__.py +0 -0
  239. dsp_tools/utils/xml_parsing/get_lookups.py +32 -0
  240. dsp_tools/utils/xml_parsing/get_parsed_resources.py +325 -0
  241. dsp_tools/utils/xml_parsing/models/__init__.py +0 -0
  242. dsp_tools/utils/xml_parsing/models/parsed_resource.py +76 -0
  243. dsp_tools/utils/xml_parsing/parse_clean_validate_xml.py +137 -0
  244. dsp_tools/xmllib/CLAUDE.md +302 -0
  245. dsp_tools/xmllib/__init__.py +49 -0
  246. dsp_tools/xmllib/general_functions.py +877 -0
  247. dsp_tools/xmllib/internal/__init__.py +0 -0
  248. dsp_tools/xmllib/internal/checkers.py +162 -0
  249. dsp_tools/xmllib/internal/circumvent_circular_imports.py +36 -0
  250. dsp_tools/xmllib/internal/constants.py +46 -0
  251. dsp_tools/xmllib/internal/input_converters.py +155 -0
  252. dsp_tools/xmllib/internal/serialise_file_value.py +57 -0
  253. dsp_tools/xmllib/internal/serialise_resource.py +177 -0
  254. dsp_tools/xmllib/internal/serialise_values.py +152 -0
  255. dsp_tools/xmllib/internal/type_aliases.py +11 -0
  256. dsp_tools/xmllib/models/__init__.py +0 -0
  257. dsp_tools/xmllib/models/config_options.py +28 -0
  258. dsp_tools/xmllib/models/date_formats.py +48 -0
  259. dsp_tools/xmllib/models/dsp_base_resources.py +1542 -0
  260. dsp_tools/xmllib/models/internal/__init__.py +0 -0
  261. dsp_tools/xmllib/models/internal/file_values.py +172 -0
  262. dsp_tools/xmllib/models/internal/geometry.py +162 -0
  263. dsp_tools/xmllib/models/internal/migration_metadata.py +55 -0
  264. dsp_tools/xmllib/models/internal/serialise_permissions.py +66 -0
  265. dsp_tools/xmllib/models/internal/values.py +342 -0
  266. dsp_tools/xmllib/models/licenses/__init__.py +0 -0
  267. dsp_tools/xmllib/models/licenses/other.py +59 -0
  268. dsp_tools/xmllib/models/licenses/recommended.py +107 -0
  269. dsp_tools/xmllib/models/permissions.py +41 -0
  270. dsp_tools/xmllib/models/res.py +1782 -0
  271. dsp_tools/xmllib/models/root.py +348 -0
  272. dsp_tools/xmllib/value_checkers.py +434 -0
  273. dsp_tools/xmllib/value_converters.py +777 -0
  274. dsp_tools-18.3.0.post13.dist-info/METADATA +90 -0
  275. dsp_tools-18.3.0.post13.dist-info/RECORD +286 -0
  276. dsp_tools-18.3.0.post13.dist-info/WHEEL +4 -0
  277. dsp_tools-18.3.0.post13.dist-info/entry_points.txt +3 -0
  278. dsp_tools-0.9.13.dist-info/LICENSE +0 -674
  279. dsp_tools-0.9.13.dist-info/METADATA +0 -144
  280. dsp_tools-0.9.13.dist-info/RECORD +0 -71
  281. dsp_tools-0.9.13.dist-info/WHEEL +0 -5
  282. dsp_tools-0.9.13.dist-info/entry_points.txt +0 -3
  283. dsp_tools-0.9.13.dist-info/top_level.txt +0 -1
  284. dsplib/models/connection.py +0 -272
  285. dsplib/models/group.py +0 -296
  286. dsplib/models/helpers.py +0 -505
  287. dsplib/models/langstring.py +0 -277
  288. dsplib/models/listnode.py +0 -578
  289. dsplib/models/model.py +0 -20
  290. dsplib/models/ontology.py +0 -448
  291. dsplib/models/permission.py +0 -112
  292. dsplib/models/project.py +0 -547
  293. dsplib/models/propertyclass.py +0 -505
  294. dsplib/models/resource.py +0 -366
  295. dsplib/models/resourceclass.py +0 -810
  296. dsplib/models/sipi.py +0 -30
  297. dsplib/models/user.py +0 -731
  298. dsplib/models/value.py +0 -1000
  299. dsplib/utils/knora-data-schema.xsd +0 -454
  300. dsplib/utils/knora-schema-lists.json +0 -83
  301. dsplib/utils/knora-schema.json +0 -434
  302. dsplib/utils/onto_commons.py +0 -24
  303. dsplib/utils/onto_create_lists.py +0 -73
  304. dsplib/utils/onto_create_ontology.py +0 -442
  305. dsplib/utils/onto_get.py +0 -58
  306. dsplib/utils/onto_validate.py +0 -33
  307. dsplib/utils/xml_upload.py +0 -539
  308. dsplib/widgets/doublepassword.py +0 -80
  309. knora/MLS-import-libraries.py +0 -84
  310. knora/dsp_tools.py +0 -96
  311. knora/dsplib/models/connection.py +0 -272
  312. knora/dsplib/models/group.py +0 -296
  313. knora/dsplib/models/helpers.py +0 -506
  314. knora/dsplib/models/langstring.py +0 -277
  315. knora/dsplib/models/listnode.py +0 -578
  316. knora/dsplib/models/model.py +0 -20
  317. knora/dsplib/models/ontology.py +0 -448
  318. knora/dsplib/models/permission.py +0 -112
  319. knora/dsplib/models/project.py +0 -583
  320. knora/dsplib/models/propertyclass.py +0 -505
  321. knora/dsplib/models/resource.py +0 -416
  322. knora/dsplib/models/resourceclass.py +0 -811
  323. knora/dsplib/models/sipi.py +0 -35
  324. knora/dsplib/models/user.py +0 -731
  325. knora/dsplib/models/value.py +0 -1000
  326. knora/dsplib/utils/knora-data-schema.xsd +0 -464
  327. knora/dsplib/utils/knora-schema-lists.json +0 -83
  328. knora/dsplib/utils/knora-schema.json +0 -444
  329. knora/dsplib/utils/onto_commons.py +0 -24
  330. knora/dsplib/utils/onto_create_lists.py +0 -73
  331. knora/dsplib/utils/onto_create_ontology.py +0 -451
  332. knora/dsplib/utils/onto_get.py +0 -58
  333. knora/dsplib/utils/onto_validate.py +0 -33
  334. knora/dsplib/utils/xml_upload.py +0 -540
  335. knora/dsplib/widgets/doublepassword.py +0 -80
  336. knora/knora.py +0 -2108
  337. knora/test.py +0 -99
  338. knora/testit.py +0 -76
  339. knora/xml2knora.py +0 -633
  340. {dsplib → dsp_tools/cli}/__init__.py +0 -0
  341. {dsplib/models → dsp_tools/clients}/__init__.py +0 -0
  342. {dsplib/utils → dsp_tools/commands}/__init__.py +0 -0
  343. {dsplib/widgets → dsp_tools/commands/create}/__init__.py +0 -0
  344. {knora → dsp_tools/commands/create/create_on_server}/__init__.py +0 -0
  345. {knora/dsplib → dsp_tools/commands/create/models}/__init__.py +0 -0
  346. {knora/dsplib/models → dsp_tools/commands/create/parsing}/__init__.py +0 -0
  347. {knora/dsplib/utils → dsp_tools/commands/create/serialisation}/__init__.py +0 -0
  348. {knora/dsplib/widgets → dsp_tools/commands/excel2json}/__init__.py +0 -0
@@ -0,0 +1,648 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <xs:schema xmlns="https://dasch.swiss/schema"
3
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
4
+ targetNamespace="https://dasch.swiss/schema"
5
+ elementFormDefault="qualified">
6
+
7
+ <!-- nonEmptyString
8
+ Data of type xs:string are not modified by the XML processor,
9
+ so the xs:pattern is applied to the original string
10
+ -->
11
+ <xs:simpleType name="nonEmptyString">
12
+ <xs:restriction base="xs:string">
13
+ <xs:minLength value="1"/>
14
+ <xs:pattern value=".*\S+.*"/>
15
+ </xs:restriction>
16
+ </xs:simpleType>
17
+
18
+ <!-- nonEmptyString_pretty_printed
19
+ xs:token is derived from string, but before the xs:pattern is applied,
20
+ the XML processor removes line feeds, carriage returns, tabs, leading and trailing spaces, and multiple spaces.
21
+ -->
22
+ <xs:simpleType name="nonEmptyString_pretty_printed">
23
+ <xs:restriction base="xs:token">
24
+ <xs:minLength value="1"/>
25
+ <xs:pattern value=".*\S+.*"/>
26
+ </xs:restriction>
27
+ </xs:simpleType>
28
+
29
+ <!-- data type for resrefs "ID|ID|..." -->
30
+ <xs:simpleType name="resrefs_type">
31
+ <xs:restriction base="xs:string">
32
+ <xs:pattern value="([^|]+)(\|[^|]+)*"/>
33
+ </xs:restriction>
34
+ </xs:simpleType>
35
+
36
+ <!-- data type for resptr tags -->
37
+ <xs:simpleType name="resptr_datatype">
38
+ <xs:restriction base="xs:string">
39
+ <xs:pattern value="([a-zA-Zàáâäèéêëìíîïòóôöùúûüçñß_][a-zA-Zàáâäèéêëìíîïòóôöùúûüçñß_\d.\-]*)|(http://rdfh\.ch/[\dA-F]{4}/\S+)"/>
40
+ </xs:restriction>
41
+ </xs:simpleType>
42
+
43
+ <!-- group type for allow..." -->
44
+ <xs:simpleType name="group_types">
45
+ <xs:restriction base="xs:string">
46
+ <xs:pattern
47
+ value="(UnknownUser|KnownUser|ProjectMember|Creator|ProjectAdmin|SystemAdmin|([\w\-]+)?:([\w\- ]+))"/>
48
+ </xs:restriction>
49
+ </xs:simpleType>
50
+
51
+ <!-- data type for knora date -->
52
+ <xs:simpleType name="knoradate_type">
53
+ <xs:restriction base="xs:string">
54
+ <xs:pattern
55
+ value="((GREGORIAN:|JULIAN:)?(CE:|BCE:|AD:|BC:)?(\d{1,4})(-\d{1,2})?(-\d{1,2})?((:CE|:BCE|:AD|:BC)?(:\d{1,4})(-\d{1,2})?(-\d{1,2})?)?)|((ISLAMIC:)(\d{1,4})(-\d{1,2})?(-\d{1,2})?(:\d{1,4})(-\d{1,2})?(-\d{1,2})?)"/>
56
+ </xs:restriction>
57
+ </xs:simpleType>
58
+
59
+ <!-- data type for knora time -->
60
+ <xs:simpleType name="knoratime_type">
61
+ <xs:restriction base="xs:string">
62
+ <xs:pattern
63
+ value="\d{4}-[0-1]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(\.\d{1,12})?(Z|[+-][0-1]\d:[0-5]\d)"/>
64
+ </xs:restriction>
65
+ </xs:simpleType>
66
+
67
+ <!-- data type for knora color -->
68
+ <xs:simpleType name="knoracolor_type">
69
+ <xs:restriction base="xs:string">
70
+ <xs:pattern value="#([0-9a-fA-F]{3}){1,2}"/>
71
+ </xs:restriction>
72
+ </xs:simpleType>
73
+
74
+ <!-- data type for knora uri -->
75
+ <xs:simpleType name="knorauri_type">
76
+ <xs:restriction base="xs:string">
77
+ <xs:pattern value="([a-z][a-z0-9+.\-]*):(//([\w_.\-~:\[\]]+)(:\d{0,6})?)(/[\w_.\-:~%()!@,;/=*&amp;'+]*)*(\?[\w_.\-:~%()!@,;/=*&amp;'+]+)*(#[\w_.\-:~%()!@,;/=*&amp;'+]*)?"/>
78
+ </xs:restriction>
79
+ </xs:simpleType>
80
+
81
+ <!-- data type for property and resource class names (no whitespace allowed) -->
82
+ <xs:simpleType name="string_without_space">
83
+ <xs:restriction base="xs:string">
84
+ <xs:pattern value="[^\s]+"/>
85
+ </xs:restriction>
86
+ </xs:simpleType>
87
+
88
+ <!-- encoding types -->
89
+ <xs:simpleType name="encoding_types">
90
+ <xs:restriction base="xs:string">
91
+ <xs:enumeration value="utf8"/>
92
+ <xs:enumeration value="xml"/>
93
+ </xs:restriction>
94
+ </xs:simpleType>
95
+
96
+ <!-- text value type -->
97
+ <xs:complexType name="text_type" mixed="true">
98
+ <xs:sequence>
99
+ <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
100
+ </xs:sequence>
101
+ <xs:attribute name="encoding" type="encoding_types" use="required"/>
102
+ <xs:attribute name="resrefs" type="resrefs_type"/>
103
+ <xs:attribute name="comment" type="xs:string"/>
104
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
105
+ </xs:complexType>
106
+
107
+ <!-- xml encoding value type -->
108
+ <xs:complexType name="xml_encoding_text_type" mixed="true">
109
+ <xs:sequence>
110
+ <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
111
+ </xs:sequence>
112
+ <xs:attribute name="encoding" fixed="xml" use="required"/>
113
+ <xs:attribute name="resrefs" type="resrefs_type"/>
114
+ <xs:attribute name="comment" type="xs:string"/>
115
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
116
+ </xs:complexType>
117
+
118
+ <!-- formatted text type -->
119
+ <xs:complexType name="formatted_text_type" mixed="true">
120
+ <xs:sequence>
121
+ <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
122
+ </xs:sequence>
123
+ <xs:attribute name="comment" type="xs:string"/>
124
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
125
+ </xs:complexType>
126
+
127
+ <!-- unformatted text type -->
128
+ <xs:complexType name="unformatted_text_type">
129
+ <xs:simpleContent>
130
+ <xs:extension base="nonEmptyString">
131
+ <xs:attribute name="comment" type="xs:string"/>
132
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
133
+ </xs:extension>
134
+ </xs:simpleContent>
135
+ </xs:complexType>
136
+
137
+ <!-- color value type -->
138
+ <xs:complexType name="color_type">
139
+ <xs:simpleContent>
140
+ <xs:extension base="knoracolor_type">
141
+ <xs:attribute name="comment" type="xs:string"/>
142
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
143
+ </xs:extension>
144
+ </xs:simpleContent>
145
+ </xs:complexType>
146
+
147
+ <!-- date value type -->
148
+ <xs:complexType name="date_type">
149
+ <xs:simpleContent>
150
+ <xs:extension base="knoradate_type">
151
+ <xs:attribute name="comment" type="xs:string"/>
152
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
153
+ </xs:extension>
154
+ </xs:simpleContent>
155
+ </xs:complexType>
156
+
157
+ <!-- float value type -->
158
+ <xs:complexType name="float_type">
159
+ <xs:simpleContent>
160
+ <xs:extension base="xs:float">
161
+ <xs:attribute name="comment" type="xs:string"/>
162
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
163
+ </xs:extension>
164
+ </xs:simpleContent>
165
+ </xs:complexType>
166
+
167
+ <!-- geometry value type -->
168
+ <xs:complexType name="geometry_type">
169
+ <xs:simpleContent>
170
+ <xs:extension base="xs:string">
171
+ <xs:attribute name="comment" type="xs:string"/>
172
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
173
+ </xs:extension>
174
+ </xs:simpleContent>
175
+ </xs:complexType>
176
+
177
+ <!-- geoname value type -->
178
+ <xs:complexType name="geoname_type">
179
+ <xs:simpleContent>
180
+ <xs:extension base="nonEmptyString">
181
+ <xs:attribute name="comment" type="xs:string"/>
182
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
183
+ </xs:extension>
184
+ </xs:simpleContent>
185
+ </xs:complexType>
186
+
187
+ <!-- list value type -->
188
+ <xs:complexType name="list_type">
189
+ <xs:simpleContent>
190
+ <xs:extension base="nonEmptyString">
191
+ <xs:attribute name="comment" type="xs:string"/>
192
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
193
+ </xs:extension>
194
+ </xs:simpleContent>
195
+ </xs:complexType>
196
+
197
+ <!-- integer value type -->
198
+ <xs:complexType name="integer_type">
199
+ <xs:simpleContent>
200
+ <xs:extension base="xs:integer">
201
+ <xs:attribute name="comment" type="xs:string"/>
202
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
203
+ </xs:extension>
204
+ </xs:simpleContent>
205
+ </xs:complexType>
206
+
207
+ <!-- hasSegmentBounds value type -->
208
+ <xs:complexType name="hasSegmentBounds_type">
209
+ <xs:sequence />
210
+ <xs:attribute name="comment" type="xs:string"/>
211
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
212
+ <xs:attribute name="segment_start" type="xs:double" use="required"/>
213
+ <xs:attribute name="segment_end" type="xs:double" use="required"/>
214
+ </xs:complexType>
215
+
216
+ <!-- period value type -->
217
+ <xs:complexType name="period_type">
218
+ <xs:simpleContent>
219
+ <xs:extension base="nonEmptyString">
220
+ <xs:attribute name="comment" type="xs:string"/>
221
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
222
+ </xs:extension>
223
+ </xs:simpleContent>
224
+ </xs:complexType>
225
+
226
+ <!-- resptr_type (link to other resource) value type -->
227
+ <xs:complexType name="resptr_type">
228
+ <xs:simpleContent>
229
+ <xs:extension base="resptr_datatype">
230
+ <xs:attribute name="comment" type="xs:string"/>
231
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
232
+ </xs:extension>
233
+ </xs:simpleContent>
234
+ </xs:complexType>
235
+
236
+ <!-- time value type -->
237
+ <xs:complexType name="time_type">
238
+ <xs:simpleContent>
239
+ <xs:extension base="knoratime_type">
240
+ <xs:attribute name="comment" type="xs:string"/>
241
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
242
+ </xs:extension>
243
+ </xs:simpleContent>
244
+ </xs:complexType>
245
+
246
+ <!-- decimal value type -->
247
+ <xs:complexType name="decimal_type">
248
+ <xs:simpleContent>
249
+ <xs:extension base="xs:decimal">
250
+ <xs:attribute name="comment" type="xs:string"/>
251
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
252
+ </xs:extension>
253
+ </xs:simpleContent>
254
+ </xs:complexType>
255
+
256
+ <!-- uri value type -->
257
+ <xs:complexType name="uri_type">
258
+ <xs:simpleContent>
259
+ <xs:extension base="knorauri_type">
260
+ <xs:attribute name="comment" type="xs:string"/>
261
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
262
+ </xs:extension>
263
+ </xs:simpleContent>
264
+ </xs:complexType>
265
+
266
+ <!-- boolean value type-->
267
+ <xs:complexType name="boolean_type">
268
+ <xs:simpleContent>
269
+ <xs:extension base="xs:boolean">
270
+ <xs:attribute name="comment" type="xs:string"/>
271
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
272
+ </xs:extension>
273
+ </xs:simpleContent>
274
+ </xs:complexType>
275
+
276
+ <!-- textprop_type -->
277
+ <xs:complexType name="textprop_type">
278
+ <xs:sequence>
279
+ <xs:element name="text" type="text_type" minOccurs="1" maxOccurs="unbounded"/>
280
+ </xs:sequence>
281
+ <xs:attribute name="name" type="string_without_space" use="required"/>
282
+ </xs:complexType>
283
+
284
+ <!-- colorprop_type -->
285
+ <xs:complexType name="colorprop_type">
286
+ <xs:sequence>
287
+ <xs:element name="color" type="color_type" minOccurs="1" maxOccurs="unbounded"/>
288
+ </xs:sequence>
289
+ <xs:attribute name="name" type="string_without_space" use="required"/>
290
+ </xs:complexType>
291
+
292
+ <!-- dateprop_type -->
293
+ <xs:complexType name="dateprop_type">
294
+ <xs:sequence>
295
+ <xs:element name="date" type="date_type" minOccurs="1" maxOccurs="unbounded"/>
296
+ </xs:sequence>
297
+ <xs:attribute name="name" type="string_without_space" use="required"/>
298
+ </xs:complexType>
299
+
300
+ <!-- floatprop_type -->
301
+ <xs:complexType name="floatprop_type">
302
+ <xs:sequence>
303
+ <xs:element name="float" type="float_type" minOccurs="1" maxOccurs="unbounded"/>
304
+ </xs:sequence>
305
+ <xs:attribute name="name" type="string_without_space" use="required"/>
306
+ </xs:complexType>
307
+
308
+ <!-- geonameprop_type -->
309
+ <xs:complexType name="geonameprop_type">
310
+ <xs:sequence>
311
+ <xs:element name="geoname" type="geoname_type" minOccurs="1" maxOccurs="unbounded"/>
312
+ </xs:sequence>
313
+ <xs:attribute name="name" type="string_without_space" use="required"/>
314
+ </xs:complexType>
315
+
316
+ <!-- listprop_type -->
317
+ <xs:complexType name="listprop_type">
318
+ <xs:sequence>
319
+ <xs:element name="list" type="list_type" minOccurs="1" maxOccurs="unbounded"/>
320
+ </xs:sequence>
321
+ <xs:attribute name="name" type="string_without_space" use="required"/>
322
+ <xs:attribute name="list" type="xs:string" use="required"/>
323
+ </xs:complexType>
324
+
325
+ <!-- integerprop_type -->
326
+ <xs:complexType name="integerprop_type">
327
+ <xs:sequence>
328
+ <xs:element name="integer" type="integer_type" minOccurs="1" maxOccurs="unbounded"/>
329
+ </xs:sequence>
330
+ <xs:attribute name="name" type="string_without_space" use="required"/>
331
+ </xs:complexType>
332
+
333
+ <!-- periodprop_type -->
334
+ <xs:complexType name="periodprop_type">
335
+ <xs:sequence>
336
+ <xs:element name="period" type="period_type" minOccurs="1" maxOccurs="unbounded"/>
337
+ </xs:sequence>
338
+ <xs:attribute name="name" type="string_without_space" use="required"/>
339
+ </xs:complexType>
340
+
341
+ <!-- resptrprop_type -->
342
+ <xs:complexType name="resptrprop_type">
343
+ <xs:sequence>
344
+ <xs:element name="resptr" type="resptr_type" minOccurs="1" maxOccurs="unbounded"/>
345
+ </xs:sequence>
346
+ <xs:attribute name="name" type="string_without_space" use="required"/>
347
+ </xs:complexType>
348
+
349
+ <!-- timeprop_type -->
350
+ <xs:complexType name="timeprop_type">
351
+ <xs:sequence>
352
+ <xs:element name="time" type="time_type" minOccurs="1" maxOccurs="unbounded"/>
353
+ </xs:sequence>
354
+ <xs:attribute name="name" type="string_without_space" use="required"/>
355
+ </xs:complexType>
356
+
357
+ <!-- decimalprop_type -->
358
+ <xs:complexType name="decimalprop_type">
359
+ <xs:sequence>
360
+ <xs:element name="decimal" type="decimal_type" minOccurs="1" maxOccurs="unbounded"/>
361
+ </xs:sequence>
362
+ <xs:attribute name="name" type="string_without_space" use="required"/>
363
+ </xs:complexType>
364
+
365
+ <!-- uriprop_type -->
366
+ <xs:complexType name="uriprop_type">
367
+ <xs:sequence>
368
+ <xs:element name="uri" type="uri_type" minOccurs="1" maxOccurs="unbounded"/>
369
+ </xs:sequence>
370
+ <xs:attribute name="name" type="string_without_space" use="required"/>
371
+ </xs:complexType>
372
+
373
+ <!-- booleanprop_type -->
374
+ <xs:complexType name="booleanprop_type">
375
+ <xs:sequence>
376
+ <xs:element name="boolean" type="boolean_type" minOccurs="1" maxOccurs="1"/>
377
+ </xs:sequence>
378
+ <xs:attribute name="name" type="string_without_space" use="required"/>
379
+ </xs:complexType>
380
+
381
+ <!-- builtin_hasComment_prop_type -->
382
+ <xs:complexType name="builtin_hasComment_prop_type">
383
+ <xs:sequence>
384
+ <xs:element name="text" type="xml_encoding_text_type" minOccurs="1" maxOccurs="unbounded"/>
385
+ </xs:sequence>
386
+ <xs:attribute name="name" type="xs:string" use="required" fixed="hasComment"/>
387
+ </xs:complexType>
388
+
389
+ <!-- builtin_hasGeometry_prop_type -->
390
+ <xs:complexType name="builtin_hasGeometry_prop_type">
391
+ <xs:sequence>
392
+ <xs:element name="geometry" type="geometry_type" minOccurs="1" maxOccurs="1"/>
393
+ </xs:sequence>
394
+ <xs:attribute name="name" type="xs:string" use="required" fixed="hasGeometry"/>
395
+ </xs:complexType>
396
+
397
+ <!-- builtin_isRegionOf_prop_type -->
398
+ <xs:complexType name="builtin_isRegionOf_prop_type">
399
+ <xs:sequence>
400
+ <xs:element name="resptr" type="resptr_type" minOccurs="1" maxOccurs="1"/>
401
+ </xs:sequence>
402
+ <xs:attribute name="name" type="xs:string" use="required" fixed="isRegionOf"/>
403
+ </xs:complexType>
404
+
405
+ <!-- builtin_hasLinkTo_prop_type -->
406
+ <xs:complexType name="builtin_hasLinkTo_prop_type">
407
+ <xs:sequence>
408
+ <xs:element name="resptr" type="resptr_type" minOccurs="1" maxOccurs="unbounded"/>
409
+ </xs:sequence>
410
+ <xs:attribute name="name" type="xs:string" use="required" fixed="hasLinkTo"/>
411
+ </xs:complexType>
412
+
413
+ <!-- builtin_hasColor_prop_type -->
414
+ <xs:complexType name="builtin_hasColor_prop_type">
415
+ <xs:sequence>
416
+ <xs:element name="color" type="color_type" minOccurs="1" maxOccurs="1"/>
417
+ </xs:sequence>
418
+ <xs:attribute name="name" type="xs:string" use="required" fixed="hasColor"/>
419
+ </xs:complexType>
420
+
421
+ <!-- bitstream tag -->
422
+ <xs:complexType name="bitstream_type">
423
+ <xs:simpleContent>
424
+ <xs:extension base="nonEmptyString_pretty_printed">
425
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
426
+ <xs:attribute name="license" type="xs:string" use="optional"/>
427
+ <xs:attribute name="copyright-holder" type="xs:string" use="optional"/>
428
+ <xs:attribute name="authorship-id" type="xs:IDREF" use="optional"/>
429
+ </xs:extension>
430
+ </xs:simpleContent>
431
+ </xs:complexType>
432
+
433
+ <!-- iiif-uri tag -->
434
+ <xs:complexType name="iiif_uri_type">
435
+ <xs:simpleContent>
436
+ <xs:extension base="nonEmptyString_pretty_printed">
437
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
438
+ <xs:attribute name="license" type="xs:string" use="optional"/>
439
+ <xs:attribute name="copyright-holder" type="xs:string" use="optional"/>
440
+ <xs:attribute name="authorship-id" type="xs:IDREF" use="optional"/>
441
+ </xs:extension>
442
+ </xs:simpleContent>
443
+ </xs:complexType>
444
+
445
+ <!-- resource tag -->
446
+ <xs:complexType name="resource_type">
447
+ <xs:sequence>
448
+ <xs:choice minOccurs="0" maxOccurs="1">
449
+ <xs:element name="bitstream" type="bitstream_type"/>
450
+ <xs:element name="iiif-uri" type="iiif_uri_type"/>
451
+ </xs:choice>
452
+ <xs:choice maxOccurs="unbounded">
453
+ <xs:element name="text-prop" type="textprop_type" minOccurs="0" maxOccurs="unbounded"/>
454
+ <xs:element name="color-prop" type="colorprop_type" minOccurs="0" maxOccurs="unbounded"/>
455
+ <xs:element name="date-prop" type="dateprop_type" minOccurs="0" maxOccurs="unbounded"/>
456
+ <xs:element name="geoname-prop" type="geonameprop_type" minOccurs="0" maxOccurs="unbounded"/>
457
+ <xs:element name="list-prop" type="listprop_type" minOccurs="0" maxOccurs="unbounded"/>
458
+ <xs:element name="integer-prop" type="integerprop_type" minOccurs="0" maxOccurs="unbounded"/>
459
+ <xs:element name="period-prop" type="periodprop_type" minOccurs="0" maxOccurs="unbounded"/>
460
+ <xs:element name="resptr-prop" type="resptrprop_type" minOccurs="0" maxOccurs="unbounded"/>
461
+ <xs:element name="time-prop" type="timeprop_type" minOccurs="0" maxOccurs="unbounded"/>
462
+ <xs:element name="decimal-prop" type="decimalprop_type" minOccurs="0" maxOccurs="unbounded"/>
463
+ <xs:element name="uri-prop" type="uriprop_type" minOccurs="0" maxOccurs="unbounded"/>
464
+ <xs:element name="boolean-prop" type="booleanprop_type" minOccurs="0" maxOccurs="unbounded"/>
465
+ </xs:choice>
466
+ </xs:sequence>
467
+ <xs:attribute name="label" use="required">
468
+ <xs:simpleType>
469
+ <xs:restriction base="xs:string">
470
+ <xs:minLength value="1"/>
471
+ </xs:restriction>
472
+ </xs:simpleType>
473
+ </xs:attribute>
474
+ <xs:attribute name="restype" type="string_without_space" use="required"/>
475
+ <xs:attribute name="id" type="xs:ID" use="required"/>
476
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
477
+ <xs:attribute name="iri" type="xs:string" use="optional"/>
478
+ <xs:attribute name="ark" type="xs:string" use="optional"/>
479
+ <xs:attribute name="creation_date" type="xs:dateTime" use="optional"/>
480
+ </xs:complexType>
481
+
482
+ <!-- region tag -->
483
+ <xs:complexType name="region_type">
484
+ <xs:all>
485
+ <xs:element name="text-prop" type="builtin_hasComment_prop_type" minOccurs="0"/>
486
+ <xs:element name="resptr-prop" type="builtin_isRegionOf_prop_type" minOccurs="1" maxOccurs="1"/>
487
+ <xs:element name="geometry-prop" type="builtin_hasGeometry_prop_type" minOccurs="1" maxOccurs="1"/>
488
+ <xs:element name="color-prop" type="builtin_hasColor_prop_type" minOccurs="1" maxOccurs="1"/>
489
+ </xs:all>
490
+ <xs:attribute name="label" type="xs:string" use="required"/>
491
+ <xs:attribute name="id" type="xs:ID" use="required"/>
492
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
493
+ <xs:attribute name="iri" type="xs:string" use="optional"/>
494
+ <xs:attribute name="ark" type="xs:string" use="optional"/>
495
+ <xs:attribute name="creation_date" type="xs:dateTime" use="optional"/>
496
+ </xs:complexType>
497
+
498
+ <!-- link tag -->
499
+ <xs:complexType name="link_type">
500
+ <xs:all>
501
+ <xs:element name="text-prop" type="builtin_hasComment_prop_type" minOccurs="0" maxOccurs="1"/>
502
+ <xs:element name="resptr-prop" type="builtin_hasLinkTo_prop_type" minOccurs="1" maxOccurs="1"/>
503
+ </xs:all>
504
+ <xs:attribute name="label" type="xs:string" use="required"/>
505
+ <xs:attribute name="id" type="xs:ID" use="required"/>
506
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
507
+ <xs:attribute name="iri" type="xs:string" use="optional"/>
508
+ <xs:attribute name="ark" type="xs:string" use="optional"/>
509
+ <xs:attribute name="creation_date" type="xs:dateTime" use="optional"/>
510
+ </xs:complexType>
511
+
512
+ <!-- video-segment tag -->
513
+ <xs:complexType name="video_segment_type">
514
+ <xs:sequence>
515
+ <xs:element name="isSegmentOf" type="resptr_type" minOccurs="1" maxOccurs="1"/>
516
+ <xs:element name="hasSegmentBounds" type="hasSegmentBounds_type" minOccurs="1" maxOccurs="1"/>
517
+ <xs:element name="hasTitle" type="unformatted_text_type" minOccurs="0" maxOccurs="1"/>
518
+ <xs:element name="hasComment" type="formatted_text_type" minOccurs="0" maxOccurs="unbounded"/>
519
+ <xs:element name="hasDescription" type="formatted_text_type" minOccurs="0" maxOccurs="unbounded"/>
520
+ <xs:element name="hasKeyword" type="unformatted_text_type" minOccurs="0" maxOccurs="unbounded"/>
521
+ <xs:element name="relatesTo" type="resptr_type" minOccurs="0" maxOccurs="unbounded"/>
522
+ </xs:sequence>
523
+ <xs:attribute name="label" type="xs:string" use="required"/>
524
+ <xs:attribute name="id" type="xs:ID" use="required"/>
525
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
526
+ <xs:attribute name="creation_date" type="xs:dateTime" use="optional"/>
527
+ </xs:complexType>
528
+
529
+ <!-- audio-segment tag -->
530
+ <xs:complexType name="audio_segment_type">
531
+ <xs:sequence>
532
+ <xs:element name="isSegmentOf" type="resptr_type" minOccurs="1" maxOccurs="1"/>
533
+ <xs:element name="hasSegmentBounds" type="hasSegmentBounds_type" minOccurs="1" maxOccurs="1"/>
534
+ <xs:element name="hasTitle" type="unformatted_text_type" minOccurs="0" maxOccurs="1"/>
535
+ <xs:element name="hasComment" type="formatted_text_type" minOccurs="0" maxOccurs="unbounded"/>
536
+ <xs:element name="hasDescription" type="formatted_text_type" minOccurs="0" maxOccurs="unbounded"/>
537
+ <xs:element name="hasKeyword" type="unformatted_text_type" minOccurs="0" maxOccurs="unbounded"/>
538
+ <xs:element name="relatesTo" type="resptr_type" minOccurs="0" maxOccurs="unbounded"/>
539
+ </xs:sequence>
540
+ <xs:attribute name="label" type="xs:string" use="required"/>
541
+ <xs:attribute name="id" type="xs:ID" use="required"/>
542
+ <xs:attribute name="permissions" type="xs:IDREF" use="optional"/>
543
+ <xs:attribute name="creation_date" type="xs:dateTime" use="optional"/>
544
+ </xs:complexType>
545
+
546
+ <!-- data type for knora shortcode -->
547
+ <xs:simpleType name="knorashortcode_type">
548
+ <xs:restriction base="xs:string">
549
+ <xs:pattern value="[0-9a-fA-F]{4}"/>
550
+ </xs:restriction>
551
+ </xs:simpleType>
552
+
553
+ <!-- data type for valid permissions_type" -->
554
+ <xs:simpleType name="valid_permissions_type">
555
+ <xs:restriction base="xs:string">
556
+ <xs:enumeration value="RV"/>
557
+ <xs:enumeration value="V"/>
558
+ <xs:enumeration value="M"/>
559
+ <xs:enumeration value="D"/>
560
+ <xs:enumeration value="CR"/>
561
+ </xs:restriction>
562
+ </xs:simpleType>
563
+
564
+ <!-- allow_type -->
565
+ <xs:complexType name="allow_type">
566
+ <xs:simpleContent>
567
+ <xs:extension base="valid_permissions_type">
568
+ <xs:attribute name="group" type="group_types" use="required"/>
569
+ </xs:extension>
570
+ </xs:simpleContent>
571
+ </xs:complexType>
572
+
573
+ <!-- permissions tag -->
574
+ <xs:complexType name="permissions_type" mixed="true">
575
+ <xs:sequence>
576
+ <xs:element name="allow" type="allow_type" minOccurs="1" maxOccurs="unbounded"/>
577
+ </xs:sequence>
578
+ <xs:attribute name="id" type="xs:ID" use="required"/>
579
+ </xs:complexType>
580
+
581
+ <!-- authorship tag -->
582
+ <xs:complexType name="authorship_type" mixed="true">
583
+ <xs:sequence>
584
+ <xs:element name="author" type="nonEmptyString_pretty_printed" minOccurs="1" maxOccurs="unbounded"/>
585
+ </xs:sequence>
586
+ <xs:attribute name="id" type="xs:ID" use="required"/>
587
+ </xs:complexType>
588
+
589
+ <!-- complete document -->
590
+ <xs:element name="knora">
591
+ <xs:complexType>
592
+ <xs:sequence>
593
+ <xs:choice maxOccurs="unbounded">
594
+ <xs:element name="permissions" type="permissions_type" minOccurs="0" maxOccurs="unbounded"/>
595
+ <xs:element name="authorship" type="authorship_type" minOccurs="0" maxOccurs="unbounded"/>
596
+ </xs:choice>
597
+ <xs:choice maxOccurs="unbounded">
598
+ <xs:element name="resource" type="resource_type" minOccurs="1" maxOccurs="unbounded">
599
+ <xs:unique name="UniqueNameAttr_Resource">
600
+ <xs:selector xpath=".//*"/>
601
+ <xs:field xpath="@name"/>
602
+ </xs:unique>
603
+ </xs:element>
604
+ <xs:element name="region" type="region_type" minOccurs="0" maxOccurs="unbounded">
605
+ <xs:unique name="UniqueNameAttr_Region">
606
+ <xs:selector xpath=".//*"/>
607
+ <xs:field xpath="@name"/>
608
+ </xs:unique>
609
+ </xs:element>
610
+ <xs:element name="link" type="link_type" minOccurs="0" maxOccurs="unbounded">
611
+ <xs:unique name="UniqueNameAttr_Link">
612
+ <xs:selector xpath=".//*"/>
613
+ <xs:field xpath="@name"/>
614
+ </xs:unique>
615
+ </xs:element>
616
+ <xs:element name="video-segment" type="video_segment_type" minOccurs="0" maxOccurs="unbounded"/>
617
+ <xs:element name="audio-segment" type="audio_segment_type" minOccurs="0" maxOccurs="unbounded"/>
618
+ </xs:choice>
619
+ </xs:sequence>
620
+ <xs:attribute name="default-ontology" type="xs:string"/>
621
+ <xs:attribute name="shortcode" type="knorashortcode_type"/>
622
+ </xs:complexType>
623
+ <xs:key name="permissionsId">
624
+ <xs:selector xpath="./permissions"/>
625
+ <xs:field xpath="@id"/>
626
+ </xs:key>
627
+ <xs:keyref name="permissionsIdref" refer="permissionsId">
628
+ <xs:selector xpath="resource"/>
629
+ <xs:field xpath="@permissions"/>
630
+ </xs:keyref>
631
+ <xs:key name="authorshipId">
632
+ <xs:selector xpath="./authorship"/>
633
+ <xs:field xpath="@id"/>
634
+ </xs:key>
635
+ <xs:keyref name="authorshipIdref" refer="authorshipId">
636
+ <xs:selector xpath="resource"/>
637
+ <xs:field xpath="@authorship-id"/>
638
+ </xs:keyref>
639
+ <xs:unique name="IRI_attribute_of_resource_must_be_unique">
640
+ <xs:selector xpath=".//*"/>
641
+ <xs:field xpath="@iri"/>
642
+ </xs:unique>
643
+ <xs:unique name="ARK_attribute_of_resource_must_be_unique">
644
+ <xs:selector xpath=".//*"/>
645
+ <xs:field xpath="@ark"/>
646
+ </xs:unique>
647
+ </xs:element>
648
+ </xs:schema>