private void parseCp() throws Exception {
        if (tryRead('(')) {
            dataBufferAppend('(');
            parseElements(readBuffer);
        } else {
            dataBufferAppend(readNmtoken(true));
            char c = readCh();
            switch (c) {
                case '?':
                case '*':
                case '+':
                    dataBufferAppend(c);
                    break;
                default:
                    unread(c);
                    break;
            }
        }
    }
private void parseCp ( ) throws Exception { if ( tryRead ( '(' ) ) { dataBufferAppend ( '(' ) ; parseElements ( readBuffer ) ; } else { dataBufferAppend ( readNmtoken ( true ) ) ; char c = readCh ( ) ; switch ( c ) { case '?' : case '*' : case '+' : dataBufferAppend ( c ) ; break ; default : unread ( c ) ; break ; } } }
Parse a content particle.

<pre>
[48] cp ::= (Name | choice | seq) ('?' | '*' | '+')?
</pre>