Logo etsi

ETSI's Bug Tracker

Notice: information submitted on the ETSI issue Tracker may be incorporated in ETSI publication(s) and therefore subject to the ETSI IPR policy.

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0007512Part 06: TTCN-3 Control InterfaceTechnicalpublic19-10-2016 13:1815-01-2018 07:53
ReporterTomas Urban 
Assigned ToTomas Urban 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Versionv4.8.1 (published 2016-07) 
Target VersionNext version (to be defined)Fixed in Version 
Summary0007512: XML mapping of matching symbols
DescriptionThe 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>
TagsNo tags attached.
Clause Reference(s)11.3.3
Source (company - Author)Elvior
Attached Files? file icon Templates.xsd [^] (17,143 bytes) 26-10-2017 10:40
? file icon Values.xsd [^] (9,260 bytes) 26-10-2017 10:40
? file icon SimpleTypes_v4_10_1.xsd [^] (2,599 bytes) 03-01-2018 11:49
? file icon Templates_v4_10_1.xsd [^] (4,123 bytes) 03-01-2018 11:49
? file icon Values_v4_10_1.xsd [^] (13,426 bytes) 03-01-2018 11:50
docx file icon CR7512-v1.docx [^] (403,290 bytes) 04-01-2018 10:53
docx file icon CR7512-v2.docx [^] (413,660 bytes) 10-01-2018 10:13

- Relationships
related to 0007519closedTomas Urban Ifpresent and length matching attributes not defined in XML mapping 

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

Jacob will make a proposal.
(0014848)
Jens Grabowski (manager)
24-10-2017 13:13

(To be implemented until end of 2017)
(0014884)
Jacob Wieland - Spirent (reporter)
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 (developer)
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 (reporter)
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 (developer)
08-01-2018 13:28

OK, I will try to change the proposal accordingly.
(0015020)
Tomas Urban (developer)
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 (reporter)
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 (reporter)
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 (developer)
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 (developer)
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 (reporter)
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 (developer)
15-01-2018 07:53

Added to the specification.

- 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 View Revisions
19-10-2016 13:34 Tomas Urban Description Updated View Revisions
19-10-2016 13:35 Tomas Urban Description Updated View Revisions
27-10-2016 09:18 Tomas Urban Description Updated View Revisions
27-10-2016 12:38 Tomas Urban Description Updated View Revisions
27-10-2016 13:02 Tomas Urban Description Updated View Revisions
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


MantisBT 1.2.14 [^]
Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker