<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<link rel="stylesheet" type="text/css" href="http://oldforge.etsi.org/mantis/css/default.css" />
	<script type="text/javascript"><!--
		if(document.layers) {document.write("<style>td{padding:0px;}<\/style>")}
	// --></script>
	<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
	<meta http-equiv="Pragma" content="no-cache" />
	<meta http-equiv="Cache-Control" content="no-cache" />
	<meta http-equiv="Pragma-directive" content="no-cache" />
	<meta http-equiv="Cache-Directive" content="no-cache" />
	<meta http-equiv="Expires" content="Tue, 17 Dec 2024 09:16:30 GMT" />
	<link rel="shortcut icon" href="/mantis/images/favicon.ico" type="image/x-icon" />
	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Text Search" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=text" />	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Issue Id" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=id" />	<title>0007210: How to decode an empty element when an optional sequence includes optional elements only - ETSI's Bug Tracker</title>
<script type="text/javascript" src="/mantis/javascript/min/common.js"></script>
<script type="text/javascript">var loading_lang = "Loading...";</script><script type="text/javascript" src="/mantis/javascript/min/ajax.js"></script>
</head>
<body>
<br /><table class="width100" cellspacing="1"><tr><td class="form-title" colspan="6"><div class="center">ETSI's Bug Tracker - Part 09: Using XML with TTCN-3</div></td></tr><tr><td class="form-title" colspan="6">View Issue Details</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print-category"><td class="print" width="16%">ID</td><td class="print" width="16%">Project</td><td class="print" width="16%">Category</td><td class="print" width="16%">View Status</td><td class="print" width="16%">Date Submitted</td><td class="print" width="16%">Last Update</td></tr><tr class="print"><td class="print">0007210</td><td class="print">Part 09: Using XML with TTCN-3</td><td class="print">Technical</td><td class="print">public</td><td class="print">29-10-2015 11:09</td><td class="print">04-12-2015 15:46</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Reporter</td><td class="print">Gyorgy Rethy</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Assigned To</td><td class="print">Gyorgy Rethy</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Priority</td><td class="print">normal</td><td class="print-category">Severity</td><td class="print">minor</td><td class="print-category">Reproducibility</td><td class="print">have not tried</td></tr><tr class="print"><td class="print-category">Status</td><td class="print">closed</td><td class="print-category">Resolution</td><td class="print">fixed</td><td class="print" colspan="2">&#160;</td></tr><tr class="print"><td class="print-category">Platform</td><td class="print"></td><td class="print-category">OS</td><td class="print"></td><td class="print-category">OS Version</td><td class="print"></td></tr><tr class="print"><td class="print-category">Product Version</td><td class="print">v4.6.1 (published 2015-06)</td><td class="print" colspan="4">&#160;</td></tr><tr><td class="print-category">Target Version</td><td class="print">v4.7.1 (published 2016-07)</td><td class="print-category">Fixed in Version</td><td class="print">v4.7.1 (published 2016-07)</td><td class="print" colspan="2">&#160;</td></tr><tr class="print"><td class="print-category">Clause Reference(s)</td><td class="print" colspan="4">7.6.6.6 and B.3.21</td></tr><tr class="print"><td class="print-category">For STF discussion</td><td class="print" colspan="4"></td></tr><tr class="print"><td class="print-category">Source  (company  - Author)</td><td class="print" colspan="4">L.M.Ericsson</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Summary</td><td class="print" colspan="5">0007210: How to decode an empty element when an optional sequence includes optional elements only</td></tr><tr class="print"><td class="print-category">Description</td><td class="print" colspan="5">The XSD element below :<br />
&lt;xsd:element name=&quot;optionals_in_optional&quot;&gt;<br />
&#160;&#160;&lt;xsd:complexType&gt;<br />
&#160;&#160;&#160;&#160;&lt;xsd:sequence minOccurs=&quot;0&quot;&gt;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&lt;xsd:element name=&quot;elem1&quot; type=&quot;xsd:string&quot; minOccurs=&quot;0&quot;/&gt;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&lt;xsd:element name=&quot;elem2&quot; type=&quot;xsd:integer&quot; minOccurs=&quot;0&quot;/&gt;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&lt;xsd:element name=&quot;elem3&quot; type=&quot;xsd:decimal&quot; minOccurs=&quot;0&quot;/&gt;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&lt;xsd:element name=&quot;elem4&quot; type=&quot;xsd:dateTime&quot; minOccurs=&quot;0&quot;/&gt;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&lt;xsd:element name=&quot;elem5&quot; type=&quot;xsd:duration&quot; minOccurs=&quot;0&quot;/&gt;<br />
&#160;&#160;&#160;&#160;&lt;/xsd:sequence&gt;<br />
&#160;&#160;&lt;/xsd:complexType&gt;<br />
&lt;/xsd:element&gt;<br />
<br />
<br />
will be translated to TTCN-3 as:<br />
type record Optionals_in_optional<br />
{<br />
&#160;&#160;&#160;&#160;record {<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;XSD.String elem1 optional,<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;XSD.Integer elem2 optional,<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;XSD.Decimal elem3 optional,<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;XSD.DateTime elem4 optional,<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;XSD.Duration elem5 optional<br />
&#160;&#160;&#160;&#160;} sequence optional<br />
}<br />
with {<br />
variant &quot;name as uncapitalized&quot;;<br />
variant &quot;element&quot;;<br />
variant (sequence) &quot;untagged&quot;;<br />
};<br />
<br />
where the 'sequence' name of the record shall not be present in the encoded XML value.<br />
<br />
This is not the problem at encoding, both<br />
template Optionals_in_optional t_optionals1 := { sequence := omit }<br />
and <br />
template Optionals_in_optional t_optionals2 := {<br />
&#160;&#160;sequence := {<br />
&#160;&#160;&#160;&#160;elem1 := omit,<br />
&#160;&#160;&#160;&#160;elem2 := omit,<br />
&#160;&#160;&#160;&#160;elem3 := omit,<br />
&#160;&#160;&#160;&#160;elem4 := omit,<br />
&#160;&#160;&#160;&#160;elem5 := omit<br />
&#160;&#160;}<br />
}<br />
<br />
will be encoded as an empty &lt;optionals_in_optional&gt;&lt;/optionals_in_optional&gt; element.<br />
<br />
However, it is NOT SPECIFIED, how the above incoming element shall be decoded into TTCN-3. Therefore the user needs to define a template list containing both templates above to be sure that the incoming empty element will match. This is cumbersome and superflouos.<br />
<br />
Proposed solution: it is proposed to specify that this specific case shall be decoded to the value { sequence := omit }; this is the shortest and thus more user friendly solution.<br />
Note: it could cause backward incompatibility if code is written to tool-specific decoding, and causes no backward compatibility for code written to ba standard-compliant.</td></tr><tr class="print"><td class="print-category">Steps To Reproduce</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Additional Information</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Tags</td><td class="print" colspan="5">No tags attached.</td></tr><tr class="print"><td class="print-category">Relationships</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Attached Files</td><td class="print" colspan="5"><img src="http://oldforge.etsi.org/mantis/images/fileicons/doc.gif" alt="docx" />&#160;CR7210_resolution_v1.docx (63,553) <span class="italic">29-10-2015 11:54</span><br />http://oldforge.etsi.org/mantis/file_download.php?file_id=3332&amp;type=bug<br /><img src="http://oldforge.etsi.org/mantis/images/fileicons/doc.gif" alt="docx" />&#160;CR7210_resolution_v2.docx (65,389) <span class="italic">04-11-2015 11:11</span><br />http://oldforge.etsi.org/mantis/file_download.php?file_id=3357&amp;type=bug</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr><td class="form-title">Issue History</td></tr><tr class="print-category"><td class="row-category-history">Date Modified</td><td class="row-category-history">Username</td><td class="row-category-history">Field</td><td class="row-category-history">Change</td></tr><tr class="print"><td class="print">29-10-2015 11:09</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">New Issue</td><td class="print"></td></tr><tr class="print"><td class="print">29-10-2015 11:37</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Description Updated</td><td class="print">bug_revision_view_page.php?rev_id=194#r194</td></tr><tr class="print"><td class="print">29-10-2015 11:45</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Description Updated</td><td class="print">bug_revision_view_page.php?rev_id=195#r195</td></tr><tr class="print"><td class="print">29-10-2015 11:54</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">File Added: CR7210_resolution_v1.docx</td><td class="print"></td></tr><tr class="print"><td class="print">29-10-2015 11:55</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Description Updated</td><td class="print">bug_revision_view_page.php?rev_id=196#r196</td></tr><tr class="print"><td class="print">03-11-2015 16:49</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Assigned To</td><td class="print"> =&gt; Axel Rennoch</td></tr><tr class="print"><td class="print">03-11-2015 16:49</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Status</td><td class="print">new =&gt; assigned</td></tr><tr class="print"><td class="print">03-11-2015 16:50</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0013481</td><td class="print"></td></tr><tr class="print"><td class="print">04-11-2015 11:11</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=514">Axel Rennoch</a></td><td class="print">File Added: CR7210_resolution_v2.docx</td><td class="print"></td></tr><tr class="print"><td class="print">04-11-2015 11:13</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=514">Axel Rennoch</a></td><td class="print">Note Added: 0013484</td><td class="print"></td></tr><tr class="print"><td class="print">04-11-2015 11:13</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=514">Axel Rennoch</a></td><td class="print">Assigned To</td><td class="print">Axel Rennoch =&gt; Gyorgy Rethy</td></tr><tr class="print"><td class="print">04-11-2015 11:13</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=514">Axel Rennoch</a></td><td class="print">Status</td><td class="print">assigned =&gt; confirmed</td></tr><tr class="print"><td class="print">04-11-2015 13:56</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Status</td><td class="print">confirmed =&gt; resolved</td></tr><tr class="print"><td class="print">04-11-2015 13:56</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Fixed in Version</td><td class="print"> =&gt; v4.7.1 (published 2016-07)</td></tr><tr class="print"><td class="print">04-11-2015 13:56</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Resolution</td><td class="print">open =&gt; fixed</td></tr><tr class="print"><td class="print">04-11-2015 14:05</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Product Version</td><td class="print"> =&gt; v4.6.1 (published 2015-06)</td></tr><tr class="print"><td class="print">04-11-2015 14:05</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Target Version</td><td class="print"> =&gt; v4.7.1 (published 2016-07)</td></tr><tr class="print"><td class="print">04-12-2015 15:46</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0013560</td><td class="print"></td></tr><tr class="print"><td class="print">04-12-2015 15:46</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Status</td><td class="print">resolved =&gt; closed</td></tr></table>
<br />
<table class="width100" cellspacing="1">
<tr>
	<td class="form-title" colspan="2">
		Notes	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013481)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				03-11-2015 16:50&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				STF discussion: agreed in pronciple. Review proposed solution.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013484)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=514">Axel Rennoch</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-11-2015 11:13&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Just some minor formatting issues solved in resolution_v2.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0013560)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-12-2015 15:46&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Added to draft V4.6.3			</td>
		</tr>
		</table>
	</td>
</tr>
</table>
</body>
</html>
