View Issue Details

IDProjectCategoryView StatusLast Update
000892810000-003: Address SpaceSpecpublic2023-07-25 16:42
ReporterWolfgang Mahnke Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status acknowledgedResolutionopen 
Summary0008928: Clarification on InstanceDeclarations
Description

In OPC UA, it is allowed to add additional components to an InstanceDeclaration and to use a subtype for the InstanceDeclaration.

That can lead to the following situation

BType
|

  • TextVariable = "Mondo" ("Mondo" is the default value)

CType : BType
|

  • StringVariable = "Ciao"

AType
|

  • B : BType
    |
    • StringVariable = "Hello"
    • TextVariable = "World"

When I create an instance of AType and use the CType for B, what is the default value?
And what is happening or allowed, when the StringVariable of CType is different from the one of the InstanceDeclaration B (different DataType, etc.)
I have not found any statements in the spec about this case.
My assumption: The default value of the InstanceDeclaration B would apply.
I also would assume, that CType.StringVariable or B.StringVariable could restrict their counterpart (e.g. one uses a subtype of the datatype of the other), and the instance would need to follow both and therefore has to use the subtype.
If both use contradicting types, then the instance of B cannot be of Type CType (even if the StringVariable would be optional in B or C).
Would be good to define this in the specification.
(so far I never had a real scenario where this had happened, but obviously it can be constructed)

TagsNo tags attached.
Commit Version
Fix Due Date

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2023-05-03 09:24 Wolfgang Mahnke New Issue
2023-06-06 15:30 Jim Luth Assigned To => Jeff Harding
2023-06-06 15:30 Jim Luth Status new => assigned
2023-07-25 16:42 Jim Luth Assigned To Jeff Harding =>
2023-07-25 16:42 Jim Luth Status assigned => acknowledged