From 8b8ccec01c9bdcdff11de2b895148a0b4b215889 Mon Sep 17 00:00:00 2001 From: mark Date: Mon, 15 Jun 2020 12:37:08 +0100 Subject: [PATCH] TS 103 707 v1.1.1 (2020-03-23) agreed at LI#53 (Sophia-Antipolis, 2020-02-04) --- 103707/TS_103_707_v010101.xsd | 172 ++++++++++++++++++ 103707/examples/FooServiceSchema.xsd | 27 +++ 103707/examples/example_binaryObject.xml | 48 +++++ 103707/examples/example_extended.xml | 69 +++++++ 103707/examples/example_simple.xml | 37 ++++ 103707/portal/TS_103_707_v010101.xsd | 172 ++++++++++++++++++ 103707/portal/examples/FooServiceSchema.xsd | 27 +++ .../portal/examples/example_binaryObject.xml | 48 +++++ 103707/portal/examples/example_extended.xml | 69 +++++++ 103707/portal/examples/example_simple.xml | 37 ++++ 103707/portal/testing/validate_examples.py | 46 +++++ 103707/testing/validate_examples.py | 46 +++++ 12 files changed, 798 insertions(+) create mode 100644 103707/TS_103_707_v010101.xsd create mode 100644 103707/examples/FooServiceSchema.xsd create mode 100644 103707/examples/example_binaryObject.xml create mode 100644 103707/examples/example_extended.xml create mode 100644 103707/examples/example_simple.xml create mode 100644 103707/portal/TS_103_707_v010101.xsd create mode 100644 103707/portal/examples/FooServiceSchema.xsd create mode 100644 103707/portal/examples/example_binaryObject.xml create mode 100644 103707/portal/examples/example_extended.xml create mode 100644 103707/portal/examples/example_simple.xml create mode 100644 103707/portal/testing/validate_examples.py create mode 100644 103707/testing/validate_examples.py diff --git a/103707/TS_103_707_v010101.xsd b/103707/TS_103_707_v010101.xsd new file mode 100644 index 0000000..7d857df --- /dev/null +++ b/103707/TS_103_707_v010101.xsd @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/103707/examples/FooServiceSchema.xsd b/103707/examples/FooServiceSchema.xsd new file mode 100644 index 0000000..59e2ff1 --- /dev/null +++ b/103707/examples/FooServiceSchema.xsd @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/103707/examples/example_binaryObject.xml b/103707/examples/example_binaryObject.xml new file mode 100644 index 0000000..54655c5 --- /dev/null +++ b/103707/examples/example_binaryObject.xml @@ -0,0 +1,48 @@ + + + +
+ + + + + target@example.com + + true + + + + + someoneelse@example.com + + + + 2019-10-17T06:42:23.000000+01:00 + + + https://example.com/binaryData/e71d2da5-774a-4bca-8748-2a00b2e17892 + 1024 + image/jpeg + 2019-10-17T06:42:53.000000+01:00 + 8b7df143d91c716ecfa5fc1730022f6b421b05cedee8fd52b1fc65a96030ad52 + cat.jpeg + e71d2da5-774a-4bca-8748-2a00b2e17892 + + + + + + + http://FooServiceSchema.example.com/schema/v1.1.1/ + + + + Foo + Bar + Baz + + + + + +
\ No newline at end of file diff --git a/103707/examples/example_extended.xml b/103707/examples/example_extended.xml new file mode 100644 index 0000000..194190e --- /dev/null +++ b/103707/examples/example_extended.xml @@ -0,0 +1,69 @@ + + + +
+ + 123 + 456 + +
+ + + + + someone@example.com + + + + + + someone-else-alias1@example.com + someone-else-alias2@example.com + someone-else-alias3@example.com + + + + + target@example.com + + true + + + 2019-10-17T06:42:23.000000+01:00 + + + + + http://FooServiceSchema.example.com/schema/v1.1.1/ + + + + + + + + + + + + + + + + + + + + + + + Foo + Bar + Baz + + + + + +
\ No newline at end of file diff --git a/103707/examples/example_simple.xml b/103707/examples/example_simple.xml new file mode 100644 index 0000000..5281630 --- /dev/null +++ b/103707/examples/example_simple.xml @@ -0,0 +1,37 @@ + + + +
+ + + + + target@example.com + + true + + + + + someoneelse@example.com + + + + 2019-10-17T06:42:23.000000+01:00 + + + + + http://FooServiceSchema.example.com/schema/v1.1.1/ + + + + Foo + Bar + Baz + + + + + +
\ No newline at end of file diff --git a/103707/portal/TS_103_707_v010101.xsd b/103707/portal/TS_103_707_v010101.xsd new file mode 100644 index 0000000..7d857df --- /dev/null +++ b/103707/portal/TS_103_707_v010101.xsd @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/103707/portal/examples/FooServiceSchema.xsd b/103707/portal/examples/FooServiceSchema.xsd new file mode 100644 index 0000000..59e2ff1 --- /dev/null +++ b/103707/portal/examples/FooServiceSchema.xsd @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/103707/portal/examples/example_binaryObject.xml b/103707/portal/examples/example_binaryObject.xml new file mode 100644 index 0000000..54655c5 --- /dev/null +++ b/103707/portal/examples/example_binaryObject.xml @@ -0,0 +1,48 @@ + + + +
+ + + + + target@example.com + + true + + + + + someoneelse@example.com + + + + 2019-10-17T06:42:23.000000+01:00 + + + https://example.com/binaryData/e71d2da5-774a-4bca-8748-2a00b2e17892 + 1024 + image/jpeg + 2019-10-17T06:42:53.000000+01:00 + 8b7df143d91c716ecfa5fc1730022f6b421b05cedee8fd52b1fc65a96030ad52 + cat.jpeg + e71d2da5-774a-4bca-8748-2a00b2e17892 + + + + + + + http://FooServiceSchema.example.com/schema/v1.1.1/ + + + + Foo + Bar + Baz + + + + + +
\ No newline at end of file diff --git a/103707/portal/examples/example_extended.xml b/103707/portal/examples/example_extended.xml new file mode 100644 index 0000000..194190e --- /dev/null +++ b/103707/portal/examples/example_extended.xml @@ -0,0 +1,69 @@ + + + +
+ + 123 + 456 + +
+ + + + + someone@example.com + + + + + + someone-else-alias1@example.com + someone-else-alias2@example.com + someone-else-alias3@example.com + + + + + target@example.com + + true + + + 2019-10-17T06:42:23.000000+01:00 + + + + + http://FooServiceSchema.example.com/schema/v1.1.1/ + + + + + + + + + + + + + + + + + + + + + + + Foo + Bar + Baz + + + + + +
\ No newline at end of file diff --git a/103707/portal/examples/example_simple.xml b/103707/portal/examples/example_simple.xml new file mode 100644 index 0000000..5281630 --- /dev/null +++ b/103707/portal/examples/example_simple.xml @@ -0,0 +1,37 @@ + + + +
+ + + + + target@example.com + + true + + + + + someoneelse@example.com + + + + 2019-10-17T06:42:23.000000+01:00 + + + + + http://FooServiceSchema.example.com/schema/v1.1.1/ + + + + Foo + Bar + Baz + + + + + +
\ No newline at end of file diff --git a/103707/portal/testing/validate_examples.py b/103707/portal/testing/validate_examples.py new file mode 100644 index 0000000..915de84 --- /dev/null +++ b/103707/portal/testing/validate_examples.py @@ -0,0 +1,46 @@ +import glob +import sys +from pathlib import Path +from pprint import pprint + +if __name__ == '__main__': + + if sys.version_info <= (3, 5): + sys.exit('ERROR: You need at least Python 3.5 to run this tool') + + try: + from lxml import etree + except ImportError: + sys.exit('ERROR: You need to install the Python lxml library') + + try: + import xmlschema + except ImportError: + sys.exit('ERROR: You need to install the xml schema library') + + + extraSchemas = [ + 'examples/FooServiceSchema.xsd', + 'TS_103_280_v020301.xsd' + ] + + locations = [] + for schemaFile in extraSchemas: + xs = xmlschema.XMLSchema(schemaFile, validation='skip') + locations.append((xs.default_namespace, str(Path(schemaFile)))) + + coreSchema = xmlschema.XMLSchema('TS_103_707_v010101.xsd', locations=locations) + + for schema in extraSchemas: + newSchema = xmlschema.XMLSchema(schema) + coreSchema.import_schema(newSchema.default_namespace, schema) + + examples = glob.glob('examples/*.xml') + for example in examples: + try: + coreSchema.validate(example) + print ("{0} passed validation".format(example)) + except Exception as ex: + print ("{0} failed validation: {1}".format(example, ex)) + + print ('Done') \ No newline at end of file diff --git a/103707/testing/validate_examples.py b/103707/testing/validate_examples.py new file mode 100644 index 0000000..915de84 --- /dev/null +++ b/103707/testing/validate_examples.py @@ -0,0 +1,46 @@ +import glob +import sys +from pathlib import Path +from pprint import pprint + +if __name__ == '__main__': + + if sys.version_info <= (3, 5): + sys.exit('ERROR: You need at least Python 3.5 to run this tool') + + try: + from lxml import etree + except ImportError: + sys.exit('ERROR: You need to install the Python lxml library') + + try: + import xmlschema + except ImportError: + sys.exit('ERROR: You need to install the xml schema library') + + + extraSchemas = [ + 'examples/FooServiceSchema.xsd', + 'TS_103_280_v020301.xsd' + ] + + locations = [] + for schemaFile in extraSchemas: + xs = xmlschema.XMLSchema(schemaFile, validation='skip') + locations.append((xs.default_namespace, str(Path(schemaFile)))) + + coreSchema = xmlschema.XMLSchema('TS_103_707_v010101.xsd', locations=locations) + + for schema in extraSchemas: + newSchema = xmlschema.XMLSchema(schema) + coreSchema.import_schema(newSchema.default_namespace, schema) + + examples = glob.glob('examples/*.xml') + for example in examples: + try: + coreSchema.validate(example) + print ("{0} passed validation".format(example)) + except Exception as ex: + print ("{0} failed validation: {1}".format(example, ex)) + + print ('Done') \ No newline at end of file -- GitLab