private void parseMixed(char[] saved) throws Exception {
        // Check for PCDATA alone.
        skipWhitespace();
        if (tryRead(')')) {
            // VC: Proper Group/PE Nesting
            if (readBuffer != saved) {
                handler.verror("Illegal Group/PE nesting");
            }

            dataBufferAppend(")*");
            tryRead('*');
            return;
        }

        // Parse mixed content.
        skipWhitespace();
        while (!tryRead(")")) {
            require('|');
            dataBufferAppend('|');
            skipWhitespace();
            dataBufferAppend(readNmtoken(true));
            skipWhitespace();
        }

        // VC: Proper Group/PE Nesting
        if (readBuffer != saved) {
            handler.verror("Illegal Group/PE nesting");
        }

        require('*');
        dataBufferAppend(")*");
    }
private void parseMixed ( char [ ] saved ) throws Exception { skipWhitespace ( ) ; if ( tryRead ( ')' ) ) { if ( readBuffer != saved ) { handler . verror ( "Illegal Group/PE nesting" ) ; } dataBufferAppend ( ")*" ) ; tryRead ( '*' ) ; return ; } skipWhitespace ( ) ; while ( ! tryRead ( ")" ) ) { require ( '|' ) ; dataBufferAppend ( '|' ) ; skipWhitespace ( ) ; dataBufferAppend ( readNmtoken ( true ) ) ; skipWhitespace ( ) ; } if ( readBuffer != saved ) { handler . verror ( "Illegal Group/PE nesting" ) ; } require ( '*' ) ; dataBufferAppend ( ")*" ) ; }
Parse mixed content.

<pre>
[51] Mixed ::= '(' S? ( '#PCDATA' (S? '|' S? Name)*) S? ')*'
| '(' S? ('#PCDATA') S? ')'
</pre>

@param saved
Buffer for entity that should have the terminal ')'