View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004421 | 10000-003: Address Space | Spec | public | 2018-10-09 21:44 | 2021-02-09 17:13 |
Reporter | Matthias Damm | Assigned To | Jeff Harding | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Summary | 0004421: Handling of StructureFields with abstract DataType | ||||
Description | In Part 14, we have several structure fields where the DataType is abstract and only concrete subtypes can be used e.g. for the TransportSettings or MessageSettings on the different PubSub object levels. This requires that an ExtensionObject is embedded as field instead of an embedded structure. This currently results in the Nodeset in field DataType of Structure. This is correct for the resulting strucure on the wire but we loose the information which concrete abstract type is required. In addition the applied rule for the Nodeset is not defined anywhere (at least not to my knowledge) | ||||
Tags | No tags attached. | ||||
Attached Files | |||||
Commit Version | |||||
Fix Due Date | |||||
has duplicate | 0005414 | closed | Randy Armstrong | 10000-003: Address Space | Behavoir of DataTypeDefinition attribute with BaseDataType needs to be specified. |
related to | 0004422 | closed | Jeff Harding | 10000-003: Address Space | Indication if a subtype is allowed as value |
related to | 0004423 | assigned | Jeff Harding | 10000-003: Address Space | We need a indication of a sealed type |
related to | 0004746 | closed | Jim Luth | 10000-003: Address Space | Clarification on subtyping of structure data types |
related to | 0005392 | closed | Randy Armstrong | 10000-006: Mappings | Used BaseType in dictionary missing |
related to | 0005667 | closed | Jeff Harding | 10000-003: Address Space | DataType Field should allow abstract supertypes. |
related to | 0005664 | closed | Randy Armstrong | NodeSets, XSDs and Generated Code | WriterGroupDataType transportSettings and messageSettings fields are of the wrong type |
related to | 0006455 | closed | Randy Armstrong | NodeSets, XSDs and Generated Code | Handling of StructureFields with abstract DataType |
related to | 0006454 | closed | Randy Armstrong | NodeSets, XSDs and Generated Code | Handling of StructureFields with abstract DataType |
|
At the moment the code generators generate an ExtensionObject for a StructureField if the DataType is an abstract structure data type. The problem is that the knowledge about the isAbsract is only on the DataType node but not on the DataTypeDefinition. Therefore it is only known inside the nodeset/address space but not in DataTypeSchemaHeader. In addition this works only if the data type is abstract but not if you want to use a concrete type but allow subtypes. We can not change the StructureField structure. We can only do a hack with the maxStringLength in StructureField since this one is not needed if the field is a strcuture. |
|
At the June WG meeting we agreed on the following solution. The StructureDefinition DataType will be enhanced to extend the structureType with 3 new enumeration values and the StructureField DataType will be enhanced to overload the isOptional Boolean for these 3 new enumerations. The 3 new types will be extensions of the current 3 by adding allowSubTypes flag in addition to the existing isOptional flag by redefining it as a byte. This will ensure no change to the encoding of this type. |
|
Extended 8.48 StructureDefinition and 8.50 StructureField to support subtyping of DataTypes |
|
I suggest to add following constraining condition when any of the "new" structureTypes is used (3, 4, 5): If the allowSubTypes bit is 0, the dataType shall be a concrete type. Or, formulated the other way round: If dataType is abstract type, the allowSubTypes bit shall be 1. |
|
Agreed with suggested addition. |
|
Waiting for Mathias to review to close. |
|
rethinking the proposed approach. |
|
During Working Group review the proposal. Issues related to the encoding with non-binary encoders was raised. While recasting the boolean bit as a byte will work for binary encoding and not change the on the wire format it will break other encodings and possibly SDKs as they expect a boolean. |
|
New proposal:
|
|
Need an Errata for 1.04 |
|
Updated the descriptions of StructureDefiniton and StructureFieldDefinition to describe the compromised solution agreed to today. |
|
Agreed and accepted the updated next in Part 5 version 1.05. |
|
The final changes applied to 1.05 included changes to the StructureDefinition's structureType description and the StructureField's dataType and isOptional descriptions. |
|
Added Errata to 1.04.10 describing the changes. |
|
Agreed to 1.04.10 Errata. |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-10-09 21:44 | Matthias Damm | New Issue | |
2018-10-10 05:58 | Matthias Damm | Relationship added | related to 0004422 |
2018-10-10 06:02 | Matthias Damm | Relationship added | related to 0004423 |
2018-10-23 15:19 | Jim Luth | Assigned To | => Jeff Harding |
2018-10-23 15:19 | Jim Luth | Status | new => assigned |
2018-12-14 00:19 | Matthias Damm | Note Added: 0009698 | |
2019-04-30 10:56 | Wolfgang Mahnke | Relationship added | related to 0004746 |
2020-04-14 15:47 | Matthias Damm | Relationship added | related to 0005392 |
2020-06-15 17:15 | Jeff Harding | Relationship added | related to 0005667 |
2020-06-16 18:54 | Jeff Harding | Relationship added | has duplicate 0005414 |
2020-06-16 19:16 | Jeff Harding | Note Added: 0012350 | |
2020-06-16 20:02 | Jeff Harding | Status | assigned => resolved |
2020-06-16 20:02 | Jeff Harding | Resolution | open => fixed |
2020-06-16 20:02 | Jeff Harding | Fixed in Version | => 1.05 |
2020-06-16 20:02 | Jeff Harding | Note Added: 0012353 | |
2020-06-17 05:19 | Zbynek Zahradnik | Status | resolved => feedback |
2020-06-17 05:19 | Zbynek Zahradnik | Resolution | fixed => reopened |
2020-06-17 05:19 | Zbynek Zahradnik | Note Added: 0012371 | |
2020-06-17 14:02 | Jeff Harding | Status | feedback => resolved |
2020-06-17 14:02 | Jeff Harding | Note Added: 0012392 | |
2020-08-25 13:28 | Jim Luth | Note Added: 0012712 | |
2020-09-08 16:42 | Jeff Harding | Status | resolved => feedback |
2020-09-08 16:42 | Jeff Harding | Note Added: 0012771 | |
2020-09-08 16:52 | Jeff Harding | Status | feedback => acknowledged |
2020-09-08 16:52 | Jeff Harding | Note Added: 0012772 | |
2020-09-08 17:00 | Jeff Harding | Note Added: 0012773 | |
2020-09-08 17:03 | Jeff Harding | Note Added: 0012774 | |
2020-09-08 21:06 | Jeff Harding | Status | acknowledged => resolved |
2020-09-08 21:06 | Jeff Harding | Note Added: 0012775 | |
2020-10-27 16:38 | Jeff Harding | Status | resolved => feedback |
2020-10-27 16:38 | Jeff Harding | Status | feedback => assigned |
2020-11-10 18:02 | Randy Armstrong | Relationship added | related to 0005664 |
2020-12-09 20:22 | Jeff Harding | Note Added: 0013435 | |
2021-01-29 18:45 | Jeff Harding | File Added: Mantis4421Difference1_04to1_05.docx | |
2021-01-29 18:45 | Jeff Harding | Note Added: 0013633 | |
2021-01-29 18:47 | Jeff Harding | Status | assigned => resolved |
2021-01-29 18:47 | Jeff Harding | Resolution | reopened => fixed |
2021-01-29 18:47 | Jeff Harding | Note Added: 0013634 | |
2021-02-02 15:25 | Randy Armstrong | Issue cloned: 0006454 | |
2021-02-02 15:41 | Randy Armstrong | Relationship added | related to 0006455 |
2021-02-02 15:44 | Randy Armstrong | Relationship added | related to 0006454 |
2021-02-09 17:13 | Jim Luth | Status | resolved => closed |
2021-02-09 17:13 | Jim Luth | Note Added: 0013707 |