- From: Jonathan Marsh via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 20 Feb 2007 23:45:36 +0000
- To: public-ws-desc-eds@w3.org
Update of /sources/public/2002/ws/desc/wsdl20
In directory hutz:/tmp/cvs-serv20493/wsdl20
Modified Files:
wsdl20-adjuncts.xml wsdl20-adjuncts.html
Log Message:
CR149 resolution.
Index: wsdl20-adjuncts.html
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/wsdl20-adjuncts.html,v
retrieving revision 1.166
retrieving revision 1.167
diff -C 2 -d -r1.166 -r1.167
*** wsdl20-adjuncts.html 20 Feb 2007 17:45:31 -0000 1.166
--- wsdl20-adjuncts.html 20 Feb 2007 23:45:33 -0000 1.167
***************
*** 229,234 ****
C. <a href="#assertionsummary">Assertion Summary</a> (Non-Normative)<br>
D. <a href="#changelog">Part 2 Change Log</a> (Non-Normative)<br>
! D.1 <a href="#N140D2">WSDL 2.0 Extensions Change Log</a><br>
! D.2 <a href="#N142AB">WSDL 2.0 Bindings Change Log</a><br>
</p></div><hr><div class="body"><div class="div1">
<h2><a id="intro" name="intro"></a>1. Introduction</h2><p>The Web Services Description Language Version 2.0 (WSDL 2.0)
--- 229,234 ----
C. <a href="#assertionsummary">Assertion Summary</a> (Non-Normative)<br>
D. <a href="#changelog">Part 2 Change Log</a> (Non-Normative)<br>
! D.1 <a href="#N140AF">WSDL 2.0 Extensions Change Log</a><br>
! D.2 <a href="#N14288">WSDL 2.0 Bindings Change Log</a><br>
</p></div><hr><div class="body"><div class="div1">
<h2><a id="intro" name="intro"></a>1. Introduction</h2><p>The Web Services Description Language Version 2.0 (WSDL 2.0)
***************
*** 586,597 ****
that elements that appear with cardinality greater than one MUST be treated as
a single element.<sup><a title="Link to assertion WRPC-5022 summary" href="#WRPC-5022-summary">†</a></sup></span></p></li><li><p><span class="test-assertion" id="WRPC-5023">For each pair <em>(q, #in)</em>, there MUST be a child element of the
! <code>input</code> element with a name of <em>q</em>. There MUST NOT be a child element
! of the <code>output</code> element with the name of <em>q</em>.<sup><a title="Link to assertion WRPC-5023 summary" href="#WRPC-5023-summary">†</a></sup></span></p></li><li><p><span class="test-assertion" id="WRPC-5024">For each pair <em>(q, #out)</em>, there MUST be a child element of the
! <code>output</code> element with a name of <em>q</em>. There MUST NOT be a child element
! of the <code>input</code> element with the name of <em>q</em>.<sup><a title="Link to assertion WRPC-5024 summary" href="#WRPC-5024-summary">†</a></sup></span></p></li><li><p><span class="test-assertion" id="WRPC-5025">For each pair <em>(q, #inout)</em>, there MUST be a child element of the
! <code>input</code> element with a name of <em>q</em>. There MUST also be a child element
! of the <code>output</code> element with the name of <em>q</em>.<sup><a title="Link to assertion WRPC-5025 summary" href="#WRPC-5025-summary">†</a></sup></span></p></li><li><p><span class="test-assertion" id="WRPC-5026">For each pair <em>(q, #return)</em>, there MUST be a child element of the
! <code>output</code> element with a name of <em>q</em>. There MUST NOT be a child element
! of the <code>input</code> element with the name of <em>q</em>.<sup><a title="Link to assertion WRPC-5026 summary" href="#WRPC-5026-summary">†</a></sup></span></p></li></ul><p>
The function signature defined by a <code>wrpc:signature</code> extension is
determined as follows:
--- 586,597 ----
that elements that appear with cardinality greater than one MUST be treated as
a single element.<sup><a title="Link to assertion WRPC-5022 summary" href="#WRPC-5022-summary">†</a></sup></span></p></li><li><p><span class="test-assertion" id="WRPC-5023">For each pair <em>(q, #in)</em>, there MUST be a child element of the
! input element with a name of <em>q</em>. There MUST NOT be a child element
! of the output element with the name of <em>q</em>.<sup><a title="Link to assertion WRPC-5023 summary" href="#WRPC-5023-summary">†</a></sup></span></p></li><li><p><span class="test-assertion" id="WRPC-5024">For each pair <em>(q, #out)</em>, there MUST be a child element of the
! output element with a name of <em>q</em>. There MUST NOT be a child element
! of the input element with the name of <em>q</em>.<sup><a title="Link to assertion WRPC-5024 summary" href="#WRPC-5024-summary">†</a></sup></span></p></li><li><p><span class="test-assertion" id="WRPC-5025">For each pair <em>(q, #inout)</em>, there MUST be a child element of the
! input element with a name of <em>q</em>. There MUST also be a child element
! of the output element with the name of <em>q</em>.<sup><a title="Link to assertion WRPC-5025 summary" href="#WRPC-5025-summary">†</a></sup></span></p></li><li><p><span class="test-assertion" id="WRPC-5026">For each pair <em>(q, #return)</em>, there MUST be a child element of the
! output element with a name of <em>q</em>. There MUST NOT be a child element
! of the input element with the name of <em>q</em>.<sup><a title="Link to assertion WRPC-5026 summary" href="#WRPC-5026-summary">†</a></sup></span></p></li></ul><p>
The function signature defined by a <code>wrpc:signature</code> extension is
determined as follows:
***************
*** 3238,3255 ****
<a href="#WRPC-5023" name="WRPC-5023-summary">WRPC-5023</a>
</td><td rowspan="1" colspan="1">For each pair <em>(q, #in)</em>, there MUST be a child element of the
! <code>input</code> element with a name of <em>q</em>. There MUST NOT be a child element
! of the <code>output</code> element with the name of <em>q</em>.</td></tr><tr><td rowspan="1" colspan="1">
<a href="#WRPC-5024" name="WRPC-5024-summary">WRPC-5024</a>
</td><td rowspan="1" colspan="1">For each pair <em>(q, #out)</em>, there MUST be a child element of the
! <code>output</code> element with a name of <em>q</em>. There MUST NOT be a child element
! of the <code>input</code> element with the name of <em>q</em>.</td></tr><tr><td rowspan="1" colspan="1">
<a href="#WRPC-5025" name="WRPC-5025-summary">WRPC-5025</a>
</td><td rowspan="1" colspan="1">For each pair <em>(q, #inout)</em>, there MUST be a child element of the
! <code>input</code> element with a name of <em>q</em>. There MUST also be a child element
! of the <code>output</code> element with the name of <em>q</em>.</td></tr><tr><td rowspan="1" colspan="1">
<a href="#WRPC-5026" name="WRPC-5026-summary">WRPC-5026</a>
</td><td rowspan="1" colspan="1">For each pair <em>(q, #return)</em>, there MUST be a child element of the
! <code>output</code> element with a name of <em>q</em>. There MUST NOT be a child element
! of the <code>input</code> element with the name of <em>q</em>.</td></tr></tbody></table><br><a name="message-assertion-summary"></a><table width="100%" border="1"><caption>Table C-3.
Summary of Assertions about Messages
</caption><col width="20%" span="1"><col width="80%" span="1"><tbody><tr><th rowspan="1" colspan="1">Id</th><th rowspan="1" colspan="1">Assertion</th></tr><tr><td rowspan="1" colspan="1">
--- 3238,3255 ----
<a href="#WRPC-5023" name="WRPC-5023-summary">WRPC-5023</a>
</td><td rowspan="1" colspan="1">For each pair <em>(q, #in)</em>, there MUST be a child element of the
! input element with a name of <em>q</em>. There MUST NOT be a child element
! of the output element with the name of <em>q</em>.</td></tr><tr><td rowspan="1" colspan="1">
<a href="#WRPC-5024" name="WRPC-5024-summary">WRPC-5024</a>
</td><td rowspan="1" colspan="1">For each pair <em>(q, #out)</em>, there MUST be a child element of the
! output element with a name of <em>q</em>. There MUST NOT be a child element
! of the input element with the name of <em>q</em>.</td></tr><tr><td rowspan="1" colspan="1">
<a href="#WRPC-5025" name="WRPC-5025-summary">WRPC-5025</a>
</td><td rowspan="1" colspan="1">For each pair <em>(q, #inout)</em>, there MUST be a child element of the
! input element with a name of <em>q</em>. There MUST also be a child element
! of the output element with the name of <em>q</em>.</td></tr><tr><td rowspan="1" colspan="1">
<a href="#WRPC-5026" name="WRPC-5026-summary">WRPC-5026</a>
</td><td rowspan="1" colspan="1">For each pair <em>(q, #return)</em>, there MUST be a child element of the
! output element with a name of <em>q</em>. There MUST NOT be a child element
! of the input element with the name of <em>q</em>.</td></tr></tbody></table><br><a name="message-assertion-summary"></a><table width="100%" border="1"><caption>Table C-3.
Summary of Assertions about Messages
</caption><col width="20%" span="1"><col width="80%" span="1"><tbody><tr><th rowspan="1" colspan="1">Id</th><th rowspan="1" colspan="1">Assertion</th></tr><tr><td rowspan="1" colspan="1">
***************
*** 3326,3330 ****
<a href="#RobustInOnlyFaults-2200602" name="RobustInOnlyFaults-2200602-summary">RobustInOnlyFaults-2200602</a>
</td><td rowspan="1" colspan="1">The robust in-only message exchange pattern uses the rule <a href="#fault-trigger"><b>2.2.2 Message Triggers Fault propagation rule</b></a>.</td></tr></tbody></table><br><div class="div1">
! <h2><a id="changelog" name="changelog"></a>D. Part 2 Change Log (Non-Normative)</h2><a name="wsdl-spec-changelog-table"></a><table border="1" width="100%"><col width="10%" span="1"><col width="10%" span="1"><col width="80%" span="1"><tbody><tr><th rowspan="1" colspan="1">Date</th><th rowspan="1" colspan="1">Author</th><th rowspan="1" colspan="1">Description</th></tr><tr><td rowspan="1" colspan="1">20070220</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Spell-checked.</td></tr><tr><td rowspan="1" colspan="1">20070220</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Fixed remaining occurences of contentCoding.</td></tr><tr><td rowspan="1" colspan="1">20070220</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Updated the mapping to SOAP-Response to only allow #element or #none, as per CR120.</td></tr><tr><td rowspan="1" colspan="1">20070220</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Renamed "content coding" to "content encodin" for disambiguation with "transfer coding".</td></tr><tr><td rowspan="1" colspan="1">20070216</td><td rowspan="1" colspan="1">JMarsh</td><td rowspan="1" colspan="1">CR142 - fixed {town/}.</td></tr><tr><td rowspan="1" colspan="1">20070216</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Fixed issue when Content-Encoding could be empty (follow-up of CR089).</td></tr><tr><td rowspan="1" colspan="1">20070216</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Fixed issues noticed by Jonathan</td></tr><tr><td rowspan="1" colspan="1">20070215</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/5/cr-issues/issues.html#CR148">CR148</a>:
SOAP Action has no effect with SOAP-Response.
</td></tr><tr><td rowspan="1" colspan="1">20070215</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/5/cr-issues/issues.html#CR142">CR142</a>:
--- 3326,3330 ----
<a href="#RobustInOnlyFaults-2200602" name="RobustInOnlyFaults-2200602-summary">RobustInOnlyFaults-2200602</a>
</td><td rowspan="1" colspan="1">The robust in-only message exchange pattern uses the rule <a href="#fault-trigger"><b>2.2.2 Message Triggers Fault propagation rule</b></a>.</td></tr></tbody></table><br><div class="div1">
! <h2><a id="changelog" name="changelog"></a>D. Part 2 Change Log (Non-Normative)</h2><a name="wsdl-spec-changelog-table"></a><table border="1" width="100%"><col width="10%" span="1"><col width="10%" span="1"><col width="80%" span="1"><tbody><tr><th rowspan="1" colspan="1">Date</th><th rowspan="1" colspan="1">Author</th><th rowspan="1" colspan="1">Description</th></tr><tr><td rowspan="1" colspan="1">20070220</td><td rowspan="1" colspan="1">Jmarsh</td><td rowspan="1" colspan="1">removed <el> formatting from RPC signature description per CR149.</td></tr><tr><td rowspan="1" colspan="1">20070220</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Spell-checked.</td></tr><tr><td rowspan="1" colspan="1">20070220</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Fixed remaining occurences of contentCoding.</td></tr><tr><td rowspan="1" colspan="1">20070220</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Updated the mapping to SOAP-Response to only allow #eement or #none, as per CR120.</td></tr><tr><td rowspan="1" colspan="1">20070220</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Renamed "content coding" to "content encoding" for disambiguation with "transfer coding".</td></tr><tr><td rowspan="1" colspan="1">20070216</td><td rowspan="1" colspan="1">JMarsh</td><td rowspan="1" colspan="1">CR142 - fixed {town/}.</td></tr><tr><td rowspan="1" colspan="1">20070216</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Fixed issue when Content-Encoding could be empty (follow-up of CR089).</td></tr><tr><td rowspan="1" colspan="1">20070216</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Fixed issues noticed by Jonathan</td></tr><tr><td rowspan="1" colspan="1">20070215</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/5/cr-issues/issues.html#CR148">CR148</a>:
SOAP Action has no effect with SOAP-Response.
</td></tr><tr><td rowspan="1" colspan="1">20070215</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/5/cr-issues/issues.html#CR142">CR142</a>:
***************
*** 3614,3618 ****
fixed typo and added missing {soap modules} XML
mapping</td></tr><tr><td rowspan="1" colspan="1">20050321</td><td rowspan="1" colspan="1">HH</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC88">LC88</a>: fixed typo</td></tr><tr><td rowspan="1" colspan="1">20050317</td><td rowspan="1" colspan="1">HH</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC61a">LC61a</a>: Incorporated RPC style</td></tr><tr><td rowspan="1" colspan="1">20050316</td><td rowspan="1" colspan="1">HH</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC61a">LC61a</a>: Merged the old part 2 and part 3 documents</td></tr></tbody></table><br><div class="div2">
! <h3><a id="N140D2" name="N140D2"></a>D.1 WSDL 2.0 Extensions Change Log</h3><a name="wsdl-changelog-table"></a><table border="1"><tbody><tr><th rowspan="1" colspan="1">Date</th><th rowspan="1" colspan="1">Author</th><th rowspan="1" colspan="1">Description</th></tr><tr><td rowspan="1" colspan="1">20050613</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">
<a href="http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC122">LC122</a>:
Replaced "binding" by "binding extension" where appropriate.
--- 3614,3618 ----
fixed typo and added missing {soap modules} XML
mapping</td></tr><tr><td rowspan="1" colspan="1">20050321</td><td rowspan="1" colspan="1">HH</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC88">LC88</a>: fixed typo</td></tr><tr><td rowspan="1" colspan="1">20050317</td><td rowspan="1" colspan="1">HH</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC61a">LC61a</a>: Incorporated RPC style</td></tr><tr><td rowspan="1" colspan="1">20050316</td><td rowspan="1" colspan="1">HH</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC61a">LC61a</a>: Merged the old part 2 and part 3 documents</td></tr></tbody></table><br><div class="div2">
! <h3><a id="N140AF" name="N140AF"></a>D.1 WSDL 2.0 Extensions Change Log</h3><a name="wsdl-changelog-table"></a><table border="1"><tbody><tr><th rowspan="1" colspan="1">Date</th><th rowspan="1" colspan="1">Author</th><th rowspan="1" colspan="1">Description</th></tr><tr><td rowspan="1" colspan="1">20050613</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">
<a href="http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC122">LC122</a>:
Replaced "binding" by "binding extension" where appropriate.
***************
*** 3682,3686 ****
</td></tr><tr><td rowspan="1" colspan="1">20030217</td><td rowspan="1" colspan="1">MJG</td><td rowspan="1" colspan="1">Fixed some issues with entities and validity errors
WRT ulists</td></tr><tr><td rowspan="1" colspan="1">20030212</td><td rowspan="1" colspan="1">JCS</td><td rowspan="1" colspan="1">Initial draft</td></tr></tbody></table><br></div><div class="div2">
! <h3><a id="N142AB" name="N142AB"></a>D.2 WSDL 2.0 Bindings Change Log</h3><a name="wsdl-spec3-changelog-table"></a><table border="1"><tbody><tr><th rowspan="1" colspan="1">Date</th><th rowspan="1" colspan="1">Author</th><th rowspan="1" colspan="1">Description</th></tr><tr><td rowspan="1" colspan="1">20050310</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Replaced <definitions> with <description>.
</td></tr><tr><td rowspan="1" colspan="1">20050310</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Fixed missing fault pseudo-schema.
</td></tr><tr><td rowspan="1" colspan="1">20050301</td><td rowspan="1" colspan="1">RRC</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC55">LC55</a>:
--- 3682,3686 ----
</td></tr><tr><td rowspan="1" colspan="1">20030217</td><td rowspan="1" colspan="1">MJG</td><td rowspan="1" colspan="1">Fixed some issues with entities and validity errors
WRT ulists</td></tr><tr><td rowspan="1" colspan="1">20030212</td><td rowspan="1" colspan="1">JCS</td><td rowspan="1" colspan="1">Initial draft</td></tr></tbody></table><br></div><div class="div2">
! <h3><a id="N14288" name="N14288"></a>D.2 WSDL 2.0 Bindings Change Log</h3><a name="wsdl-spec3-changelog-table"></a><table border="1"><tbody><tr><th rowspan="1" colspan="1">Date</th><th rowspan="1" colspan="1">Author</th><th rowspan="1" colspan="1">Description</th></tr><tr><td rowspan="1" colspan="1">20050310</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Replaced <definitions> with <description>.
</td></tr><tr><td rowspan="1" colspan="1">20050310</td><td rowspan="1" colspan="1">JJM</td><td rowspan="1" colspan="1">Fixed missing fault pseudo-schema.
</td></tr><tr><td rowspan="1" colspan="1">20050301</td><td rowspan="1" colspan="1">RRC</td><td rowspan="1" colspan="1"><a href="http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC55">LC55</a>:
Index: wsdl20-adjuncts.xml
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/wsdl20-adjuncts.xml,v
retrieving revision 1.245
retrieving revision 1.246
diff -C 2 -d -r1.245 -r1.246
*** wsdl20-adjuncts.xml 20 Feb 2007 17:45:31 -0000 1.245
--- wsdl20-adjuncts.xml 20 Feb 2007 23:45:33 -0000 1.246
***************
*** 999,1013 ****
a single element.</assert></p></item>
<item><p><assert class="component" id="WRPC-5023">For each pair <emph>(q, #in)</emph>, there MUST be a child element of the
! <el>input</el> element with a name of <emph>q</emph>. There MUST NOT be a child element
! of the <el>output</el> element with the name of <emph>q</emph>.</assert></p></item>
<item><p><assert class="component" id="WRPC-5024">For each pair <emph>(q, #out)</emph>, there MUST be a child element of the
! <el>output</el> element with a name of <emph>q</emph>. There MUST NOT be a child element
! of the <el>input</el> element with the name of <emph>q</emph>.</assert></p></item>
<item><p><assert class="component" id="WRPC-5025">For each pair <emph>(q, #inout)</emph>, there MUST be a child element of the
! <el>input</el> element with a name of <emph>q</emph>. There MUST also be a child element
! of the <el>output</el> element with the name of <emph>q</emph>.</assert></p></item>
<item><p><assert class="component" id="WRPC-5026">For each pair <emph>(q, #return)</emph>, there MUST be a child element of the
! <el>output</el> element with a name of <emph>q</emph>. There MUST NOT be a child element
! of the <el>input</el> element with the name of <emph>q</emph>.</assert></p></item>
</ulist>
<p>
--- 999,1013 ----
a single element.</assert></p></item>
<item><p><assert class="component" id="WRPC-5023">For each pair <emph>(q, #in)</emph>, there MUST be a child element of the
! input element with a name of <emph>q</emph>. There MUST NOT be a child element
! of the output element with the name of <emph>q</emph>.</assert></p></item>
<item><p><assert class="component" id="WRPC-5024">For each pair <emph>(q, #out)</emph>, there MUST be a child element of the
! output element with a name of <emph>q</emph>. There MUST NOT be a child element
! of the input element with the name of <emph>q</emph>.</assert></p></item>
<item><p><assert class="component" id="WRPC-5025">For each pair <emph>(q, #inout)</emph>, there MUST be a child element of the
! input element with a name of <emph>q</emph>. There MUST also be a child element
! of the output element with the name of <emph>q</emph>.</assert></p></item>
<item><p><assert class="component" id="WRPC-5026">For each pair <emph>(q, #return)</emph>, there MUST be a child element of the
! output element with a name of <emph>q</emph>. There MUST NOT be a child element
! of the input element with the name of <emph>q</emph>.</assert></p></item>
</ulist>
<p>
***************
*** 5638,5646 ****
<tr>
<td>20070220</td>
! <td>JJM</td>
! <td>Spell-checked.</td>
</tr>
! <tr>
<td>20070220</td>
<td>JJM</td>
--- 5638,5652 ----
<tr>
<td>20070220</td>
! <td>Jmarsh</td>
! <td>removed <el> formatting from RPC signature description per CR149.</td>
</tr>
! <tr>
! <td>20070220</td>
! <td>JJM</td>
! <td>Spell-checked.</td>
! </tr>
!
! <tr>
<td>20070220</td>
<td>JJM</td>
Received on Tuesday, 20 February 2007 23:45:46 UTC