ETSI's Bug Tracker - Part 06: TTCN-3 Control Interface
View Issue Details

ID | Project | Category | View Status | Date Submitted | Last Update
0007512 | Part 06: TTCN-3 Control Interface | Technical | public | 19-10-2016 13:18 | 15-01-2018 07:53

Reporter | Tomas Urban |
Assigned To | Tomas Urban |
Priority | normal | Severity | minor | Reproducibility | have not tried
Status | closed | Resolution | fixed |
Platform |  | OS |  | OS Version |
Product Version | v4.8.1 (published 2016-07) |
Target Version | Next version (to be defined) | Fixed in Version |  |
Clause Reference(s) | 11.3.3
Source (company - Author) | Elvior

Summary | 0007512: XML mapping of matching symbols

Description

The XML mapping of TCI matching symbol type doesn't match the specification of the abstract data type defined in 7.2.2.3. At the moment the XSD type is defined as follows:
<xsd:complexType name="MatchingSymbol">
<xsd:simpleContent>
<xsd:extension base="SimpleTypes:TString">
<xsd:attributeGroup ref="Values:ValueAtts"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
It is not explained what the string should contain. Attributes are superfluous as they are present at the wrapping value level.
Correct mapping should be a choice of options defined in 7.2.2.3. Each option should contain all data fields specified for the data type:
<xsd:complexType name="MatchingSymbol">
<xsd:choice>
<xsd:element name="any" type="SimpleTypes:TEmpty"/>
<xsd:element name="value_or_none" type="SimpleTypes:TEmpty"/>
<xsd:element name="any_element" type="SimpleTypes:TEmpty"/>
<xsd:element name="elements_or_none" type="SimpleTypes:TEmpty"/>
<xsd:element name="omit" type="SimpleTypes:TEmpty"/>
<xsd:element name="complemented_list" type="Templates:MatchingList"/>
<xsd:element name="template_list" type="Templates:MatchingList"/>
<xsd:element name="subset" type="Templates:MatchingList"/>
<xsd:element name="superset" type="Templates:MatchingList"/>
<xsd:element name="range" type="Templates:ValueRange"/>
<xsd:element name="pattern" type="SimpleTypes:TString"/>
<xsd:element name="dec_match" type="Templates:MatchDecodedContent"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="TEmpty" />
<xsd:complexType name="MatchingList">
<xsd:choice>
<xsd:element name="integer" type="Values:IntegerValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="float" type="Values:FloatValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="boolean" type="Values:BooleanValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="verdicttype" type="Values:VerdictValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="bitstring" type="Values:BitstringValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="hexstring" type="Values:HexstringValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="octetstring" type="Values:OctetstringValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="charstring" type="Values:CharstringValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="universal_charstring" type="Values:UniversalCharstringValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="record" type="Values:RecordValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="record_of" type="Values:RecordOfValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="array" type="Values:ArrayValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="set" type="Values:SetValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="set_of" type="Values:SetOfValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="enumerated" type="Values:EnumeratedValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="union" type="Values:UnionValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="anytype" type="Values:AnytypeValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="address" type="Values:AddressValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="component" type="Values:ComponentValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="port" type="Values:PortValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="default" type="Values:DefaultValue" minOccurs="1"
maxOccurs="unbounded" />
<xsd:element name="timer" type="Values:TimerValue" minOccurs="1"
maxOccurs="unbounded" />
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="ValueRange">
<xsd:sequence>
<xsd:element name="lower" type="Templates:RangeBoundary" />
<xsd:element name="upper" type="Templates:RangeBoundary" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RangeBoundary">
<xsd:choice>
<xsd:sequence>
<xsd:choice>
<xsd:element name="integer" type="Values:IntegerValue" />
<xsd:element name="float" type="Values:FloatValue" />
<xsd:element name="charstring" type="Values:CharstringValue" />
<xsd:element name="universal_charstring" type="Values:UniversalCharstringValue" />
</xsd:choice>
<xsd:element name="exclusive" type="SimpleTypes:TEmpty" minOccurs="0"/>
</xsd:sequence>
<xsd:element name="infinity" type="SimpleTypes:TEmpty" />
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="MatchDecodedContent">
<xsd:choice>
<xsd:element name="integer" type="Values:IntegerValue"/>
<xsd:element name="float" type="Values:FloatValue"/>
<xsd:element name="boolean" type="Values:BooleanValue"/>
<xsd:element name="verdicttype" type="Values:VerdictValue"/>
<xsd:element name="bitstring" type="Values:BitstringValue"/>
<xsd:element name="hexstring" type="Values:HexstringValue"/>
<xsd:element name="octetstring" type="Values:OctetstringValue"/>
<xsd:element name="charstring" type="Values:OctetstringValue"/>
<xsd:element name="universal_charstring" type="Values:UniversalCharstringValue"/>
<xsd:element name="record" type="Values:RecordValue"/>
<xsd:element name="record_of" type="Values:RecordOfValue"/>
<xsd:element name="array" type="Values:ArrayValue"/>
<xsd:element name="set" type="Values:SetValue"/>
<xsd:element name="set_of" type="Values:SetOfValue"/>
<xsd:element name="enumerated" type="Values:EnumeratedValue"/>
<xsd:element name="union" type="Values:UnionValue"/>
<xsd:element name="anytype" type="Values:AnytypeValue"/>
</xsd:choice>
</xsd:complexType>

