ETSI's Bug Tracker - Part 06: TTCN-3 Control Interface
View Issue Details
0007512Part 06: TTCN-3 Control InterfaceTechnicalpublic19-10-2016 13:1815-01-2018 07:53
Tomas Urban 
Tomas Urban 
normalminorhave not tried
closedfixed 
v4.8.1 (published 2016-07) 
Next version (to be defined) 
11.3.3
Elvior
0007512: XML mapping of matching symbols
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>
No tags attached.
related to 0007519closed Tomas Urban Ifpresent and length matching attributes not defined in XML mapping 
? 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
docx CR7512-v1.docx (403,290) 04-01-2018 10:53
http://oldforge.etsi.org/mantis/file_download.php?file_id=3732&type=bug
docx 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
19-10-2016 13:18Tomas UrbanNew Issue
19-10-2016 13:29Tomas UrbanDescription Updatedbug_revision_view_page.php?rev_id=323#r323
19-10-2016 13:34Tomas UrbanDescription Updatedbug_revision_view_page.php?rev_id=324#r324
19-10-2016 13:35Tomas UrbanDescription Updatedbug_revision_view_page.php?rev_id=325#r325
27-10-2016 09:18Tomas UrbanDescription Updatedbug_revision_view_page.php?rev_id=326#r326
27-10-2016 12:38Tomas UrbanDescription Updatedbug_revision_view_page.php?rev_id=327#r327
27-10-2016 13:02Tomas UrbanDescription Updatedbug_revision_view_page.php?rev_id=328#r328
14-11-2016 13:20Jens GrabowskiAssigned To => Jacob Wieland - Spirent
14-11-2016 13:20Jens GrabowskiStatusnew => assigned
14-11-2016 13:20Jens GrabowskiNote Added: 0014229
24-12-2016 15:07Jens GrabowskiTarget Version => Next version (to be defined)
24-10-2017 13:13Jens GrabowskiNote Added: 0014848
26-10-2017 10:40Jacob Wieland - SpirentFile Added: Templates.xsd
26-10-2017 10:40Jacob Wieland - SpirentFile Added: Values.xsd
26-10-2017 10:43Jacob Wieland - SpirentNote Added: 0014884
26-10-2017 10:43Jacob Wieland - SpirentAssigned ToJacob Wieland - Spirent => Tomas Urban
26-10-2017 10:44Jacob Wieland - SpirentRelationship addedrelated to 0007519
03-01-2018 11:49Tomas UrbanFile Added: SimpleTypes_v4_10_1.xsd
03-01-2018 11:49Tomas UrbanFile Added: Templates_v4_10_1.xsd
03-01-2018 11:50Tomas UrbanFile Added: Values_v4_10_1.xsd
03-01-2018 12:15Tomas UrbanAssigned ToTomas Urban => Jacob Wieland - Spirent
03-01-2018 12:17Tomas UrbanNote Added: 0014990
04-01-2018 10:53Tomas UrbanFile Added: CR7512-v1.docx
08-01-2018 13:22Jacob Wieland - SpirentNote Added: 0015018
08-01-2018 13:28Tomas UrbanNote Added: 0015019
08-01-2018 14:26Tomas UrbanNote Added: 0015020
10-01-2018 10:01Jacob Wieland - SpirentNote Added: 0015021
10-01-2018 10:03Jacob Wieland - SpirentNote Added: 0015022
10-01-2018 10:13Tomas UrbanNote Added: 0015023
10-01-2018 10:13Tomas UrbanFile Added: CR7512-v2.docx
10-01-2018 10:15Tomas UrbanNote Added: 0015024
10-01-2018 10:35Jacob Wieland - SpirentNote Added: 0015025
10-01-2018 10:35Jacob Wieland - SpirentAssigned ToJacob Wieland - Spirent => Tomas Urban
10-01-2018 10:35Jacob Wieland - SpirentStatusassigned => confirmed
15-01-2018 07:53Tomas UrbanNote Added: 0015027
15-01-2018 07:53Tomas UrbanStatusconfirmed => closed
15-01-2018 07:53Tomas UrbanResolutionopen => 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.