View Issue Details

IDProjectCategoryView StatusLast Update
001034310000-003: Address SpaceSpecpublic2025-09-22 11:51
ReporterBjarneBostrom Assigned ToJeff Harding  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Fixed in Version1.05.06 
Summary0010343: How to represent Abstract types in StructureDefinition
Description

Related a bit to https://mantis.opcfoundation.org/view.php?id=10342.

When the StructureDefinition is used as the DataTypeDefinition Attribute in normal client-server address space, the Abstract-ness information is available from the IsAbstract Attribute. However, when in https://reference.opcfoundation.org/Core/Part14/v105/docs/6.2.3.2.2 DataTypeSchemaHeader, the IsAbstract Attribute isn't available, since there is no address space. That is used as a base for UaBinaryFiles and PubSub metadata.

In the StructureDefinition https://reference.opcfoundation.org/Core/Part3/v105/docs/8.48 there is the DefaultEncodingId NodeId field. It now says:
"The NodeId of the default DataTypeEncoding for the DataType. The default shall always be Default Binary encoding.
If the DataType is only used inside nested Structures and is not directly contained in an ExtensionObject, the encoding NodeId is null.
The DefaultEncodingId in the StructureDefinition shall always be the Default Binary encoding for the DataType "

I think if it could be added that "If the DataType is abstract, the DefaultEncodingId field shall be null", it would be possible to depend on this to know abstractness of a type.

Note that this is a "futureproofing" type of an issue. Currently there isn't a direct need. But there might once the reader of a UaBinaryFile or a Subscriber in PubSub would need to instantiate something based on the types it might be needed.

I should note that DataTypeSchemaHeader uses StructureDescription, which wrap the StructureDefinition (+DataTypeId + Name). I do not see it being changed at this point, unfortunately this was missed when it was made (but would have been the logical place to add this information).

TagsNo tags attached.
Commit Version1.05.06
Fix Due Date2025-09-15

Relationships

related to 0010342 closedMatthias Damm 10000-014: PubSub DataTypeSchemaHeader clarify that supertypes should be added as well 

Activities

Jim Luth

2025-07-22 16:08

administrator   ~0023156

Last edited: 2025-07-22 16:10

Clarify that DefaultEncodingId shall be set to null for Abstract structure types when entered in the DataTypeSchemaHeader.

Jeff Harding

2025-09-15 14:22

developer   ~0023282

Added clarification that DefaultEncodingId in StructureDefinitions shall be null when abstract.

Jim Luth

2025-09-22 11:51

administrator   ~0023317

Agreed to changes edited in F2F.

Issue History

Date Modified Username Field Change
2025-05-27 09:59 BjarneBostrom New Issue
2025-07-15 17:01 Jim Luth Relationship added related to 0010342
2025-07-22 16:08 Jim Luth Note Added: 0023156
2025-07-22 16:10 Jim Luth Note Edited: 0023156
2025-07-22 16:10 Jim Luth Assigned To => Jeff Harding
2025-07-22 16:10 Jim Luth Status new => assigned
2025-07-22 16:10 Jim Luth Commit Version => 1.05.06
2025-07-22 16:10 Jim Luth Fix Due Date => 2025-09-15
2025-09-15 14:22 Jeff Harding Status assigned => resolved
2025-09-15 14:22 Jeff Harding Resolution open => fixed
2025-09-15 14:22 Jeff Harding Fixed in Version => 1.05.06
2025-09-15 14:22 Jeff Harding Note Added: 0023282
2025-09-22 11:51 Jim Luth Status resolved => closed
2025-09-22 11:51 Jim Luth Note Added: 0023317