Steps To Reproduce |
Additional Information |
Tags | No tags attached.

Relationships

related to | 0007519 | closed | Tomas Urban | Ifpresent and length matching attributes not defined in XML mapping

Attached Files

Templates.xsd (17,143) 26-10-2017 10:40
http://oldforge.etsi.org/mantis/file_download.php?file_id=3709&type=bug
Values.xsd (9,260) 26-10-2017 10:40
http://oldforge.etsi.org/mantis/file_download.php?file_id=3710&type=bug
SimpleTypes_v4_10_1.xsd (2,599) 03-01-2018 11:49
http://oldforge.etsi.org/mantis/file_download.php?file_id=3729&type=bug
Templates_v4_10_1.xsd (4,123) 03-01-2018 11:49
http://oldforge.etsi.org/mantis/file_download.php?file_id=3730&type=bug
Values_v4_10_1.xsd (13,426) 03-01-2018 11:50
http://oldforge.etsi.org/mantis/file_download.php?file_id=3731&type=bug
CR7512-v1.docx (403,290) 04-01-2018 10:53
http://oldforge.etsi.org/mantis/file_download.php?file_id=3732&type=bug
CR7512-v2.docx (413,660) 10-01-2018 10:13
http://oldforge.etsi.org/mantis/file_download.php?file_id=3734&type=bug

Issue History
Date Modified | Username | Field | Change
19-10-2016 13:18 | Tomas Urban | New Issue |
19-10-2016 13:29 | Tomas Urban | Description Updated | bug_revision_view_page.php?rev_id=323#r323
19-10-2016 13:34 | Tomas Urban | Description Updated | bug_revision_view_page.php?rev_id=324#r324
19-10-2016 13:35 | Tomas Urban | Description Updated | bug_revision_view_page.php?rev_id=325#r325
27-10-2016 09:18 | Tomas Urban | Description Updated | bug_revision_view_page.php?rev_id=326#r326
27-10-2016 12:38 | Tomas Urban | Description Updated | bug_revision_view_page.php?rev_id=327#r327
27-10-2016 13:02 | Tomas Urban | Description Updated | bug_revision_view_page.php?rev_id=328#r328
14-11-2016 13:20 | Jens Grabowski | Assigned To | => Jacob Wieland - Spirent
14-11-2016 13:20 | Jens Grabowski | Status | new => assigned
14-11-2016 13:20 | Jens Grabowski | Note Added: 0014229 |
24-12-2016 15:07 | Jens Grabowski | Target Version | => Next version (to be defined)
24-10-2017 13:13 | Jens Grabowski | Note Added: 0014848 |
26-10-2017 10:40 | Jacob Wieland - Spirent | File Added: Templates.xsd |
26-10-2017 10:40 | Jacob Wieland - Spirent | File Added: Values.xsd |
26-10-2017 10:43 | Jacob Wieland - Spirent | Note Added: 0014884 |
26-10-2017 10:43 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => Tomas Urban
26-10-2017 10:44 | Jacob Wieland - Spirent | Relationship added | related to 0007519
03-01-2018 11:49 | Tomas Urban | File Added: SimpleTypes_v4_10_1.xsd |
03-01-2018 11:49 | Tomas Urban | File Added: Templates_v4_10_1.xsd |
03-01-2018 11:50 | Tomas Urban | File Added: Values_v4_10_1.xsd |
03-01-2018 12:15 | Tomas Urban | Assigned To | Tomas Urban => Jacob Wieland - Spirent
03-01-2018 12:17 | Tomas Urban | Note Added: 0014990 |
04-01-2018 10:53 | Tomas Urban | File Added: CR7512-v1.docx |
08-01-2018 13:22 | Jacob Wieland - Spirent | Note Added: 0015018 |
08-01-2018 13:28 | Tomas Urban | Note Added: 0015019 |
08-01-2018 14:26 | Tomas Urban | Note Added: 0015020 |
10-01-2018 10:01 | Jacob Wieland - Spirent | Note Added: 0015021 |
10-01-2018 10:03 | Jacob Wieland - Spirent | Note Added: 0015022 |
10-01-2018 10:13 | Tomas Urban | Note Added: 0015023 |
10-01-2018 10:13 | Tomas Urban | File Added: CR7512-v2.docx |
10-01-2018 10:15 | Tomas Urban | Note Added: 0015024 |
10-01-2018 10:35 | Jacob Wieland - Spirent | Note Added: 0015025 |
10-01-2018 10:35 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => Tomas Urban
10-01-2018 10:35 | Jacob Wieland - Spirent | Status | assigned => confirmed
15-01-2018 07:53 | Tomas Urban | Note Added: 0015027 |
15-01-2018 07:53 | Tomas Urban | Status | confirmed => closed
15-01-2018 07:53 | Tomas Urban | Resolution | open => fixed

