eclipse-aaspe / package-explorer

AASX Package Explorer
Other
64 stars 19 forks source link

Cardinality Qualifier in UML #138

Closed Christian-Block closed 6 months ago

Christian-Block commented 1 year ago

Describe the bug The guideline "HOW TO CREATE A SUBMODEL TEMPLATE SPECIFICATION" https://industrialdigitaltwin.org/en/wp-content/uploads/sites/2/2022/12/I40-IDTA-WS-Process-How-to-write-a-SMT-FINAL-.pdf defines the qualifiers "SMT/Cardinality" for controlling the structure and "Multiplicity" for forms functionality. To "Multiplicity" a note is added "Multiplicity is identical to SMT/Cardinality (see above)."

The AASX Package Explorer supports an export as UML. However, for a Submodel Template using this qualifiers only "Multiplicity" is used for cardinality in UML.

image

uml

To Reproduce Please see the following XML:

<aas:aasenv xmlns:IEC="http://www.admin-shell.io/IEC61360/2/0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:abac="http://www.admin-shell.io/aas/abac/2/0" xsi:schemaLocation="http://www.admin-shell.io/aas/2/0 AAS.xsd http://www.admin-shell.io/IEC61360/2/0 IEC61360.xsd" xmlns:aas="http://www.admin-shell.io/aas/2/0">
    <aas:assetAdministrationShells>
        <aas:assetAdministrationShell>
            <aas:idShort>Test1</aas:idShort>
            <aas:identification idType="IRI">https://example.com/ids/aas/6d0798b4-5f4c-40db-acb1-3e5638ce9483</aas:identification>
            <aas:assetRef>
                <aas:keys/>
            </aas:assetRef>
            <aas:submodelRefs>
                <aas:submodelRef>
                    <aas:keys>
                        <aas:key type="Submodel" local="true" idType="IRI">https://example.com/ids/sm/014a3048-5b81-4a17-b060-5614d5d2c2df</aas:key>
                    </aas:keys>
                </aas:submodelRef>
            </aas:submodelRefs>
            <aas:conceptDictionaries/>
        </aas:assetAdministrationShell>
    </aas:assetAdministrationShells>
    <aas:assets/>
    <aas:submodels>
        <aas:submodel>
            <aas:idShort>Test_Submodel</aas:idShort>
            <aas:description>
                <aas:langString lang="en">Test</aas:langString>
            </aas:description>
            <aas:identification idType="IRI">https://example.com/ids/sm/014a3048-5b81-4a17-b060-5614d5d2c2df</aas:identification>
            <aas:kind>Template</aas:kind>
            <aas:semanticId/>
            <aas:qualifier/>
            <aas:submodelElements>
                <aas:submodelElement>
                    <aas:property>
                        <aas:idShort>Test1</aas:idShort>
                        <aas:description>
                            <aas:langString lang="en">Test1</aas:langString>
                        </aas:description>
                        <aas:kind>Template</aas:kind>
                        <aas:semanticId/>
                        <aas:qualifier>
                            <aas:qualifier>
                                <aas:type>Multiplicity</aas:type>
                                <aas:valueType/>
                                <aas:value>ZeroToOne</aas:value>
                            </aas:qualifier>
                        </aas:qualifier>
                        <aas:valueType>string</aas:valueType>
                        <aas:value/>
                    </aas:property>
                </aas:submodelElement>
                <aas:submodelElement>
                    <aas:property>
                        <aas:idShort>Test2</aas:idShort>
                        <aas:description>
                            <aas:langString lang="en">Test2</aas:langString>
                        </aas:description>
                        <aas:kind>Template</aas:kind>
                        <aas:semanticId/>
                        <aas:qualifier>
                            <aas:qualifier>
                                <aas:type>SMT/Cardinality</aas:type>
                                <aas:valueType/>
                                <aas:value>ZeroToOne</aas:value>
                            </aas:qualifier>
                        </aas:qualifier>
                        <aas:valueType>string</aas:valueType>
                        <aas:value/>
                    </aas:property>
                </aas:submodelElement>
                <aas:submodelElement>
                    <aas:property>
                        <aas:idShort>Test3</aas:idShort>
                        <aas:description>
                            <aas:langString lang="en">Test3</aas:langString>
                        </aas:description>
                        <aas:kind>Template</aas:kind>
                        <aas:semanticId/>
                        <aas:qualifier>
                            <aas:qualifier>
                                <aas:type>Cardinality</aas:type>
                                <aas:valueType/>
                                <aas:value>ZeroToOne</aas:value>
                            </aas:qualifier>
                        </aas:qualifier>
                        <aas:valueType>string</aas:valueType>
                        <aas:value/>
                    </aas:property>
                </aas:submodelElement>
            </aas:submodelElements>
        </aas:submodel>
    </aas:submodels>
    <aas:conceptDescriptions/>
</aas:aasenv>

Expected behavior Either both qualifiers should be considered for UML generation or only "SMT/Cardinality"

Screenshots Please see the attached files

Desktop (please complete the following information):

BirgitBoss commented 11 months ago

qualifier "Multiplicity" is not supported any longer when looking for preset qualifiers.

MichaelHoffmeisterFesto commented 6 months ago

Hello,

thank you. I think I have fixed this a while ago. I've checked again and you XML test data gives:

image