Allow multiple <enumref> in a <bitcase>

Signed-off-by: Peter Harris <pharris@opentext.com>
This commit is contained in:
Peter Harris 2013-04-11 09:52:57 -04:00
parent 63fce1aa1a
commit ee71d96c83
2 changed files with 10 additions and 5 deletions

View file

@ -229,13 +229,18 @@ enum; the value is restricted to one of the constants named in the enum.
<switch> instead for new protocol definitions. <switch> instead for new protocol definitions.
<switch name="identifier"> switch expression <switch name="identifier"> switch expression
<bitcase> bitcase expression, fields </bitcase> </switch> <bitcase> bitcase expression(s), fields </bitcase> </switch>
This element represents conditional inclusion of fields. It can be viewed This element represents conditional inclusion of fields. It can be viewed
as sequence of multiple ifs: if ( switch expression & bitcase expression ) as sequence of multiple ifs: if ( switch expression & bitcase expression )
is equal to bitcase expression, bitcase fields are included in structure. is non-zero, bitcase fields are included in structure. It can be used only
It can be used only as the last field of structure. New protocol definitions as the last field of a structure.
should prefer to use this instead of <valueparam>.
When a bitcase includes multiple <enumref> clauses, the contents of the
bitcase are only present once regardless of the number of bitcase expressions
that match.
New protocol definitions should prefer to use this instead of <valueparam>.
Expressions Expressions
----------- -----------

View file

@ -59,7 +59,7 @@ authorization from the authors.
<xsd:complexType name="caseexpr"> <xsd:complexType name="caseexpr">
<xsd:sequence> <xsd:sequence>
<!-- case expression: --> <!-- case expression: -->
<xsd:group ref="expression" minOccurs="1" maxOccurs="1" /> <xsd:group ref="expression" minOccurs="1" maxOccurs="unbounded" />
<!-- match --> <!-- match -->
<xsd:group ref="fields" minOccurs="1" maxOccurs="unbounded" /> <xsd:group ref="fields" minOccurs="1" maxOccurs="unbounded" />
<xsd:choice> <xsd:choice>