Notes

(0014229)
Jens Grabowski
14-11-2016 13:20

Jacob will make a proposal.

(0014848)
Jens Grabowski
24-10-2017 13:13

(To be implemented until end of 2017)

(0014884)
Jacob Wieland - Spirent
26-10-2017 10:43

I have uploaded a new version of Values.xsd and Templates.xsd that should fix some bugs in the current xsd definition (wrong choice extensions between Values and Templates), reduce the amount of copy-paste-code by using groups.
The element templateDef has been enlarged with constructs to model all currently existing (even advanced matching) matching mechanisms. I have not stuck too close to the naming in TCI, but if that is required, a renaming is of course possible.

(0014990)
Tomas Urban
03-01-2018 12:17

I like the idea of code reduction and I added it to the next version of the proposal. However, the proposed removal of matching_symbol element from the Values:Value types (present in individual choice options such as IntegerValue, FloatValue etc.) cannot be achieved. These types are used in logging and in case of several TLI events (such as SEnter), they can contain matching symbols.
For that reason I modified the proposal in the following way:
1. The BaseValue group contains an option to specify a matching symbol instead of a value or a special symbol (omit, null).
2. I preserved the option for not-evaluated fuzzy or lazy value in BaseValue (it was removed for some reason and I don't think TLI should trigger evaluation)
3. I reduced the number of types in the template schema. The TciValueTemplate and TciNonValueTemplate types can use Values:Value type for detailed description of the value or template - there's no need to have dedicated template types such as IntegerTemplate.
4. I modified the existing Templates:MatchingSymbol type so that it can contain structured information about the template.
5. The features from extension packages are not in the files, they have to be moved to the extension package specifications.
Please let me know what do you think about the proposal. I am sorry for replying so late.

(0015018)
Jacob Wieland - Spirent
08-01-2018 13:22

While I principally like this further simplification, I don't think this is a backward compatible change.
I am referring to the removal of the X-Template types, IntegerTemplate and so forth). Because they have the same element-names, but live in a different namespace, up till now we had <templates-ns>:omit and <values-ns>:omit which were different (same for all the other variants).
To be sure, this is very annoying and therefore, I like this new approach better, but I am not sure if people will be happy if their old log files do not conform to the new schema anymore.
Thus, I think we should leave these old types as alternatives in the standard and mark them (and their usage) as deprecated.

(0015019)
Tomas Urban
08-01-2018 13:28

OK, I will try to change the proposal accordingly.

(0015020)
Tomas Urban
08-01-2018 14:26

Jacob, I just wonder how big the compatibility issue might be. Our tool doesn't produce logs in this format, so we are not affected by this. Neither is Ericsson as they don't have TCI at all.
How does your tool log e.g. "integer:?" into an XML element of the Templates:TciValueTemplate type? According to the current current schema, both the value and template part are mandatory which seems rather strange. What do you put to the value part in this case?

(0015021)
Jacob Wieland - Spirent
10-01-2018 10:01

It's just the difference between
<Values:integer>
and
<Templates:integer>
(or whatever namespace-prefix you choose for Values.xsd and Templates.xsd).
If all elements had been defined as unqualified, there wouldn't be a problem.
For Spiretn, it would definitely be a compatibility issue, though probably not something that can't be dealt with as we just need to replace namespace prefixes in old logs, but it is still effort.
Thus, I would propose to escalate this to the other tool vendors before making this decision.

(0015022)
Jacob Wieland - Spirent
10-01-2018 10:03

Also, I think the old standard defined the whole schema wrong anyway, assuming that extending a choice with another choice produces a choice instead of a sequence of two choices. That's why I guess the whole discussion doesn't matter really as no log ever that involved templates was really standard conform anyway.

(0015023)
Tomas Urban
10-01-2018 10:13

Extending a choice with another choice produces a sequence of two choices, where the first (value) part is mandatory. This is rather strange approach, as I have no idea what would go to the value part in case of "integer:?" (assuming that matching symbols were not defined as it is in the current standard).

(0015024)
Tomas Urban
10-01-2018 10:15

Please check my second proposal where old elements from the Templates namespace are kept. However, that proposal removes the sequence of two choices. If it is necessary to keep it, it has to be updated.

(0015025)
Jacob Wieland - Spirent
10-01-2018 10:35

The proposal is fine. It rectifies the problems while keeping backward compatibility to the intention of the former version.

(0015027)
Tomas Urban
15-01-2018 07:53

Added to the specification.