public override void parse(XmlBContext ctxt, string endingTag)
{
#pragma warning disable 0168, 0219
int indicator = 0;
char quoteChar;
string tempStr = null;
bool fl2211;
bool fl2212;
#pragma warning restore 0168, 0219
ctxt.skipWhiteSpace();
{
// Accept Attributes
fl2211 = false ;
fl2212 = true ;
while (fl2212) { // BeginLoop
if (ctxt.lookAheadString("encoding=")){
indicator = 2211;
} else {
indicator = 2213;
} // If
switch (indicator) {
case 2211: {
// Handling attribute encoding
// Also handles alien attributes with prefix encoding
if (fl2211){
ctxt.fail ("Duplicate attribute: encoding");
} // If
fl2211 = true ;
quoteChar = ctxt.acceptQuote();
this.setEncoding((acceptor.lAcceptPcData(ctxt,-1, quoteChar, XmlBContext.WS_PRESERVE)));
ctxt.accept(quoteChar);
ctxt.skipWhiteSpace();
break;
} // End of dispatch label
// Final default label
case 2213: {
// Taking ignorable attributes into account
if (ctxt.isAlNum()){
ctxt.skipTill ('=');
ctxt.advance();
ctxt.skipWhiteSpace();
quoteChar = ctxt.acceptQuote();
ctxt.skipTill (quoteChar);
ctxt.accept(quoteChar);
ctxt.skipWhiteSpace();
} else {
if (!fl2211){
ctxt.fail ("Mandatory attribute missing: encoding in char-value");
} // If
fl2212 = false ;
} // If
break;
} // End of dispatch label
} // Dispatch
} // While
}
ctxt.skipWhiteSpace();
if (ctxt.current() == '/'){
ctxt.advance();
ctxt.accept('>');
} else {
ctxt.accept('>');
parseBody(ctxt);
ctxt.acceptString ("</char-value>");
// If formula empty
} // If
}