From af68a91ce2e2a409336520816530a972095f91bd Mon Sep 17 00:00:00 2001 From: s-heppner Date: Mon, 4 Mar 2024 13:14:36 +0100 Subject: [PATCH] Extract compliance tool to be its own package We extract the compliance_tool into its own package, since the functionality is not needed in the general SDK anymore. The new aas-compliance-tool can be found [here](https://github.com/rwth-iat/aas-compliance-tool). --- README.md | 18 +- basyx/aas/adapter/json/__init__.py | 3 - basyx/aas/adapter/json/aasJSONSchema.json | 1528 -------- basyx/aas/adapter/xml/AAS.xsd | 1344 ------- basyx/aas/adapter/xml/__init__.py | 3 - basyx/aas/compliance_tool/__init__.py | 0 basyx/aas/compliance_tool/cli.py | 196 - .../compliance_tool/compliance_check_aasx.py | 321 -- .../compliance_tool/compliance_check_json.py | 225 -- .../compliance_tool/compliance_check_xml.py | 225 -- basyx/aas/compliance_tool/state_manager.py | 217 -- setup.py | 2 - test/compliance_tool/__init__.py | 28 - .../files/test_demo_full_example.json | 3210 ---------------- .../files/test_demo_full_example.xml | 2991 --------------- .../TestFile.pdf | Bin 8178 -> 0 bytes .../[Content_Types].xml | 2 - .../_rels/.rels | 2 - .../aasx/_rels/aasx-origin.rels | 2 - .../aasx/_rels/data.json.rels | 2 - .../aasx/aasx-origin | 0 .../aasx/data.json | 3218 ----------------- .../docProps/core.xml | 1 - ...est_demo_full_example_wrong_attribute.json | 3210 ---------------- ...test_demo_full_example_wrong_attribute.xml | 2991 --------------- .../TestFile.pdf | Bin 8178 -> 0 bytes .../[Content_Types].xml | 2 - .../_rels/.rels | 2 - .../aasx/_rels/aasx-origin.rels | 2 - .../aasx/_rels/data.xml.rels | 2 - .../aasx/aasx-origin | 0 .../aasx/data.xml | 2999 --------------- .../docProps/core.xml | 1 - .../TestFile.pdf | Bin 8178 -> 0 bytes .../[Content_Types].xml | 2 - .../_rels/.rels | 2 - .../aasx/_rels/aasx-origin.rels | 2 - .../aasx/_rels/data.xml.rels | 2 - .../aasx/aasx-origin | 0 .../aasx/data.xml | 2999 --------------- .../docProps/core.xml | 1 - .../test_deserializable_aas_warning.json | 16 - .../files/test_deserializable_aas_warning.xml | 16 - test/compliance_tool/files/test_empty.json | 1 - test/compliance_tool/files/test_empty.xml | 3 - .../files/test_empty_aasx/[Content_Types].xml | 1 - .../files/test_empty_aasx/_rels/.rels | 1 - .../aasx/_rels/aasx-origin.rels | 1 - .../files/test_empty_aasx/aasx/aasx-origin | 0 .../files/test_empty_aasx/docProps/core.xml | 1 - .../files/test_not_deserializable.json | 5 - .../files/test_not_deserializable_aas.json | 15 - .../files/test_not_deserializable_aas.xml | 13 - .../test_aas_compliance_tool.py | 325 -- .../test_compliance_check_aasx.py | 171 - .../test_compliance_check_json.py | 195 - .../test_compliance_check_xml.py | 187 - test/compliance_tool/test_state_manager.py | 47 - 58 files changed, 1 insertion(+), 26752 deletions(-) delete mode 100644 basyx/aas/adapter/json/aasJSONSchema.json delete mode 100644 basyx/aas/adapter/xml/AAS.xsd delete mode 100644 basyx/aas/compliance_tool/__init__.py delete mode 100644 basyx/aas/compliance_tool/cli.py delete mode 100644 basyx/aas/compliance_tool/compliance_check_aasx.py delete mode 100644 basyx/aas/compliance_tool/compliance_check_json.py delete mode 100644 basyx/aas/compliance_tool/compliance_check_xml.py delete mode 100644 basyx/aas/compliance_tool/state_manager.py delete mode 100644 test/compliance_tool/__init__.py delete mode 100644 test/compliance_tool/files/test_demo_full_example.json delete mode 100644 test/compliance_tool/files/test_demo_full_example.xml delete mode 100644 test/compliance_tool/files/test_demo_full_example_json_aasx/TestFile.pdf delete mode 100644 test/compliance_tool/files/test_demo_full_example_json_aasx/[Content_Types].xml delete mode 100644 test/compliance_tool/files/test_demo_full_example_json_aasx/_rels/.rels delete mode 100644 test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/_rels/aasx-origin.rels delete mode 100644 test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/_rels/data.json.rels delete mode 100644 test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/aasx-origin delete mode 100644 test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/data.json delete mode 100644 test/compliance_tool/files/test_demo_full_example_json_aasx/docProps/core.xml delete mode 100644 test/compliance_tool/files/test_demo_full_example_wrong_attribute.json delete mode 100644 test/compliance_tool/files/test_demo_full_example_wrong_attribute.xml delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_aasx/TestFile.pdf delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_aasx/[Content_Types].xml delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_aasx/_rels/.rels delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/_rels/aasx-origin.rels delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/_rels/data.xml.rels delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/aasx-origin delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/data.xml delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_aasx/docProps/core.xml delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/TestFile.pdf delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/[Content_Types].xml delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/_rels/.rels delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/_rels/aasx-origin.rels delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/_rels/data.xml.rels delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/aasx-origin delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/data.xml delete mode 100644 test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/docProps/core.xml delete mode 100644 test/compliance_tool/files/test_deserializable_aas_warning.json delete mode 100644 test/compliance_tool/files/test_deserializable_aas_warning.xml delete mode 100644 test/compliance_tool/files/test_empty.json delete mode 100644 test/compliance_tool/files/test_empty.xml delete mode 100644 test/compliance_tool/files/test_empty_aasx/[Content_Types].xml delete mode 100644 test/compliance_tool/files/test_empty_aasx/_rels/.rels delete mode 100644 test/compliance_tool/files/test_empty_aasx/aasx/_rels/aasx-origin.rels delete mode 100644 test/compliance_tool/files/test_empty_aasx/aasx/aasx-origin delete mode 100644 test/compliance_tool/files/test_empty_aasx/docProps/core.xml delete mode 100644 test/compliance_tool/files/test_not_deserializable.json delete mode 100644 test/compliance_tool/files/test_not_deserializable_aas.json delete mode 100644 test/compliance_tool/files/test_not_deserializable_aas.xml delete mode 100644 test/compliance_tool/test_aas_compliance_tool.py delete mode 100644 test/compliance_tool/test_compliance_check_aasx.py delete mode 100644 test/compliance_tool/test_compliance_check_json.py delete mode 100644 test/compliance_tool/test_compliance_check_xml.py delete mode 100644 test/compliance_tool/test_state_manager.py diff --git a/README.md b/README.md index 6932cc055..dcadb6a0d 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,6 @@ The BaSyx Python SDK project provides the `basax.aas` Python package with 6 subm * `basyx.aas.model`: The AAS metamodel implemented in python * `basyx.aas.adapter`: Adapters for various file formats * `basyx.aas.backend`: Backend infrastructure for storing and retrieving AAS objects -* `basyx.aas.compliance_tool`: Compliance checker for AAS files * `basyx.aas.util`: Provides utilities * `basyx.aas.examples`: Example data and tutorials @@ -151,22 +150,7 @@ A detailed, complete API documentation is available on Read the Docs: https://ba ### Compliance Tool -The Eclipse BaSyx Python SDK project contains a compliance tool for testing xml and json files is provided in the -`basyx.aas.compliance_tool`-package. Following functionalities are supported: - -* create an xml or json file compliant to the official schema containing example Asset Administration Shell elements -* create an aasx file with xml or json files compliant to the official schema containing example Asset Administration -Shell elements -* check if a given xml or json file is compliant to the official schema -* check if a given xml, json or aasx file is readable even if it is not compliant to the offical schema -* check if the data in a given xml, json or aasx file is the same as the example data -* check if two given xml, json or aasx files contain the same Asset Administration Shell elements in any order - -Invoking should work with either `python -m basyx.aas.compliance_tool.cli` or (when installed correctly and PATH is set -correctly) with `aas-compliance-check` on the command line. - -For further usage information consider the `basyx.aas.compliance_tool`-package or invoke with -`python -m basyx.aas.compliance_tool.cli --help` respectively `aas-compliance-check --help`. +The compliance tool functionality moved to [github.com/rwth-iat/aas-compliance-tool](https://github.com/rwth-iat/aas-compliance-tool). ## Contributing diff --git a/basyx/aas/adapter/json/__init__.py b/basyx/aas/adapter/json/__init__.py index 740b0fbf4..04b780566 100644 --- a/basyx/aas/adapter/json/__init__.py +++ b/basyx/aas/adapter/json/__init__.py @@ -16,10 +16,7 @@ AAS objects within a JSON file and return them as BaSyx Python SDK :class:`ObjectStore `. """ -import os.path from .json_serialization import AASToJsonEncoder, StrippedAASToJsonEncoder, write_aas_json_file, object_store_to_json from .json_deserialization import AASFromJsonDecoder, StrictAASFromJsonDecoder, StrippedAASFromJsonDecoder, \ StrictStrippedAASFromJsonDecoder, read_aas_json_file, read_aas_json_file_into - -JSON_SCHEMA_FILE = os.path.join(os.path.dirname(__file__), 'aasJSONSchema.json') diff --git a/basyx/aas/adapter/json/aasJSONSchema.json b/basyx/aas/adapter/json/aasJSONSchema.json deleted file mode 100644 index f48db4d17..000000000 --- a/basyx/aas/adapter/json/aasJSONSchema.json +++ /dev/null @@ -1,1528 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "title": "AssetAdministrationShellEnvironment", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/Environment" - } - ], - "$id": "https://admin-shell.io/aas/3/0", - "definitions": { - "AasSubmodelElements": { - "type": "string", - "enum": [ - "AnnotatedRelationshipElement", - "BasicEventElement", - "Blob", - "Capability", - "DataElement", - "Entity", - "EventElement", - "File", - "MultiLanguageProperty", - "Operation", - "Property", - "Range", - "ReferenceElement", - "RelationshipElement", - "SubmodelElement", - "SubmodelElementCollection", - "SubmodelElementList" - ] - }, - "AbstractLangString": { - "type": "object", - "properties": { - "language": { - "type": "string", - "pattern": "^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$" - }, - "text": { - "type": "string", - "minLength": 1, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - } - }, - "required": [ - "language", - "text" - ] - }, - "AdministrativeInformation": { - "allOf": [ - { - "$ref": "#/definitions/HasDataSpecification" - }, - { - "properties": { - "version": { - "type": "string", - "allOf": [ - { - "minLength": 1, - "maxLength": 4 - }, - { - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - { - "pattern": "^(0|[1-9][0-9]*)$" - } - ] - }, - "revision": { - "type": "string", - "allOf": [ - { - "minLength": 1, - "maxLength": 4 - }, - { - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - { - "pattern": "^(0|[1-9][0-9]*)$" - } - ] - }, - "creator": { - "$ref": "#/definitions/Reference" - }, - "templateId": { - "type": "string", - "minLength": 1, - "maxLength": 2000, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - } - } - } - ] - }, - "AnnotatedRelationshipElement": { - "allOf": [ - { - "$ref": "#/definitions/RelationshipElement_abstract" - }, - { - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/DataElement_choice" - }, - "minItems": 1 - }, - "modelType": { - "const": "AnnotatedRelationshipElement" - } - } - } - ] - }, - "AssetAdministrationShell": { - "allOf": [ - { - "$ref": "#/definitions/Identifiable" - }, - { - "$ref": "#/definitions/HasDataSpecification" - }, - { - "properties": { - "derivedFrom": { - "$ref": "#/definitions/Reference" - }, - "assetInformation": { - "$ref": "#/definitions/AssetInformation" - }, - "submodels": { - "type": "array", - "items": { - "$ref": "#/definitions/Reference" - }, - "minItems": 1 - }, - "modelType": { - "const": "AssetAdministrationShell" - } - }, - "required": [ - "assetInformation" - ] - } - ] - }, - "AssetInformation": { - "type": "object", - "properties": { - "assetKind": { - "$ref": "#/definitions/AssetKind" - }, - "globalAssetId": { - "type": "string", - "minLength": 1, - "maxLength": 2000, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "specificAssetIds": { - "type": "array", - "items": { - "$ref": "#/definitions/SpecificAssetId" - }, - "minItems": 1 - }, - "assetType": { - "type": "string", - "minLength": 1, - "maxLength": 2000, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "defaultThumbnail": { - "$ref": "#/definitions/Resource" - } - }, - "required": [ - "assetKind" - ] - }, - "AssetKind": { - "type": "string", - "enum": [ - "Instance", - "NotApplicable", - "Type" - ] - }, - "BasicEventElement": { - "allOf": [ - { - "$ref": "#/definitions/EventElement" - }, - { - "properties": { - "observed": { - "$ref": "#/definitions/Reference" - }, - "direction": { - "$ref": "#/definitions/Direction" - }, - "state": { - "$ref": "#/definitions/StateOfEvent" - }, - "messageTopic": { - "type": "string", - "minLength": 1, - "maxLength": 255, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "messageBroker": { - "$ref": "#/definitions/Reference" - }, - "lastUpdate": { - "type": "string", - "pattern": "^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))T(((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\\.[0-9]+)?)|24:00:00(\\.0+)?)(Z|\\+00:00|-00:00)$" - }, - "minInterval": { - "type": "string", - "pattern": "^-?P((([0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D))(T(([0-9]+H)([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\\.[0-9]+)?S)?|([0-9]+(\\.[0-9]+)?S)))?)|(T(([0-9]+H)([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\\.[0-9]+)?S)?|([0-9]+(\\.[0-9]+)?S))))$" - }, - "maxInterval": { - "type": "string", - "pattern": "^-?P((([0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D))(T(([0-9]+H)([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\\.[0-9]+)?S)?|([0-9]+(\\.[0-9]+)?S)))?)|(T(([0-9]+H)([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\\.[0-9]+)?S)?|([0-9]+(\\.[0-9]+)?S))))$" - }, - "modelType": { - "const": "BasicEventElement" - } - }, - "required": [ - "observed", - "direction", - "state" - ] - } - ] - }, - "Blob": { - "allOf": [ - { - "$ref": "#/definitions/DataElement" - }, - { - "properties": { - "value": { - "type": "string", - "contentEncoding": "base64" - }, - "contentType": { - "type": "string", - "allOf": [ - { - "minLength": 1, - "maxLength": 100 - }, - { - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - { - "pattern": "^([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+/([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+([ \\t]*;[ \\t]*([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+|\"(([\\t !#-\\[\\]-~]|[\u0080-\u00ff])|\\\\([\\t !-~]|[\u0080-\u00ff]))*\"))*$" - } - ] - }, - "modelType": { - "const": "Blob" - } - }, - "required": [ - "contentType" - ] - } - ] - }, - "Capability": { - "allOf": [ - { - "$ref": "#/definitions/SubmodelElement" - }, - { - "properties": { - "modelType": { - "const": "Capability" - } - } - } - ] - }, - "ConceptDescription": { - "allOf": [ - { - "$ref": "#/definitions/Identifiable" - }, - { - "$ref": "#/definitions/HasDataSpecification" - }, - { - "properties": { - "isCaseOf": { - "type": "array", - "items": { - "$ref": "#/definitions/Reference" - }, - "minItems": 1 - }, - "modelType": { - "const": "ConceptDescription" - } - } - } - ] - }, - "DataElement": { - "$ref": "#/definitions/SubmodelElement" - }, - "DataElement_choice": { - "oneOf": [ - { - "$ref": "#/definitions/Blob" - }, - { - "$ref": "#/definitions/File" - }, - { - "$ref": "#/definitions/MultiLanguageProperty" - }, - { - "$ref": "#/definitions/Property" - }, - { - "$ref": "#/definitions/Range" - }, - { - "$ref": "#/definitions/ReferenceElement" - } - ] - }, - "DataSpecificationContent": { - "type": "object", - "properties": { - "modelType": { - "$ref": "#/definitions/ModelType" - } - }, - "required": [ - "modelType" - ] - }, - "DataSpecificationContent_choice": { - "oneOf": [ - { - "$ref": "#/definitions/DataSpecificationIec61360" - } - ] - }, - "DataSpecificationIec61360": { - "allOf": [ - { - "$ref": "#/definitions/DataSpecificationContent" - }, - { - "properties": { - "preferredName": { - "type": "array", - "items": { - "$ref": "#/definitions/LangStringPreferredNameTypeIec61360" - }, - "minItems": 1 - }, - "shortName": { - "type": "array", - "items": { - "$ref": "#/definitions/LangStringShortNameTypeIec61360" - }, - "minItems": 1 - }, - "unit": { - "type": "string", - "minLength": 1, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "unitId": { - "$ref": "#/definitions/Reference" - }, - "sourceOfDefinition": { - "type": "string", - "minLength": 1, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "symbol": { - "type": "string", - "minLength": 1, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "dataType": { - "$ref": "#/definitions/DataTypeIec61360" - }, - "definition": { - "type": "array", - "items": { - "$ref": "#/definitions/LangStringDefinitionTypeIec61360" - }, - "minItems": 1 - }, - "valueFormat": { - "type": "string", - "minLength": 1, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "valueList": { - "$ref": "#/definitions/ValueList" - }, - "value": { - "type": "string", - "minLength": 1, - "maxLength": 2000, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "levelType": { - "$ref": "#/definitions/LevelType" - }, - "modelType": { - "const": "DataSpecificationIec61360" - } - }, - "required": [ - "preferredName" - ] - } - ] - }, - "DataTypeDefXsd": { - "type": "string", - "enum": [ - "xs:anyURI", - "xs:base64Binary", - "xs:boolean", - "xs:byte", - "xs:date", - "xs:dateTime", - "xs:decimal", - "xs:double", - "xs:duration", - "xs:float", - "xs:gDay", - "xs:gMonth", - "xs:gMonthDay", - "xs:gYear", - "xs:gYearMonth", - "xs:hexBinary", - "xs:int", - "xs:integer", - "xs:long", - "xs:negativeInteger", - "xs:nonNegativeInteger", - "xs:nonPositiveInteger", - "xs:positiveInteger", - "xs:short", - "xs:string", - "xs:time", - "xs:unsignedByte", - "xs:unsignedInt", - "xs:unsignedLong", - "xs:unsignedShort" - ] - }, - "DataTypeIec61360": { - "type": "string", - "enum": [ - "BLOB", - "BOOLEAN", - "DATE", - "FILE", - "HTML", - "INTEGER_COUNT", - "INTEGER_CURRENCY", - "INTEGER_MEASURE", - "IRDI", - "IRI", - "RATIONAL", - "RATIONAL_MEASURE", - "REAL_COUNT", - "REAL_CURRENCY", - "REAL_MEASURE", - "STRING", - "STRING_TRANSLATABLE", - "TIME", - "TIMESTAMP" - ] - }, - "Direction": { - "type": "string", - "enum": [ - "input", - "output" - ] - }, - "EmbeddedDataSpecification": { - "type": "object", - "properties": { - "dataSpecification": { - "$ref": "#/definitions/Reference" - }, - "dataSpecificationContent": { - "$ref": "#/definitions/DataSpecificationContent_choice" - } - }, - "required": [ - "dataSpecification", - "dataSpecificationContent" - ] - }, - "Entity": { - "allOf": [ - { - "$ref": "#/definitions/SubmodelElement" - }, - { - "properties": { - "statements": { - "type": "array", - "items": { - "$ref": "#/definitions/SubmodelElement_choice" - }, - "minItems": 1 - }, - "entityType": { - "$ref": "#/definitions/EntityType" - }, - "globalAssetId": { - "type": "string", - "minLength": 1, - "maxLength": 2000, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "specificAssetIds": { - "type": "array", - "items": { - "$ref": "#/definitions/SpecificAssetId" - }, - "minItems": 1 - }, - "modelType": { - "const": "Entity" - } - }, - "required": [ - "entityType" - ] - } - ] - }, - "EntityType": { - "type": "string", - "enum": [ - "CoManagedEntity", - "SelfManagedEntity" - ] - }, - "Environment": { - "type": "object", - "properties": { - "assetAdministrationShells": { - "type": "array", - "items": { - "$ref": "#/definitions/AssetAdministrationShell" - }, - "minItems": 1 - }, - "submodels": { - "type": "array", - "items": { - "$ref": "#/definitions/Submodel" - }, - "minItems": 1 - }, - "conceptDescriptions": { - "type": "array", - "items": { - "$ref": "#/definitions/ConceptDescription" - }, - "minItems": 1 - } - } - }, - "EventElement": { - "$ref": "#/definitions/SubmodelElement" - }, - "EventPayload": { - "type": "object", - "properties": { - "source": { - "$ref": "#/definitions/Reference" - }, - "sourceSemanticId": { - "$ref": "#/definitions/Reference" - }, - "observableReference": { - "$ref": "#/definitions/Reference" - }, - "observableSemanticId": { - "$ref": "#/definitions/Reference" - }, - "topic": { - "type": "string", - "minLength": 1, - "maxLength": 255, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "subjectId": { - "$ref": "#/definitions/Reference" - }, - "timeStamp": { - "type": "string", - "pattern": "^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))T(((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\\.[0-9]+)?)|24:00:00(\\.0+)?)(Z|\\+00:00|-00:00)$" - }, - "payload": { - "type": "string", - "contentEncoding": "base64" - } - }, - "required": [ - "source", - "observableReference", - "timeStamp" - ] - }, - "Extension": { - "allOf": [ - { - "$ref": "#/definitions/HasSemantics" - }, - { - "properties": { - "name": { - "type": "string", - "minLength": 1, - "maxLength": 128, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "valueType": { - "$ref": "#/definitions/DataTypeDefXsd" - }, - "value": { - "type": "string" - }, - "refersTo": { - "type": "array", - "items": { - "$ref": "#/definitions/Reference" - }, - "minItems": 1 - } - }, - "required": [ - "name" - ] - } - ] - }, - "File": { - "allOf": [ - { - "$ref": "#/definitions/DataElement" - }, - { - "properties": { - "value": { - "type": "string" - }, - "contentType": { - "type": "string", - "allOf": [ - { - "minLength": 1, - "maxLength": 100 - }, - { - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - { - "pattern": "^([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+/([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+([ \\t]*;[ \\t]*([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+|\"(([\\t !#-\\[\\]-~]|[\u0080-\u00ff])|\\\\([\\t !-~]|[\u0080-\u00ff]))*\"))*$" - } - ] - }, - "modelType": { - "const": "File" - } - }, - "required": [ - "contentType" - ] - } - ] - }, - "HasDataSpecification": { - "type": "object", - "properties": { - "embeddedDataSpecifications": { - "type": "array", - "items": { - "$ref": "#/definitions/EmbeddedDataSpecification" - }, - "minItems": 1 - } - } - }, - "HasExtensions": { - "type": "object", - "properties": { - "extensions": { - "type": "array", - "items": { - "$ref": "#/definitions/Extension" - }, - "minItems": 1 - } - } - }, - "HasKind": { - "type": "object", - "properties": { - "kind": { - "$ref": "#/definitions/ModellingKind" - } - } - }, - "HasSemantics": { - "type": "object", - "properties": { - "semanticId": { - "$ref": "#/definitions/Reference" - }, - "supplementalSemanticIds": { - "type": "array", - "items": { - "$ref": "#/definitions/Reference" - }, - "minItems": 1 - } - } - }, - "Identifiable": { - "allOf": [ - { - "$ref": "#/definitions/Referable" - }, - { - "properties": { - "administration": { - "$ref": "#/definitions/AdministrativeInformation" - }, - "id": { - "type": "string", - "minLength": 1, - "maxLength": 2000, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - } - }, - "required": [ - "id" - ] - } - ] - }, - "Key": { - "type": "object", - "properties": { - "type": { - "$ref": "#/definitions/KeyTypes" - }, - "value": { - "type": "string", - "minLength": 1, - "maxLength": 2000, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - } - }, - "required": [ - "type", - "value" - ] - }, - "KeyTypes": { - "type": "string", - "enum": [ - "AnnotatedRelationshipElement", - "AssetAdministrationShell", - "BasicEventElement", - "Blob", - "Capability", - "ConceptDescription", - "DataElement", - "Entity", - "EventElement", - "File", - "FragmentReference", - "GlobalReference", - "Identifiable", - "MultiLanguageProperty", - "Operation", - "Property", - "Range", - "Referable", - "ReferenceElement", - "RelationshipElement", - "Submodel", - "SubmodelElement", - "SubmodelElementCollection", - "SubmodelElementList" - ] - }, - "LangStringDefinitionTypeIec61360": { - "allOf": [ - { - "$ref": "#/definitions/AbstractLangString" - }, - { - "properties": { - "text": { - "maxLength": 1023 - } - } - } - ] - }, - "LangStringNameType": { - "allOf": [ - { - "$ref": "#/definitions/AbstractLangString" - }, - { - "properties": { - "text": { - "maxLength": 128 - } - } - } - ] - }, - "LangStringPreferredNameTypeIec61360": { - "allOf": [ - { - "$ref": "#/definitions/AbstractLangString" - }, - { - "properties": { - "text": { - "maxLength": 255 - } - } - } - ] - }, - "LangStringShortNameTypeIec61360": { - "allOf": [ - { - "$ref": "#/definitions/AbstractLangString" - }, - { - "properties": { - "text": { - "maxLength": 18 - } - } - } - ] - }, - "LangStringTextType": { - "allOf": [ - { - "$ref": "#/definitions/AbstractLangString" - }, - { - "properties": { - "text": { - "maxLength": 1023 - } - } - } - ] - }, - "LevelType": { - "type": "object", - "properties": { - "min": { - "type": "boolean" - }, - "nom": { - "type": "boolean" - }, - "typ": { - "type": "boolean" - }, - "max": { - "type": "boolean" - } - }, - "required": [ - "min", - "nom", - "typ", - "max" - ] - }, - "ModelType": { - "type": "string", - "enum": [ - "AnnotatedRelationshipElement", - "AssetAdministrationShell", - "BasicEventElement", - "Blob", - "Capability", - "ConceptDescription", - "DataSpecificationIec61360", - "Entity", - "File", - "MultiLanguageProperty", - "Operation", - "Property", - "Range", - "ReferenceElement", - "RelationshipElement", - "Submodel", - "SubmodelElementCollection", - "SubmodelElementList" - ] - }, - "ModellingKind": { - "type": "string", - "enum": [ - "Instance", - "Template" - ] - }, - "MultiLanguageProperty": { - "allOf": [ - { - "$ref": "#/definitions/DataElement" - }, - { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/LangStringTextType" - }, - "minItems": 1 - }, - "valueId": { - "$ref": "#/definitions/Reference" - }, - "modelType": { - "const": "MultiLanguageProperty" - } - } - } - ] - }, - "Operation": { - "allOf": [ - { - "$ref": "#/definitions/SubmodelElement" - }, - { - "properties": { - "inputVariables": { - "type": "array", - "items": { - "$ref": "#/definitions/OperationVariable" - }, - "minItems": 1 - }, - "outputVariables": { - "type": "array", - "items": { - "$ref": "#/definitions/OperationVariable" - }, - "minItems": 1 - }, - "inoutputVariables": { - "type": "array", - "items": { - "$ref": "#/definitions/OperationVariable" - }, - "minItems": 1 - }, - "modelType": { - "const": "Operation" - } - } - } - ] - }, - "OperationVariable": { - "type": "object", - "properties": { - "value": { - "$ref": "#/definitions/SubmodelElement_choice" - } - }, - "required": [ - "value" - ] - }, - "Property": { - "allOf": [ - { - "$ref": "#/definitions/DataElement" - }, - { - "properties": { - "valueType": { - "$ref": "#/definitions/DataTypeDefXsd" - }, - "value": { - "type": "string" - }, - "valueId": { - "$ref": "#/definitions/Reference" - }, - "modelType": { - "const": "Property" - } - }, - "required": [ - "valueType" - ] - } - ] - }, - "Qualifiable": { - "type": "object", - "properties": { - "qualifiers": { - "type": "array", - "items": { - "$ref": "#/definitions/Qualifier" - }, - "minItems": 1 - }, - "modelType": { - "$ref": "#/definitions/ModelType" - } - }, - "required": [ - "modelType" - ] - }, - "Qualifier": { - "allOf": [ - { - "$ref": "#/definitions/HasSemantics" - }, - { - "properties": { - "kind": { - "$ref": "#/definitions/QualifierKind" - }, - "type": { - "type": "string", - "minLength": 1, - "maxLength": 128, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "valueType": { - "$ref": "#/definitions/DataTypeDefXsd" - }, - "value": { - "type": "string" - }, - "valueId": { - "$ref": "#/definitions/Reference" - } - }, - "required": [ - "type", - "valueType" - ] - } - ] - }, - "QualifierKind": { - "type": "string", - "enum": [ - "ConceptQualifier", - "TemplateQualifier", - "ValueQualifier" - ] - }, - "Range": { - "allOf": [ - { - "$ref": "#/definitions/DataElement" - }, - { - "properties": { - "valueType": { - "$ref": "#/definitions/DataTypeDefXsd" - }, - "min": { - "type": "string" - }, - "max": { - "type": "string" - }, - "modelType": { - "const": "Range" - } - }, - "required": [ - "valueType" - ] - } - ] - }, - "Referable": { - "allOf": [ - { - "$ref": "#/definitions/HasExtensions" - }, - { - "properties": { - "category": { - "type": "string", - "minLength": 1, - "maxLength": 128, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "idShort": { - "type": "string", - "allOf": [ - { - "minLength": 1, - "maxLength": 128 - }, - { - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - { - "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$" - } - ] - }, - "displayName": { - "type": "array", - "items": { - "$ref": "#/definitions/LangStringNameType" - }, - "minItems": 1 - }, - "description": { - "type": "array", - "items": { - "$ref": "#/definitions/LangStringTextType" - }, - "minItems": 1 - }, - "modelType": { - "$ref": "#/definitions/ModelType" - } - }, - "required": [ - "modelType" - ] - } - ] - }, - "Reference": { - "type": "object", - "properties": { - "type": { - "$ref": "#/definitions/ReferenceTypes" - }, - "referredSemanticId": { - "$ref": "#/definitions/Reference" - }, - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/Key" - }, - "minItems": 1 - } - }, - "required": [ - "type", - "keys" - ] - }, - "ReferenceElement": { - "allOf": [ - { - "$ref": "#/definitions/DataElement" - }, - { - "properties": { - "value": { - "$ref": "#/definitions/Reference" - }, - "modelType": { - "const": "ReferenceElement" - } - } - } - ] - }, - "ReferenceTypes": { - "type": "string", - "enum": [ - "ExternalReference", - "ModelReference" - ] - }, - "RelationshipElement": { - "allOf": [ - { - "$ref": "#/definitions/RelationshipElement_abstract" - }, - { - "properties": { - "modelType": { - "const": "RelationshipElement" - } - } - } - ] - }, - "RelationshipElement_abstract": { - "allOf": [ - { - "$ref": "#/definitions/SubmodelElement" - }, - { - "properties": { - "first": { - "$ref": "#/definitions/Reference" - }, - "second": { - "$ref": "#/definitions/Reference" - } - }, - "required": [ - "first", - "second" - ] - } - ] - }, - "RelationshipElement_choice": { - "oneOf": [ - { - "$ref": "#/definitions/RelationshipElement" - }, - { - "$ref": "#/definitions/AnnotatedRelationshipElement" - } - ] - }, - "Resource": { - "type": "object", - "properties": { - "path": { - "type": "string", - "allOf": [ - { - "minLength": 1, - "maxLength": 2000 - }, - { - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - { - "pattern": "^file:(//((localhost|(\\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\\.([a-zA-Z0-9\\-._~]|[!$&'()*+,;=]|:)+)\\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)))?/((([a-zA-Z0-9\\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|/((([a-zA-Z0-9\\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?)$" - } - ] - }, - "contentType": { - "type": "string", - "allOf": [ - { - "minLength": 1, - "maxLength": 100 - }, - { - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - { - "pattern": "^([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+/([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+([ \\t]*;[ \\t]*([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+|\"(([\\t !#-\\[\\]-~]|[\u0080-\u00ff])|\\\\([\\t !-~]|[\u0080-\u00ff]))*\"))*$" - } - ] - } - }, - "required": [ - "path" - ] - }, - "SpecificAssetId": { - "allOf": [ - { - "$ref": "#/definitions/HasSemantics" - }, - { - "properties": { - "name": { - "type": "string", - "minLength": 1, - "maxLength": 64, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "value": { - "type": "string", - "minLength": 1, - "maxLength": 2000, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "externalSubjectId": { - "$ref": "#/definitions/Reference" - } - }, - "required": [ - "name", - "value" - ] - } - ] - }, - "StateOfEvent": { - "type": "string", - "enum": [ - "off", - "on" - ] - }, - "Submodel": { - "allOf": [ - { - "$ref": "#/definitions/Identifiable" - }, - { - "$ref": "#/definitions/HasKind" - }, - { - "$ref": "#/definitions/HasSemantics" - }, - { - "$ref": "#/definitions/Qualifiable" - }, - { - "$ref": "#/definitions/HasDataSpecification" - }, - { - "properties": { - "submodelElements": { - "type": "array", - "items": { - "$ref": "#/definitions/SubmodelElement_choice" - }, - "minItems": 1 - }, - "modelType": { - "const": "Submodel" - } - } - } - ] - }, - "SubmodelElement": { - "allOf": [ - { - "$ref": "#/definitions/Referable" - }, - { - "$ref": "#/definitions/HasSemantics" - }, - { - "$ref": "#/definitions/Qualifiable" - }, - { - "$ref": "#/definitions/HasDataSpecification" - } - ] - }, - "SubmodelElementCollection": { - "allOf": [ - { - "$ref": "#/definitions/SubmodelElement" - }, - { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/SubmodelElement_choice" - }, - "minItems": 1 - }, - "modelType": { - "const": "SubmodelElementCollection" - } - } - } - ] - }, - "SubmodelElementList": { - "allOf": [ - { - "$ref": "#/definitions/SubmodelElement" - }, - { - "properties": { - "orderRelevant": { - "type": "boolean" - }, - "semanticIdListElement": { - "$ref": "#/definitions/Reference" - }, - "typeValueListElement": { - "$ref": "#/definitions/AasSubmodelElements" - }, - "valueTypeListElement": { - "$ref": "#/definitions/DataTypeDefXsd" - }, - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/SubmodelElement_choice" - }, - "minItems": 1 - }, - "modelType": { - "const": "SubmodelElementList" - } - }, - "required": [ - "typeValueListElement" - ] - } - ] - }, - "SubmodelElement_choice": { - "oneOf": [ - { - "$ref": "#/definitions/RelationshipElement" - }, - { - "$ref": "#/definitions/AnnotatedRelationshipElement" - }, - { - "$ref": "#/definitions/BasicEventElement" - }, - { - "$ref": "#/definitions/Blob" - }, - { - "$ref": "#/definitions/Capability" - }, - { - "$ref": "#/definitions/Entity" - }, - { - "$ref": "#/definitions/File" - }, - { - "$ref": "#/definitions/MultiLanguageProperty" - }, - { - "$ref": "#/definitions/Operation" - }, - { - "$ref": "#/definitions/Property" - }, - { - "$ref": "#/definitions/Range" - }, - { - "$ref": "#/definitions/ReferenceElement" - }, - { - "$ref": "#/definitions/SubmodelElementCollection" - }, - { - "$ref": "#/definitions/SubmodelElementList" - } - ] - }, - "ValueList": { - "type": "object", - "properties": { - "valueReferencePairs": { - "type": "array", - "items": { - "$ref": "#/definitions/ValueReferencePair" - }, - "minItems": 1 - } - }, - "required": [ - "valueReferencePairs" - ] - }, - "ValueReferencePair": { - "type": "object", - "properties": { - "value": { - "type": "string", - "minLength": 1, - "maxLength": 2000, - "pattern": "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" - }, - "valueId": { - "$ref": "#/definitions/Reference" - } - }, - "required": [ - "value", - "valueId" - ] - } - } -} \ No newline at end of file diff --git a/basyx/aas/adapter/xml/AAS.xsd b/basyx/aas/adapter/xml/AAS.xsd deleted file mode 100644 index 25d7a52b9..000000000 --- a/basyx/aas/adapter/xml/AAS.xsd +++ /dev/null @@ -1,1344 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/basyx/aas/adapter/xml/__init__.py b/basyx/aas/adapter/xml/__init__.py index af58ad0be..aa08288a0 100644 --- a/basyx/aas/adapter/xml/__init__.py +++ b/basyx/aas/adapter/xml/__init__.py @@ -9,11 +9,8 @@ :ref:`xml_deserialization `: The module offers a function to create an :class:`ObjectStore ` from a given xml document. """ -import os.path from .xml_serialization import object_store_to_xml_element, write_aas_xml_file, object_to_xml_element, \ write_aas_xml_element from .xml_deserialization import AASFromXmlDecoder, StrictAASFromXmlDecoder, StrippedAASFromXmlDecoder, \ StrictStrippedAASFromXmlDecoder, XMLConstructables, read_aas_xml_file, read_aas_xml_file_into, read_aas_xml_element - -XML_SCHEMA_FILE = os.path.join(os.path.dirname(__file__), 'AAS.xsd') diff --git a/basyx/aas/compliance_tool/__init__.py b/basyx/aas/compliance_tool/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/basyx/aas/compliance_tool/cli.py b/basyx/aas/compliance_tool/cli.py deleted file mode 100644 index 19f0bfbc8..000000000 --- a/basyx/aas/compliance_tool/cli.py +++ /dev/null @@ -1,196 +0,0 @@ -# Copyright (c) 2020 the Eclipse BaSyx Authors -# -# This program and the accompanying materials are made available under the terms of the MIT License, available in -# the LICENSE file of this project. -# -# SPDX-License-Identifier: MIT - -""" -Command line script which is a compliance tool for creating and checking json and xml files in compliance with -"Details of the Asset Administration Shell" specification of Plattform Industrie 4.0. It uses the create_example() from -examples.data.__init__.py -""" -import argparse -import datetime - -import logging - -import pyecma376_2 - -from basyx.aas import model -from basyx.aas.adapter import aasx -from basyx.aas.adapter.xml import write_aas_xml_file -from basyx.aas.compliance_tool import compliance_check_xml as compliance_tool_xml, \ - compliance_check_json as compliance_tool_json, compliance_check_aasx as compliance_tool_aasx -from basyx.aas.adapter.json import write_aas_json_file -from basyx.aas.examples.data import create_example, create_example_aas_binding, TEST_PDF_FILE -from basyx.aas.compliance_tool.state_manager import ComplianceToolStateManager, Status - - -def parse_cli_arguments() -> argparse.ArgumentParser: - """ - This function returns the argument-parser for the cli - """ - parser = argparse.ArgumentParser( - prog='compliance_tool', - description='Compliance tool for creating and checking json and xml files in compliance with "Details of the ' - 'Asset Administration Shell" specification of Plattform Industrie 4.0. \n\n' - 'This tool has five features: \n' - '1. create a xml or json file or an AASX file using xml or json files with example aas elements\n' - '2. check if a given xml or json file is compliant with the official json or xml aas schema and ' - 'is deserializable\n' - '3. check if the data in a given xml, json or aasx file is the same as the example data\n' - '4. check if two given xml, json or aasx files contain the same aas elements in any order\n\n' - 'As a first argument, the feature must be specified (create, schema, deserialization, example, ' - 'files) or in short (c, s, d, e or f).\n' - 'Depending the chosen feature, different additional arguments must be specified:\n' - 'create or c: path to the file which shall be created (file_1)\n' - 'deseriable or d: file to be checked (file_1)\n' - 'example or e: file to be checked (file_1)\n' - 'file_compare or f: files to compare (file_1, file_2)\n,' - 'In any case, it must be specified whether the (given or created) files are json (--json) or ' - 'xml (--xml).\n' - 'All features except "schema" support reading/writing AASX packages instead of plain XML or JSON ' - 'files via the --aasx option.\n\n' - 'Additionally, the tool offers some extra features for more convenient usage:\n\n' - 'a. Different levels of verbosity:\n' - ' Default output is just the status for each step performed. With -v or --verbose, additional ' - 'information in case of status = FAILED will be provided. With one more -v or --verbose, additional' - ' information even in case of status = SUCCESS or WARNINGS will be provided.\n' - 'b. Suppressing output on success:\n' - ' With -q or --quite no output will be generated if the status = SUCCESS.\n' - 'c. Save log additionally in a logfile:\n' - ' With -l or --logfile, a path to the file where the logfiles shall be created can be specified.', - formatter_class=argparse.RawTextHelpFormatter) - - parser.add_argument('action', choices=['create', 'c', 'schema', 's', 'deserialization', 'd', 'example', 'e', - 'files', 'f'], - help='c or create: creates a file with example data\n' - 'd or deserialization: checks if a given file is compliance with the official schema and ' - 'is deserializable\n' - 'e or example: checks if a given file contains the example aas elements\n' - 'f or file_compare: checks if two given files contain the same aas elements in any order') - parser.add_argument('file_1', help="path to file 1") - parser.add_argument('file_2', nargs='?', default=None, help="path to file 2: is required if action f or files is " - "choosen") - parser.add_argument('-v', '--verbose', help="Print detailed information for each check. Multiple -v options " - "increase the verbosity. 1: Detailed error information, 2: Additional " - "detailed success information", action='count', default=0) - parser.add_argument('-q', '--quite', help="no information output if successful", action='store_true') - group = parser.add_mutually_exclusive_group(required=True) - group.add_argument('--json', help="Use AAS json format when checking or creating files", action='store_true') - group.add_argument('--xml', help="Use AAS xml format when checking or creating files", action='store_true') - parser.add_argument('-l', '--logfile', help="Log file to be created in addition to output to stdout", default=None) - parser.add_argument('--aasx', help="Create or read AASX files", action='store_true') - parser.add_argument('--dont-check-extensions', help="Don't compare Extensions", action='store_false') - return parser - - -def main(): - parser = parse_cli_arguments() - args = parser.parse_args() - - # Todo try to find out in which format the file is if not --json or --xml - - manager = ComplianceToolStateManager() - logger = logging.getLogger(__name__) - logger.propagate = False - logger.addHandler(manager) - - data_checker_kwargs = { - 'check_extensions': args.dont_check_extensions - } - - if args.action == 'create' or args.action == 'c': - manager.add_step('Create example data') - if args.aasx: - data = create_example_aas_binding() - else: - data = create_example() - manager.set_step_status(Status.SUCCESS) - try: - manager.add_step('Open file') - if args.aasx: - with aasx.AASXWriter(args.file_1) as writer: - manager.set_step_status(Status.SUCCESS) - manager.add_step('Write data to file') - - files = aasx.DictSupplementaryFileContainer() - with open(TEST_PDF_FILE, 'rb') as f: - files.add_file("/TestFile.pdf", f, "application/pdf") - - # Create OPC/AASX core properties - cp = pyecma376_2.OPCCoreProperties() - cp.created = datetime.datetime(2020, 1, 1, 0, 0, 0) - cp.creator = "Eclipse BaSyx Python Testing Framework" - cp.description = "Test_Description" - cp.lastModifiedBy = "Eclipse BaSyx Python Testing Framework Compliance Tool" - cp.modified = datetime.datetime(2020, 1, 1, 0, 0, 1) - cp.revision = "1.0" - cp.version = "2.0.1" - cp.title = "Test Title" - - writer.write_aas_objects("/aasx/data.json" if args.json else "/aasx/data.xml", - [obj.id for obj in data], data, files, - write_json=args.json) - writer.write_core_properties(cp) - manager.set_step_status(Status.SUCCESS) - elif args.json: - with open(args.file_1, 'w', encoding='utf-8-sig') as file: - manager.set_step_status(Status.SUCCESS) - manager.add_step('Write data to file') - write_aas_json_file(file=file, data=data, indent=4) - manager.set_step_status(Status.SUCCESS) - elif args.xml: - with open(args.file_1, 'wb') as file: - manager.set_step_status(Status.SUCCESS) - manager.add_step('Write data to file') - write_aas_xml_file(file=file, data=data, pretty_print=True) - manager.set_step_status(Status.SUCCESS) - except IOError as error: - logger.error(error) - manager.set_step_status(Status.FAILED) - elif args.action == 'deserialization' or args.action == 'd': - if args.aasx: - compliance_tool_aasx.check_deserialization(args.file_1, manager) - elif args.json: - compliance_tool_json.check_deserialization(args.file_1, manager) - elif args.xml: - compliance_tool_xml.check_deserialization(args.file_1, manager) - elif args.action == 'example' or args.action == 'e': - if args.aasx: - compliance_tool_aasx.check_aas_example(args.file_1, manager, **data_checker_kwargs) - elif args.json: - compliance_tool_json.check_aas_example(args.file_1, manager, **data_checker_kwargs) - elif args.xml: - compliance_tool_xml.check_aas_example(args.file_1, manager, **data_checker_kwargs) - elif args.action == 'files' or args.action == 'f': - if args.file_2: - if args.aasx: - compliance_tool_aasx.check_aasx_files_equivalence(args.file_1, args.file_2, manager, - **data_checker_kwargs) - elif args.json: - compliance_tool_json.check_json_files_equivalence(args.file_1, args.file_2, manager, - **data_checker_kwargs) - elif args.xml: - compliance_tool_xml.check_xml_files_equivalence(args.file_1, args.file_2, manager, - **data_checker_kwargs) - else: - parser.error("f or files requires two file path.") - exit() - - if manager.status is Status.SUCCESS and args.quite: - exit() - - print(manager.format_state_manager(args.verbose)) - - if args.logfile: - try: - with open(args.logfile, 'w', encoding='utf-8-sig') as file: - file.write(manager.format_state_manager(args.verbose)) - except IOError as error: - print('Could not open logfile: \n{}'.format(error)) - - -if __name__ == "__main__": - main() diff --git a/basyx/aas/compliance_tool/compliance_check_aasx.py b/basyx/aas/compliance_tool/compliance_check_aasx.py deleted file mode 100644 index 9b9501abb..000000000 --- a/basyx/aas/compliance_tool/compliance_check_aasx.py +++ /dev/null @@ -1,321 +0,0 @@ -# Copyright (c) 2020 the Eclipse BaSyx Authors -# -# This program and the accompanying materials are made available under the terms of the MIT License, available in -# the LICENSE file of this project. -# -# SPDX-License-Identifier: MIT -""" -Module which offers functions to use in a confirmation tool related to AASX files - -All functions reports any issues using the given -:class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` by adding new steps and associated -:class:`LogRecords ` -""" -import datetime -import logging -from typing import Optional, Tuple -import io -from lxml import etree # type: ignore - -import pyecma376_2 - -from . import compliance_check_json, compliance_check_xml -from .. import model -from ..adapter import aasx -from ..adapter.xml import xml_deserialization -from ..adapter.json import json_deserialization -from ..examples.data import example_aas, create_example_aas_binding -from ..examples.data._helper import AASDataChecker, DataChecker -from .state_manager import ComplianceToolStateManager, Status - - -def check_deserialization(file_path: str, state_manager: ComplianceToolStateManager, - file_info: Optional[str] = None) \ - -> Tuple[model.DictObjectStore, aasx.DictSupplementaryFileContainer, pyecma376_2.OPCCoreProperties]: - """ - Read a AASX file and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - Add the steps: `Open {} file' and 'Read {} file` - - :param file_path: Given file which should be deserialized - :param state_manager: Manager to log the steps - :param file_info: Additional information about the file for name of the steps - :return: The read object store - """ - logger_names = [ - 'compliance_check', - aasx.__name__, - xml_deserialization.__name__, - json_deserialization.__name__, - ] - for name in logger_names: - logger = logging.getLogger(name) - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - if file_info: - state_manager.add_step('Open {} file'.format(file_info)) - else: - state_manager.add_step('Open file') - try: - # open given file - reader = aasx.AASXReader(file_path) - state_manager.set_step_status_from_log() - except (FileNotFoundError, ValueError) as error: - logger.error(error) - state_manager.set_step_status_from_log() - state_manager.add_step('Read file') - state_manager.set_step_status(Status.NOT_EXECUTED) - return model.DictObjectStore(), aasx.DictSupplementaryFileContainer(), pyecma376_2.OPCCoreProperties() - - try: - # read given file - state_manager.add_step('Read file') - obj_store: model.DictObjectStore[model.Identifiable] = model.DictObjectStore() - files = aasx.DictSupplementaryFileContainer() - reader.read_into(obj_store, files) - new_cp = reader.get_core_properties() - state_manager.set_step_status(Status.SUCCESS) - except (ValueError, KeyError) as error: - logger.error(error) - state_manager.set_step_status(Status.FAILED) - return model.DictObjectStore(), aasx.DictSupplementaryFileContainer(), pyecma376_2.OPCCoreProperties() - finally: - reader.close() - - return obj_store, files, new_cp - - -def check_schema(file_path: str, state_manager: ComplianceToolStateManager) -> None: - """ - Checks a given file against the official json schema and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - Opens the file and checks if the data inside is stored in XML or JSON. Then calls the respective compliance tool - schema check - """ - logger = logging.getLogger('compliance_check') - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - # create handler to get logger info - logger_deserialization = logging.getLogger(aasx.__name__) - logger_deserialization.addHandler(state_manager) - logger_deserialization.propagate = False - logger_deserialization.setLevel(logging.INFO) - - state_manager.add_step('Open file') - try: - # open given file - reader = aasx.AASXReader(file_path) - state_manager.set_step_status_from_log() - except ValueError as error: - logger.error(error) - state_manager.set_step_status_from_log() - state_manager.add_step('Read file') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - - try: - # read given file (Find XML and JSON parts) - state_manager.add_step('Read file') - core_rels = reader.reader.get_related_parts_by_type() - try: - aasx_origin_part = core_rels[aasx.RELATIONSHIP_TYPE_AASX_ORIGIN][0] - except IndexError as e: - raise ValueError("Not a valid AASX file: aasx-origin Relationship is missing.") from e - state_manager.set_step_status(Status.SUCCESS) - for aas_part in reader.reader.get_related_parts_by_type(aasx_origin_part)[ - aasx.RELATIONSHIP_TYPE_AAS_SPEC]: - content_type = reader.reader.get_content_type(aas_part) - extension = aas_part.split("/")[-1].split(".")[-1] - with reader.reader.open_part(aas_part) as p: - if content_type.split(";")[0] in ( - "text/xml", "application/xml") or content_type == "" and extension == "xml": - logger.debug("Parsing AAS objects from XML stream in OPC part {} ...".format(aas_part)) - compliance_check_xml._check_schema(p, state_manager) - elif content_type.split(";")[0] == "application/json" \ - or content_type == "" and extension == "json": - logger.debug("Parsing AAS objects from JSON stream in OPC part {} ...".format(aas_part)) - compliance_check_json._check_schema(io.TextIOWrapper(p, encoding='utf-8-sig'), state_manager) - else: - raise ValueError("Could not determine part format of AASX part {} (Content Type: {}, extension: {}" - .format(aas_part, content_type, extension)) - except ValueError as error: - logger.error(error) - state_manager.set_step_status(Status.FAILED) - finally: - reader.close() - - -def check_aas_example(file_path: str, state_manager: ComplianceToolStateManager, **kwargs) -> None: - """ - Checks if a file contains all elements of the aas example and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - Calls the :meth:`~basyx.aas.compliance_tool.compliance_check_aasx.check_deserialization` and add the steps: - `Check if data is equal to example data` - - :param file_path: Given file which should be checked - :param state_manager: :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` to log the steps - :param kwargs: Additional arguments to pass to :class:`~basyx.aas.examples.data._helper.AASDataChecker` - """ - logger = logging.getLogger('compliance_check') - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - # create handler to get logger info - logger_example = logging.getLogger(example_aas.__name__) - logger_example.addHandler(state_manager) - logger_example.propagate = False - logger_example.setLevel(logging.INFO) - - obj_store, files, cp_new = check_deserialization(file_path, state_manager) - - if state_manager.status in (Status.FAILED, Status.NOT_EXECUTED): - state_manager.add_step('Check if data is equal to example data') - state_manager.set_step_status(Status.NOT_EXECUTED) - state_manager.add_step('Check if core properties are equal') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - - checker = AASDataChecker(raise_immediately=False, **kwargs) - - state_manager.add_step('Check if data is equal to example data') - example_data = create_example_aas_binding() - checker.check_object_store(obj_store, example_data) - state_manager.add_log_records_from_data_checker(checker) - - if state_manager.status in (Status.FAILED, Status.NOT_EXECUTED): - state_manager.add_step('Check if core properties are equal') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - - state_manager.add_step('Check if core properties are equal') - # Create OPC/AASX core properties - cp = pyecma376_2.OPCCoreProperties() - cp.created = datetime.datetime(2020, 1, 1, 0, 0, 0) - cp.creator = "Eclipse BaSyx Python Testing Framework" - cp.description = "Test_Description" - cp.lastModifiedBy = "Eclipse BaSyx Python Testing Framework Compliance Tool" - cp.modified = datetime.datetime(2020, 1, 1, 0, 0, 1) - cp.revision = "1.0" - cp.version = "2.0.1" - cp.title = "Test Title" - - checker2 = DataChecker(raise_immediately=False) - try: - assert isinstance(cp_new.created, datetime.datetime) - checker2.check(isinstance(cp_new.created, datetime.datetime), "core property created must be of type datetime", - created=type(cp_new.created)) - duration = cp_new.created - cp.created - checker2.check(duration.microseconds < 20, "created must be {}".format(cp.created), created=cp_new.created) - except AssertionError: - checker2.check(isinstance(cp_new.created, datetime.datetime), "core property created must be of type datetime", - created=type(cp_new.created)) - - checker2.check(cp_new.creator == cp.creator, "creator must be {}".format(cp.creator), creator=cp_new.creator) - checker2.check(cp_new.description == cp.description, "description must be {}".format(cp.description), - description=cp_new.description) - checker2.check(cp_new.lastModifiedBy == cp.lastModifiedBy, "lastModifiedBy must be {}".format(cp.lastModifiedBy), - lastModifiedBy=cp_new.lastModifiedBy) - try: - assert isinstance(cp_new.modified, datetime.datetime) - checker2.check(isinstance(cp_new.modified, datetime.datetime), "modified bust be of type datetime", - modified=type(cp_new.modified)) - duration = cp_new.modified - cp.modified - checker2.check(duration.microseconds < 20, "modified must be {}".format(cp.modified), modified=cp_new.modified) - except AssertionError: - checker2.check(isinstance(cp_new.modified, datetime.datetime), "modified bust be of type datetime", - modified=type(cp_new.modified)) - checker2.check(cp_new.revision == cp.revision, "revision must be {}".format(cp.revision), revision=cp_new.revision) - checker2.check(cp_new.version == cp.version, "version must be {}".format(cp.version), version=cp_new.version) - checker2.check(cp_new.title == cp.title, "title must be {}".format(cp.title), title=cp_new.title) - - # Check if file in file object is the same - list_of_id_shorts = ["ExampleSubmodelCollection", "ExampleFile"] - obj = example_data.get_identifiable("https://acplt.org/Test_Submodel") - for id_short in list_of_id_shorts: - obj = obj.get_referable(id_short) - obj2 = obj_store.get_identifiable("https://acplt.org/Test_Submodel") - for id_short in list_of_id_shorts: - obj2 = obj2.get_referable(id_short) - try: - sha_file = files.get_sha256(obj.value) - except KeyError as error: - state_manager.add_log_records_from_data_checker(checker2) - logger.error(error) - state_manager.set_step_status(Status.FAILED) - return - - checker2.check(sha_file == files.get_sha256(obj2.value), "File of {} must be {}.".format(obj.value, obj2.value), - value=obj2.value) - state_manager.add_log_records_from_data_checker(checker2) - if state_manager.status in (Status.FAILED, Status.NOT_EXECUTED): - state_manager.set_step_status(Status.FAILED) - else: - state_manager.set_step_status(Status.SUCCESS) - - -def check_aasx_files_equivalence(file_path_1: str, file_path_2: str, state_manager: ComplianceToolStateManager, - **kwargs) -> None: - """ - Checks if two aasx files contain the same elements in any order and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - calls the :meth:`~basyx.aas.compliance_tool.compliance_check_aasx.check_deserialization` for each file and add the - steps: `Check if data in files are equal` - - :param file_path_1: Given first file which should be checked - :param file_path_2: Given second file which should be checked - :param state_manager: :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` to log the steps - :param kwargs: Additional arguments to pass to :class:`~basyx.aas.examples.data._helper.AASDataChecker` - """ - logger = logging.getLogger('compliance_check') - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - obj_store_1, files_1, cp_1 = check_deserialization(file_path_1, state_manager, 'first') - - obj_store_2, files_2, cp_2 = check_deserialization(file_path_2, state_manager, 'second') - - if state_manager.status is Status.FAILED: - state_manager.add_step('Check if data in files are equal') - state_manager.set_step_status(Status.NOT_EXECUTED) - state_manager.add_step('Check if core properties are equal') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - - checker = AASDataChecker(raise_immediately=False, **kwargs) - try: - state_manager.add_step('Check if data in files are equal') - checker.check_object_store(obj_store_1, obj_store_2) - except (KeyError, AssertionError) as error: - state_manager.set_step_status(Status.FAILED) - logger.error(error) - state_manager.add_step('Check if core properties are equal') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - - state_manager.add_log_records_from_data_checker(checker) - - if state_manager.status is Status.FAILED: - state_manager.add_step('Check if core properties are equal') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - - state_manager.add_step('Check if core properties are equal') - checker2 = DataChecker(raise_immediately=False) - assert (isinstance(cp_1.created, datetime.datetime)) - assert (isinstance(cp_2.created, datetime.datetime)) - duration = cp_1.created - cp_2.created - checker2.check(duration.microseconds < 20, "created must be {}".format(cp_1.created), value=cp_2.created) - checker2.check(cp_1.creator == cp_2.creator, "creator must be {}".format(cp_1.creator), value=cp_2.creator) - checker2.check(cp_1.lastModifiedBy == cp_2.lastModifiedBy, "lastModifiedBy must be {}".format(cp_1.lastModifiedBy), - value=cp_2.lastModifiedBy) - state_manager.add_log_records_from_data_checker(checker2) diff --git a/basyx/aas/compliance_tool/compliance_check_json.py b/basyx/aas/compliance_tool/compliance_check_json.py deleted file mode 100644 index d6b7a1ef2..000000000 --- a/basyx/aas/compliance_tool/compliance_check_json.py +++ /dev/null @@ -1,225 +0,0 @@ -# Copyright (c) 2020 the Eclipse BaSyx Authors -# -# This program and the accompanying materials are made available under the terms of the MIT License, available in -# the LICENSE file of this project. -# -# SPDX-License-Identifier: MIT -""" -Module which offers functions to use in a confirmation tool related to json files - -All functions reports any issues using the given -:class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` by adding new steps and associated -:class:`LogRecords ` -""" -import json -import logging -from typing import Optional, IO - -from .. import model -from ..adapter.json import json_deserialization, JSON_SCHEMA_FILE -from ..examples.data import example_aas, create_example -from ..examples.data._helper import AASDataChecker -from .state_manager import ComplianceToolStateManager, Status - - -def check_schema(file_path: str, state_manager: ComplianceToolStateManager) -> None: - """ - Checks a given file against the official json schema and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - Add the steps: `Open file`, `Read file and check if it is conform to the json syntax` and `Validate file against - official json schema` - - :param file_path: Path to the file which should be checked - :param state_manager: :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` to log the steps - """ - logger = logging.getLogger('compliance_check') - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - state_manager.add_step('Open file') - try: - # open given file - file_to_be_checked = open(file_path, 'r', encoding='utf-8-sig') - except IOError as error: - state_manager.set_step_status(Status.FAILED) - logger.error(error) - state_manager.add_step('Read file and check if it is conform to the json syntax') - state_manager.set_step_status(Status.NOT_EXECUTED) - state_manager.add_step('Validate file against official json schema') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - return _check_schema(file_to_be_checked, state_manager) - - -def _check_schema(file_to_be_checked: IO[str], state_manager: ComplianceToolStateManager): - logger = logging.getLogger('compliance_check') - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - try: - with file_to_be_checked: - state_manager.set_step_status(Status.SUCCESS) - # read given file and check if it is conform to the json syntax - state_manager.add_step('Read file and check if it is conform to the json syntax') - json_to_be_checked = json.load(file_to_be_checked) - state_manager.set_step_status(Status.SUCCESS) - except json.decoder.JSONDecodeError as error: - state_manager.set_step_status(Status.FAILED) - logger.error(error) - state_manager.add_step('Validate file against official json schema') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - - # load json schema - with open(JSON_SCHEMA_FILE, 'r', encoding='utf-8-sig') as json_file: - aas_json_schema = json.load(json_file) - state_manager.add_step('Validate file against official json schema') - - # validate given file against schema - try: - import jsonschema # type: ignore - except ImportError as error: - state_manager.set_step_status(Status.NOT_EXECUTED) - logger.error("Python package 'jsonschema' is required for validating the JSON file.", error) - return - - try: - jsonschema.validate(instance=json_to_be_checked, schema=aas_json_schema) - except jsonschema.exceptions.ValidationError as error: - state_manager.set_step_status(Status.FAILED) - logger.error(error) - return - - state_manager.set_step_status(Status.SUCCESS) - return - - -def check_deserialization(file_path: str, state_manager: ComplianceToolStateManager, - file_info: Optional[str] = None) -> model.DictObjectStore: - """ - Deserializes a JSON AAS file and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - Add the steps: `Open {} file` and `Read {} file` and `check if it is conform to the json schema` - - :param file_path: Given file which should be deserialized - :param state_manager: :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` to log the steps - :param file_info: Additional information about the file for name of the steps - :return: The deserialized :class:`~basyx.aas.model.provider.DictObjectStore` - """ - logger = logging.getLogger('compliance_check') - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - # create handler to get logger info - logger_deserialization = logging.getLogger(json_deserialization.__name__) - logger_deserialization.addHandler(state_manager) - logger_deserialization.propagate = False - logger_deserialization.setLevel(logging.INFO) - - if file_info: - state_manager.add_step('Open {} file'.format(file_info)) - else: - state_manager.add_step('Open file') - try: - # open given file - file_to_be_checked = open(file_path, 'r', encoding='utf-8-sig') - except IOError as error: - state_manager.set_step_status(Status.FAILED) - logger.error(error) - if file_info: - state_manager.add_step('Read file {} and check if it is deserializable'.format(file_info)) - else: - state_manager.add_step('Read file and check if it is deserializable') - state_manager.set_step_status(Status.NOT_EXECUTED) - return model.DictObjectStore() - - with file_to_be_checked: - state_manager.set_step_status(Status.SUCCESS) - # read given file and check if it is conform to the official json schema - if file_info: - state_manager.add_step('Read file {} and check if it is deserializable'.format(file_info)) - else: - state_manager.add_step('Read file and check if it is deserializable') - obj_store = json_deserialization.read_aas_json_file(file_to_be_checked, failsafe=True) - - state_manager.set_step_status_from_log() - - return obj_store - - -def check_aas_example(file_path: str, state_manager: ComplianceToolStateManager, **kwargs) -> None: - """ - Checks if a file contains all elements of the aas example and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - Calls the :meth:`~basyx.aas.compliance_tool.compliance_check_json.check_deserialization` and add the steps: - `Check if data is equal to example data` - - :param file_path: Given file which should be checked - :param state_manager: :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` to log the steps - :param kwargs: Additional arguments to pass to :class:`~basyx.aas.examples.data._helper.AASDataChecker` - """ - # create handler to get logger info - logger_example = logging.getLogger(example_aas.__name__) - logger_example.addHandler(state_manager) - logger_example.propagate = False - logger_example.setLevel(logging.INFO) - - obj_store = check_deserialization(file_path, state_manager) - - if state_manager.status in (Status.FAILED, Status.NOT_EXECUTED): - state_manager.add_step('Check if data is equal to example data') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - - checker = AASDataChecker(raise_immediately=False, **kwargs) - - state_manager.add_step('Check if data is equal to example data') - checker.check_object_store(obj_store, create_example()) - - state_manager.add_log_records_from_data_checker(checker) - - -def check_json_files_equivalence(file_path_1: str, file_path_2: str, state_manager: ComplianceToolStateManager, - **kwargs) -> None: - """ - Checks if two json files contain the same elements in any order and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - Calls the :meth:`~basyx.aas.compliance_tool.compliance_check_json.check_deserialization` for ech file and add the - steps: `Check if data in files are equal` - - :param file_path_1: Given first file which should be checked - :param file_path_2: Given second file which should be checked - :param state_manager: :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` to log the steps - :param kwargs: Additional arguments to pass to :class:`~basyx.aas.examples.data._helper.AASDataChecker` - """ - logger = logging.getLogger('compliance_check') - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - obj_store_1 = check_deserialization(file_path_1, state_manager, 'first') - - obj_store_2 = check_deserialization(file_path_2, state_manager, 'second') - - if state_manager.status is Status.FAILED: - state_manager.add_step('Check if data in files are equal') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - - checker = AASDataChecker(raise_immediately=False, **kwargs) - try: - state_manager.add_step('Check if data in files are equal') - checker.check_object_store(obj_store_1, obj_store_2) - except (KeyError, AssertionError) as error: - state_manager.set_step_status(Status.FAILED) - logger.error(error) - return - - state_manager.add_log_records_from_data_checker(checker) diff --git a/basyx/aas/compliance_tool/compliance_check_xml.py b/basyx/aas/compliance_tool/compliance_check_xml.py deleted file mode 100644 index 9791011af..000000000 --- a/basyx/aas/compliance_tool/compliance_check_xml.py +++ /dev/null @@ -1,225 +0,0 @@ -# Copyright (c) 2020 the Eclipse BaSyx Authors -# -# This program and the accompanying materials are made available under the terms of the MIT License, available in -# the LICENSE file of this project. -# -# SPDX-License-Identifier: MIT -""" -Module which offers functions to use in a confirmation tool related to xml files - -All functions reports any issues using the given -:class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` by adding new steps and associated -:class:`LogRecords ` -""" - -from lxml import etree # type: ignore -import logging -from typing import Optional - -from .. import model -from ..adapter.xml import xml_deserialization, XML_SCHEMA_FILE -from ..examples.data import example_aas, create_example -from ..examples.data._helper import AASDataChecker -from .state_manager import ComplianceToolStateManager, Status - - -def check_schema(file_path: str, state_manager: ComplianceToolStateManager) -> None: - """ - Checks a given file against the official xml schema and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - Add the steps: `Open file`, `Read file`, `Check if it is conform to the xml syntax` and `Validate file against - official xml schema` - - :param file_path: Path to the file which should be checked - :param state_manager: :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` to log the steps - """ - logger = logging.getLogger('compliance_check') - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - state_manager.add_step('Open file') - try: - # open given file - file_to_be_checked = open(file_path, 'rb') - state_manager.set_step_status(Status.SUCCESS) - except IOError as error: - state_manager.set_step_status(Status.FAILED) - logger.error(error) - state_manager.add_step('Read file and check if it is conform to the xml syntax') - state_manager.set_step_status(Status.NOT_EXECUTED) - state_manager.add_step('Validate file against official xml schema') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - return _check_schema(file_to_be_checked, state_manager) - - -def _check_schema(file_to_be_checked, state_manager): - logger = logging.getLogger('compliance_check') - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - state_manager.add_step('Read file and check if it is conform to the xml syntax') - try: - # read given file and check if it is conform to the xml syntax - parser = etree.XMLParser(remove_blank_text=True, remove_comments=True) - etree.parse(file_to_be_checked, parser) - state_manager.set_step_status(Status.SUCCESS) - except etree.XMLSyntaxError as error: - state_manager.set_step_status(Status.FAILED) - logger.error(error) - state_manager.add_step('Validate file against official xml schema') - state_manager.set_step_status(Status.NOT_EXECUTED) - file_to_be_checked.close() - return - except Exception: - file_to_be_checked.close() - raise - - # load aas xml schema - aas_xml_schema = etree.XMLSchema(file=XML_SCHEMA_FILE) - parser = etree.XMLParser(schema=aas_xml_schema) - - state_manager.add_step('Validate file against official xml schema') - # validate given file against schema - try: - file_to_be_checked.seek(0) # Reset reading file offset (cursor) to the beginning of the file - with file_to_be_checked: - etree.parse(file_to_be_checked, parser=parser) - except etree.ParseError as error: - state_manager.set_step_status(Status.FAILED) - logger.error(error) - return - - state_manager.set_step_status(Status.SUCCESS) - return - - -def check_deserialization(file_path: str, state_manager: ComplianceToolStateManager, - file_info: Optional[str] = None) -> model.DictObjectStore: - """ - Deserializes a XML AAS file and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - Add the steps: `Open {} file` and `Read {} file` and `Check if it is conform to the xml schema` - - :param file_path: Given file which should be deserialized - :param state_manager: :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` to log the steps - :param file_info: Additional information about the file for name of the steps - :return: The deserialized object store - """ - logger = logging.getLogger('compliance_check') - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - # create handler to get logger info - logger_deserialization = logging.getLogger(xml_deserialization.__name__) - logger_deserialization.addHandler(state_manager) - logger_deserialization.propagate = False - logger_deserialization.setLevel(logging.INFO) - - if file_info: - state_manager.add_step('Open {} file'.format(file_info)) - else: - state_manager.add_step('Open file') - try: - # open given file - file_to_be_checked = open(file_path, 'rb') - except IOError as error: - state_manager.set_step_status(Status.FAILED) - logger.error(error) - if file_info: - state_manager.add_step('Read file {} and check if it is deserializable'.format(file_info)) - else: - state_manager.add_step('Read file and check if it is deserializable') - state_manager.set_step_status(Status.NOT_EXECUTED) - return model.DictObjectStore() - - with file_to_be_checked: - state_manager.set_step_status(Status.SUCCESS) - # read given file and check if it is conform to the official xml schema - if file_info: - state_manager.add_step('Read file {} and check if it is deserializable'.format(file_info)) - else: - state_manager.add_step('Read file and check if it is deserializable') - obj_store = xml_deserialization.read_aas_xml_file(file_to_be_checked, failsafe=True) - - state_manager.set_step_status_from_log() - - return obj_store - - -def check_aas_example(file_path: str, state_manager: ComplianceToolStateManager, **kwargs) -> None: - """ - Checks if a file contains all elements of the aas example and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - Calls the :meth:`~basyx.aas.compliance_tool.compliance_check_xml.check_deserialization` and add the steps: - `Check if data is equal to example data` - - :param file_path: Given file which should be checked - :param state_manager: :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` to log the steps - :param kwargs: Additional arguments to pass to :class:`~basyx.aas.examples.data._helper.AASDataChecker` - """ - # create handler to get logger info - logger_example = logging.getLogger(example_aas.__name__) - logger_example.addHandler(state_manager) - logger_example.propagate = False - logger_example.setLevel(logging.INFO) - - obj_store = check_deserialization(file_path, state_manager) - - if state_manager.status in (Status.FAILED, Status.NOT_EXECUTED): - state_manager.add_step('Check if data is equal to example data') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - - checker = AASDataChecker(raise_immediately=False, **kwargs) - - state_manager.add_step('Check if data is equal to example data') - checker.check_object_store(obj_store, create_example()) - - state_manager.add_log_records_from_data_checker(checker) - - -def check_xml_files_equivalence(file_path_1: str, file_path_2: str, state_manager: ComplianceToolStateManager, - **kwargs) -> None: - """ - Checks if two xml files contain the same elements in any order and reports any issues using the given - :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` - - Calls the :meth:`~basyx.aas.compliance_tool.compliance_check_xml.check_deserialization` for each file and add the - steps: `Check if data in files are equal` - - :param file_path_1: Given first file which should be checked - :param file_path_2: Given second file which should be checked - :param state_manager: :class:`~basyx.aas.compliance_tool.state_manager.ComplianceToolStateManager` to log the steps - :param kwargs: Additional arguments to pass to :class:`~basyx.aas.examples.data._helper.AASDataChecker` - """ - logger = logging.getLogger('compliance_check') - logger.addHandler(state_manager) - logger.propagate = False - logger.setLevel(logging.INFO) - - obj_store_1 = check_deserialization(file_path_1, state_manager, 'first') - - obj_store_2 = check_deserialization(file_path_2, state_manager, 'second') - - if state_manager.status is Status.FAILED: - state_manager.add_step('Check if data in files are equal') - state_manager.set_step_status(Status.NOT_EXECUTED) - return - - checker = AASDataChecker(raise_immediately=False, **kwargs) - try: - state_manager.add_step('Check if data in files are equal') - checker.check_object_store(obj_store_1, obj_store_2) - except (KeyError, AssertionError) as error: - state_manager.set_step_status(Status.FAILED) - logger.error(error) - return - - state_manager.add_log_records_from_data_checker(checker) diff --git a/basyx/aas/compliance_tool/state_manager.py b/basyx/aas/compliance_tool/state_manager.py deleted file mode 100644 index 3116fe150..000000000 --- a/basyx/aas/compliance_tool/state_manager.py +++ /dev/null @@ -1,217 +0,0 @@ -# Copyright (c) 2020 the Eclipse BaSyx Authors -# -# This program and the accompanying materials are made available under the terms of the MIT License, available in -# the LICENSE file of this project. -# -# SPDX-License-Identifier: MIT -""" -This module defines a :class:`~.ComplianceToolStateManager` to store :class:`LogRecords ` -for single steps in a compliance check of the compliance tool -""" -import logging -import enum -import pprint -from typing import List, Dict -from basyx.aas.examples.data._helper import DataChecker - - -@enum.unique -class Status(enum.IntEnum): - """ - Possible Status States: - - :cvar SUCCESS: - :cvar SUCCESS_WITH_WARNINGS: - :cvar FAILED: - :cvar NOT_EXECUTED: - """ - SUCCESS = 0 - SUCCESS_WITH_WARNINGS = 1 - FAILED = 2 - NOT_EXECUTED = 3 - - -class Step: - """ - A step represents a single test stage in a test protocol of a :class:`~.ComplianceToolStateManager` - - :ivar name: Name of the step - :ivar status: Status of the step from type Status - :ivar log_list: List of :class:`LogRecords ` which belong to this step - """ - def __init__(self, name: str, status: Status, log_list: List[logging.LogRecord]): - self.name = name - self.status = status - self.log_list = log_list - - -class ComplianceToolStateManager(logging.Handler): - """ - A ComplianceToolStateManager is used to create a report of a compliance check, divided into single - :class:`Steps <.Step>` with status and log. The manager provides methods to: - - - Add a new step - - Set the step status - - Set the step status from log - - Add logs to a step by hand - - Add logs to a step from a data checker - - Be used as a :class:`logging.Handler` which adds logs to the current step - - Example of a ComplianceTest for a schema check: - - * Step 1: `Open file` - * Step 2: `Read file and check if it is conform to the json syntax` - * Step 3: `Validate file against official json schema` - - :ivar steps: List of :class:`Steps <.Step>` - """ - def __init__(self): - """ - steps: List of steps. Each step consist of a step name, a step status and LogRecords belong to to this step. - The step name have to be unique in the list. - """ - super().__init__() - self.steps: List[Step] = [] - self.setLevel(logging.INFO) - - @property - def status(self) -> Status: - """ - Determine the status of all steps in following way: - 1. If there is at least one step with status = NOT_EXECUTED than NOT_EXECUTED will be returned - 2. If there is at least one step with status = FAILED than FAILED will be returned - 3. Else status SUCCESS will be returned - - :return: status of the manager - """ - status: Status = Status.SUCCESS - for step in self.steps: - if status < step.status: - status = step.status - return status - - def add_step(self, name: str) -> None: - """ - Adding a new :class:`~.Step` to the manager with a given name, status = NOT_EXECUTED and an empty list of - records - - :param name: Name of the :class:`~.Step` - """ - self.steps.append(Step(name, Status.NOT_EXECUTED, [])) - - def add_log_record(self, record: logging.LogRecord) -> None: - """ - Adds a :class:`~logging.LogRecord` to the log list of the actual :class:`~.Step` - - :param record: :class:`~logging.LogRecord` which should be added to the current :class:`~.Step` - """ - self.steps[-1].log_list.append(record) - - def set_step_status(self, status: Status) -> None: - """ - Sets the status of the current step - - :param status: status which should be set - """ - self.steps[-1].status = status - - def set_step_status_from_log(self) -> None: - """ - Sets the status of the current step based on the log entries - """ - self.steps[-1].status = Status.FAILED if len(self.steps[-1].log_list) > 0 else Status.SUCCESS - - def add_log_records_from_data_checker(self, data_checker: DataChecker) -> None: - """ - Sets the status of the current :class:`~.Step` and convert the checks to - :class:`LogRecords ` and adds these to the current :class:`~.Step` - - :class:`~.Step`: FAILED if the :class:`~basyx.aas.examples.data._helper.DataChecker` consist at least one failed - check otherwise SUCCESS - - :param data_checker: :class:`~basyx.aas.examples.data._helper.DataChecker` which checks should be added to the - current :class:`~.Step` - """ - self.steps[-1].status = Status.SUCCESS if not any(True for _ in data_checker.failed_checks) else Status.FAILED - for check in data_checker.checks: - self.steps[-1].log_list.append(logging.LogRecord(name=__name__, - level=logging.INFO if check.result else logging.ERROR, - pathname='', - lineno=0, - msg="{} ({})".format( - check.expectation, - ", ".join("{}={}".format( - k, pprint.pformat( - v, depth=2, width=2 ** 14, compact=True)) - for k, v in check.data.items())), - args=(), - exc_info=None)) - - def get_error_logs_from_step(self, index: int) -> List[logging.LogRecord]: - """ - Returns a list of :class:`LogRecords ` of a step where the log level - is :data:`~logging.ERROR` or :data:`~logging.WARNING` - - :param index: Step index in the Step list of the manager - :return: List of LogRecords with log level :data:`~logging.ERROR` or :data:`~logging.WARNING` - """ - return [x for x in self.steps[index].log_list if x.levelno >= logging.WARNING] - - def format_step(self, index: int, verbose_level: int = 0) -> str: - """ - Creates a string for the step containing the status, the step name and - the :class:`LogRecords ` if wanted - - :param index: Step index in the step list of the manager - :param verbose_level: Decision which kind of LogRecords should be in the string - - - 0: No LogRecords - - 1: Only LogRecords with log level >= :data:`~logging.WARNING` - - 2: All LogRecords - - :return: formatted string of the step - """ - STEP_STATUS: Dict[Status, str] = { - Status.SUCCESS: '{:14}'.format('SUCCESS:'), - Status.SUCCESS_WITH_WARNINGS: '{:14}'.format('WARNINGS:'), - Status.FAILED: '{:14}'.format('FAILED:'), - Status.NOT_EXECUTED: '{:14}'.format('NOT_EXECUTED:'), - } - if self.steps[index].status not in STEP_STATUS: - raise NotImplementedError - string = STEP_STATUS[self.steps[index].status] - - string += self.steps[index].name - if verbose_level > 0: - for log in self.steps[index].log_list: - if log.levelno < logging.WARNING: - if verbose_level == 1: - continue - string += '\n'+' - {:6} {}'.format(log.levelname + ':', log.getMessage()) - return string - - def format_state_manager(self, verbose_level: int = 0) -> str: - """ - Creates a report with all executed steps: Containing the status, the step name and - the :class:`LogRecords ` if wanted - - :param verbose_level: Decision which kind of LogRecords should be in the string - - - 0: No LogRecords - - 1: Only LogRecords with log level >= :data:`~logging.WARNING` - - 2: All LogRecords - - :return: formatted report - """ - string = 'Compliance Test executed:\n' - string += "\n".join(self.format_step(x, verbose_level) for x in range(len(self.steps))) - return string - - def emit(self, record: logging.LogRecord): - """ - :class:`~logging.Handler` function for adding :class:`LogRecords ` from a ``logger`` - to the current :class:`~.Step` - - :param record: :class:`~logging.LogRecord` which should be added - """ - self.steps[-1].log_list.append(record) diff --git a/setup.py b/setup.py index bc5fe4b65..c1b8b1fa4 100755 --- a/setup.py +++ b/setup.py @@ -25,8 +25,6 @@ zip_safe=False, package_data={ "basyx": ["py.typed"], - "basyx.aas.adapter.json": ["aasJSONSchema.json"], - "basyx.aas.adapter.xml": ["AAS.xsd"], "basyx.aas.examples.data": ["TestFile.pdf"], }, classifiers=[ diff --git a/test/compliance_tool/__init__.py b/test/compliance_tool/__init__.py deleted file mode 100644 index a0c327cb0..000000000 --- a/test/compliance_tool/__init__.py +++ /dev/null @@ -1,28 +0,0 @@ -import os -import zipfile - -AASX_FILES = ("test_demo_full_example_json_aasx", - "test_demo_full_example_xml_aasx", - "test_demo_full_example_xml_wrong_attribute_aasx", - "test_empty_aasx") - - -def _zip_directory(directory_path, zip_file_path): - """Zip a directory recursively.""" - with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as zipf: - for root, _, files in os.walk(directory_path): - for file in files: - file_path = os.path.join(root, file) - arcname = os.path.relpath(file_path, directory_path) - zipf.write(file_path, arcname=arcname) - - -def generate_aasx_files(): - """Zip dirs and create test AASX files.""" - script_dir = os.path.dirname(__file__) - for i in AASX_FILES: - _zip_directory(os.path.join(script_dir, "files", i), - os.path.join(script_dir, "files", i.rstrip("_aasx") + ".aasx")) - - -generate_aasx_files() diff --git a/test/compliance_tool/files/test_demo_full_example.json b/test/compliance_tool/files/test_demo_full_example.json deleted file mode 100644 index 31fde424d..000000000 --- a/test/compliance_tool/files/test_demo_full_example.json +++ /dev/null @@ -1,3210 +0,0 @@ -{ - "assetAdministrationShells": [ - { - "idShort": "TestAssetAdministrationShell", - "description": [ - { - "language": "en-US", - "text": "An Example Asset Administration Shell for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Verwaltungsschale f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/Test_AssetAdministrationShell" - } - ] - }, - "templateId": "http://acplt.org/AdministrativeInformationTemplates/Test_AssetAdministrationShell" - }, - "derivedFrom": { - "type": "ModelReference", - "keys": [ - { - "type": "AssetAdministrationShell", - "value": "https://acplt.org/TestAssetAdministrationShell2" - } - ] - }, - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/TestAsset/", - "specificAssetIds": [ - { - "name": "TestKey", - "value": "TestValue", - "externalSubjectId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - } - } - ], - "assetType": "http://acplt.org/TestAssetType/", - "defaultThumbnail": { - "path": "file:///path/to/thumbnail.png", - "contentType": "image/png" - } - }, - "submodels": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel" - } - ], - "referredSemanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - } - }, - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial" - } - ] - }, - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Submodels/Assets/TestAsset/Identification" - } - ], - "referredSemanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/SubmodelTemplates/AssetIdentification" - } - ] - } - } - ], - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - } - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - } - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - }, - { - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell_Mandatory", - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/Test_Asset_Mandatory/" - }, - "submodels": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel2_Mandatory" - } - ] - }, - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel_Mandatory" - } - ] - } - ] - }, - { - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell2_Mandatory", - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/TestAsset2_Mandatory/" - } - }, - { - "idShort": "TestAssetAdministrationShell", - "description": [ - { - "language": "en-US", - "text": "An Example Asset Administration Shell for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Verwaltungsschale f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell_Missing", - "administration": { - "version": "9", - "revision": "0" - }, - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/Test_Asset_Missing/", - "specificAssetIds": [ - { - "name": "TestKey", - "value": "TestValue", - "externalSubjectId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - } - } - ], - "defaultThumbnail": { - "path": "file:///TestFile.pdf", - "contentType": "application/pdf" - } - }, - "submodels": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel_Missing" - } - ] - } - ] - } - ], - "submodels": [ - { - "idShort": "Identification", - "description": [ - { - "language": "en-US", - "text": "An example asset identification submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Identifikations-Submodel f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "http://acplt.org/Submodels/Assets/TestAsset/Identification", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/TestAsset/Identification" - } - ] - }, - "templateId": "http://acplt.org/AdministrativeInformationTemplates/TestAsset/Identification" - }, - "semanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/SubmodelTemplates/AssetIdentification" - } - ] - }, - "submodelElements": [ - { - "extensions": [ - { - "value": "ExampleExtensionValue", - "refersTo": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "AssetAdministrationShell", - "value": "http://acplt.org/RefersTo/ExampleRefersTo" - } - ] - } - ], - "valueType": "xs:string", - "name": "ExampleExtension" - } - ], - "idShort": "ManufacturerName", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "0173-1#02-AAO677#002" - } - ] - }, - "qualifiers": [ - { - "value": "50", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:int", - "type": "http://acplt.org/Qualifier/ExampleQualifier2", - "kind": "TemplateQualifier" - }, - { - "value": "100", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:int", - "type": "http://acplt.org/Qualifier/ExampleQualifier", - "kind": "ConceptQualifier" - } - ], - "value": "ACPLT", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - }, - { - "idShort": "InstanceId", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber" - } - ] - }, - "qualifiers": [ - { - "value": "2023-04-07T16:59:54.870123", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:dateTime", - "type": "http://acplt.org/Qualifier/ExampleQualifier3", - "kind": "ValueQualifier" - } - ], - "value": "978-8234-234-342", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - ] - }, - { - "idShort": "BillOfMaterial", - "description": [ - { - "language": "en-US", - "text": "An example bill of material submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-BillofMaterial-Submodel f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial", - "administration": { - "version": "9", - "templateId": "http://acplt.org/AdministrativeInformationTemplates/TestAsset/BillOfMaterial" - }, - "semanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/SubmodelTemplates/BillOfMaterial" - } - ] - }, - "submodelElements": [ - { - "idShort": "ExampleEntity", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Entity", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber" - } - ] - }, - "statements": [ - { - "idShort": "ExampleProperty2", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - }, - { - "idShort": "ExampleProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string", - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - }, - "valueType": "xs:string" - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - } - ], - "entityType": "SelfManagedEntity", - "globalAssetId": "http://acplt.org/TestAsset/", - "specificAssetIds": [ - { - "name": "TestKey", - "value": "TestValue", - "externalSubjectId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - } - } - ] - }, - { - "idShort": "ExampleEntity2", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Entity", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber" - } - ] - }, - "entityType": "CoManagedEntity" - } - ] - }, - { - "idShort": "TestSubmodel", - "description": [ - { - "language": "en-US", - "text": "An example submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Teilmodell f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/Test_Submodel" - } - ] - } - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - }, - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example RelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel RelationshipElement Element" - } - ], - "modelType": "RelationshipElement", - "semanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "ConceptDescription", - "value": "https://acplt.org/Test_ConceptDescription" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty2" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example AnnotatedRelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel AnnotatedRelationshipElement Element" - } - ], - "modelType": "AnnotatedRelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty2" - } - ] - }, - "annotations": [ - { - "idShort": "ExampleAnnotatedProperty", - "category": "PARAMETER", - "modelType": "Property", - "value": "exampleValue", - "valueType": "xs:string" - }, - { - "idShort": "ExampleAnnotatedRange", - "category": "PARAMETER", - "modelType": "Range", - "valueType": "xs:integer", - "min": "1", - "max": "5" - } - ] - }, - { - "idShort": "ExampleOperation", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Operation object" - }, - { - "language": "de", - "text": "Beispiel Operation Element" - } - ], - "modelType": "Operation", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Operations/ExampleOperation" - } - ] - }, - "inputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "outputVariables": [ - { - "value": { - "idShort": "ExamplePropertyOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "inoutputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ] - }, - { - "idShort": "ExampleCapability", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Capability object" - }, - { - "language": "de", - "text": "Beispiel Capability Element" - } - ], - "modelType": "Capability", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Capabilities/ExampleCapability" - } - ] - } - }, - { - "idShort": "ExampleBasicEventElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example BasicEventElement object" - }, - { - "language": "de", - "text": "Beispiel BasicEventElement Element" - } - ], - "modelType": "BasicEventElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Events/ExampleBasicEventElement" - } - ] - }, - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "output", - "state": "on", - "messageTopic": "ExampleTopic", - "messageBroker": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/ExampleMessageBroker" - } - ] - }, - "lastUpdate": "2022-11-12T23:50:23.123456+00:00", - "minInterval": "PT0.000001S", - "maxInterval": "P1Y2M3DT4H5M6.123456S" - }, - { - "idShort": "ExampleSubmodelCollection", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "value": [ - { - "idShort": "ExampleBlob", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Blob object" - }, - { - "language": "de", - "text": "Beispiel Blob Element" - } - ], - "modelType": "Blob", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Blobs/ExampleBlob" - } - ] - }, - "contentType": "application/pdf", - "value": "AQIDBAU=" - }, - { - "idShort": "ExampleFile", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example File object" - }, - { - "language": "de", - "text": "Beispiel File Element" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "value": "/TestFile.pdf", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleFileURI", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Details of the Asset Administration Shell \u2014 An example for an external file reference" - }, - { - "language": "de", - "text": "Details of the Asset Administration Shell \u2013 Ein Beispiel f\u00fcr eine extern referenzierte Datei" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "value": "https://www.plattform-i40.de/PI40/Redaktion/DE/Downloads/Publikation/Details-of-the-Asset-Administration-Shell-Part1.pdf?__blob=publicationFile&v=5", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example MultiLanguageProperty object" - }, - { - "language": "de", - "text": "Beispiel MultiLanguageProperty Element" - } - ], - "modelType": "MultiLanguageProperty", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty" - } - ], - "referredSemanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty/Referred" - } - ] - } - }, - "value": [ - { - "language": "en-US", - "text": "Example value of a MultiLanguageProperty element" - }, - { - "language": "de", - "text": "Beispielswert f\u00fcr ein MulitLanguageProperty-Element" - } - ], - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleMultiLanguageValueId" - } - ] - } - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "valueType": "xs:int", - "min": "0", - "max": "100" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Reference Element object" - }, - { - "language": "de", - "text": "Beispiel Reference Element Element" - } - ], - "modelType": "ReferenceElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ReferenceElements/ExampleReferenceElement" - } - ] - }, - "value": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleSubmodelList", - "typeValueListElement": "Property", - "valueTypeListElement": "xs:string", - "semanticIdListElement": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "orderRelevant": true, - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementList object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementList Element" - } - ], - "modelType": "SubmodelElementList", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList" - } - ] - }, - "value": [ - { - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "supplementalSemanticIds": [ - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty/SupplementalId1" - } - ] - }, - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty/SupplementalId2" - } - ] - } - ], - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string", - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - } - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - } - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - }, - { - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "supplementalSemanticIds": [ - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty2/SupplementalId" - } - ] - } - ], - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - ] - } - ] - } - ] - }, - { - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel_Mandatory", - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "modelType": "RelationshipElement", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "modelType": "AnnotatedRelationshipElement", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleOperation", - "modelType": "Operation" - }, - { - "idShort": "ExampleCapability", - "modelType": "Capability" - }, - { - "idShort": "ExampleBasicEventElement", - "modelType": "BasicEventElement", - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "input", - "state": "off" - }, - { - "idShort": "ExampleSubmodelList", - "typeValueListElement": "SubmodelElementCollection", - "modelType": "SubmodelElementList", - "value": [ - { - "modelType": "SubmodelElementCollection", - "value": [ - { - "idShort": "ExampleBlob", - "modelType": "Blob", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleFile", - "modelType": "File", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "PARAMETER", - "modelType": "MultiLanguageProperty" - }, - { - "idShort": "ExampleProperty", - "category": "PARAMETER", - "modelType": "Property", - "valueType": "xs:string" - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "modelType": "Range", - "valueType": "xs:int" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "modelType": "ReferenceElement" - } - ] - }, - { - "modelType": "SubmodelElementCollection" - } - ] - }, - { - "idShort": "ExampleSubmodelList2", - "typeValueListElement": "Capability", - "modelType": "SubmodelElementList" - } - ] - }, - { - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel2_Mandatory" - }, - { - "idShort": "TestSubmodel", - "description": [ - { - "language": "en-US", - "text": "An example submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Teilmodell f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel_Missing", - "administration": { - "version": "9", - "revision": "0" - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - }, - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example RelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel RelationshipElement Element" - } - ], - "modelType": "RelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleRelationshipElement" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example AnnotatedRelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel AnnotatedRelationshipElement Element" - } - ], - "modelType": "AnnotatedRelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "annotations": [ - { - "idShort": "ExampleAnnotatedRange", - "category": "PARAMETER", - "modelType": "Range", - "valueType": "xs:integer", - "min": "1", - "max": "5" - }, - { - "idShort": "ExampleAnnotatedProperty", - "category": "PARAMETER", - "modelType": "Property", - "value": "exampleValue", - "valueType": "xs:string" - } - ] - }, - { - "idShort": "ExampleOperation", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Operation object" - }, - { - "language": "de", - "text": "Beispiel Operation Element" - } - ], - "modelType": "Operation", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Operations/ExampleOperation" - } - ] - }, - "inputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "outputVariables": [ - { - "value": { - "idShort": "ExamplePropertyOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "inoutputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ] - }, - { - "idShort": "ExampleCapability", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Capability object" - }, - { - "language": "de", - "text": "Beispiel Capability Element" - } - ], - "modelType": "Capability", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Capabilities/ExampleCapability" - } - ] - } - }, - { - "idShort": "ExampleBasicEventElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example BasicEventElement object" - }, - { - "language": "de", - "text": "Beispiel BasicEventElement Element" - } - ], - "modelType": "BasicEventElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Events/ExampleBasicEventElement" - } - ] - }, - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "output", - "state": "on", - "messageTopic": "ExampleTopic", - "messageBroker": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/ExampleMessageBroker" - } - ] - }, - "lastUpdate": "2022-11-12T23:50:23.123456+00:00", - "minInterval": "PT0.000001S", - "maxInterval": "P1Y2M3DT4H5M6.123456S" - }, - { - "idShort": "ExampleSubmodelCollection", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "value": [ - { - "idShort": "ExampleBlob", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Blob object" - }, - { - "language": "de", - "text": "Beispiel Blob Element" - } - ], - "modelType": "Blob", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Blobs/ExampleBlob" - } - ] - }, - "contentType": "application/pdf", - "value": "AQIDBAU=" - }, - { - "idShort": "ExampleFile", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example File object" - }, - { - "language": "de", - "text": "Beispiel File Element" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "value": "/TestFile.pdf", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example MultiLanguageProperty object" - }, - { - "language": "de", - "text": "Beispiel MulitLanguageProperty Element" - } - ], - "modelType": "MultiLanguageProperty", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty" - } - ] - }, - "value": [ - { - "language": "en-US", - "text": "Example value of a MultiLanguageProperty element" - }, - { - "language": "de", - "text": "Beispielswert f\u00fcr ein MulitLanguageProperty-Element" - } - ] - }, - { - "idShort": "ExampleProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "qualifiers": [ - { - "valueType": "xs:string", - "type": "http://acplt.org/Qualifier/ExampleQualifier" - } - ], - "value": "exampleValue", - "valueType": "xs:string" - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "valueType": "xs:int", - "min": "0", - "max": "100" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Reference Element object" - }, - { - "language": "de", - "text": "Beispiel Reference Element Element" - } - ], - "modelType": "ReferenceElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ReferenceElements/ExampleReferenceElement" - } - ] - }, - "value": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - } - ] - } - ] - }, - { - "idShort": "TestSubmodel", - "description": [ - { - "language": "en-US", - "text": "An example submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Teilmodell f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel_Template", - "administration": { - "version": "9", - "revision": "0" - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - }, - "kind": "Template", - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example RelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel RelationshipElement Element" - } - ], - "modelType": "RelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleRelationshipElement" - } - ] - }, - "kind": "Template", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example AnnotatedRelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel AnnotatedRelationshipElement Element" - } - ], - "modelType": "AnnotatedRelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement" - } - ] - }, - "kind": "Template", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleOperation", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Operation object" - }, - { - "language": "de", - "text": "Beispiel Operation Element" - } - ], - "modelType": "Operation", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Operations/ExampleOperation" - } - ] - }, - "kind": "Template", - "inputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInput", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInput" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - } - } - ], - "outputVariables": [ - { - "value": { - "idShort": "ExamplePropertyOutput", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyOutput" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - } - } - ], - "inoutputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInOutput", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInOutput" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - } - } - ] - }, - { - "idShort": "ExampleCapability", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Capability object" - }, - { - "language": "de", - "text": "Beispiel Capability Element" - } - ], - "modelType": "Capability", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Capabilities/ExampleCapability" - } - ] - }, - "kind": "Template" - }, - { - "idShort": "ExampleBasicEventElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example BasicEventElement object" - }, - { - "language": "de", - "text": "Beispiel BasicEventElement Element" - } - ], - "modelType": "BasicEventElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Events/ExampleBasicEventElement" - } - ] - }, - "kind": "Template", - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "output", - "state": "on", - "messageTopic": "ExampleTopic", - "messageBroker": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/ExampleMessageBroker" - } - ] - }, - "lastUpdate": "2022-11-12T23:50:23.123456+00:00", - "minInterval": "PT0.000001S", - "maxInterval": "P1Y2M3DT4H5M6.123456S" - }, - { - "idShort": "ExampleSubmodelList", - "typeValueListElement": "SubmodelElementCollection", - "semanticIdListElement": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "orderRelevant": true, - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementList object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementList Element" - } - ], - "modelType": "SubmodelElementList", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList" - } - ] - }, - "kind": "Template", - "value": [ - { - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "kind": "Template", - "value": [ - { - "idShort": "ExampleProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example MultiLanguageProperty object" - }, - { - "language": "de", - "text": "Beispiel MulitLanguageProperty Element" - } - ], - "modelType": "MultiLanguageProperty", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty" - } - ] - }, - "kind": "Template" - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "kind": "Template", - "valueType": "xs:int", - "max": "100" - }, - { - "idShort": "ExampleRange2", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "kind": "Template", - "valueType": "xs:int", - "min": "0" - }, - { - "idShort": "ExampleBlob", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Blob object" - }, - { - "language": "de", - "text": "Beispiel Blob Element" - } - ], - "modelType": "Blob", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Blobs/ExampleBlob" - } - ] - }, - "kind": "Template", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleFile", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example File object" - }, - { - "language": "de", - "text": "Beispiel File Element" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "kind": "Template", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Reference Element object" - }, - { - "language": "de", - "text": "Beispiel Reference Element Element" - } - ], - "modelType": "ReferenceElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ReferenceElements/ExampleReferenceElement" - } - ] - }, - "kind": "Template" - } - ] - }, - { - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "kind": "Template" - } - ] - }, - { - "idShort": "ExampleSubmodelList2", - "typeValueListElement": "Capability", - "semanticIdListElement": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "orderRelevant": true, - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementList object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementList Element" - } - ], - "modelType": "SubmodelElementList", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList" - } - ] - }, - "kind": "Template" - } - ] - } - ], - "conceptDescriptions": [ - { - "idShort": "TestConceptDescription", - "description": [ - { - "language": "en-US", - "text": "An example concept description for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-ConceptDescription f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "ConceptDescription", - "id": "https://acplt.org/Test_ConceptDescription", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/Test_ConceptDescription" - } - ] - }, - "templateId": "http://acplt.org/AdministrativeInformationTemplates/Test_ConceptDescription", - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - } - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - } - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - }, - "isCaseOf": [ - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/DataSpecifications/ConceptDescriptions/TestConceptDescription" - } - ] - } - ] - }, - { - "modelType": "ConceptDescription", - "id": "https://acplt.org/Test_ConceptDescription_Mandatory" - }, - { - "idShort": "TestConceptDescription", - "description": [ - { - "language": "en-US", - "text": "An example concept description for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-ConceptDescription f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "ConceptDescription", - "id": "https://acplt.org/Test_ConceptDescription_Missing", - "administration": { - "version": "9", - "revision": "0" - } - } - ] -} \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example.xml b/test/compliance_tool/files/test_demo_full_example.xml deleted file mode 100644 index 39fae5599..000000000 --- a/test/compliance_tool/files/test_demo_full_example.xml +++ /dev/null @@ -1,2991 +0,0 @@ - - - - - TestAssetAdministrationShell - - - en-US - An Example Asset Administration Shell for the test application - - - de - Ein Beispiel-Verwaltungsschale für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_AssetAdministrationShell - - - - http://acplt.org/AdministrativeInformationTemplates/Test_AssetAdministrationShell - - https://acplt.org/Test_AssetAdministrationShell - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - - ModelReference - - - AssetAdministrationShell - https://acplt.org/TestAssetAdministrationShell2 - - - - - Instance - http://acplt.org/TestAsset/ - - - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - http://acplt.org/TestAssetType/ - - file:///path/to/thumbnail.png - image/png - - - - - ModelReference - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/AssetIdentification - - - - - - Submodel - http://acplt.org/Submodels/Assets/TestAsset/Identification - - - - - ModelReference - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - Submodel - https://acplt.org/Test_Submodel - - - - - ModelReference - - - Submodel - http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial - - - - - - - https://acplt.org/Test_AssetAdministrationShell_Mandatory - - Instance - http://acplt.org/Test_Asset_Mandatory/ - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel2_Mandatory - - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel_Mandatory - - - - - - - https://acplt.org/Test_AssetAdministrationShell2_Mandatory - - Instance - http://acplt.org/TestAsset2_Mandatory/ - - - - TestAssetAdministrationShell - - - en-US - An Example Asset Administration Shell for the test application - - - de - Ein Beispiel-Verwaltungsschale für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_AssetAdministrationShell_Missing - - Instance - http://acplt.org/Test_Asset_Missing/ - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - - file:///TestFile.pdf - application/pdf - - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel_Missing - - - - - - - - - Identification - - - en-US - An example asset identification submodel for the test application - - - de - Ein Beispiel-Identifikations-Submodel für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/TestAsset/Identification - - - - http://acplt.org/AdministrativeInformationTemplates/TestAsset/Identification - - http://acplt.org/Submodels/Assets/TestAsset/Identification - Instance - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/AssetIdentification - - - - - - - - ExampleExtension - xs:string - ExampleExtensionValue - - - ModelReference - - - AssetAdministrationShell - http://acplt.org/RefersTo/ExampleRefersTo - - - - - - - PARAMETER - ManufacturerName - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - 0173-1#02-AAO677#002 - - - - - - ConceptQualifier - http://acplt.org/Qualifier/ExampleQualifier - xs:int - 100 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - TemplateQualifier - http://acplt.org/Qualifier/ExampleQualifier2 - xs:int - 50 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - xs:string - ACPLT - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - PARAMETER - InstanceId - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - - - ValueQualifier - http://acplt.org/Qualifier/ExampleQualifier3 - xs:dateTime - 2023-04-07T16:59:54.870123 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - xs:string - 978-8234-234-342 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - BillOfMaterial - - - en-US - An example bill of material submodel for the test application - - - de - Ein Beispiel-BillofMaterial-Submodel für eine Test-Anwendung - - - - 9 - http://acplt.org/AdministrativeInformationTemplates/TestAsset/BillOfMaterial - - http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial - Instance - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/BillOfMaterial - - - - - - PARAMETER - ExampleEntity - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - - - CONSTANT - ExampleProperty2 - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - SelfManagedEntity - http://acplt.org/TestAsset/ - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - - - PARAMETER - ExampleEntity2 - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - CoManagedEntity - - - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_Submodel - - - - - https://acplt.org/Test_Submodel - Instance - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ModelReference - - - ConceptDescription - https://acplt.org/Test_ConceptDescription - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty2 - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty2 - - - - - - PARAMETER - ExampleAnnotatedProperty - xs:string - exampleValue - - - PARAMETER - ExampleAnnotatedRange - xs:integer - 1 - 5 - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelCollection - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - AQIDBAU= - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - /TestFile.pdf - application/pdf - - - CONSTANT - ExampleFileURI - - - en-US - Details of the Asset Administration Shell — An example for an external file reference - - - de - Details of the Asset Administration Shell – Ein Beispiel für eine extern referenzierte Datei - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - https://www.plattform-i40.de/PI40/Redaktion/DE/Downloads/Publikation/Details-of-the-Asset-Administration-Shell-Part1.pdf?__blob=publicationFile&v=5 - application/pdf - - - PARAMETER - ExampleSubmodelList - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - Property - xs:string - - - CONSTANT - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/SupplementalId1 - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/SupplementalId2 - - - - - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - CONSTANT - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty2/SupplementalId - - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MultiLanguageProperty Element - - - - ExternalReference - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/Referred - - - - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - en-US - Example value of a MultiLanguageProperty element - - - de - Beispielswert für ein MulitLanguageProperty-Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleMultiLanguageValueId - - - - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - 100 - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - - - - - https://acplt.org/Test_Submodel_Mandatory - Instance - - - ExampleRelationshipElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - ExampleAnnotatedRelationshipElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - ExampleOperation - - - ExampleCapability - - - ExampleBasicEventElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - input - off - - - ExampleSubmodelList - SubmodelElementCollection - - - - - ExampleBlob - - application/pdf - - - ExampleFile - application/pdf - - - PARAMETER - ExampleMultiLanguageProperty - - - PARAMETER - ExampleProperty - xs:string - - - PARAMETER - ExampleRange - xs:int - - - PARAMETER - ExampleReferenceElement - - - - - - - - - ExampleSubmodelList2 - Capability - - - - - https://acplt.org/Test_Submodel2_Mandatory - Instance - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_Submodel_Missing - Instance - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRange - xs:integer - 1 - 5 - - - PARAMETER - ExampleAnnotatedProperty - xs:string - exampleValue - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelCollection - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - AQIDBAU= - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - /TestFile.pdf - application/pdf - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MulitLanguageProperty Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - en-US - Example value of a MultiLanguageProperty element - - - de - Beispielswert für ein MulitLanguageProperty-Element - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - http://acplt.org/Qualifier/ExampleQualifier - xs:string - - - xs:string - exampleValue - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - 100 - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - - - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_Submodel_Template - Template - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelList - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - SubmodelElementCollection - - - PARAMETER - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MulitLanguageProperty Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 100 - - - PARAMETER - ExampleRange2 - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - application/pdf - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - - - - PARAMETER - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - - - PARAMETER - ExampleSubmodelList2 - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - Capability - - - - - - - TestConceptDescription - - - en-US - An example concept description for the test application - - - de - Ein Beispiel-ConceptDescription für eine Test-Anwendung - - - - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_ConceptDescription - - - - http://acplt.org/AdministrativeInformationTemplates/Test_ConceptDescription - - https://acplt.org/Test_ConceptDescription - - - ExternalReference - - - GlobalReference - http://acplt.org/DataSpecifications/ConceptDescriptions/TestConceptDescription - - - - - - - https://acplt.org/Test_ConceptDescription_Mandatory - - - TestConceptDescription - - - en-US - An example concept description for the test application - - - de - Ein Beispiel-ConceptDescription für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_ConceptDescription_Missing - - - diff --git a/test/compliance_tool/files/test_demo_full_example_json_aasx/TestFile.pdf b/test/compliance_tool/files/test_demo_full_example_json_aasx/TestFile.pdf deleted file mode 100644 index 2bccbec5f60ea7a8f51e5fd41eda019cf27a08d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8178 zcma)>Wl&sQv+qOj0fGjX!JV1G-6as*B{+lY;1)a(Jdoh-7Ti6!ySoGk?rt~FIqzHd zRK2(A++FKK_gcNX|JAGahh0BfWl3pP2pboGc4DS?0l)zS1077P0fK@6kUZ4h!o?EE z#R>e^0{}@|*}6bsK#;Vpu?tiZYU*GH1qcfRoLyj0V>^Jyk~3g)%DqOpa;AopgIx_p zRt;RuImyAvp;gH_!2zjPMv+wsn*+~8Vw`WmFgD-5*}+Er4S?F4{VTy=>!0Gh{~-bb zgm7?k{aX?{kc*F#h!_ z5Qu4SDc*3QlYZ%4o-x)IRHTS{>*5ppMv~P3!=PB+PN$J5I(ou0Nm$} zQz8op5ZJ5`61}=LbI6_eT$Ck3LVz%|xMP7kCY+ID&Jdi4`AP2?6T#u_^YSjB|81NR zSX)<<)ZZJ<(T|>IGIL)6UU0J`EjH8K2boeV!&0deaUDSrVe@VOYd~PDal7N2i1UC@ zgy+KTOaUx}x4hJ8mHyN#?*raG3ka;CyWh93IsyZ*HapvCtdQn`G^Be#)Mg;>|=unY>BC>Q*hQUu9QP}9`g^{mev(imj zaEt4+TNV4K;l8g}{--g#cL9F8?4sK`XvlXj3NVsNng!I?fTzsj7v|ru{b!jvFFbLt z?qbRmG#81fr-`qxPThi71O6g!1g(54J>dT2p0kTS^US<`(W`xMv?1OKlpL{gm7(ZFQ42LErOxrz8Z$=gV z1`&`}r1_B-2f)MyUcV9^QHZp<(KE<93$O2IU=W{q#UJ1U!sbJ#~M_|I89f!PO zvqb;1CrN7tr}DIYHI4EhV?s}Xj#Tl}Ft+xTmWe%4aIZ8l$L7{BKo!0QaAS5TsLR}Gh6*eX%j|}$u#ILL zwiLV`zFTo|xLT+_mrMT6wuox~fp?PS7u{1YihH!_E(0|^s%Fv;b$_q^OxW+o7w~lr z=H3y%Y+zPwl;n9}mL8hPZL~DJg<(p#Cl7}cWYxrs_Caw~U;sC-IiaK*Os=jCzO?V^ zP|Ws!CJLF@CfY2evN73*hNYetrPRaL*9LiF^N(aiX-@0hIX^P)NO9HP5GqPES0g=o z5ZgB0+3_AOkr2!-_W54o6WsQ*s8vf;j0a!?m>aGumlColei+oO3Y`XH=1|O2xXoX& z)CX&~Djz7DI9&&!ST^ePkIE0{*9g<~89%ad>UGvxRR9$3h2!`rzeq76tUi}`jiBFu z$3$9>qqL_!f-c65ynFEi<>guTZ;W=K%<@jfEOBoMiVtn9oF8wer~A8Rak*Zp3&`N{m`?Y*x>{+&!)7BfSjz;a-=o5~mC(FVfkY?TEnvB~1Kw8Jz z3cB~)kzGhvMC2T|%c|7*5?}tn{m*C3 zFw~6NbY+mGsn`1g`Pcc|6mV5IUAKhr+l$E3n%hPW&4RDx%RH|0Nq$16nr-GLUP<0U zjsaPAK1B}Swx2hsw6Lmsc0(k+S%IMBSm|K-txZBhbnj*!zaS9h$p~$^+t`RwJ}f+6 z(Dyf)&*$9I+nj^zj|y8xy1g$LtiX;i9#h2%(byXw7TV!wHKT$H$m8=8N&Xu5d*|Bq z_c`GX3!Hk`u+dWH-W1;^!Acm_^`FJq4)bV8NzL8TG;aZ|B+>0cH%s)nSZoF%oJ5oB zoLY%P1Y-6RDJq*vg1c<`T+x;+D*k(EPpcNDlfut!vZgfU-@36GS+o>;Kh`;NXThXG ztL1||s@udB3NuBKBd9m5(BkMkfg10c$?b(FxF=eL`3tzbSfL<;+M+#x%gSsFF4O&4 z`?^-VcKJs2rDJWC_^b7+DSNe8sK6{B*%r%D1#Gp{B;IWib3Bxi`!%x3z9GHoXy86> z+&E7|qrxDc*_DHj;aIk?d^&#d)*M$)#H)sW+aV7KM+9AM33zrak^)P~Qi6VHYLNs^ zUI+N#zn;&?NBI+;e{WYs(^G};l2%i64sg4<^?!|8Hea(57%6D~EY+plmDtU{`XbsQ zd^>w{SdH84&a8Movf(+mrSF?g{cNGRk=SYVI#tDN8kSr9<7VONDzjB$U0N8%pKnb#lQZeJelh5%L4Xh_{84So z{`7L}5f7iXV)7&Co#57zATjSB^lf{Pr@(^3-mTL~ZW1f;JU8a|rA#KPmbStxone*h zg}^xQfQDFktYRL2JiaU92eK8rj1+k7Y`lJ(KF-qKy@IvBxftGJ(3^yu8aHr-Z&a$3J&HF7H<{wD|WZ zg&Eb($DlQy_;dY=%t{(*G1)ji*=^JeEXg5+)ihChwYu6=_A}N+y`xW#>U?Ok7}AIF zi_?)9BK27*BBrv|IVjpwh60HI<}tPg8-9P|ng!V(7?g*6ImrkU6-St*z3>a=g{=H4 z2Zu43mToKj>2-7$9-amica(6%aGJUB;-ALfaEgn8OM04Z!`XV)qJi6rt3QZ)8n65}p9aj3y zdDHvOFguHl3lB1)D~iH3G=LXVC1qPHCDSC_V(e@xmWpbLCMB|i@>xRLT!vC~uYjE${pUi4X^wY{L0C9$4-E0SIc+I77o zgQv>m50>7$@GUZ)Ee|}|*>TNn_v!X#Vu}=MpJdE-mKgYyF&$c~OoA_(47m3lCUrlYVS?YlV-da?bb* z8s}Z&gH@F$pQeC5sX2f--fq5*wlB+{PcpzVE)8CjYYsjYiL_zq&ekln@eQ*zNy zVXMF+b6PIBNAo$=KSeqji{mr-)|zBKEBB;*{RQIDW!Xe4fxIIFcVS2ODE6$1F!EEz zp;MF)BsZ;hu%HPH=;h*zr2Yo|ntO3yb5ap2Q27;8kJ=_?4{n|#Ca;Id@6!KNLrpy> zIjw#k{uC_yd2_#IS^V1|ar*aqkx3PXK$RcQ5fSe+Z1Od8kofHTx6*!8P~Z(=p|5a< z5q+Kal}Zv~$((iEiIL+7- z)IG}jn)eIalSd>`qiCvCDZ5}33;M!0Zw6~qW0}1nzm3Z z5sFy1A-(S$1qT_p- zwOD%*7|NNTR2fUqLm{u-OGxGie=UJJ$_eAS8N+e=;!2$&!&ryo!CZoe>OjPNt7fgl zX4G__&8+1*mwj+JSy=BpTE1JiRAIUOLf1rGW_Mar<)%nRlHZH( z$}G>Pcql7;_UIN~NsLwlsZ6YSqU3&`tYvvW+WBV@$o&rw+11d6t!$z3y*Xd7E14L5 z)l7S4{q?TJffkHbwOuU3F=Wa}P<^bSm145KeR)}GHH9AMgH5A~%f$AxFLJu#VG-$f zJg~I%Pa84v{EVppu{)Wnx zl{W5+VB?9RSN_OS)dzQP>$;ibva)PGi#AWf zAtyZ}JuU!Oaf}uupHlk;{Q3KzfYGNegTD#MejSx`Ws_KlyL&p+nG{ z8F|BZXOp@Lq*t5z7mN4XKdGWTlU$GV6D6qqzJh-i**0&05?K_Pb_%%``z$MTCmq8} zKgXx72}k~(ST$_3O|IB5WS2GL>)uJs2#Hu{o3e*en~iO5&NcJL zAb!*)u(ujnsE&@1w0Y@ef`T*!I`Yn8mh(jedGCj{c2M#3A#~Rz&kYze@*d2Ly(Hc7 zQf1+ARh8t3Ok6KjI91Q2ZRx%si%_uCy@vIPSSTl|BPzLDb(zm`k&%om2^ zti{4H=VKkBgyM6OBb+5d?^AP2IbuoxZc?~Apk(lQ-14k%qF$H545Pc&i}<186Tf&6 zX4xY3x}g$}-I432fy!R@azU%BfR5Hq4Ia6NzJvnHeX!{_FY8#mVK>q0n0v?ovsLS= zO%d>u72{_hR*pHld5(rLR9)tn5SL0No>$Sm$X%HXYQV|c{(pX6(Htt>+C8*l4C{R`5$_BU#r_|dHsyay>74IO)?sLYZT|-{_ThP*)T3TW{N)I#AaqTHt8x%bCj*g?#JK{5ntB z8xb(%-HZ0iREG3t+^CefC%0rZcO61RHU2SIFn_O< zpL7l@3iI{7+iAQJinYO~OgBObQ60o4C4n$xYS3ME0{_gVHFb@W1i=tr0<#jV9h0Q) z#uh9XmwoR!vT?e27HnVM2dB;1-;i_{-B`7&dN&&1S!fpBr*c%l z;du2X3frI^ccs9pC_3tqrOl-BZC0x{+a2on1t#S?r6E|2mi>)q23!z-fsxKDHM_by zj6T)jYs7qMOx^U~5?-6e=L7JXJzI?l7b8KAiI~`h4K@zpWrcns*E<-8S6JD*#~eDg z8V-NbC6Ur9Iphi__Tuz>Db&36r#8=a~5Q@PKYi>lq(Cmk#v%tb%!Xo;A-bYoHE{^}fliP@P0t z+pl?p!f&*cg9@~f!)(YXX<-g!v)K2$W8oU&zt(0)7f?>BQ$d!URTPVdX&-S6(p$dDH2xi zN`?m)IwXFg89KA_bFpD{jW^$G{TAc&$X4+M=R*OB0N2UAw&lhj99rJhJ99R6v{6q! zr;CuqoxaXrLi3<<-^zS%OdqD~#ULwy9cMy6TuohLB0NDfA~DFN=_KKkU zjMq|Ps&M<`OgXgkBW85@fQLzalY8h>7Ld( zqSQn!mLwnKF2BFmBVrsTKCge|L}VVH$Qw#|*JN}qceLD$qJQ^8tN>;_XC&+5m~nkPho$t9|a zq56o`$6$L@vhSdnX#1)*^hkA37gKx$MQ3qlfr#F8rn08Xo>rx!v-Xrjq=q2H__1)u zC3btIRe3oF@l#{_S{%FCSqL#*dBkSARifNHaWdNWeh9tiAZC>K@2}gup(L)ip%u6E z$>#H)0?0|1%h)r?7ozg8s@QSA4HoL#zk7kcKF}QxCK_;6^^;&pr!KzVj zJTO8{C3}@xI# zBV7V(%?2za@d?8o4d0YzQvrv~Rr#8@;c=P@w?YAQww#QG38<0EeiBy<88C4mnz5e1 zD8l~CEC8&b`q(OqUIDNrTU^I>AgzYeP%`2fA1f1<<6p7xU#n8Ob&!n&vJV5I_v+-! z4n0II3H}Th0cu>vT*}ra!H*EcJ)`7EgM0s}nfnhO$K(=4sxTwC- zQn4!haRQwnXKnDQ=v4YLMCgea(*(+JnvwM0jP&t5@uYF8r>*dk_?w=iTZe(N7Pkb! zq1#|-d>Jrzl0<>>Q(+qV6z$aa_KpD^99uywXJbV7R`iu6jH`Fi%_MR23s%-zxqwH%3D3h&luYxAHI%D zY@Gb128tsb>Sr1d=KS6M7LF=@?vW)1FPPR&GXN2QI4Ovp)PKP=wq!j|Drwp+A=-8F zCR;sg)cZFZ^wjFpmvV#}QNzY^@bq1oRKQ@hijQG2Krx;tC%xTwH)->_Q@NtAexb)d z;hPJZ1krNAY@AesBVuhsPdTM@oyw5IuUzU|e|DLmSB&S$11*KYfd?*}@Tu%zJ`3|~ z)9N*u2#XNimh0>>B}{mM_Zk&cCGDP)-Q{mF!IRL!w?BR?Fl)yr0rcx+Dqd9D6?3F(a96o}?SE*nuYe z>ZkEvqK1A^AySv}&D`183=J1@Wi$oAb;e|)^N209G6ZZ-gB>w6L2R>asV;eKjSL~cG0LZL6v?e~Z3 zi{lBN2}oq=dM3EC-`Ku=ou~QX(;?Ann7&M_iwPIyImc9|kyURCtQhjOUd4IP>lL0> zR@3J{xf%rWKfszY%)!jn^e@a~a5OVlhidMcat8ig|E-Ays0oER|1AyVV1sZ%xcJz)xmelRxc{y7zZ3%H zt=ynMb})nwWCnEuNkUDmjO`hLHjc(Fmd;RPpxeJvaI^hQ@=plkKgjZ5sFCY`bVS|L z5eft;nOLj2*a1L_K%RdXBFxzZ$oYQ(BL^q%|2GVUsulTPEv?NlNa~Wm)I`G1PGE{x$X@h26BK1R(k9E`Rb`{F(wg^t(8#+qKz?j@d zs-h`MG9gkA{^M)snP3{Y6d6J|WPkYPgQaF=e7V|;JyD(m>ugvWyHQ#5$K5+;=z(IU z-7VfgQX+-t;Ib10q(q?qy<8nOS zEYz9Gdt2tzCtpCC!0Lj{$K|O$a;J*M_9{^Ib@`C=g03a=(9t6k^ zg#6u8b#QP2Lco9DSN$j4+yVGs-^o9YBv4Nf43Xyed+Xd>Tv8kmK54Fhh7imL5tD$3 zNlWqa@CpO}_mIC;{teT?{~90Q{|=~4jg0Qbdpd_ude9@$pU_29LR5A|!psp(=%l|e v0=YS`Y9MkQ#zx--#@@WK&qTQX&#pMT7{gpVV1N6-!^^`5prw^kk_P-Ay3<)0 diff --git a/test/compliance_tool/files/test_demo_full_example_json_aasx/[Content_Types].xml b/test/compliance_tool/files/test_demo_full_example_json_aasx/[Content_Types].xml deleted file mode 100644 index 4d0bdc9aa..000000000 --- a/test/compliance_tool/files/test_demo_full_example_json_aasx/[Content_Types].xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_json_aasx/_rels/.rels b/test/compliance_tool/files/test_demo_full_example_json_aasx/_rels/.rels deleted file mode 100644 index 9758543f3..000000000 --- a/test/compliance_tool/files/test_demo_full_example_json_aasx/_rels/.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/_rels/aasx-origin.rels b/test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/_rels/aasx-origin.rels deleted file mode 100644 index 3ec0a479e..000000000 --- a/test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/_rels/aasx-origin.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/_rels/data.json.rels b/test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/_rels/data.json.rels deleted file mode 100644 index 43350edd0..000000000 --- a/test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/_rels/data.json.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/aasx-origin b/test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/aasx-origin deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/data.json b/test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/data.json deleted file mode 100644 index 7172735e6..000000000 --- a/test/compliance_tool/files/test_demo_full_example_json_aasx/aasx/data.json +++ /dev/null @@ -1,3218 +0,0 @@ -{ - "assetAdministrationShells": [ - { - "idShort": "TestAssetAdministrationShell", - "description": [ - { - "language": "en-US", - "text": "An Example Asset Administration Shell for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Verwaltungsschale f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/Test_AssetAdministrationShell" - } - ] - }, - "templateId": "http://acplt.org/AdministrativeInformationTemplates/Test_AssetAdministrationShell" - }, - "derivedFrom": { - "type": "ModelReference", - "keys": [ - { - "type": "AssetAdministrationShell", - "value": "https://acplt.org/TestAssetAdministrationShell2" - } - ] - }, - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/TestAsset/", - "specificAssetIds": [ - { - "name": "TestKey", - "value": "TestValue", - "externalSubjectId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - } - } - ], - "defaultThumbnail": { - "path": "file:///path/to/thumbnail.png", - "contentType": "image/png" - } - }, - "submodels": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel" - } - ], - "referredSemanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - } - }, - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial" - } - ] - }, - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Submodels/Assets/TestAsset/Identification" - } - ], - "referredSemanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/SubmodelTemplates/AssetIdentification" - } - ] - } - }, - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel_Template" - } - ] - } - ], - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - } - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - } - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - }, - { - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell_Mandatory", - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/Test_Asset_Mandatory/" - }, - "submodels": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel2_Mandatory" - } - ] - }, - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel_Mandatory" - } - ] - } - ] - }, - { - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell2_Mandatory", - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/TestAsset2_Mandatory/" - } - }, - { - "idShort": "TestAssetAdministrationShell", - "description": [ - { - "language": "en-US", - "text": "An Example Asset Administration Shell for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Verwaltungsschale f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell_Missing", - "administration": { - "version": "9", - "revision": "0" - }, - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/Test_Asset_Missing/", - "specificAssetIds": [ - { - "name": "TestKey", - "value": "TestValue", - "externalSubjectId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - } - } - ], - "defaultThumbnail": { - "path": "file:///TestFile.pdf", - "contentType": "application/pdf" - } - }, - "submodels": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel_Missing" - } - ] - } - ] - } - ], - "submodels": [ - { - "idShort": "Identification", - "description": [ - { - "language": "en-US", - "text": "An example asset identification submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Identifikations-Submodel f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "http://acplt.org/Submodels/Assets/TestAsset/Identification", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/TestAsset/Identification" - } - ] - }, - "templateId": "http://acplt.org/AdministrativeInformationTemplates/TestAsset/Identification" - }, - "semanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/SubmodelTemplates/AssetIdentification" - } - ] - }, - "submodelElements": [ - { - "extensions": [ - { - "value": "ExampleExtensionValue", - "refersTo": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "AssetAdministrationShell", - "value": "http://acplt.org/RefersTo/ExampleRefersTo" - } - ] - } - ], - "valueType": "xs:string", - "name": "ExampleExtension" - } - ], - "idShort": "ManufacturerName", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "0173-1#02-AAO677#002" - } - ] - }, - "qualifiers": [ - { - "value": "50", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:int", - "type": "http://acplt.org/Qualifier/ExampleQualifier2", - "kind": "TemplateQualifier" - }, - { - "value": "100", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:int", - "type": "http://acplt.org/Qualifier/ExampleQualifier", - "kind": "ConceptQualifier" - } - ], - "value": "ACPLT", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - }, - { - "idShort": "InstanceId", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber" - } - ] - }, - "qualifiers": [ - { - "value": "2023-04-07T16:59:54.870123", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:dateTime", - "type": "http://acplt.org/Qualifier/ExampleQualifier3", - "kind": "ValueQualifier" - } - ], - "value": "978-8234-234-342", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - ] - }, - { - "idShort": "BillOfMaterial", - "description": [ - { - "language": "en-US", - "text": "An example bill of material submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-BillofMaterial-Submodel f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial", - "administration": { - "version": "9", - "templateId": "http://acplt.org/AdministrativeInformationTemplates/TestAsset/BillOfMaterial" - }, - "semanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/SubmodelTemplates/BillOfMaterial" - } - ] - }, - "submodelElements": [ - { - "idShort": "ExampleEntity", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Entity", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber" - } - ] - }, - "statements": [ - { - "idShort": "ExampleProperty2", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - }, - { - "idShort": "ExampleProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string", - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - }, - "valueType": "xs:string" - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - } - ], - "entityType": "SelfManagedEntity", - "globalAssetId": "http://acplt.org/TestAsset/", - "specificAssetIds": [ - { - "name": "TestKey", - "value": "TestValue", - "externalSubjectId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - } - } - ] - }, - { - "idShort": "ExampleEntity2", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Entity", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber" - } - ] - }, - "entityType": "CoManagedEntity" - } - ] - }, - { - "idShort": "TestSubmodel", - "description": [ - { - "language": "en-US", - "text": "An example submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Teilmodell f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/Test_Submodel" - } - ] - } - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - }, - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example RelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel RelationshipElement Element" - } - ], - "modelType": "RelationshipElement", - "semanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "ConceptDescription", - "value": "https://acplt.org/Test_ConceptDescription" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty2" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example AnnotatedRelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel AnnotatedRelationshipElement Element" - } - ], - "modelType": "AnnotatedRelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty2" - } - ] - }, - "annotations": [ - { - "idShort": "ExampleAnnotatedProperty", - "category": "PARAMETER", - "modelType": "Property", - "value": "exampleValue", - "valueType": "xs:string" - }, - { - "idShort": "ExampleAnnotatedRange", - "category": "PARAMETER", - "modelType": "Range", - "valueType": "xs:integer", - "min": "1", - "max": "5" - } - ] - }, - { - "idShort": "ExampleOperation", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Operation object" - }, - { - "language": "de", - "text": "Beispiel Operation Element" - } - ], - "modelType": "Operation", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Operations/ExampleOperation" - } - ] - }, - "inputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "outputVariables": [ - { - "value": { - "idShort": "ExamplePropertyOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "inoutputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ] - }, - { - "idShort": "ExampleCapability", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Capability object" - }, - { - "language": "de", - "text": "Beispiel Capability Element" - } - ], - "modelType": "Capability", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Capabilities/ExampleCapability" - } - ] - } - }, - { - "idShort": "ExampleBasicEventElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example BasicEventElement object" - }, - { - "language": "de", - "text": "Beispiel BasicEventElement Element" - } - ], - "modelType": "BasicEventElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Events/ExampleBasicEventElement" - } - ] - }, - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "output", - "state": "on", - "messageTopic": "ExampleTopic", - "messageBroker": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/ExampleMessageBroker" - } - ] - }, - "lastUpdate": "2022-11-12T23:50:23.123456+00:00", - "minInterval": "PT0.000001S", - "maxInterval": "P1Y2M3DT4H5M6.123456S" - }, - { - "idShort": "ExampleSubmodelCollection", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "value": [ - { - "idShort": "ExampleBlob", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Blob object" - }, - { - "language": "de", - "text": "Beispiel Blob Element" - } - ], - "modelType": "Blob", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Blobs/ExampleBlob" - } - ] - }, - "contentType": "application/pdf", - "value": "AQIDBAU=" - }, - { - "idShort": "ExampleFile", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example File object" - }, - { - "language": "de", - "text": "Beispiel File Element" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "value": "/TestFile.pdf", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleFileURI", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Details of the Asset Administration Shell \u2014 An example for an external file reference" - }, - { - "language": "de", - "text": "Details of the Asset Administration Shell \u2013 Ein Beispiel f\u00fcr eine extern referenzierte Datei" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "value": "https://www.plattform-i40.de/PI40/Redaktion/DE/Downloads/Publikation/Details-of-the-Asset-Administration-Shell-Part1.pdf?__blob=publicationFile&v=5", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example MultiLanguageProperty object" - }, - { - "language": "de", - "text": "Beispiel MultiLanguageProperty Element" - } - ], - "modelType": "MultiLanguageProperty", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty" - } - ], - "referredSemanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty/Referred" - } - ] - } - }, - "value": [ - { - "language": "en-US", - "text": "Example value of a MultiLanguageProperty element" - }, - { - "language": "de", - "text": "Beispielswert f\u00fcr ein MulitLanguageProperty-Element" - } - ], - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleMultiLanguageValueId" - } - ] - } - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "valueType": "xs:int", - "min": "0", - "max": "100" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Reference Element object" - }, - { - "language": "de", - "text": "Beispiel Reference Element Element" - } - ], - "modelType": "ReferenceElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ReferenceElements/ExampleReferenceElement" - } - ] - }, - "value": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleSubmodelList", - "typeValueListElement": "Property", - "valueTypeListElement": "xs:string", - "semanticIdListElement": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "orderRelevant": true, - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementList object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementList Element" - } - ], - "modelType": "SubmodelElementList", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList" - } - ] - }, - "value": [ - { - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "supplementalSemanticIds": [ - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty/SupplementalId1" - } - ] - }, - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty/SupplementalId2" - } - ] - } - ], - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string", - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - } - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - } - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - }, - { - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "supplementalSemanticIds": [ - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty2/SupplementalId" - } - ] - } - ], - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - ] - } - ] - } - ] - }, - { - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel_Mandatory", - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "modelType": "RelationshipElement", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "modelType": "AnnotatedRelationshipElement", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleOperation", - "modelType": "Operation" - }, - { - "idShort": "ExampleCapability", - "modelType": "Capability" - }, - { - "idShort": "ExampleBasicEventElement", - "modelType": "BasicEventElement", - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "input", - "state": "off" - }, - { - "idShort": "ExampleSubmodelList", - "typeValueListElement": "SubmodelElementCollection", - "modelType": "SubmodelElementList", - "value": [ - { - "modelType": "SubmodelElementCollection", - "value": [ - { - "idShort": "ExampleBlob", - "modelType": "Blob", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleFile", - "modelType": "File", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "PARAMETER", - "modelType": "MultiLanguageProperty" - }, - { - "idShort": "ExampleProperty", - "category": "PARAMETER", - "modelType": "Property", - "valueType": "xs:string" - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "modelType": "Range", - "valueType": "xs:int" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "modelType": "ReferenceElement" - } - ] - }, - { - "modelType": "SubmodelElementCollection" - } - ] - }, - { - "idShort": "ExampleSubmodelList2", - "typeValueListElement": "Capability", - "modelType": "SubmodelElementList" - } - ] - }, - { - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel2_Mandatory" - }, - { - "idShort": "TestSubmodel", - "description": [ - { - "language": "en-US", - "text": "An example submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Teilmodell f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel_Missing", - "administration": { - "version": "9", - "revision": "0" - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - }, - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example RelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel RelationshipElement Element" - } - ], - "modelType": "RelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleRelationshipElement" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example AnnotatedRelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel AnnotatedRelationshipElement Element" - } - ], - "modelType": "AnnotatedRelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "annotations": [ - { - "idShort": "ExampleAnnotatedRange", - "category": "PARAMETER", - "modelType": "Range", - "valueType": "xs:integer", - "min": "1", - "max": "5" - }, - { - "idShort": "ExampleAnnotatedProperty", - "category": "PARAMETER", - "modelType": "Property", - "value": "exampleValue", - "valueType": "xs:string" - } - ] - }, - { - "idShort": "ExampleOperation", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Operation object" - }, - { - "language": "de", - "text": "Beispiel Operation Element" - } - ], - "modelType": "Operation", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Operations/ExampleOperation" - } - ] - }, - "inputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "outputVariables": [ - { - "value": { - "idShort": "ExamplePropertyOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "inoutputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ] - }, - { - "idShort": "ExampleCapability", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Capability object" - }, - { - "language": "de", - "text": "Beispiel Capability Element" - } - ], - "modelType": "Capability", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Capabilities/ExampleCapability" - } - ] - } - }, - { - "idShort": "ExampleBasicEventElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example BasicEventElement object" - }, - { - "language": "de", - "text": "Beispiel BasicEventElement Element" - } - ], - "modelType": "BasicEventElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Events/ExampleBasicEventElement" - } - ] - }, - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "output", - "state": "on", - "messageTopic": "ExampleTopic", - "messageBroker": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/ExampleMessageBroker" - } - ] - }, - "lastUpdate": "2022-11-12T23:50:23.123456+00:00", - "minInterval": "PT0.000001S", - "maxInterval": "P1Y2M3DT4H5M6.123456S" - }, - { - "idShort": "ExampleSubmodelCollection", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "value": [ - { - "idShort": "ExampleBlob", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Blob object" - }, - { - "language": "de", - "text": "Beispiel Blob Element" - } - ], - "modelType": "Blob", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Blobs/ExampleBlob" - } - ] - }, - "contentType": "application/pdf", - "value": "AQIDBAU=" - }, - { - "idShort": "ExampleFile", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example File object" - }, - { - "language": "de", - "text": "Beispiel File Element" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "value": "/TestFile.pdf", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example MultiLanguageProperty object" - }, - { - "language": "de", - "text": "Beispiel MulitLanguageProperty Element" - } - ], - "modelType": "MultiLanguageProperty", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty" - } - ] - }, - "value": [ - { - "language": "en-US", - "text": "Example value of a MultiLanguageProperty element" - }, - { - "language": "de", - "text": "Beispielswert f\u00fcr ein MulitLanguageProperty-Element" - } - ] - }, - { - "idShort": "ExampleProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "qualifiers": [ - { - "valueType": "xs:string", - "type": "http://acplt.org/Qualifier/ExampleQualifier" - } - ], - "value": "exampleValue", - "valueType": "xs:string" - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "valueType": "xs:int", - "min": "0", - "max": "100" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Reference Element object" - }, - { - "language": "de", - "text": "Beispiel Reference Element Element" - } - ], - "modelType": "ReferenceElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ReferenceElements/ExampleReferenceElement" - } - ] - }, - "value": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - } - ] - } - ] - }, - { - "idShort": "TestSubmodel", - "description": [ - { - "language": "en-US", - "text": "An example submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Teilmodell f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel_Template", - "administration": { - "version": "9", - "revision": "0" - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - }, - "kind": "Template", - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example RelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel RelationshipElement Element" - } - ], - "modelType": "RelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleRelationshipElement" - } - ] - }, - "kind": "Template", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example AnnotatedRelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel AnnotatedRelationshipElement Element" - } - ], - "modelType": "AnnotatedRelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement" - } - ] - }, - "kind": "Template", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleOperation", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Operation object" - }, - { - "language": "de", - "text": "Beispiel Operation Element" - } - ], - "modelType": "Operation", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Operations/ExampleOperation" - } - ] - }, - "kind": "Template", - "inputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInput", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInput" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - } - } - ], - "outputVariables": [ - { - "value": { - "idShort": "ExamplePropertyOutput", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyOutput" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - } - } - ], - "inoutputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInOutput", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInOutput" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - } - } - ] - }, - { - "idShort": "ExampleCapability", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Capability object" - }, - { - "language": "de", - "text": "Beispiel Capability Element" - } - ], - "modelType": "Capability", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Capabilities/ExampleCapability" - } - ] - }, - "kind": "Template" - }, - { - "idShort": "ExampleBasicEventElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example BasicEventElement object" - }, - { - "language": "de", - "text": "Beispiel BasicEventElement Element" - } - ], - "modelType": "BasicEventElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Events/ExampleBasicEventElement" - } - ] - }, - "kind": "Template", - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "output", - "state": "on", - "messageTopic": "ExampleTopic", - "messageBroker": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/ExampleMessageBroker" - } - ] - }, - "lastUpdate": "2022-11-12T23:50:23.123456+00:00", - "minInterval": "PT0.000001S", - "maxInterval": "P1Y2M3DT4H5M6.123456S" - }, - { - "idShort": "ExampleSubmodelList", - "typeValueListElement": "SubmodelElementCollection", - "semanticIdListElement": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "orderRelevant": true, - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementList object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementList Element" - } - ], - "modelType": "SubmodelElementList", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList" - } - ] - }, - "kind": "Template", - "value": [ - { - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "kind": "Template", - "value": [ - { - "idShort": "ExampleProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example MultiLanguageProperty object" - }, - { - "language": "de", - "text": "Beispiel MulitLanguageProperty Element" - } - ], - "modelType": "MultiLanguageProperty", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty" - } - ] - }, - "kind": "Template" - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "kind": "Template", - "valueType": "xs:int", - "max": "100" - }, - { - "idShort": "ExampleRange2", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "kind": "Template", - "valueType": "xs:int", - "min": "0" - }, - { - "idShort": "ExampleBlob", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Blob object" - }, - { - "language": "de", - "text": "Beispiel Blob Element" - } - ], - "modelType": "Blob", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Blobs/ExampleBlob" - } - ] - }, - "kind": "Template", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleFile", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example File object" - }, - { - "language": "de", - "text": "Beispiel File Element" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "kind": "Template", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Reference Element object" - }, - { - "language": "de", - "text": "Beispiel Reference Element Element" - } - ], - "modelType": "ReferenceElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ReferenceElements/ExampleReferenceElement" - } - ] - }, - "kind": "Template" - } - ] - }, - { - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "kind": "Template" - } - ] - }, - { - "idShort": "ExampleSubmodelList2", - "typeValueListElement": "Capability", - "semanticIdListElement": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "orderRelevant": true, - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementList object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementList Element" - } - ], - "modelType": "SubmodelElementList", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList" - } - ] - }, - "kind": "Template" - } - ] - } - ], - "conceptDescriptions": [ - { - "idShort": "TestConceptDescription", - "description": [ - { - "language": "en-US", - "text": "An example concept description for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-ConceptDescription f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "ConceptDescription", - "id": "https://acplt.org/Test_ConceptDescription", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/Test_ConceptDescription" - } - ] - }, - "templateId": "http://acplt.org/AdministrativeInformationTemplates/Test_ConceptDescription", - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - } - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - } - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - }, - "isCaseOf": [ - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/DataSpecifications/ConceptDescriptions/TestConceptDescription" - } - ] - } - ] - }, - { - "modelType": "ConceptDescription", - "id": "https://acplt.org/Test_ConceptDescription_Mandatory" - }, - { - "idShort": "TestConceptDescription", - "description": [ - { - "language": "en-US", - "text": "An example concept description for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-ConceptDescription f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "ConceptDescription", - "id": "https://acplt.org/Test_ConceptDescription_Missing", - "administration": { - "version": "9", - "revision": "0" - } - } - ] -} \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_json_aasx/docProps/core.xml b/test/compliance_tool/files/test_demo_full_example_json_aasx/docProps/core.xml deleted file mode 100644 index 5f0e65331..000000000 --- a/test/compliance_tool/files/test_demo_full_example_json_aasx/docProps/core.xml +++ /dev/null @@ -1 +0,0 @@ -2020-01-01T00:00:00Eclipse BaSyx Python Testing FrameworkTest_DescriptionEclipse BaSyx Python Testing Framework Compliance Tool2020-01-01T00:00:011.0Test Title2.0.1 \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_wrong_attribute.json b/test/compliance_tool/files/test_demo_full_example_wrong_attribute.json deleted file mode 100644 index 8f816697d..000000000 --- a/test/compliance_tool/files/test_demo_full_example_wrong_attribute.json +++ /dev/null @@ -1,3210 +0,0 @@ -{ - "assetAdministrationShells": [ - { - "idShort": "TestAssetAdministrationShell123", - "description": [ - { - "language": "en-US", - "text": "An Example Asset Administration Shell for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Verwaltungsschale f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/Test_AssetAdministrationShell" - } - ] - }, - "templateId": "http://acplt.org/AdministrativeInformationTemplates/Test_AssetAdministrationShell" - }, - "derivedFrom": { - "type": "ModelReference", - "keys": [ - { - "type": "AssetAdministrationShell", - "value": "https://acplt.org/TestAssetAdministrationShell2" - } - ] - }, - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/TestAsset/", - "specificAssetIds": [ - { - "name": "TestKey", - "value": "TestValue", - "externalSubjectId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - } - } - ], - "assetType": "http://acplt.org/TestAssetType/", - "defaultThumbnail": { - "path": "file:///path/to/thumbnail.png", - "contentType": "image/png" - } - }, - "submodels": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel" - } - ], - "referredSemanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - } - }, - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial" - } - ] - }, - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Submodels/Assets/TestAsset/Identification" - } - ], - "referredSemanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/SubmodelTemplates/AssetIdentification" - } - ] - } - } - ], - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - } - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - } - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - }, - { - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell_Mandatory", - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/Test_Asset_Mandatory/" - }, - "submodels": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel2_Mandatory" - } - ] - }, - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel_Mandatory" - } - ] - } - ] - }, - { - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell2_Mandatory", - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/TestAsset2_Mandatory/" - } - }, - { - "idShort": "TestAssetAdministrationShell", - "description": [ - { - "language": "en-US", - "text": "An Example Asset Administration Shell for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Verwaltungsschale f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "AssetAdministrationShell", - "id": "https://acplt.org/Test_AssetAdministrationShell_Missing", - "administration": { - "version": "9", - "revision": "0" - }, - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/Test_Asset_Missing/", - "specificAssetIds": [ - { - "name": "TestKey", - "value": "TestValue", - "externalSubjectId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - } - } - ], - "defaultThumbnail": { - "path": "file:///TestFile.pdf", - "contentType": "application/pdf" - } - }, - "submodels": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "https://acplt.org/Test_Submodel_Missing" - } - ] - } - ] - } - ], - "submodels": [ - { - "idShort": "Identification", - "description": [ - { - "language": "en-US", - "text": "An example asset identification submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Identifikations-Submodel f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "http://acplt.org/Submodels/Assets/TestAsset/Identification", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/TestAsset/Identification" - } - ] - }, - "templateId": "http://acplt.org/AdministrativeInformationTemplates/TestAsset/Identification" - }, - "semanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/SubmodelTemplates/AssetIdentification" - } - ] - }, - "submodelElements": [ - { - "extensions": [ - { - "value": "ExampleExtensionValue", - "refersTo": [ - { - "type": "ModelReference", - "keys": [ - { - "type": "AssetAdministrationShell", - "value": "http://acplt.org/RefersTo/ExampleRefersTo" - } - ] - } - ], - "valueType": "xs:string", - "name": "ExampleExtension" - } - ], - "idShort": "ManufacturerName", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "0173-1#02-AAO677#002" - } - ] - }, - "qualifiers": [ - { - "value": "50", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:int", - "type": "http://acplt.org/Qualifier/ExampleQualifier2", - "kind": "TemplateQualifier" - }, - { - "value": "100", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:int", - "type": "http://acplt.org/Qualifier/ExampleQualifier", - "kind": "ConceptQualifier" - } - ], - "value": "ACPLT", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - }, - { - "idShort": "InstanceId", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber" - } - ] - }, - "qualifiers": [ - { - "value": "2023-04-07T16:59:54.870123", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:dateTime", - "type": "http://acplt.org/Qualifier/ExampleQualifier3", - "kind": "ValueQualifier" - } - ], - "value": "978-8234-234-342", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - ] - }, - { - "idShort": "BillOfMaterial", - "description": [ - { - "language": "en-US", - "text": "An example bill of material submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-BillofMaterial-Submodel f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial", - "administration": { - "version": "9", - "templateId": "http://acplt.org/AdministrativeInformationTemplates/TestAsset/BillOfMaterial" - }, - "semanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/SubmodelTemplates/BillOfMaterial" - } - ] - }, - "submodelElements": [ - { - "idShort": "ExampleEntity", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Entity", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber" - } - ] - }, - "statements": [ - { - "idShort": "ExampleProperty2", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - }, - { - "idShort": "ExampleProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string", - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - }, - "valueType": "xs:string" - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - } - ], - "entityType": "SelfManagedEntity", - "globalAssetId": "http://acplt.org/TestAsset/", - "specificAssetIds": [ - { - "name": "TestKey", - "value": "TestValue", - "externalSubjectId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SpecificAssetId/" - } - ] - } - } - ] - }, - { - "idShort": "ExampleEntity2", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation." - }, - { - "language": "de", - "text": "Bezeichnung f\u00fcr eine nat\u00fcrliche oder juristische Person, die f\u00fcr die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist" - } - ], - "modelType": "Entity", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber" - } - ] - }, - "entityType": "CoManagedEntity" - } - ] - }, - { - "idShort": "TestSubmodel", - "description": [ - { - "language": "en-US", - "text": "An example submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Teilmodell f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/Test_Submodel" - } - ] - } - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - }, - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example RelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel RelationshipElement Element" - } - ], - "modelType": "RelationshipElement", - "semanticId": { - "type": "ModelReference", - "keys": [ - { - "type": "ConceptDescription", - "value": "https://acplt.org/Test_ConceptDescription" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty2" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example AnnotatedRelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel AnnotatedRelationshipElement Element" - } - ], - "modelType": "AnnotatedRelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty2" - } - ] - }, - "annotations": [ - { - "idShort": "ExampleAnnotatedProperty", - "category": "PARAMETER", - "modelType": "Property", - "value": "exampleValue", - "valueType": "xs:string" - }, - { - "idShort": "ExampleAnnotatedRange", - "category": "PARAMETER", - "modelType": "Range", - "valueType": "xs:integer", - "min": "1", - "max": "5" - } - ] - }, - { - "idShort": "ExampleOperation", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Operation object" - }, - { - "language": "de", - "text": "Beispiel Operation Element" - } - ], - "modelType": "Operation", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Operations/ExampleOperation" - } - ] - }, - "inputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "outputVariables": [ - { - "value": { - "idShort": "ExamplePropertyOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "inoutputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ] - }, - { - "idShort": "ExampleCapability", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Capability object" - }, - { - "language": "de", - "text": "Beispiel Capability Element" - } - ], - "modelType": "Capability", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Capabilities/ExampleCapability" - } - ] - } - }, - { - "idShort": "ExampleBasicEventElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example BasicEventElement object" - }, - { - "language": "de", - "text": "Beispiel BasicEventElement Element" - } - ], - "modelType": "BasicEventElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Events/ExampleBasicEventElement" - } - ] - }, - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "output", - "state": "on", - "messageTopic": "ExampleTopic", - "messageBroker": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/ExampleMessageBroker" - } - ] - }, - "lastUpdate": "2022-11-12T23:50:23.123456+00:00", - "minInterval": "PT0.000001S", - "maxInterval": "P1Y2M3DT4H5M6.123456S" - }, - { - "idShort": "ExampleSubmodelCollection", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "value": [ - { - "idShort": "ExampleBlob", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Blob object" - }, - { - "language": "de", - "text": "Beispiel Blob Element" - } - ], - "modelType": "Blob", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Blobs/ExampleBlob" - } - ] - }, - "contentType": "application/pdf", - "value": "AQIDBAU=" - }, - { - "idShort": "ExampleFile", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example File object" - }, - { - "language": "de", - "text": "Beispiel File Element" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "value": "/TestFile.pdf", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleFileURI", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Details of the Asset Administration Shell \u2014 An example for an external file reference" - }, - { - "language": "de", - "text": "Details of the Asset Administration Shell \u2013 Ein Beispiel f\u00fcr eine extern referenzierte Datei" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "value": "https://www.plattform-i40.de/PI40/Redaktion/DE/Downloads/Publikation/Details-of-the-Asset-Administration-Shell-Part1.pdf?__blob=publicationFile&v=5", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example MultiLanguageProperty object" - }, - { - "language": "de", - "text": "Beispiel MultiLanguageProperty Element" - } - ], - "modelType": "MultiLanguageProperty", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty" - } - ], - "referredSemanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty/Referred" - } - ] - } - }, - "value": [ - { - "language": "en-US", - "text": "Example value of a MultiLanguageProperty element" - }, - { - "language": "de", - "text": "Beispielswert f\u00fcr ein MulitLanguageProperty-Element" - } - ], - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleMultiLanguageValueId" - } - ] - } - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "valueType": "xs:int", - "min": "0", - "max": "100" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Reference Element object" - }, - { - "language": "de", - "text": "Beispiel Reference Element Element" - } - ], - "modelType": "ReferenceElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ReferenceElements/ExampleReferenceElement" - } - ] - }, - "value": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleSubmodelList", - "typeValueListElement": "Property", - "valueTypeListElement": "xs:string", - "semanticIdListElement": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "orderRelevant": true, - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementList object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementList Element" - } - ], - "modelType": "SubmodelElementList", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList" - } - ] - }, - "value": [ - { - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "supplementalSemanticIds": [ - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty/SupplementalId1" - } - ] - }, - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty/SupplementalId2" - } - ] - } - ], - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string", - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - } - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - } - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - }, - { - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "supplementalSemanticIds": [ - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty2/SupplementalId" - } - ] - } - ], - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - ] - } - ] - } - ] - }, - { - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel_Mandatory", - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "modelType": "RelationshipElement", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "modelType": "AnnotatedRelationshipElement", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleOperation", - "modelType": "Operation" - }, - { - "idShort": "ExampleCapability", - "modelType": "Capability" - }, - { - "idShort": "ExampleBasicEventElement", - "modelType": "BasicEventElement", - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "input", - "state": "off" - }, - { - "idShort": "ExampleSubmodelList", - "typeValueListElement": "SubmodelElementCollection", - "modelType": "SubmodelElementList", - "value": [ - { - "modelType": "SubmodelElementCollection", - "value": [ - { - "idShort": "ExampleBlob", - "modelType": "Blob", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleFile", - "modelType": "File", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "PARAMETER", - "modelType": "MultiLanguageProperty" - }, - { - "idShort": "ExampleProperty", - "category": "PARAMETER", - "modelType": "Property", - "valueType": "xs:string" - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "modelType": "Range", - "valueType": "xs:int" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "modelType": "ReferenceElement" - } - ] - }, - { - "modelType": "SubmodelElementCollection" - } - ] - }, - { - "idShort": "ExampleSubmodelList2", - "typeValueListElement": "Capability", - "modelType": "SubmodelElementList" - } - ] - }, - { - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel2_Mandatory" - }, - { - "idShort": "TestSubmodel", - "description": [ - { - "language": "en-US", - "text": "An example submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Teilmodell f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel_Missing", - "administration": { - "version": "9", - "revision": "0" - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - }, - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example RelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel RelationshipElement Element" - } - ], - "modelType": "RelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleRelationshipElement" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example AnnotatedRelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel AnnotatedRelationshipElement Element" - } - ], - "modelType": "AnnotatedRelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement" - } - ] - }, - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "annotations": [ - { - "idShort": "ExampleAnnotatedRange", - "category": "PARAMETER", - "modelType": "Range", - "valueType": "xs:integer", - "min": "1", - "max": "5" - }, - { - "idShort": "ExampleAnnotatedProperty", - "category": "PARAMETER", - "modelType": "Property", - "value": "exampleValue", - "valueType": "xs:string" - } - ] - }, - { - "idShort": "ExampleOperation", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Operation object" - }, - { - "language": "de", - "text": "Beispiel Operation Element" - } - ], - "modelType": "Operation", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Operations/ExampleOperation" - } - ] - }, - "inputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "outputVariables": [ - { - "value": { - "idShort": "ExamplePropertyOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ], - "inoutputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInOutput", - "displayName": [ - { - "language": "en-US", - "text": "ExampleProperty" - }, - { - "language": "de", - "text": "BeispielProperty" - } - ], - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInOutput" - } - ] - }, - "kind": "Template", - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - }, - "valueType": "xs:string" - } - } - ] - }, - { - "idShort": "ExampleCapability", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Capability object" - }, - { - "language": "de", - "text": "Beispiel Capability Element" - } - ], - "modelType": "Capability", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Capabilities/ExampleCapability" - } - ] - } - }, - { - "idShort": "ExampleBasicEventElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example BasicEventElement object" - }, - { - "language": "de", - "text": "Beispiel BasicEventElement Element" - } - ], - "modelType": "BasicEventElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Events/ExampleBasicEventElement" - } - ] - }, - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "output", - "state": "on", - "messageTopic": "ExampleTopic", - "messageBroker": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/ExampleMessageBroker" - } - ] - }, - "lastUpdate": "2022-11-12T23:50:23.123456+00:00", - "minInterval": "PT0.000001S", - "maxInterval": "P1Y2M3DT4H5M6.123456S" - }, - { - "idShort": "ExampleSubmodelCollection", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "value": [ - { - "idShort": "ExampleBlob", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Blob object" - }, - { - "language": "de", - "text": "Beispiel Blob Element" - } - ], - "modelType": "Blob", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Blobs/ExampleBlob" - } - ] - }, - "contentType": "application/pdf", - "value": "AQIDBAU=" - }, - { - "idShort": "ExampleFile", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example File object" - }, - { - "language": "de", - "text": "Beispiel File Element" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "value": "/TestFile.pdf", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example MultiLanguageProperty object" - }, - { - "language": "de", - "text": "Beispiel MulitLanguageProperty Element" - } - ], - "modelType": "MultiLanguageProperty", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty" - } - ] - }, - "value": [ - { - "language": "en-US", - "text": "Example value of a MultiLanguageProperty element" - }, - { - "language": "de", - "text": "Beispielswert f\u00fcr ein MulitLanguageProperty-Element" - } - ] - }, - { - "idShort": "ExampleProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "qualifiers": [ - { - "valueType": "xs:string", - "type": "http://acplt.org/Qualifier/ExampleQualifier" - } - ], - "value": "exampleValue", - "valueType": "xs:string" - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "valueType": "xs:int", - "min": "0", - "max": "100" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Reference Element object" - }, - { - "language": "de", - "text": "Beispiel Reference Element Element" - } - ], - "modelType": "ReferenceElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ReferenceElements/ExampleReferenceElement" - } - ] - }, - "value": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - } - ] - } - ] - }, - { - "idShort": "TestSubmodel", - "description": [ - { - "language": "en-US", - "text": "An example submodel for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-Teilmodell f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "Submodel", - "id": "https://acplt.org/Test_Submodel_Template", - "administration": { - "version": "9", - "revision": "0" - }, - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelTemplates/ExampleSubmodel" - } - ] - }, - "kind": "Template", - "submodelElements": [ - { - "idShort": "ExampleRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example RelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel RelationshipElement Element" - } - ], - "modelType": "RelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleRelationshipElement" - } - ] - }, - "kind": "Template", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleAnnotatedRelationshipElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example AnnotatedRelationshipElement object" - }, - { - "language": "de", - "text": "Beispiel AnnotatedRelationshipElement Element" - } - ], - "modelType": "AnnotatedRelationshipElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement" - } - ] - }, - "kind": "Template", - "first": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "second": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - } - }, - { - "idShort": "ExampleOperation", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Operation object" - }, - { - "language": "de", - "text": "Beispiel Operation Element" - } - ], - "modelType": "Operation", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Operations/ExampleOperation" - } - ] - }, - "kind": "Template", - "inputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInput", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInput" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - } - } - ], - "outputVariables": [ - { - "value": { - "idShort": "ExamplePropertyOutput", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyOutput" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - } - } - ], - "inoutputVariables": [ - { - "value": { - "idShort": "ExamplePropertyInOutput", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExamplePropertyInOutput" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - } - } - ] - }, - { - "idShort": "ExampleCapability", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Capability object" - }, - { - "language": "de", - "text": "Beispiel Capability Element" - } - ], - "modelType": "Capability", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Capabilities/ExampleCapability" - } - ] - }, - "kind": "Template" - }, - { - "idShort": "ExampleBasicEventElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example BasicEventElement object" - }, - { - "language": "de", - "text": "Beispiel BasicEventElement Element" - } - ], - "modelType": "BasicEventElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Events/ExampleBasicEventElement" - } - ] - }, - "kind": "Template", - "observed": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/Test_Submodel" - }, - { - "type": "Property", - "value": "ExampleProperty" - } - ] - }, - "direction": "output", - "state": "on", - "messageTopic": "ExampleTopic", - "messageBroker": { - "type": "ModelReference", - "keys": [ - { - "type": "Submodel", - "value": "http://acplt.org/ExampleMessageBroker" - } - ] - }, - "lastUpdate": "2022-11-12T23:50:23.123456+00:00", - "minInterval": "PT0.000001S", - "maxInterval": "P1Y2M3DT4H5M6.123456S" - }, - { - "idShort": "ExampleSubmodelList", - "typeValueListElement": "SubmodelElementCollection", - "semanticIdListElement": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "orderRelevant": true, - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementList object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementList Element" - } - ], - "modelType": "SubmodelElementList", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList" - } - ] - }, - "kind": "Template", - "value": [ - { - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "kind": "Template", - "value": [ - { - "idShort": "ExampleProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example Property object" - }, - { - "language": "de", - "text": "Beispiel Property Element" - } - ], - "modelType": "Property", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Properties/ExampleProperty" - } - ] - }, - "kind": "Template", - "valueType": "xs:string" - }, - { - "idShort": "ExampleMultiLanguageProperty", - "category": "CONSTANT", - "description": [ - { - "language": "en-US", - "text": "Example MultiLanguageProperty object" - }, - { - "language": "de", - "text": "Beispiel MulitLanguageProperty Element" - } - ], - "modelType": "MultiLanguageProperty", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty" - } - ] - }, - "kind": "Template" - }, - { - "idShort": "ExampleRange", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "kind": "Template", - "valueType": "xs:int", - "max": "100" - }, - { - "idShort": "ExampleRange2", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Range object" - }, - { - "language": "de", - "text": "Beispiel Range Element" - } - ], - "modelType": "Range", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Ranges/ExampleRange" - } - ] - }, - "kind": "Template", - "valueType": "xs:int", - "min": "0" - }, - { - "idShort": "ExampleBlob", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Blob object" - }, - { - "language": "de", - "text": "Beispiel Blob Element" - } - ], - "modelType": "Blob", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Blobs/ExampleBlob" - } - ] - }, - "kind": "Template", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleFile", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example File object" - }, - { - "language": "de", - "text": "Beispiel File Element" - } - ], - "modelType": "File", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Files/ExampleFile" - } - ] - }, - "kind": "Template", - "contentType": "application/pdf" - }, - { - "idShort": "ExampleReferenceElement", - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example Reference Element object" - }, - { - "language": "de", - "text": "Beispiel Reference Element Element" - } - ], - "modelType": "ReferenceElement", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ReferenceElements/ExampleReferenceElement" - } - ] - }, - "kind": "Template" - } - ] - }, - { - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementCollection object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementCollection Element" - } - ], - "modelType": "SubmodelElementCollection", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "kind": "Template" - } - ] - }, - { - "idShort": "ExampleSubmodelList2", - "typeValueListElement": "Capability", - "semanticIdListElement": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection" - } - ] - }, - "orderRelevant": true, - "category": "PARAMETER", - "description": [ - { - "language": "en-US", - "text": "Example SubmodelElementList object" - }, - { - "language": "de", - "text": "Beispiel SubmodelElementList Element" - } - ], - "modelType": "SubmodelElementList", - "semanticId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList" - } - ] - }, - "kind": "Template" - } - ] - } - ], - "conceptDescriptions": [ - { - "idShort": "TestConceptDescription", - "description": [ - { - "language": "en-US", - "text": "An example concept description for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-ConceptDescription f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "ConceptDescription", - "id": "https://acplt.org/Test_ConceptDescription", - "administration": { - "version": "9", - "revision": "0", - "creator": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/AdministrativeInformation/Test_ConceptDescription" - } - ] - }, - "templateId": "http://acplt.org/AdministrativeInformationTemplates/Test_ConceptDescription", - "embeddedDataSpecifications": [ - { - "dataSpecification": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0" - } - ] - }, - "dataSpecificationContent": { - "modelType": "DataSpecificationIec61360", - "preferredName": [ - { - "language": "de", - "text": "Test Specification" - }, - { - "language": "en-US", - "text": "TestSpecification" - } - ], - "dataType": "REAL_MEASURE", - "definition": [ - { - "language": "de", - "text": "Dies ist eine Data Specification f\u00fcr Testzwecke" - }, - { - "language": "en-US", - "text": "This is a DataSpecification for testing purposes" - } - ], - "shortName": [ - { - "language": "de", - "text": "Test Spec" - }, - { - "language": "en-US", - "text": "TestSpec" - } - ], - "unit": "SpaceUnit", - "unitId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Units/SpaceUnit" - } - ] - }, - "sourceOfDefinition": "http://acplt.org/DataSpec/ExampleDef", - "symbol": "SU", - "valueFormat": "M", - "valueList": { - "valueReferencePairs": [ - { - "value": "exampleValue", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId" - } - ] - } - }, - { - "value": "exampleValue2", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/ValueId/ExampleValueId2" - } - ] - } - } - ] - }, - "value": "TEST", - "valueId": { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/Values/TestValueId" - } - ] - }, - "levelType": { - "min": true, - "max": true, - "nom": false, - "typ": false - } - } - } - ] - }, - "isCaseOf": [ - { - "type": "ExternalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "http://acplt.org/DataSpecifications/ConceptDescriptions/TestConceptDescription" - } - ] - } - ] - }, - { - "modelType": "ConceptDescription", - "id": "https://acplt.org/Test_ConceptDescription_Mandatory" - }, - { - "idShort": "TestConceptDescription", - "description": [ - { - "language": "en-US", - "text": "An example concept description for the test application" - }, - { - "language": "de", - "text": "Ein Beispiel-ConceptDescription f\u00fcr eine Test-Anwendung" - } - ], - "modelType": "ConceptDescription", - "id": "https://acplt.org/Test_ConceptDescription_Missing", - "administration": { - "version": "9", - "revision": "0" - } - } - ] -} \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_wrong_attribute.xml b/test/compliance_tool/files/test_demo_full_example_wrong_attribute.xml deleted file mode 100644 index 061ee58b6..000000000 --- a/test/compliance_tool/files/test_demo_full_example_wrong_attribute.xml +++ /dev/null @@ -1,2991 +0,0 @@ - - - - - TestAssetAdministrationShell123 - - - en-US - An Example Asset Administration Shell for the test application - - - de - Ein Beispiel-Verwaltungsschale für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_AssetAdministrationShell - - - - http://acplt.org/AdministrativeInformationTemplates/Test_AssetAdministrationShell - - https://acplt.org/Test_AssetAdministrationShell - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - - ModelReference - - - AssetAdministrationShell - https://acplt.org/TestAssetAdministrationShell2 - - - - - Instance - http://acplt.org/TestAsset/ - - - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - http://acplt.org/TestAssetType/ - - file:///path/to/thumbnail.png - image/png - - - - - ModelReference - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/AssetIdentification - - - - - - Submodel - http://acplt.org/Submodels/Assets/TestAsset/Identification - - - - - ModelReference - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - Submodel - https://acplt.org/Test_Submodel - - - - - ModelReference - - - Submodel - http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial - - - - - - - https://acplt.org/Test_AssetAdministrationShell_Mandatory - - Instance - http://acplt.org/Test_Asset_Mandatory/ - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel2_Mandatory - - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel_Mandatory - - - - - - - https://acplt.org/Test_AssetAdministrationShell2_Mandatory - - Instance - http://acplt.org/TestAsset2_Mandatory/ - - - - TestAssetAdministrationShell - - - en-US - An Example Asset Administration Shell for the test application - - - de - Ein Beispiel-Verwaltungsschale für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_AssetAdministrationShell_Missing - - Instance - http://acplt.org/Test_Asset_Missing/ - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - - file:///TestFile.pdf - application/pdf - - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel_Missing - - - - - - - - - Identification - - - en-US - An example asset identification submodel for the test application - - - de - Ein Beispiel-Identifikations-Submodel für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/TestAsset/Identification - - - - http://acplt.org/AdministrativeInformationTemplates/TestAsset/Identification - - http://acplt.org/Submodels/Assets/TestAsset/Identification - Instance - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/AssetIdentification - - - - - - - - ExampleExtension - xs:string - ExampleExtensionValue - - - ModelReference - - - AssetAdministrationShell - http://acplt.org/RefersTo/ExampleRefersTo - - - - - - - PARAMETER - ManufacturerName - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - 0173-1#02-AAO677#002 - - - - - - ConceptQualifier - http://acplt.org/Qualifier/ExampleQualifier - xs:int - 100 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - TemplateQualifier - http://acplt.org/Qualifier/ExampleQualifier2 - xs:int - 50 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - xs:string - ACPLT - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - PARAMETER - InstanceId - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - - - ValueQualifier - http://acplt.org/Qualifier/ExampleQualifier3 - xs:dateTime - 2023-04-07T16:59:54.870123 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - xs:string - 978-8234-234-342 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - BillOfMaterial - - - en-US - An example bill of material submodel for the test application - - - de - Ein Beispiel-BillofMaterial-Submodel für eine Test-Anwendung - - - - 9 - http://acplt.org/AdministrativeInformationTemplates/TestAsset/BillOfMaterial - - http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial - Instance - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/BillOfMaterial - - - - - - PARAMETER - ExampleEntity - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - - - CONSTANT - ExampleProperty2 - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - SelfManagedEntity - http://acplt.org/TestAsset/ - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - - - PARAMETER - ExampleEntity2 - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - CoManagedEntity - - - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_Submodel - - - - - https://acplt.org/Test_Submodel - Instance - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ModelReference - - - ConceptDescription - https://acplt.org/Test_ConceptDescription - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty2 - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty2 - - - - - - PARAMETER - ExampleAnnotatedProperty - xs:string - exampleValue - - - PARAMETER - ExampleAnnotatedRange - xs:integer - 1 - 5 - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelCollection - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - AQIDBAU= - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - /TestFile.pdf - application/pdf - - - CONSTANT - ExampleFileURI - - - en-US - Details of the Asset Administration Shell — An example for an external file reference - - - de - Details of the Asset Administration Shell – Ein Beispiel für eine extern referenzierte Datei - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - https://www.plattform-i40.de/PI40/Redaktion/DE/Downloads/Publikation/Details-of-the-Asset-Administration-Shell-Part1.pdf?__blob=publicationFile&v=5 - application/pdf - - - PARAMETER - ExampleSubmodelList - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - Property - xs:string - - - CONSTANT - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/SupplementalId1 - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/SupplementalId2 - - - - - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - CONSTANT - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty2/SupplementalId - - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MultiLanguageProperty Element - - - - ExternalReference - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/Referred - - - - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - en-US - Example value of a MultiLanguageProperty element - - - de - Beispielswert für ein MulitLanguageProperty-Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleMultiLanguageValueId - - - - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - 100 - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - - - - - https://acplt.org/Test_Submodel_Mandatory - Instance - - - ExampleRelationshipElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - ExampleAnnotatedRelationshipElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - ExampleOperation - - - ExampleCapability - - - ExampleBasicEventElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - input - off - - - ExampleSubmodelList - SubmodelElementCollection - - - - - ExampleBlob - - application/pdf - - - ExampleFile - application/pdf - - - PARAMETER - ExampleMultiLanguageProperty - - - PARAMETER - ExampleProperty - xs:string - - - PARAMETER - ExampleRange - xs:int - - - PARAMETER - ExampleReferenceElement - - - - - - - - - ExampleSubmodelList2 - Capability - - - - - https://acplt.org/Test_Submodel2_Mandatory - Instance - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_Submodel_Missing - Instance - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRange - xs:integer - 1 - 5 - - - PARAMETER - ExampleAnnotatedProperty - xs:string - exampleValue - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelCollection - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - AQIDBAU= - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - /TestFile.pdf - application/pdf - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MulitLanguageProperty Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - en-US - Example value of a MultiLanguageProperty element - - - de - Beispielswert für ein MulitLanguageProperty-Element - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - http://acplt.org/Qualifier/ExampleQualifier - xs:string - - - xs:string - exampleValue - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - 100 - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - - - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_Submodel_Template - Template - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelList - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - SubmodelElementCollection - - - PARAMETER - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MulitLanguageProperty Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 100 - - - PARAMETER - ExampleRange2 - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - application/pdf - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - - - - PARAMETER - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - - - PARAMETER - ExampleSubmodelList2 - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - Capability - - - - - - - TestConceptDescription - - - en-US - An example concept description for the test application - - - de - Ein Beispiel-ConceptDescription für eine Test-Anwendung - - - - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_ConceptDescription - - - - http://acplt.org/AdministrativeInformationTemplates/Test_ConceptDescription - - https://acplt.org/Test_ConceptDescription - - - ExternalReference - - - GlobalReference - http://acplt.org/DataSpecifications/ConceptDescriptions/TestConceptDescription - - - - - - - https://acplt.org/Test_ConceptDescription_Mandatory - - - TestConceptDescription - - - en-US - An example concept description for the test application - - - de - Ein Beispiel-ConceptDescription für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_ConceptDescription_Missing - - - diff --git a/test/compliance_tool/files/test_demo_full_example_xml_aasx/TestFile.pdf b/test/compliance_tool/files/test_demo_full_example_xml_aasx/TestFile.pdf deleted file mode 100644 index 2bccbec5f60ea7a8f51e5fd41eda019cf27a08d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8178 zcma)>Wl&sQv+qOj0fGjX!JV1G-6as*B{+lY;1)a(Jdoh-7Ti6!ySoGk?rt~FIqzHd zRK2(A++FKK_gcNX|JAGahh0BfWl3pP2pboGc4DS?0l)zS1077P0fK@6kUZ4h!o?EE z#R>e^0{}@|*}6bsK#;Vpu?tiZYU*GH1qcfRoLyj0V>^Jyk~3g)%DqOpa;AopgIx_p zRt;RuImyAvp;gH_!2zjPMv+wsn*+~8Vw`WmFgD-5*}+Er4S?F4{VTy=>!0Gh{~-bb zgm7?k{aX?{kc*F#h!_ z5Qu4SDc*3QlYZ%4o-x)IRHTS{>*5ppMv~P3!=PB+PN$J5I(ou0Nm$} zQz8op5ZJ5`61}=LbI6_eT$Ck3LVz%|xMP7kCY+ID&Jdi4`AP2?6T#u_^YSjB|81NR zSX)<<)ZZJ<(T|>IGIL)6UU0J`EjH8K2boeV!&0deaUDSrVe@VOYd~PDal7N2i1UC@ zgy+KTOaUx}x4hJ8mHyN#?*raG3ka;CyWh93IsyZ*HapvCtdQn`G^Be#)Mg;>|=unY>BC>Q*hQUu9QP}9`g^{mev(imj zaEt4+TNV4K;l8g}{--g#cL9F8?4sK`XvlXj3NVsNng!I?fTzsj7v|ru{b!jvFFbLt z?qbRmG#81fr-`qxPThi71O6g!1g(54J>dT2p0kTS^US<`(W`xMv?1OKlpL{gm7(ZFQ42LErOxrz8Z$=gV z1`&`}r1_B-2f)MyUcV9^QHZp<(KE<93$O2IU=W{q#UJ1U!sbJ#~M_|I89f!PO zvqb;1CrN7tr}DIYHI4EhV?s}Xj#Tl}Ft+xTmWe%4aIZ8l$L7{BKo!0QaAS5TsLR}Gh6*eX%j|}$u#ILL zwiLV`zFTo|xLT+_mrMT6wuox~fp?PS7u{1YihH!_E(0|^s%Fv;b$_q^OxW+o7w~lr z=H3y%Y+zPwl;n9}mL8hPZL~DJg<(p#Cl7}cWYxrs_Caw~U;sC-IiaK*Os=jCzO?V^ zP|Ws!CJLF@CfY2evN73*hNYetrPRaL*9LiF^N(aiX-@0hIX^P)NO9HP5GqPES0g=o z5ZgB0+3_AOkr2!-_W54o6WsQ*s8vf;j0a!?m>aGumlColei+oO3Y`XH=1|O2xXoX& z)CX&~Djz7DI9&&!ST^ePkIE0{*9g<~89%ad>UGvxRR9$3h2!`rzeq76tUi}`jiBFu z$3$9>qqL_!f-c65ynFEi<>guTZ;W=K%<@jfEOBoMiVtn9oF8wer~A8Rak*Zp3&`N{m`?Y*x>{+&!)7BfSjz;a-=o5~mC(FVfkY?TEnvB~1Kw8Jz z3cB~)kzGhvMC2T|%c|7*5?}tn{m*C3 zFw~6NbY+mGsn`1g`Pcc|6mV5IUAKhr+l$E3n%hPW&4RDx%RH|0Nq$16nr-GLUP<0U zjsaPAK1B}Swx2hsw6Lmsc0(k+S%IMBSm|K-txZBhbnj*!zaS9h$p~$^+t`RwJ}f+6 z(Dyf)&*$9I+nj^zj|y8xy1g$LtiX;i9#h2%(byXw7TV!wHKT$H$m8=8N&Xu5d*|Bq z_c`GX3!Hk`u+dWH-W1;^!Acm_^`FJq4)bV8NzL8TG;aZ|B+>0cH%s)nSZoF%oJ5oB zoLY%P1Y-6RDJq*vg1c<`T+x;+D*k(EPpcNDlfut!vZgfU-@36GS+o>;Kh`;NXThXG ztL1||s@udB3NuBKBd9m5(BkMkfg10c$?b(FxF=eL`3tzbSfL<;+M+#x%gSsFF4O&4 z`?^-VcKJs2rDJWC_^b7+DSNe8sK6{B*%r%D1#Gp{B;IWib3Bxi`!%x3z9GHoXy86> z+&E7|qrxDc*_DHj;aIk?d^&#d)*M$)#H)sW+aV7KM+9AM33zrak^)P~Qi6VHYLNs^ zUI+N#zn;&?NBI+;e{WYs(^G};l2%i64sg4<^?!|8Hea(57%6D~EY+plmDtU{`XbsQ zd^>w{SdH84&a8Movf(+mrSF?g{cNGRk=SYVI#tDN8kSr9<7VONDzjB$U0N8%pKnb#lQZeJelh5%L4Xh_{84So z{`7L}5f7iXV)7&Co#57zATjSB^lf{Pr@(^3-mTL~ZW1f;JU8a|rA#KPmbStxone*h zg}^xQfQDFktYRL2JiaU92eK8rj1+k7Y`lJ(KF-qKy@IvBxftGJ(3^yu8aHr-Z&a$3J&HF7H<{wD|WZ zg&Eb($DlQy_;dY=%t{(*G1)ji*=^JeEXg5+)ihChwYu6=_A}N+y`xW#>U?Ok7}AIF zi_?)9BK27*BBrv|IVjpwh60HI<}tPg8-9P|ng!V(7?g*6ImrkU6-St*z3>a=g{=H4 z2Zu43mToKj>2-7$9-amica(6%aGJUB;-ALfaEgn8OM04Z!`XV)qJi6rt3QZ)8n65}p9aj3y zdDHvOFguHl3lB1)D~iH3G=LXVC1qPHCDSC_V(e@xmWpbLCMB|i@>xRLT!vC~uYjE${pUi4X^wY{L0C9$4-E0SIc+I77o zgQv>m50>7$@GUZ)Ee|}|*>TNn_v!X#Vu}=MpJdE-mKgYyF&$c~OoA_(47m3lCUrlYVS?YlV-da?bb* z8s}Z&gH@F$pQeC5sX2f--fq5*wlB+{PcpzVE)8CjYYsjYiL_zq&ekln@eQ*zNy zVXMF+b6PIBNAo$=KSeqji{mr-)|zBKEBB;*{RQIDW!Xe4fxIIFcVS2ODE6$1F!EEz zp;MF)BsZ;hu%HPH=;h*zr2Yo|ntO3yb5ap2Q27;8kJ=_?4{n|#Ca;Id@6!KNLrpy> zIjw#k{uC_yd2_#IS^V1|ar*aqkx3PXK$RcQ5fSe+Z1Od8kofHTx6*!8P~Z(=p|5a< z5q+Kal}Zv~$((iEiIL+7- z)IG}jn)eIalSd>`qiCvCDZ5}33;M!0Zw6~qW0}1nzm3Z z5sFy1A-(S$1qT_p- zwOD%*7|NNTR2fUqLm{u-OGxGie=UJJ$_eAS8N+e=;!2$&!&ryo!CZoe>OjPNt7fgl zX4G__&8+1*mwj+JSy=BpTE1JiRAIUOLf1rGW_Mar<)%nRlHZH( z$}G>Pcql7;_UIN~NsLwlsZ6YSqU3&`tYvvW+WBV@$o&rw+11d6t!$z3y*Xd7E14L5 z)l7S4{q?TJffkHbwOuU3F=Wa}P<^bSm145KeR)}GHH9AMgH5A~%f$AxFLJu#VG-$f zJg~I%Pa84v{EVppu{)Wnx zl{W5+VB?9RSN_OS)dzQP>$;ibva)PGi#AWf zAtyZ}JuU!Oaf}uupHlk;{Q3KzfYGNegTD#MejSx`Ws_KlyL&p+nG{ z8F|BZXOp@Lq*t5z7mN4XKdGWTlU$GV6D6qqzJh-i**0&05?K_Pb_%%``z$MTCmq8} zKgXx72}k~(ST$_3O|IB5WS2GL>)uJs2#Hu{o3e*en~iO5&NcJL zAb!*)u(ujnsE&@1w0Y@ef`T*!I`Yn8mh(jedGCj{c2M#3A#~Rz&kYze@*d2Ly(Hc7 zQf1+ARh8t3Ok6KjI91Q2ZRx%si%_uCy@vIPSSTl|BPzLDb(zm`k&%om2^ zti{4H=VKkBgyM6OBb+5d?^AP2IbuoxZc?~Apk(lQ-14k%qF$H545Pc&i}<186Tf&6 zX4xY3x}g$}-I432fy!R@azU%BfR5Hq4Ia6NzJvnHeX!{_FY8#mVK>q0n0v?ovsLS= zO%d>u72{_hR*pHld5(rLR9)tn5SL0No>$Sm$X%HXYQV|c{(pX6(Htt>+C8*l4C{R`5$_BU#r_|dHsyay>74IO)?sLYZT|-{_ThP*)T3TW{N)I#AaqTHt8x%bCj*g?#JK{5ntB z8xb(%-HZ0iREG3t+^CefC%0rZcO61RHU2SIFn_O< zpL7l@3iI{7+iAQJinYO~OgBObQ60o4C4n$xYS3ME0{_gVHFb@W1i=tr0<#jV9h0Q) z#uh9XmwoR!vT?e27HnVM2dB;1-;i_{-B`7&dN&&1S!fpBr*c%l z;du2X3frI^ccs9pC_3tqrOl-BZC0x{+a2on1t#S?r6E|2mi>)q23!z-fsxKDHM_by zj6T)jYs7qMOx^U~5?-6e=L7JXJzI?l7b8KAiI~`h4K@zpWrcns*E<-8S6JD*#~eDg z8V-NbC6Ur9Iphi__Tuz>Db&36r#8=a~5Q@PKYi>lq(Cmk#v%tb%!Xo;A-bYoHE{^}fliP@P0t z+pl?p!f&*cg9@~f!)(YXX<-g!v)K2$W8oU&zt(0)7f?>BQ$d!URTPVdX&-S6(p$dDH2xi zN`?m)IwXFg89KA_bFpD{jW^$G{TAc&$X4+M=R*OB0N2UAw&lhj99rJhJ99R6v{6q! zr;CuqoxaXrLi3<<-^zS%OdqD~#ULwy9cMy6TuohLB0NDfA~DFN=_KKkU zjMq|Ps&M<`OgXgkBW85@fQLzalY8h>7Ld( zqSQn!mLwnKF2BFmBVrsTKCge|L}VVH$Qw#|*JN}qceLD$qJQ^8tN>;_XC&+5m~nkPho$t9|a zq56o`$6$L@vhSdnX#1)*^hkA37gKx$MQ3qlfr#F8rn08Xo>rx!v-Xrjq=q2H__1)u zC3btIRe3oF@l#{_S{%FCSqL#*dBkSARifNHaWdNWeh9tiAZC>K@2}gup(L)ip%u6E z$>#H)0?0|1%h)r?7ozg8s@QSA4HoL#zk7kcKF}QxCK_;6^^;&pr!KzVj zJTO8{C3}@xI# zBV7V(%?2za@d?8o4d0YzQvrv~Rr#8@;c=P@w?YAQww#QG38<0EeiBy<88C4mnz5e1 zD8l~CEC8&b`q(OqUIDNrTU^I>AgzYeP%`2fA1f1<<6p7xU#n8Ob&!n&vJV5I_v+-! z4n0II3H}Th0cu>vT*}ra!H*EcJ)`7EgM0s}nfnhO$K(=4sxTwC- zQn4!haRQwnXKnDQ=v4YLMCgea(*(+JnvwM0jP&t5@uYF8r>*dk_?w=iTZe(N7Pkb! zq1#|-d>Jrzl0<>>Q(+qV6z$aa_KpD^99uywXJbV7R`iu6jH`Fi%_MR23s%-zxqwH%3D3h&luYxAHI%D zY@Gb128tsb>Sr1d=KS6M7LF=@?vW)1FPPR&GXN2QI4Ovp)PKP=wq!j|Drwp+A=-8F zCR;sg)cZFZ^wjFpmvV#}QNzY^@bq1oRKQ@hijQG2Krx;tC%xTwH)->_Q@NtAexb)d z;hPJZ1krNAY@AesBVuhsPdTM@oyw5IuUzU|e|DLmSB&S$11*KYfd?*}@Tu%zJ`3|~ z)9N*u2#XNimh0>>B}{mM_Zk&cCGDP)-Q{mF!IRL!w?BR?Fl)yr0rcx+Dqd9D6?3F(a96o}?SE*nuYe z>ZkEvqK1A^AySv}&D`183=J1@Wi$oAb;e|)^N209G6ZZ-gB>w6L2R>asV;eKjSL~cG0LZL6v?e~Z3 zi{lBN2}oq=dM3EC-`Ku=ou~QX(;?Ann7&M_iwPIyImc9|kyURCtQhjOUd4IP>lL0> zR@3J{xf%rWKfszY%)!jn^e@a~a5OVlhidMcat8ig|E-Ays0oER|1AyVV1sZ%xcJz)xmelRxc{y7zZ3%H zt=ynMb})nwWCnEuNkUDmjO`hLHjc(Fmd;RPpxeJvaI^hQ@=plkKgjZ5sFCY`bVS|L z5eft;nOLj2*a1L_K%RdXBFxzZ$oYQ(BL^q%|2GVUsulTPEv?NlNa~Wm)I`G1PGE{x$X@h26BK1R(k9E`Rb`{F(wg^t(8#+qKz?j@d zs-h`MG9gkA{^M)snP3{Y6d6J|WPkYPgQaF=e7V|;JyD(m>ugvWyHQ#5$K5+;=z(IU z-7VfgQX+-t;Ib10q(q?qy<8nOS zEYz9Gdt2tzCtpCC!0Lj{$K|O$a;J*M_9{^Ib@`C=g03a=(9t6k^ zg#6u8b#QP2Lco9DSN$j4+yVGs-^o9YBv4Nf43Xyed+Xd>Tv8kmK54Fhh7imL5tD$3 zNlWqa@CpO}_mIC;{teT?{~90Q{|=~4jg0Qbdpd_ude9@$pU_29LR5A|!psp(=%l|e v0=YS`Y9MkQ#zx--#@@WK&qTQX&#pMT7{gpVV1N6-!^^`5prw^kk_P-Ay3<)0 diff --git a/test/compliance_tool/files/test_demo_full_example_xml_aasx/[Content_Types].xml b/test/compliance_tool/files/test_demo_full_example_xml_aasx/[Content_Types].xml deleted file mode 100644 index efab09eb1..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_aasx/[Content_Types].xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_xml_aasx/_rels/.rels b/test/compliance_tool/files/test_demo_full_example_xml_aasx/_rels/.rels deleted file mode 100644 index 9758543f3..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_aasx/_rels/.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/_rels/aasx-origin.rels b/test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/_rels/aasx-origin.rels deleted file mode 100644 index fc764b657..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/_rels/aasx-origin.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/_rels/data.xml.rels b/test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/_rels/data.xml.rels deleted file mode 100644 index 43350edd0..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/_rels/data.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/aasx-origin b/test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/aasx-origin deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/data.xml b/test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/data.xml deleted file mode 100644 index c0eb40769..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_aasx/aasx/data.xml +++ /dev/null @@ -1,2999 +0,0 @@ - - - - - TestAssetAdministrationShell - - - en-US - An Example Asset Administration Shell for the test application - - - de - Ein Beispiel-Verwaltungsschale für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_AssetAdministrationShell - - - - http://acplt.org/AdministrativeInformationTemplates/Test_AssetAdministrationShell - - https://acplt.org/Test_AssetAdministrationShell - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - - ModelReference - - - AssetAdministrationShell - https://acplt.org/TestAssetAdministrationShell2 - - - - - Instance - http://acplt.org/TestAsset/ - - - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - - file:///path/to/thumbnail.png - image/png - - - - - ModelReference - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/AssetIdentification - - - - - - Submodel - http://acplt.org/Submodels/Assets/TestAsset/Identification - - - - - ModelReference - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - Submodel - https://acplt.org/Test_Submodel - - - - - ModelReference - - - Submodel - http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial - - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel_Template - - - - - - - https://acplt.org/Test_AssetAdministrationShell_Mandatory - - Instance - http://acplt.org/Test_Asset_Mandatory/ - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel2_Mandatory - - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel_Mandatory - - - - - - - https://acplt.org/Test_AssetAdministrationShell2_Mandatory - - Instance - http://acplt.org/TestAsset2_Mandatory/ - - - - TestAssetAdministrationShell - - - en-US - An Example Asset Administration Shell for the test application - - - de - Ein Beispiel-Verwaltungsschale für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_AssetAdministrationShell_Missing - - Instance - http://acplt.org/Test_Asset_Missing/ - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - - file:///TestFile.pdf - application/pdf - - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel_Missing - - - - - - - - - Identification - - - en-US - An example asset identification submodel for the test application - - - de - Ein Beispiel-Identifikations-Submodel für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/TestAsset/Identification - - - - http://acplt.org/AdministrativeInformationTemplates/TestAsset/Identification - - http://acplt.org/Submodels/Assets/TestAsset/Identification - Instance - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/AssetIdentification - - - - - - - - ExampleExtension - xs:string - ExampleExtensionValue - - - ModelReference - - - AssetAdministrationShell - http://acplt.org/RefersTo/ExampleRefersTo - - - - - - - PARAMETER - ManufacturerName - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - 0173-1#02-AAO677#002 - - - - - - ConceptQualifier - http://acplt.org/Qualifier/ExampleQualifier - xs:int - 100 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - TemplateQualifier - http://acplt.org/Qualifier/ExampleQualifier2 - xs:int - 50 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - xs:string - ACPLT - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - PARAMETER - InstanceId - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - - - ValueQualifier - http://acplt.org/Qualifier/ExampleQualifier3 - xs:dateTime - 2023-04-07T16:59:54.870123 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - xs:string - 978-8234-234-342 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - BillOfMaterial - - - en-US - An example bill of material submodel for the test application - - - de - Ein Beispiel-BillofMaterial-Submodel für eine Test-Anwendung - - - - 9 - http://acplt.org/AdministrativeInformationTemplates/TestAsset/BillOfMaterial - - http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial - Instance - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/BillOfMaterial - - - - - - PARAMETER - ExampleEntity - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - - - CONSTANT - ExampleProperty2 - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - SelfManagedEntity - http://acplt.org/TestAsset/ - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - - - PARAMETER - ExampleEntity2 - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - CoManagedEntity - - - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_Submodel - - - - - https://acplt.org/Test_Submodel - Instance - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ModelReference - - - ConceptDescription - https://acplt.org/Test_ConceptDescription - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty2 - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty2 - - - - - - PARAMETER - ExampleAnnotatedProperty - xs:string - exampleValue - - - PARAMETER - ExampleAnnotatedRange - xs:integer - 1 - 5 - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelCollection - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - AQIDBAU= - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - /TestFile.pdf - application/pdf - - - CONSTANT - ExampleFileURI - - - en-US - Details of the Asset Administration Shell — An example for an external file reference - - - de - Details of the Asset Administration Shell – Ein Beispiel für eine extern referenzierte Datei - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - https://www.plattform-i40.de/PI40/Redaktion/DE/Downloads/Publikation/Details-of-the-Asset-Administration-Shell-Part1.pdf?__blob=publicationFile&v=5 - application/pdf - - - PARAMETER - ExampleSubmodelList - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - Property - xs:string - - - CONSTANT - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/SupplementalId1 - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/SupplementalId2 - - - - - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - CONSTANT - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty2/SupplementalId - - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MultiLanguageProperty Element - - - - ExternalReference - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/Referred - - - - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - en-US - Example value of a MultiLanguageProperty element - - - de - Beispielswert für ein MulitLanguageProperty-Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleMultiLanguageValueId - - - - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - 100 - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - - - - - https://acplt.org/Test_Submodel_Mandatory - Instance - - - ExampleRelationshipElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - ExampleAnnotatedRelationshipElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - ExampleOperation - - - ExampleCapability - - - ExampleBasicEventElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - input - off - - - ExampleSubmodelList - SubmodelElementCollection - - - - - ExampleBlob - - application/pdf - - - ExampleFile - application/pdf - - - PARAMETER - ExampleMultiLanguageProperty - - - PARAMETER - ExampleProperty - xs:string - - - PARAMETER - ExampleRange - xs:int - - - PARAMETER - ExampleReferenceElement - - - - - - - - - ExampleSubmodelList2 - Capability - - - - - https://acplt.org/Test_Submodel2_Mandatory - Instance - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_Submodel_Missing - Instance - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRange - xs:integer - 1 - 5 - - - PARAMETER - ExampleAnnotatedProperty - xs:string - exampleValue - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelCollection - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - AQIDBAU= - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - /TestFile.pdf - application/pdf - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MulitLanguageProperty Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - en-US - Example value of a MultiLanguageProperty element - - - de - Beispielswert für ein MulitLanguageProperty-Element - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - http://acplt.org/Qualifier/ExampleQualifier - xs:string - - - xs:string - exampleValue - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - 100 - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - - - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_Submodel_Template - Template - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelList - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - SubmodelElementCollection - - - PARAMETER - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MulitLanguageProperty Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 100 - - - PARAMETER - ExampleRange2 - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - application/pdf - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - - - - PARAMETER - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - - - PARAMETER - ExampleSubmodelList2 - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - Capability - - - - - - - TestConceptDescription - - - en-US - An example concept description for the test application - - - de - Ein Beispiel-ConceptDescription für eine Test-Anwendung - - - - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_ConceptDescription - - - - http://acplt.org/AdministrativeInformationTemplates/Test_ConceptDescription - - https://acplt.org/Test_ConceptDescription - - - ExternalReference - - - GlobalReference - http://acplt.org/DataSpecifications/ConceptDescriptions/TestConceptDescription - - - - - - - https://acplt.org/Test_ConceptDescription_Mandatory - - - TestConceptDescription - - - en-US - An example concept description for the test application - - - de - Ein Beispiel-ConceptDescription für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_ConceptDescription_Missing - - - diff --git a/test/compliance_tool/files/test_demo_full_example_xml_aasx/docProps/core.xml b/test/compliance_tool/files/test_demo_full_example_xml_aasx/docProps/core.xml deleted file mode 100644 index 5f0e65331..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_aasx/docProps/core.xml +++ /dev/null @@ -1 +0,0 @@ -2020-01-01T00:00:00Eclipse BaSyx Python Testing FrameworkTest_DescriptionEclipse BaSyx Python Testing Framework Compliance Tool2020-01-01T00:00:011.0Test Title2.0.1 \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/TestFile.pdf b/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/TestFile.pdf deleted file mode 100644 index 2bccbec5f60ea7a8f51e5fd41eda019cf27a08d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8178 zcma)>Wl&sQv+qOj0fGjX!JV1G-6as*B{+lY;1)a(Jdoh-7Ti6!ySoGk?rt~FIqzHd zRK2(A++FKK_gcNX|JAGahh0BfWl3pP2pboGc4DS?0l)zS1077P0fK@6kUZ4h!o?EE z#R>e^0{}@|*}6bsK#;Vpu?tiZYU*GH1qcfRoLyj0V>^Jyk~3g)%DqOpa;AopgIx_p zRt;RuImyAvp;gH_!2zjPMv+wsn*+~8Vw`WmFgD-5*}+Er4S?F4{VTy=>!0Gh{~-bb zgm7?k{aX?{kc*F#h!_ z5Qu4SDc*3QlYZ%4o-x)IRHTS{>*5ppMv~P3!=PB+PN$J5I(ou0Nm$} zQz8op5ZJ5`61}=LbI6_eT$Ck3LVz%|xMP7kCY+ID&Jdi4`AP2?6T#u_^YSjB|81NR zSX)<<)ZZJ<(T|>IGIL)6UU0J`EjH8K2boeV!&0deaUDSrVe@VOYd~PDal7N2i1UC@ zgy+KTOaUx}x4hJ8mHyN#?*raG3ka;CyWh93IsyZ*HapvCtdQn`G^Be#)Mg;>|=unY>BC>Q*hQUu9QP}9`g^{mev(imj zaEt4+TNV4K;l8g}{--g#cL9F8?4sK`XvlXj3NVsNng!I?fTzsj7v|ru{b!jvFFbLt z?qbRmG#81fr-`qxPThi71O6g!1g(54J>dT2p0kTS^US<`(W`xMv?1OKlpL{gm7(ZFQ42LErOxrz8Z$=gV z1`&`}r1_B-2f)MyUcV9^QHZp<(KE<93$O2IU=W{q#UJ1U!sbJ#~M_|I89f!PO zvqb;1CrN7tr}DIYHI4EhV?s}Xj#Tl}Ft+xTmWe%4aIZ8l$L7{BKo!0QaAS5TsLR}Gh6*eX%j|}$u#ILL zwiLV`zFTo|xLT+_mrMT6wuox~fp?PS7u{1YihH!_E(0|^s%Fv;b$_q^OxW+o7w~lr z=H3y%Y+zPwl;n9}mL8hPZL~DJg<(p#Cl7}cWYxrs_Caw~U;sC-IiaK*Os=jCzO?V^ zP|Ws!CJLF@CfY2evN73*hNYetrPRaL*9LiF^N(aiX-@0hIX^P)NO9HP5GqPES0g=o z5ZgB0+3_AOkr2!-_W54o6WsQ*s8vf;j0a!?m>aGumlColei+oO3Y`XH=1|O2xXoX& z)CX&~Djz7DI9&&!ST^ePkIE0{*9g<~89%ad>UGvxRR9$3h2!`rzeq76tUi}`jiBFu z$3$9>qqL_!f-c65ynFEi<>guTZ;W=K%<@jfEOBoMiVtn9oF8wer~A8Rak*Zp3&`N{m`?Y*x>{+&!)7BfSjz;a-=o5~mC(FVfkY?TEnvB~1Kw8Jz z3cB~)kzGhvMC2T|%c|7*5?}tn{m*C3 zFw~6NbY+mGsn`1g`Pcc|6mV5IUAKhr+l$E3n%hPW&4RDx%RH|0Nq$16nr-GLUP<0U zjsaPAK1B}Swx2hsw6Lmsc0(k+S%IMBSm|K-txZBhbnj*!zaS9h$p~$^+t`RwJ}f+6 z(Dyf)&*$9I+nj^zj|y8xy1g$LtiX;i9#h2%(byXw7TV!wHKT$H$m8=8N&Xu5d*|Bq z_c`GX3!Hk`u+dWH-W1;^!Acm_^`FJq4)bV8NzL8TG;aZ|B+>0cH%s)nSZoF%oJ5oB zoLY%P1Y-6RDJq*vg1c<`T+x;+D*k(EPpcNDlfut!vZgfU-@36GS+o>;Kh`;NXThXG ztL1||s@udB3NuBKBd9m5(BkMkfg10c$?b(FxF=eL`3tzbSfL<;+M+#x%gSsFF4O&4 z`?^-VcKJs2rDJWC_^b7+DSNe8sK6{B*%r%D1#Gp{B;IWib3Bxi`!%x3z9GHoXy86> z+&E7|qrxDc*_DHj;aIk?d^&#d)*M$)#H)sW+aV7KM+9AM33zrak^)P~Qi6VHYLNs^ zUI+N#zn;&?NBI+;e{WYs(^G};l2%i64sg4<^?!|8Hea(57%6D~EY+plmDtU{`XbsQ zd^>w{SdH84&a8Movf(+mrSF?g{cNGRk=SYVI#tDN8kSr9<7VONDzjB$U0N8%pKnb#lQZeJelh5%L4Xh_{84So z{`7L}5f7iXV)7&Co#57zATjSB^lf{Pr@(^3-mTL~ZW1f;JU8a|rA#KPmbStxone*h zg}^xQfQDFktYRL2JiaU92eK8rj1+k7Y`lJ(KF-qKy@IvBxftGJ(3^yu8aHr-Z&a$3J&HF7H<{wD|WZ zg&Eb($DlQy_;dY=%t{(*G1)ji*=^JeEXg5+)ihChwYu6=_A}N+y`xW#>U?Ok7}AIF zi_?)9BK27*BBrv|IVjpwh60HI<}tPg8-9P|ng!V(7?g*6ImrkU6-St*z3>a=g{=H4 z2Zu43mToKj>2-7$9-amica(6%aGJUB;-ALfaEgn8OM04Z!`XV)qJi6rt3QZ)8n65}p9aj3y zdDHvOFguHl3lB1)D~iH3G=LXVC1qPHCDSC_V(e@xmWpbLCMB|i@>xRLT!vC~uYjE${pUi4X^wY{L0C9$4-E0SIc+I77o zgQv>m50>7$@GUZ)Ee|}|*>TNn_v!X#Vu}=MpJdE-mKgYyF&$c~OoA_(47m3lCUrlYVS?YlV-da?bb* z8s}Z&gH@F$pQeC5sX2f--fq5*wlB+{PcpzVE)8CjYYsjYiL_zq&ekln@eQ*zNy zVXMF+b6PIBNAo$=KSeqji{mr-)|zBKEBB;*{RQIDW!Xe4fxIIFcVS2ODE6$1F!EEz zp;MF)BsZ;hu%HPH=;h*zr2Yo|ntO3yb5ap2Q27;8kJ=_?4{n|#Ca;Id@6!KNLrpy> zIjw#k{uC_yd2_#IS^V1|ar*aqkx3PXK$RcQ5fSe+Z1Od8kofHTx6*!8P~Z(=p|5a< z5q+Kal}Zv~$((iEiIL+7- z)IG}jn)eIalSd>`qiCvCDZ5}33;M!0Zw6~qW0}1nzm3Z z5sFy1A-(S$1qT_p- zwOD%*7|NNTR2fUqLm{u-OGxGie=UJJ$_eAS8N+e=;!2$&!&ryo!CZoe>OjPNt7fgl zX4G__&8+1*mwj+JSy=BpTE1JiRAIUOLf1rGW_Mar<)%nRlHZH( z$}G>Pcql7;_UIN~NsLwlsZ6YSqU3&`tYvvW+WBV@$o&rw+11d6t!$z3y*Xd7E14L5 z)l7S4{q?TJffkHbwOuU3F=Wa}P<^bSm145KeR)}GHH9AMgH5A~%f$AxFLJu#VG-$f zJg~I%Pa84v{EVppu{)Wnx zl{W5+VB?9RSN_OS)dzQP>$;ibva)PGi#AWf zAtyZ}JuU!Oaf}uupHlk;{Q3KzfYGNegTD#MejSx`Ws_KlyL&p+nG{ z8F|BZXOp@Lq*t5z7mN4XKdGWTlU$GV6D6qqzJh-i**0&05?K_Pb_%%``z$MTCmq8} zKgXx72}k~(ST$_3O|IB5WS2GL>)uJs2#Hu{o3e*en~iO5&NcJL zAb!*)u(ujnsE&@1w0Y@ef`T*!I`Yn8mh(jedGCj{c2M#3A#~Rz&kYze@*d2Ly(Hc7 zQf1+ARh8t3Ok6KjI91Q2ZRx%si%_uCy@vIPSSTl|BPzLDb(zm`k&%om2^ zti{4H=VKkBgyM6OBb+5d?^AP2IbuoxZc?~Apk(lQ-14k%qF$H545Pc&i}<186Tf&6 zX4xY3x}g$}-I432fy!R@azU%BfR5Hq4Ia6NzJvnHeX!{_FY8#mVK>q0n0v?ovsLS= zO%d>u72{_hR*pHld5(rLR9)tn5SL0No>$Sm$X%HXYQV|c{(pX6(Htt>+C8*l4C{R`5$_BU#r_|dHsyay>74IO)?sLYZT|-{_ThP*)T3TW{N)I#AaqTHt8x%bCj*g?#JK{5ntB z8xb(%-HZ0iREG3t+^CefC%0rZcO61RHU2SIFn_O< zpL7l@3iI{7+iAQJinYO~OgBObQ60o4C4n$xYS3ME0{_gVHFb@W1i=tr0<#jV9h0Q) z#uh9XmwoR!vT?e27HnVM2dB;1-;i_{-B`7&dN&&1S!fpBr*c%l z;du2X3frI^ccs9pC_3tqrOl-BZC0x{+a2on1t#S?r6E|2mi>)q23!z-fsxKDHM_by zj6T)jYs7qMOx^U~5?-6e=L7JXJzI?l7b8KAiI~`h4K@zpWrcns*E<-8S6JD*#~eDg z8V-NbC6Ur9Iphi__Tuz>Db&36r#8=a~5Q@PKYi>lq(Cmk#v%tb%!Xo;A-bYoHE{^}fliP@P0t z+pl?p!f&*cg9@~f!)(YXX<-g!v)K2$W8oU&zt(0)7f?>BQ$d!URTPVdX&-S6(p$dDH2xi zN`?m)IwXFg89KA_bFpD{jW^$G{TAc&$X4+M=R*OB0N2UAw&lhj99rJhJ99R6v{6q! zr;CuqoxaXrLi3<<-^zS%OdqD~#ULwy9cMy6TuohLB0NDfA~DFN=_KKkU zjMq|Ps&M<`OgXgkBW85@fQLzalY8h>7Ld( zqSQn!mLwnKF2BFmBVrsTKCge|L}VVH$Qw#|*JN}qceLD$qJQ^8tN>;_XC&+5m~nkPho$t9|a zq56o`$6$L@vhSdnX#1)*^hkA37gKx$MQ3qlfr#F8rn08Xo>rx!v-Xrjq=q2H__1)u zC3btIRe3oF@l#{_S{%FCSqL#*dBkSARifNHaWdNWeh9tiAZC>K@2}gup(L)ip%u6E z$>#H)0?0|1%h)r?7ozg8s@QSA4HoL#zk7kcKF}QxCK_;6^^;&pr!KzVj zJTO8{C3}@xI# zBV7V(%?2za@d?8o4d0YzQvrv~Rr#8@;c=P@w?YAQww#QG38<0EeiBy<88C4mnz5e1 zD8l~CEC8&b`q(OqUIDNrTU^I>AgzYeP%`2fA1f1<<6p7xU#n8Ob&!n&vJV5I_v+-! z4n0II3H}Th0cu>vT*}ra!H*EcJ)`7EgM0s}nfnhO$K(=4sxTwC- zQn4!haRQwnXKnDQ=v4YLMCgea(*(+JnvwM0jP&t5@uYF8r>*dk_?w=iTZe(N7Pkb! zq1#|-d>Jrzl0<>>Q(+qV6z$aa_KpD^99uywXJbV7R`iu6jH`Fi%_MR23s%-zxqwH%3D3h&luYxAHI%D zY@Gb128tsb>Sr1d=KS6M7LF=@?vW)1FPPR&GXN2QI4Ovp)PKP=wq!j|Drwp+A=-8F zCR;sg)cZFZ^wjFpmvV#}QNzY^@bq1oRKQ@hijQG2Krx;tC%xTwH)->_Q@NtAexb)d z;hPJZ1krNAY@AesBVuhsPdTM@oyw5IuUzU|e|DLmSB&S$11*KYfd?*}@Tu%zJ`3|~ z)9N*u2#XNimh0>>B}{mM_Zk&cCGDP)-Q{mF!IRL!w?BR?Fl)yr0rcx+Dqd9D6?3F(a96o}?SE*nuYe z>ZkEvqK1A^AySv}&D`183=J1@Wi$oAb;e|)^N209G6ZZ-gB>w6L2R>asV;eKjSL~cG0LZL6v?e~Z3 zi{lBN2}oq=dM3EC-`Ku=ou~QX(;?Ann7&M_iwPIyImc9|kyURCtQhjOUd4IP>lL0> zR@3J{xf%rWKfszY%)!jn^e@a~a5OVlhidMcat8ig|E-Ays0oER|1AyVV1sZ%xcJz)xmelRxc{y7zZ3%H zt=ynMb})nwWCnEuNkUDmjO`hLHjc(Fmd;RPpxeJvaI^hQ@=plkKgjZ5sFCY`bVS|L z5eft;nOLj2*a1L_K%RdXBFxzZ$oYQ(BL^q%|2GVUsulTPEv?NlNa~Wm)I`G1PGE{x$X@h26BK1R(k9E`Rb`{F(wg^t(8#+qKz?j@d zs-h`MG9gkA{^M)snP3{Y6d6J|WPkYPgQaF=e7V|;JyD(m>ugvWyHQ#5$K5+;=z(IU z-7VfgQX+-t;Ib10q(q?qy<8nOS zEYz9Gdt2tzCtpCC!0Lj{$K|O$a;J*M_9{^Ib@`C=g03a=(9t6k^ zg#6u8b#QP2Lco9DSN$j4+yVGs-^o9YBv4Nf43Xyed+Xd>Tv8kmK54Fhh7imL5tD$3 zNlWqa@CpO}_mIC;{teT?{~90Q{|=~4jg0Qbdpd_ude9@$pU_29LR5A|!psp(=%l|e v0=YS`Y9MkQ#zx--#@@WK&qTQX&#pMT7{gpVV1N6-!^^`5prw^kk_P-Ay3<)0 diff --git a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/[Content_Types].xml b/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/[Content_Types].xml deleted file mode 100644 index efab09eb1..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/[Content_Types].xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/_rels/.rels b/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/_rels/.rels deleted file mode 100644 index 9758543f3..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/_rels/.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/_rels/aasx-origin.rels b/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/_rels/aasx-origin.rels deleted file mode 100644 index fc764b657..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/_rels/aasx-origin.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/_rels/data.xml.rels b/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/_rels/data.xml.rels deleted file mode 100644 index 43350edd0..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/_rels/data.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/aasx-origin b/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/aasx-origin deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/data.xml b/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/data.xml deleted file mode 100644 index 5e952db2f..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/aasx/data.xml +++ /dev/null @@ -1,2999 +0,0 @@ - - - - - TestAssetAdministrationShell123 - - - en-US - An Example Asset Administration Shell for the test application - - - de - Ein Beispiel-Verwaltungsschale für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_AssetAdministrationShell - - - - http://acplt.org/AdministrativeInformationTemplates/Test_AssetAdministrationShell - - https://acplt.org/Test_AssetAdministrationShell - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - - ModelReference - - - AssetAdministrationShell - https://acplt.org/TestAssetAdministrationShell2 - - - - - Instance - http://acplt.org/TestAsset/ - - - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - - file:///path/to/thumbnail.png - image/png - - - - - ModelReference - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/AssetIdentification - - - - - - Submodel - http://acplt.org/Submodels/Assets/TestAsset/Identification - - - - - ModelReference - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - Submodel - https://acplt.org/Test_Submodel - - - - - ModelReference - - - Submodel - http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial - - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel_Template - - - - - - - https://acplt.org/Test_AssetAdministrationShell_Mandatory - - Instance - http://acplt.org/Test_Asset_Mandatory/ - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel2_Mandatory - - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel_Mandatory - - - - - - - https://acplt.org/Test_AssetAdministrationShell2_Mandatory - - Instance - http://acplt.org/TestAsset2_Mandatory/ - - - - TestAssetAdministrationShell - - - en-US - An Example Asset Administration Shell for the test application - - - de - Ein Beispiel-Verwaltungsschale für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_AssetAdministrationShell_Missing - - Instance - http://acplt.org/Test_Asset_Missing/ - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - - file:///TestFile.pdf - application/pdf - - - - - ModelReference - - - Submodel - https://acplt.org/Test_Submodel_Missing - - - - - - - - - Identification - - - en-US - An example asset identification submodel for the test application - - - de - Ein Beispiel-Identifikations-Submodel für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/TestAsset/Identification - - - - http://acplt.org/AdministrativeInformationTemplates/TestAsset/Identification - - http://acplt.org/Submodels/Assets/TestAsset/Identification - Instance - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/AssetIdentification - - - - - - - - ExampleExtension - xs:string - ExampleExtensionValue - - - ModelReference - - - AssetAdministrationShell - http://acplt.org/RefersTo/ExampleRefersTo - - - - - - - PARAMETER - ManufacturerName - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - 0173-1#02-AAO677#002 - - - - - - ConceptQualifier - http://acplt.org/Qualifier/ExampleQualifier - xs:int - 100 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - TemplateQualifier - http://acplt.org/Qualifier/ExampleQualifier2 - xs:int - 50 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - xs:string - ACPLT - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - PARAMETER - InstanceId - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - - - ValueQualifier - http://acplt.org/Qualifier/ExampleQualifier3 - xs:dateTime - 2023-04-07T16:59:54.870123 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - xs:string - 978-8234-234-342 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - BillOfMaterial - - - en-US - An example bill of material submodel for the test application - - - de - Ein Beispiel-BillofMaterial-Submodel für eine Test-Anwendung - - - - 9 - http://acplt.org/AdministrativeInformationTemplates/TestAsset/BillOfMaterial - - http://acplt.org/Submodels/Assets/TestAsset/BillOfMaterial - Instance - - ModelReference - - - Submodel - http://acplt.org/SubmodelTemplates/BillOfMaterial - - - - - - PARAMETER - ExampleEntity - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - - - CONSTANT - ExampleProperty2 - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - SelfManagedEntity - http://acplt.org/TestAsset/ - - - TestKey - TestValue - - ExternalReference - - - GlobalReference - http://acplt.org/SpecificAssetId/ - - - - - - - - PARAMETER - ExampleEntity2 - - - en-US - Legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation. - - - de - Bezeichnung für eine natürliche oder juristische Person, die für die Auslegung, Herstellung und Verpackung sowie die Etikettierung eines Produkts im Hinblick auf das 'Inverkehrbringen' im eigenen Namen verantwortlich ist - - - - ExternalReference - - - GlobalReference - http://opcfoundation.org/UA/DI/1.1/DeviceType/Serialnumber - - - - CoManagedEntity - - - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_Submodel - - - - - https://acplt.org/Test_Submodel - Instance - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ModelReference - - - ConceptDescription - https://acplt.org/Test_ConceptDescription - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty2 - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty2 - - - - - - PARAMETER - ExampleAnnotatedProperty - xs:string - exampleValue - - - PARAMETER - ExampleAnnotatedRange - xs:integer - 1 - 5 - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelCollection - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - AQIDBAU= - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - /TestFile.pdf - application/pdf - - - CONSTANT - ExampleFileURI - - - en-US - Details of the Asset Administration Shell — An example for an external file reference - - - de - Details of the Asset Administration Shell – Ein Beispiel für eine extern referenzierte Datei - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - https://www.plattform-i40.de/PI40/Redaktion/DE/Downloads/Publikation/Details-of-the-Asset-Administration-Shell-Part1.pdf?__blob=publicationFile&v=5 - application/pdf - - - PARAMETER - ExampleSubmodelList - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - Property - xs:string - - - CONSTANT - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/SupplementalId1 - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/SupplementalId2 - - - - - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - CONSTANT - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty2/SupplementalId - - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MultiLanguageProperty Element - - - - ExternalReference - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty/Referred - - - - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - en-US - Example value of a MultiLanguageProperty element - - - de - Beispielswert für ein MulitLanguageProperty-Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleMultiLanguageValueId - - - - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - 100 - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - - - - - https://acplt.org/Test_Submodel_Mandatory - Instance - - - ExampleRelationshipElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - ExampleAnnotatedRelationshipElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - ExampleOperation - - - ExampleCapability - - - ExampleBasicEventElement - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - input - off - - - ExampleSubmodelList - SubmodelElementCollection - - - - - ExampleBlob - - application/pdf - - - ExampleFile - application/pdf - - - PARAMETER - ExampleMultiLanguageProperty - - - PARAMETER - ExampleProperty - xs:string - - - PARAMETER - ExampleRange - xs:int - - - PARAMETER - ExampleReferenceElement - - - - - - - - - ExampleSubmodelList2 - Capability - - - - - https://acplt.org/Test_Submodel2_Mandatory - Instance - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_Submodel_Missing - Instance - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRange - xs:integer - 1 - 5 - - - PARAMETER - ExampleAnnotatedProperty - xs:string - exampleValue - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - ExampleProperty - - - de - BeispielProperty - - - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelCollection - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - AQIDBAU= - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - /TestFile.pdf - application/pdf - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MulitLanguageProperty Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - en-US - Example value of a MultiLanguageProperty element - - - de - Beispielswert für ein MulitLanguageProperty-Element - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - - - http://acplt.org/Qualifier/ExampleQualifier - xs:string - - - xs:string - exampleValue - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - 100 - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - - - - - TestSubmodel - - - en-US - An example submodel for the test application - - - de - Ein Beispiel-Teilmodell für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_Submodel_Template - Template - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelTemplates/ExampleSubmodel - - - - - - PARAMETER - ExampleRelationshipElement - - - en-US - Example RelationshipElement object - - - de - Beispiel RelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleAnnotatedRelationshipElement - - - en-US - Example AnnotatedRelationshipElement object - - - de - Beispiel AnnotatedRelationshipElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/RelationshipElements/ExampleAnnotatedRelationshipElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - - - PARAMETER - ExampleOperation - - - en-US - Example Operation object - - - de - Beispiel Operation Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Operations/ExampleOperation - - - - - - - - CONSTANT - ExamplePropertyInput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInput - - - - xs:string - - - - - - - - - CONSTANT - ExamplePropertyOutput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyOutput - - - - xs:string - - - - - - - - - CONSTANT - ExamplePropertyInOutput - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExamplePropertyInOutput - - - - xs:string - - - - - - - PARAMETER - ExampleCapability - - - en-US - Example Capability object - - - de - Beispiel Capability Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Capabilities/ExampleCapability - - - - - - PARAMETER - ExampleBasicEventElement - - - en-US - Example BasicEventElement object - - - de - Beispiel BasicEventElement Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Events/ExampleBasicEventElement - - - - - ModelReference - - - Submodel - http://acplt.org/Test_Submodel - - - Property - ExampleProperty - - - - output - on - ExampleTopic - - ModelReference - - - Submodel - http://acplt.org/ExampleMessageBroker - - - - 2022-11-12T23:50:23.123456+00:00 - PT0.000001S - P1Y2M3DT4H5M6.123456S - - - PARAMETER - ExampleSubmodelList - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - SubmodelElementCollection - - - PARAMETER - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - CONSTANT - ExampleProperty - - - en-US - Example Property object - - - de - Beispiel Property Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Properties/ExampleProperty - - - - xs:string - - - CONSTANT - ExampleMultiLanguageProperty - - - en-US - Example MultiLanguageProperty object - - - de - Beispiel MulitLanguageProperty Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/MultiLanguageProperties/ExampleMultiLanguageProperty - - - - - - PARAMETER - ExampleRange - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 100 - - - PARAMETER - ExampleRange2 - - - en-US - Example Range object - - - de - Beispiel Range Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Ranges/ExampleRange - - - - xs:int - 0 - - - PARAMETER - ExampleBlob - - - en-US - Example Blob object - - - de - Beispiel Blob Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Blobs/ExampleBlob - - - - - application/pdf - - - PARAMETER - ExampleFile - - - en-US - Example File object - - - de - Beispiel File Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/Files/ExampleFile - - - - application/pdf - - - PARAMETER - ExampleReferenceElement - - - en-US - Example Reference Element object - - - de - Beispiel Reference Element Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/ReferenceElements/ExampleReferenceElement - - - - - - - - PARAMETER - - - en-US - Example SubmodelElementCollection object - - - de - Beispiel SubmodelElementCollection Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - - - - - PARAMETER - ExampleSubmodelList2 - - - en-US - Example SubmodelElementList object - - - de - Beispiel SubmodelElementList Element - - - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementLists/ExampleSubmodelElementList - - - - true - - ExternalReference - - - GlobalReference - http://acplt.org/SubmodelElementCollections/ExampleSubmodelElementCollection - - - - Capability - - - - - - - TestConceptDescription - - - en-US - An example concept description for the test application - - - de - Ein Beispiel-ConceptDescription für eine Test-Anwendung - - - - - - - ExternalReference - - - GlobalReference - https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0 - - - - - - - - de - Test Specification - - - en-US - TestSpecification - - - - - de - Test Spec - - - en-US - TestSpec - - - SpaceUnit - - ExternalReference - - - GlobalReference - http://acplt.org/Units/SpaceUnit - - - - http://acplt.org/DataSpec/ExampleDef - SU - REAL_MEASURE - - - de - Dies ist eine Data Specification für Testzwecke - - - en-US - This is a DataSpecification for testing purposes - - - M - - - - exampleValue - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId - - - - - - exampleValue2 - - ExternalReference - - - GlobalReference - http://acplt.org/ValueId/ExampleValueId2 - - - - - - - TEST - - true - false - false - true - - - - - - 9 - 0 - - ExternalReference - - - GlobalReference - http://acplt.org/AdministrativeInformation/Test_ConceptDescription - - - - http://acplt.org/AdministrativeInformationTemplates/Test_ConceptDescription - - https://acplt.org/Test_ConceptDescription - - - ExternalReference - - - GlobalReference - http://acplt.org/DataSpecifications/ConceptDescriptions/TestConceptDescription - - - - - - - https://acplt.org/Test_ConceptDescription_Mandatory - - - TestConceptDescription - - - en-US - An example concept description for the test application - - - de - Ein Beispiel-ConceptDescription für eine Test-Anwendung - - - - 9 - 0 - - https://acplt.org/Test_ConceptDescription_Missing - - - diff --git a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/docProps/core.xml b/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/docProps/core.xml deleted file mode 100644 index 4dc0b87c5..000000000 --- a/test/compliance_tool/files/test_demo_full_example_xml_wrong_attribute_aasx/docProps/core.xml +++ /dev/null @@ -1 +0,0 @@ -2020-01-01T00:00:00PyI40AAS Testing FrameworkTest_DescriptionPyI40AAS Testing Framework Compliance Tool2020-01-01T00:00:011.0Test Title2.0.1 \ No newline at end of file diff --git a/test/compliance_tool/files/test_deserializable_aas_warning.json b/test/compliance_tool/files/test_deserializable_aas_warning.json deleted file mode 100644 index 35da52c24..000000000 --- a/test/compliance_tool/files/test_deserializable_aas_warning.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "assetAdministrationShells": [ - { - "id": "https://acplt.org/Test_AssetAdministrationShell", - "idShort": "TestAssetAdministrationShell", - "administration": { - "revision": "0" - }, - "modelType": "AssetAdministrationShell", - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/TestAsset/" - } - } - ] -} \ No newline at end of file diff --git a/test/compliance_tool/files/test_deserializable_aas_warning.xml b/test/compliance_tool/files/test_deserializable_aas_warning.xml deleted file mode 100644 index 53f72ab71..000000000 --- a/test/compliance_tool/files/test_deserializable_aas_warning.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - TestAssetAdministrationShell - - 0 - - https://acplt.org/Test_AssetAdministrationShell - - Instance - http://acplt.org/TestAsset/ - - - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_empty.json b/test/compliance_tool/files/test_empty.json deleted file mode 100644 index 9e26dfeeb..000000000 --- a/test/compliance_tool/files/test_empty.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/test/compliance_tool/files/test_empty.xml b/test/compliance_tool/files/test_empty.xml deleted file mode 100644 index 0329f4b5a..000000000 --- a/test/compliance_tool/files/test_empty.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/test/compliance_tool/files/test_empty_aasx/[Content_Types].xml b/test/compliance_tool/files/test_empty_aasx/[Content_Types].xml deleted file mode 100644 index 18520c7e8..000000000 --- a/test/compliance_tool/files/test_empty_aasx/[Content_Types].xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/test/compliance_tool/files/test_empty_aasx/_rels/.rels b/test/compliance_tool/files/test_empty_aasx/_rels/.rels deleted file mode 100644 index 9c5de6cf4..000000000 --- a/test/compliance_tool/files/test_empty_aasx/_rels/.rels +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/test/compliance_tool/files/test_empty_aasx/aasx/_rels/aasx-origin.rels b/test/compliance_tool/files/test_empty_aasx/aasx/_rels/aasx-origin.rels deleted file mode 100644 index 7b813240b..000000000 --- a/test/compliance_tool/files/test_empty_aasx/aasx/_rels/aasx-origin.rels +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/test/compliance_tool/files/test_empty_aasx/aasx/aasx-origin b/test/compliance_tool/files/test_empty_aasx/aasx/aasx-origin deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/compliance_tool/files/test_empty_aasx/docProps/core.xml b/test/compliance_tool/files/test_empty_aasx/docProps/core.xml deleted file mode 100644 index 344bc075a..000000000 --- a/test/compliance_tool/files/test_empty_aasx/docProps/core.xml +++ /dev/null @@ -1 +0,0 @@ -2020-09-25T16:07:16.936996PyI40AAS Testing Framework \ No newline at end of file diff --git a/test/compliance_tool/files/test_not_deserializable.json b/test/compliance_tool/files/test_not_deserializable.json deleted file mode 100644 index 9a0c369d9..000000000 --- a/test/compliance_tool/files/test_not_deserializable.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "assetAdministrationShells": [], - "submodels": [] - "conceptDescriptions": [] -} \ No newline at end of file diff --git a/test/compliance_tool/files/test_not_deserializable_aas.json b/test/compliance_tool/files/test_not_deserializable_aas.json deleted file mode 100644 index cf239e8b7..000000000 --- a/test/compliance_tool/files/test_not_deserializable_aas.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "assetAdministrationShells": [ - { - "id": "https://acplt.org/Test_AssetAdministrationShell", - "idShort": "TestAssetAdministrationShell", - "modelType": "Test", - "assetInformation": { - "assetKind": "Instance", - "globalAssetId": "http://acplt.org/Test_Asset/" - } - } - ], - "submodels": [], - "conceptDescriptions": [] -} \ No newline at end of file diff --git a/test/compliance_tool/files/test_not_deserializable_aas.xml b/test/compliance_tool/files/test_not_deserializable_aas.xml deleted file mode 100644 index d673e80ec..000000000 --- a/test/compliance_tool/files/test_not_deserializable_aas.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - https://acplt.org/Test_Submodel2_Mandatory - Instance - - - - - - \ No newline at end of file diff --git a/test/compliance_tool/test_aas_compliance_tool.py b/test/compliance_tool/test_aas_compliance_tool.py deleted file mode 100644 index 8cd3004db..000000000 --- a/test/compliance_tool/test_aas_compliance_tool.py +++ /dev/null @@ -1,325 +0,0 @@ -# Copyright (c) 2020 the Eclipse BaSyx Authors -# -# This program and the accompanying materials are made available under the terms of the MIT License, available in -# the LICENSE file of this project. -# -# SPDX-License-Identifier: MIT -import datetime -import hashlib -import os -import subprocess -import sys -import unittest -import io - -import tempfile - -import basyx.aas.compliance_tool -from basyx.aas import model -from basyx.aas.adapter import aasx -from basyx.aas.adapter.json import read_aas_json_file -from basyx.aas.adapter.xml import read_aas_xml_file -from basyx.aas.examples.data import create_example -from basyx.aas.examples.data._helper import AASDataChecker - - -def _run_compliance_tool(*compliance_tool_args, **kwargs) -> subprocess.CompletedProcess: - """ - This function runs the compliance tool using subprocess.run() while adjusting the PYTHONPATH environment variable - and setting the stdout and stderr parameters of subprocess.run() to PIPE. - Positional arguments are passed to the compliance tool, while keyword arguments are passed to subprocess.run(). - """ - env = os.environ.copy() - env['PYTHONPATH'] = "{}:{}".format(os.environ.get('PYTHONPATH', ''), - os.path.join(os.path.dirname(basyx.__file__), os.pardir)) - compliance_tool_path = os.path.join(os.path.dirname(basyx.aas.compliance_tool.__file__), 'cli.py') - return subprocess.run([sys.executable, compliance_tool_path] + list(compliance_tool_args), stdout=subprocess.PIPE, - stderr=subprocess.PIPE, env=env, **kwargs) - - -class ComplianceToolTest(unittest.TestCase): - def test_parse_args(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - # test schema check - output = _run_compliance_tool("s") - self.assertNotEqual(0, output.returncode) - self.assertIn('error: the following arguments are required: file_1', str(output.stderr)) - - output = _run_compliance_tool("s", os.path.join(test_file_path, "test_demo_full_example.json")) - self.assertNotEqual(0, output.returncode) - self.assertIn('error: one of the arguments --json --xml is required', str(output.stderr)) - - # test deserialisation check - output = _run_compliance_tool("d") - self.assertNotEqual(0, output.returncode) - self.assertIn('error: the following arguments are required: file_1', str(output.stderr)) - - output = _run_compliance_tool("d", os.path.join(test_file_path, "test_demo_full_example.json")) - self.assertNotEqual(0, output.returncode) - self.assertIn('error: one of the arguments --json --xml is required', str(output.stderr)) - - output = _run_compliance_tool("d", os.path.join(test_file_path, "test_demo_full_example.json"), "--aasx") - self.assertNotEqual(0, output.returncode) - self.assertIn('error: one of the arguments --json --xml is required', str(output.stderr)) - - # test example check - output = _run_compliance_tool("e") - self.assertNotEqual(0, output.returncode) - self.assertIn('error: the following arguments are required: file_1', str(output.stderr)) - - output = _run_compliance_tool("e", os.path.join(test_file_path, "test_demo_full_example.json")) - self.assertNotEqual(0, output.returncode) - self.assertIn('error: one of the arguments --json --xml is required', str(output.stderr)) - - output = _run_compliance_tool("e", os.path.join(test_file_path, "test_demo_full_example.json"), "--aasx") - self.assertNotEqual(0, output.returncode) - self.assertIn('error: one of the arguments --json --xml is required', str(output.stderr)) - - # test file check - output = _run_compliance_tool("f") - self.assertNotEqual(0, output.returncode) - self.assertIn('error: the following arguments are required: file_1', str(output.stderr)) - - output = _run_compliance_tool("f", os.path.join(test_file_path, "test_demo_full_example.json")) - self.assertNotEqual(0, output.returncode) - self.assertIn('error: one of the arguments --json --xml is required', str(output.stderr)) - - output = _run_compliance_tool("f", os.path.join(test_file_path, "test_demo_full_example.json"), "--aasx") - self.assertNotEqual(0, output.returncode) - self.assertIn('error: one of the arguments --json --xml is required', str(output.stderr)) - - output = _run_compliance_tool("f", os.path.join(test_file_path, "test_demo_full_example.json"), "--json") - self.assertNotEqual(0, output.returncode) - self.assertIn('error: f or files requires two file path', str(output.stderr)) - - output = _run_compliance_tool("f", os.path.join(test_file_path, "test_demo_full_example.json"), - os.path.join(test_file_path, "test_demo_full_example.json")) - self.assertNotEqual(0, output.returncode) - self.assertIn('error: one of the arguments --json --xml is required', str(output.stderr)) - - # test verbose - output = _run_compliance_tool("e", os.path.join(test_file_path, "test_demo_full_example.json"), "--json", "-v") - self.assertEqual(0, output.returncode) - self.assertNotIn('ERROR', str(output.stderr)) - self.assertNotIn('INFO', str(output.stdout)) - - output = _run_compliance_tool("e", os.path.join(test_file_path, "test_demo_full_example.json"), "--json", "-v", - "-v") - self.assertEqual(0, output.returncode) - self.assertNotIn('ERROR', str(output.stderr)) - self.assertIn('INFO', str(output.stdout)) - - # test quite - output = _run_compliance_tool("e", os.path.join(test_file_path, "test_demo_full_example.json"), "--json", "-q") - self.assertEqual(0, output.returncode) - self.assertEqual("b''", str(output.stdout)) - - # test logfile - output = _run_compliance_tool("e", os.path.join(test_file_path, "test_demo_full_example.json"), "--json", "-l") - self.assertNotEqual(0, output.returncode) - self.assertIn('error: argument -l/--logfile: expected one argument', str(output.stderr)) - - # todo: add test for correct logfile - - def test_json_create_example(self) -> None: - file, filename = tempfile.mkstemp(suffix=".json") - os.close(file) - output = _run_compliance_tool("c", filename, "--json") - - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Create example data', str(output.stdout)) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Write data to file', str(output.stdout)) - - with open(filename, "r", encoding='utf-8-sig') as f: - json_object_store = read_aas_json_file(f, failsafe=False) - data = create_example() - checker = AASDataChecker(raise_immediately=True) - checker.check_object_store(json_object_store, data) - os.unlink(filename) - - def test_json_deserialization(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - output = _run_compliance_tool("d", os.path.join(test_file_path, "test_demo_full_example.json"), "--json") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Read file and check if it is deserializable', str(output.stdout)) - - def test_json_example(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - output = _run_compliance_tool("e", os.path.join(test_file_path, "test_demo_full_example.json"), "--json") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Read file and check if it is deserializable', str(output.stdout)) - self.assertIn('SUCCESS: Check if data is equal to example data', str(output.stdout)) - - def test_json_file(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - output = _run_compliance_tool("f", os.path.join(test_file_path, "test_demo_full_example.json"), - os.path.join(test_file_path, "test_demo_full_example.json"), "--json") - - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Open first file', str(output.stdout)) - self.assertIn('SUCCESS: Read file', str(output.stdout)) - self.assertIn('SUCCESS: Open second file', str(output.stdout)) - self.assertIn('SUCCESS: Read file', str(output.stdout)) - self.assertIn('SUCCESS: Check if data in files are equal', str(output.stdout)) - - def test_xml_create_example(self) -> None: - file, filename = tempfile.mkstemp(suffix=".xml") - os.close(file) - output = _run_compliance_tool("c", filename, "--xml") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Create example data', str(output.stdout)) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Write data to file', str(output.stdout)) - - with open(filename, "rb") as f: - xml_object_store = read_aas_xml_file(f, failsafe=False) - data = create_example() - checker = AASDataChecker(raise_immediately=True) - checker.check_object_store(xml_object_store, data) - os.unlink(filename) - - def test_xml_deseralization(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - output = _run_compliance_tool("d", os.path.join(test_file_path, "test_demo_full_example.xml"), "--xml") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Read file and check if it is deserializable', str(output.stdout)) - - def test_xml_example(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - output = _run_compliance_tool("e", os.path.join(test_file_path, "test_demo_full_example.xml"), "--xml") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Read file and check if it is deserializable', str(output.stdout)) - self.assertIn('SUCCESS: Check if data is equal to example data', str(output.stdout)) - - def test_xml_file(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - output = _run_compliance_tool("f", os.path.join(test_file_path, "test_demo_full_example.xml"), - os.path.join(test_file_path, "test_demo_full_example.xml"), "--xml") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Open first file', str(output.stdout)) - self.assertIn('SUCCESS: Read file', str(output.stdout)) - self.assertIn('SUCCESS: Open second file', str(output.stdout)) - self.assertIn('SUCCESS: Read file', str(output.stdout)) - self.assertIn('SUCCESS: Check if data in files are equal', str(output.stdout)) - - def test_aasx_create_example(self) -> None: - file, filename = tempfile.mkstemp(suffix=".aasx") - os.close(file) - output = _run_compliance_tool("c", filename, "--xml", "--aasx") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Create example data', str(output.stdout)) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Write data to file', str(output.stdout)) - - # Read AASX file - new_data: model.DictObjectStore[model.Identifiable] = model.DictObjectStore() - new_files = aasx.DictSupplementaryFileContainer() - with aasx.AASXReader(filename) as reader: - reader.read_into(new_data, new_files) - new_cp = reader.get_core_properties() - - # Check AAS objects - assert (isinstance(new_cp.created, datetime.datetime)) - self.assertIsInstance(new_cp.created, datetime.datetime) - self.assertAlmostEqual(new_cp.created, datetime.datetime(2020, 1, 1, 0, 0, 0), - delta=datetime.timedelta(milliseconds=20)) - self.assertEqual(new_cp.creator, "Eclipse BaSyx Python Testing Framework") - self.assertEqual(new_cp.description, "Test_Description") - self.assertEqual(new_cp.lastModifiedBy, "Eclipse BaSyx Python Testing Framework Compliance Tool") - assert (isinstance(new_cp.modified, datetime.datetime)) - self.assertAlmostEqual(new_cp.modified, datetime.datetime(2020, 1, 1, 0, 0, 1), - delta=datetime.timedelta(milliseconds=20)) - self.assertEqual(new_cp.revision, "1.0") - self.assertEqual(new_cp.version, "2.0.1") - self.assertEqual(new_cp.title, "Test Title") - - # Check files - self.assertEqual(new_files.get_content_type("/TestFile.pdf"), "application/pdf") - file_content = io.BytesIO() - new_files.write_file("/TestFile.pdf", file_content) - self.assertEqual(hashlib.sha1(file_content.getvalue()).hexdigest(), - "78450a66f59d74c073bf6858db340090ea72a8b1") - - os.unlink(filename) - - def test_aasx_deseralization_xml(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - output = _run_compliance_tool("d", os.path.join(test_file_path, "test_demo_full_example_xml.aasx"), "--xml", - "--aasx") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Read file', str(output.stdout)) - - def test_aasx_example_xml(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - output = _run_compliance_tool("e", os.path.join(test_file_path, "test_demo_full_example_xml.aasx"), "--xml", - "--aasx") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Read file', str(output.stdout)) - self.assertIn('SUCCESS: Check if data is equal to example data', str(output.stdout)) - - def test_aasx_deseralization_json(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - output = _run_compliance_tool("d", os.path.join(test_file_path, "test_demo_full_example_json.aasx"), "--json", - "--aasx") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Read file', str(output.stdout)) - - def test_aasx_example_json(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - output = _run_compliance_tool("e", os.path.join(test_file_path, "test_demo_full_example_json.aasx"), "--json", - "--aasx") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Read file', str(output.stdout)) - self.assertIn('SUCCESS: Check if data is equal to example data', str(output.stdout)) - - def test_aasx_file(self) -> None: - test_file_path = os.path.join(os.path.dirname(__file__), 'files') - - output = _run_compliance_tool("f", os.path.join(test_file_path, "test_demo_full_example_xml.aasx"), - os.path.join(test_file_path, "test_demo_full_example_xml.aasx"), "--xml", - "--aasx") - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Open first file', str(output.stdout)) - self.assertIn('SUCCESS: Read file', str(output.stdout)) - self.assertIn('SUCCESS: Open second file', str(output.stdout)) - self.assertIn('SUCCESS: Read file', str(output.stdout)) - self.assertIn('SUCCESS: Check if data in files are equal', str(output.stdout)) - - def test_logfile(self) -> None: - file, filename = tempfile.mkstemp(suffix=".json") - file2, filename2 = tempfile.mkstemp(suffix=".log") - os.close(file) - os.close(file2) - output = _run_compliance_tool("c", filename, "--json", "-v", "-v", "-l", filename2) - self.assertEqual(0, output.returncode) - self.assertIn('SUCCESS: Create example data', str(output.stdout)) - self.assertIn('SUCCESS: Open file', str(output.stdout)) - self.assertIn('SUCCESS: Write data to file', str(output.stdout)) - - with open(filename2, "r", encoding='utf-8-sig') as f: - data = f.read() - self.assertIn('SUCCESS: Create example data', data) - self.assertIn('SUCCESS: Open file', data) - self.assertIn('SUCCESS: Write data to file', data) - os.unlink(filename) - os.unlink(filename2) diff --git a/test/compliance_tool/test_compliance_check_aasx.py b/test/compliance_tool/test_compliance_check_aasx.py deleted file mode 100644 index 438f0bb0e..000000000 --- a/test/compliance_tool/test_compliance_check_aasx.py +++ /dev/null @@ -1,171 +0,0 @@ -# Copyright (c) 2020 the Eclipse BaSyx Authors -# -# This program and the accompanying materials are made available under the terms of the MIT License, available in -# the LICENSE file of this project. -# -# SPDX-License-Identifier: MIT -import os -import unittest - -from basyx.aas.compliance_tool import compliance_check_aasx as compliance_tool -from basyx.aas.compliance_tool.state_manager import ComplianceToolStateManager, Status - - -class ComplianceToolAASXTest(unittest.TestCase): - def test_check_deserialization(self) -> None: - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - - file_path_1 = os.path.join(script_dir, 'files/test_not_found.aasx') - compliance_tool.check_deserialization(file_path_1, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.FAILED, manager.steps[0].status) - self.assertIn("No such file or directory", manager.format_step(0, verbose_level=1)) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[1].status) - - # Todo add more tests for checking wrong aasx files - - manager.steps = [] - file_path_5 = os.path.join(script_dir, 'files/test_demo_full_example_xml.aasx') - compliance_tool.check_deserialization(file_path_5, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - - manager.steps = [] - file_path_5 = os.path.join(script_dir, 'files/test_demo_full_example_json.aasx') - compliance_tool.check_deserialization(file_path_5, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - - def test_check_aas_example(self) -> None: - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - - file_path_2 = os.path.join(script_dir, 'files/test_demo_full_example_xml.aasx') - compliance_tool.check_aas_example(file_path_2, manager) - self.assertEqual(4, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_demo_full_example_json.aasx') - compliance_tool.check_aas_example(file_path_3, manager) - self.assertEqual(4, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - - manager.steps = [] - file_path_4 = os.path.join(script_dir, 'files/test_demo_full_example_xml_wrong_attribute.aasx') - compliance_tool.check_aas_example(file_path_4, manager) - self.assertEqual(4, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.FAILED, manager.steps[2].status) - self.assertEqual('FAILED: Check if data is equal to example data\n - ERROR: Attribute id_short of ' - 'AssetAdministrationShell[https://acplt.org/Test_AssetAdministrationShell] must be == ' - 'TestAssetAdministrationShell (value=\'TestAssetAdministrationShell123\')', - manager.format_step(2, verbose_level=1)) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[3].status) - - def test_check_aasx_files_equivalence(self) -> None: - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - - file_path_1 = os.path.join(script_dir, 'files/test_demo_full_example_xml.aasx') - file_path_2 = os.path.join(script_dir, 'files/test_empty.aasx') - compliance_tool.check_aasx_files_equivalence(file_path_1, file_path_2, manager) - self.assertEqual(6, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.FAILED, manager.steps[4].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[5].status) - - manager.steps = [] - compliance_tool.check_aasx_files_equivalence(file_path_2, file_path_1, manager) - self.assertEqual(6, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.FAILED, manager.steps[4].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[5].status) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_demo_full_example_xml.aasx') - file_path_4 = os.path.join(script_dir, 'files/test_demo_full_example_json.aasx') - compliance_tool.check_aasx_files_equivalence(file_path_3, file_path_4, manager) - self.assertEqual(6, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.SUCCESS, manager.steps[4].status) - self.assertEqual(Status.SUCCESS, manager.steps[5].status) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_demo_full_example_xml.aasx') - file_path_4 = os.path.join(script_dir, 'files/test_demo_full_example_xml_wrong_attribute.aasx') - compliance_tool.check_aasx_files_equivalence(file_path_3, file_path_4, manager) - self.assertEqual(6, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.FAILED, manager.steps[4].status) - self.assertEqual('FAILED: Check if data in files are equal\n - ERROR: Attribute id_short of ' - 'AssetAdministrationShell[https://acplt.org/Test_AssetAdministrationShell] must be == ' - 'TestAssetAdministrationShell123 (value=\'TestAssetAdministrationShell\')', - manager.format_step(4, verbose_level=1)) - - manager.steps = [] - compliance_tool.check_aasx_files_equivalence(file_path_4, file_path_3, manager) - self.assertEqual(6, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.FAILED, manager.steps[4].status) - self.assertEqual('FAILED: Check if data in files are equal\n - ERROR: Attribute id_short of ' - 'AssetAdministrationShell[https://acplt.org/Test_AssetAdministrationShell] must be == ' - 'TestAssetAdministrationShell (value=\'TestAssetAdministrationShell123\')', - manager.format_step(4, verbose_level=1)) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[5].status) - - def test_check_schema(self): - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - - file_path_2 = os.path.join(script_dir, 'files/test_demo_full_example_json.aasx') - compliance_tool.check_schema(file_path_2, manager) - self.assertEqual(4, len(manager.steps)) - for i in range(4): - self.assertEqual(Status.SUCCESS, manager.steps[i].status) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_demo_full_example_xml.aasx') - compliance_tool.check_schema(file_path_3, manager) - self.assertEqual(4, len(manager.steps)) - for i in range(4): - self.assertEqual(Status.SUCCESS, manager.steps[i].status) - - manager.steps = [] - file_path_4 = os.path.join(script_dir, 'files/test_demo_full_example_xml_wrong_attribute.aasx') - compliance_tool.check_schema(file_path_4, manager) - self.assertEqual(4, len(manager.steps)) - for i in range(4): - self.assertEqual(Status.SUCCESS, manager.steps[i].status) - - manager.steps = [] - file_path_5 = os.path.join(script_dir, 'files/test_empty.aasx') - compliance_tool.check_schema(file_path_5, manager) - self.assertEqual(2, len(manager.steps)) - for i in range(2): - self.assertEqual(Status.SUCCESS, manager.steps[i].status) diff --git a/test/compliance_tool/test_compliance_check_json.py b/test/compliance_tool/test_compliance_check_json.py deleted file mode 100644 index b6201d108..000000000 --- a/test/compliance_tool/test_compliance_check_json.py +++ /dev/null @@ -1,195 +0,0 @@ -# Copyright (c) 2020 the Eclipse BaSyx Authors -# -# This program and the accompanying materials are made available under the terms of the MIT License, available in -# the LICENSE file of this project. -# -# SPDX-License-Identifier: MIT -import os -import unittest - -import basyx.aas.compliance_tool.compliance_check_json as compliance_tool -from basyx.aas.compliance_tool.state_manager import ComplianceToolStateManager, Status - - -class ComplianceToolJsonTest(unittest.TestCase): - def test_check_schema(self) -> None: - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - file_path_1 = os.path.join(script_dir, 'files/test_not_found.json') - compliance_tool.check_schema(file_path_1, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.FAILED, manager.steps[0].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[1].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[2].status) - self.assertIn("No such file or directory", manager.format_step(0, verbose_level=1)) - - manager.steps = [] - file_path_2 = os.path.join(script_dir, 'files/test_not_deserializable.json') - compliance_tool.check_schema(file_path_2, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.FAILED, manager.steps[1].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[2].status) - self.assertIn("Expecting ',' delimiter: line 4 column 2 (char 54)", manager.format_step(1, verbose_level=1)) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_empty.json') - compliance_tool.check_schema(file_path_3, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - - manager.steps = [] - file_path_4 = os.path.join(script_dir, 'files/test_demo_full_example.json') - compliance_tool.check_schema(file_path_4, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - - manager.steps = [] - file_path_5 = os.path.join(script_dir, 'files/test_demo_full_example_wrong_attribute.json') - compliance_tool.check_schema(file_path_5, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - - def test_check_deserialization(self) -> None: - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - - file_path_1 = os.path.join(script_dir, 'files/test_not_found.json') - compliance_tool.check_deserialization(file_path_1, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.FAILED, manager.steps[0].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[1].status) - self.assertIn("No such file or directory", manager.format_step(0, verbose_level=1)) - - manager.steps = [] - file_path_2 = os.path.join(script_dir, 'files/test_not_deserializable_aas.json') - compliance_tool.check_deserialization(file_path_2, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.FAILED, manager.steps[1].status) - self.assertIn('Found JSON object with modelType="Test", which is not a known AAS class', - manager.format_step(1, verbose_level=1)) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_deserializable_aas_warning.json') - compliance_tool.check_deserialization(file_path_3, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.FAILED, manager.steps[1].status) - self.assertIn("Ignoring 'revision' attribute of AdministrativeInformation object due to missing 'version'", - manager.format_step(1, verbose_level=1)) - - manager.steps = [] - file_path_4 = os.path.join(script_dir, 'files/test_empty.json') - compliance_tool.check_deserialization(file_path_4, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - - manager.steps = [] - file_path_4 = os.path.join(script_dir, 'files/test_empty.json') - compliance_tool.check_deserialization(file_path_4, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - - def test_check_aas_example(self) -> None: - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - - file_path_2 = os.path.join(script_dir, 'files/test_demo_full_example.json') - compliance_tool.check_aas_example(file_path_2, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - - manager.steps = [] - file_path_1 = os.path.join(script_dir, 'files/test_not_deserializable_aas.json') - compliance_tool.check_aas_example(file_path_1, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.FAILED, manager.steps[1].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[2].status) - self.assertIn('Found JSON object with modelType="Test", which is not a known AAS class', - manager.format_step(1, verbose_level=1)) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_demo_full_example_wrong_attribute.json') - compliance_tool.check_aas_example(file_path_3, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.FAILED, manager.steps[2].status) - self.assertEqual('FAILED: Check if data is equal to example data\n - ERROR: Attribute id_short of ' - 'AssetAdministrationShell[https://acplt.org/Test_AssetAdministrationShell] must be == ' - 'TestAssetAdministrationShell (value=\'TestAssetAdministrationShell123\')', - manager.format_step(2, verbose_level=1)) - - def test_check_json_files_equivalence(self) -> None: - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - - file_path_1 = os.path.join(script_dir, 'files/test_not_deserializable_aas.json') - file_path_2 = os.path.join(script_dir, 'files/test_empty.json') - compliance_tool.check_json_files_equivalence(file_path_1, file_path_2, manager) - self.assertEqual(5, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.FAILED, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[4].status) - - manager.steps = [] - compliance_tool.check_json_files_equivalence(file_path_2, file_path_1, manager) - self.assertEqual(5, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.FAILED, manager.steps[3].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[4].status) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_demo_full_example.json') - file_path_4 = os.path.join(script_dir, 'files/test_demo_full_example.json') - compliance_tool.check_json_files_equivalence(file_path_3, file_path_4, manager) - self.assertEqual(5, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.SUCCESS, manager.steps[4].status) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_demo_full_example.json') - file_path_4 = os.path.join(script_dir, 'files/test_demo_full_example_wrong_attribute.json') - compliance_tool.check_json_files_equivalence(file_path_3, file_path_4, manager) - self.assertEqual(5, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.FAILED, manager.steps[4].status) - self.assertEqual('FAILED: Check if data in files are equal\n - ERROR: Attribute id_short of ' - 'AssetAdministrationShell[https://acplt.org/Test_AssetAdministrationShell] must be == ' - 'TestAssetAdministrationShell123 (value=\'TestAssetAdministrationShell\')', - manager.format_step(4, verbose_level=1)) - - manager.steps = [] - compliance_tool.check_json_files_equivalence(file_path_4, file_path_3, manager) - self.assertEqual(5, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.FAILED, manager.steps[4].status) - self.assertEqual('FAILED: Check if data in files are equal\n - ERROR: Attribute id_short of ' - 'AssetAdministrationShell[https://acplt.org/Test_AssetAdministrationShell] must be == ' - 'TestAssetAdministrationShell (value=\'TestAssetAdministrationShell123\')', - manager.format_step(4, verbose_level=1)) diff --git a/test/compliance_tool/test_compliance_check_xml.py b/test/compliance_tool/test_compliance_check_xml.py deleted file mode 100644 index a1658e508..000000000 --- a/test/compliance_tool/test_compliance_check_xml.py +++ /dev/null @@ -1,187 +0,0 @@ -# Copyright (c) 2020 the Eclipse BaSyx Authors -# -# This program and the accompanying materials are made available under the terms of the MIT License, available in -# the LICENSE file of this project. -# -# SPDX-License-Identifier: MIT -import os -import unittest - -import basyx.aas.compliance_tool.compliance_check_xml as compliance_tool -from basyx.aas.compliance_tool.state_manager import ComplianceToolStateManager, Status - - -class ComplianceToolXmlTest(unittest.TestCase): - def test_check_schema(self) -> None: - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - file_path_1 = os.path.join(script_dir, 'files/test_not_found.xml') - compliance_tool.check_schema(file_path_1, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.FAILED, manager.steps[0].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[1].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[2].status) - self.assertIn("No such file or directory", manager.format_step(0, verbose_level=1)) - - manager.steps = [] - file_path_2 = os.path.join(script_dir, 'files/test_empty.xml') - compliance_tool.check_schema(file_path_2, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_demo_full_example.xml') - compliance_tool.check_schema(file_path_3, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - - manager.steps = [] - file_path_4 = os.path.join(script_dir, 'files/test_demo_full_example_wrong_attribute.xml') - compliance_tool.check_schema(file_path_4, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - - def test_check_deserialization(self) -> None: - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - - file_path_1 = os.path.join(script_dir, 'files/test_not_found.xml') - compliance_tool.check_deserialization(file_path_1, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.FAILED, manager.steps[0].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[1].status) - self.assertIn("No such file or directory", manager.format_step(0, verbose_level=1)) - - manager.steps = [] - file_path_2 = os.path.join(script_dir, 'files/test_not_deserializable_aas.xml') - compliance_tool.check_deserialization(file_path_2, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.FAILED, manager.steps[1].status) - self.assertIn("child of aas:assetAdministrationShells", manager.format_step(1, verbose_level=1)) - self.assertIn("doesn't match the expected tag aas:assetAdministrationShell", - manager.format_step(1, verbose_level=1)) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_deserializable_aas_warning.xml') - compliance_tool.check_deserialization(file_path_3, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.FAILED, manager.steps[1].status) - self.assertIn("AASConstraintViolation: A revision requires a version", manager.format_step(1, verbose_level=1)) - - manager.steps = [] - file_path_4 = os.path.join(script_dir, 'files/test_empty.xml') - compliance_tool.check_deserialization(file_path_4, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - - manager.steps = [] - file_path_4 = os.path.join(script_dir, 'files/test_empty.xml') - compliance_tool.check_deserialization(file_path_4, manager) - self.assertEqual(2, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - - def test_check_aas_example(self) -> None: - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - - file_path_2 = os.path.join(script_dir, 'files/test_demo_full_example.xml') - compliance_tool.check_aas_example(file_path_2, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - - manager.steps = [] - file_path_1 = os.path.join(script_dir, 'files/test_not_deserializable_aas.xml') - compliance_tool.check_aas_example(file_path_1, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.FAILED, manager.steps[1].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[2].status) - self.assertIn("child of aas:assetAdministrationShells", manager.format_step(1, verbose_level=1)) - self.assertIn("doesn't match the expected tag aas:assetAdministrationShell", - manager.format_step(1, verbose_level=1)) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_demo_full_example_wrong_attribute.xml') - compliance_tool.check_aas_example(file_path_3, manager) - self.assertEqual(3, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.FAILED, manager.steps[2].status) - self.assertEqual('FAILED: Check if data is equal to example data\n - ERROR: Attribute id_short of ' - 'AssetAdministrationShell[https://acplt.org/Test_AssetAdministrationShell] must be == ' - 'TestAssetAdministrationShell (value=\'TestAssetAdministrationShell123\')', - manager.format_step(2, verbose_level=1)) - - def test_check_xml_files_equivalence(self) -> None: - manager = ComplianceToolStateManager() - script_dir = os.path.dirname(__file__) - - file_path_1 = os.path.join(script_dir, 'files/test_not_deserializable_aas.xml') - file_path_2 = os.path.join(script_dir, 'files/test_empty.xml') - compliance_tool.check_xml_files_equivalence(file_path_1, file_path_2, manager) - self.assertEqual(5, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.FAILED, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[4].status) - - manager.steps = [] - compliance_tool.check_xml_files_equivalence(file_path_2, file_path_1, manager) - self.assertEqual(5, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.FAILED, manager.steps[3].status) - self.assertEqual(Status.NOT_EXECUTED, manager.steps[4].status) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_demo_full_example.xml') - file_path_4 = os.path.join(script_dir, 'files/test_demo_full_example.xml') - compliance_tool.check_xml_files_equivalence(file_path_3, file_path_4, manager) - self.assertEqual(5, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.SUCCESS, manager.steps[4].status) - - manager.steps = [] - file_path_3 = os.path.join(script_dir, 'files/test_demo_full_example.xml') - file_path_4 = os.path.join(script_dir, 'files/test_demo_full_example_wrong_attribute.xml') - compliance_tool.check_xml_files_equivalence(file_path_3, file_path_4, manager) - self.assertEqual(5, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.FAILED, manager.steps[4].status) - self.assertEqual('FAILED: Check if data in files are equal\n - ERROR: Attribute id_short of ' - 'AssetAdministrationShell[https://acplt.org/Test_AssetAdministrationShell] must be == ' - 'TestAssetAdministrationShell123 (value=\'TestAssetAdministrationShell\')', - manager.format_step(4, verbose_level=1)) - - manager.steps = [] - compliance_tool.check_xml_files_equivalence(file_path_4, file_path_3, manager) - self.assertEqual(5, len(manager.steps)) - self.assertEqual(Status.SUCCESS, manager.steps[0].status) - self.assertEqual(Status.SUCCESS, manager.steps[1].status) - self.assertEqual(Status.SUCCESS, manager.steps[2].status) - self.assertEqual(Status.SUCCESS, manager.steps[3].status) - self.assertEqual(Status.FAILED, manager.steps[4].status) - self.assertEqual('FAILED: Check if data in files are equal\n - ERROR: Attribute id_short of ' - 'AssetAdministrationShell[https://acplt.org/Test_AssetAdministrationShell] must be == ' - 'TestAssetAdministrationShell (value=\'TestAssetAdministrationShell123\')', - manager.format_step(4, verbose_level=1)) diff --git a/test/compliance_tool/test_state_manager.py b/test/compliance_tool/test_state_manager.py deleted file mode 100644 index fc1c8260e..000000000 --- a/test/compliance_tool/test_state_manager.py +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright (c) 2020 the Eclipse BaSyx Authors -# -# This program and the accompanying materials are made available under the terms of the MIT License, available in -# the LICENSE file of this project. -# -# SPDX-License-Identifier: MIT -import logging -import unittest - -from basyx.aas.compliance_tool.state_manager import ComplianceToolStateManager, Status -from basyx.aas.examples.data._helper import DataChecker - - -class ComplianceToolStateManagerTest(unittest.TestCase): - def test_state(self) -> None: - manager = ComplianceToolStateManager() - manager.add_step('test') - self.assertEqual(Status.NOT_EXECUTED, manager.status) - manager.set_step_status(Status.SUCCESS) - self.assertEqual(Status.SUCCESS, manager.status) - manager.set_step_status(Status.FAILED) - self.assertEqual(Status.FAILED, manager.status) - - def test_logs(self) -> None: - manager = ComplianceToolStateManager() - manager.add_step('test') - manager.add_log_record(logging.LogRecord('x', logging.INFO, '', 0, 'test_msg', (), None)) - self.assertEqual(0, len(manager.get_error_logs_from_step(0))) - manager.add_log_record(logging.LogRecord('x', logging.ERROR, '', 0, 'test_msg_2', (), None)) - self.assertEqual(1, len(manager.get_error_logs_from_step(0))) - - manager.add_step('test 2') - checker = DataChecker(raise_immediately=False) - checker.check(2 == 2, 'Assertion test') - - manager.add_log_records_from_data_checker(checker) - self.assertEqual(0, len(manager.get_error_logs_from_step(1))) - self.assertEqual('SUCCESS: test 2', manager.format_step(1, 1)) - self.assertEqual('SUCCESS: test 2', manager.format_step(1, 1)) - self.assertIn('INFO: Assertion test ()', manager.format_step(1, 2)) - - checker.check(2 == 1, 'Assertion test 2') - manager.add_log_records_from_data_checker(checker) - self.assertEqual(1, len(manager.get_error_logs_from_step(1))) - self.assertEqual('FAILED: test 2', manager.format_step(1)) - self.assertIn('ERROR: Assertion test 2 ()', manager.format_step(1, 1)) - self.assertIn('INFO: Assertion test ()', manager.format_step(1, 2))