private void errLtOrEqualsOrGraveInUnquotedAttributeOrNull(char c)
            throws SAXException {
        switch (c) {
            case '=':
                err("\u201C=\u201D at the start of an unquoted \u201C"
                        + piTarget
                        + "\u201D pseudo-attribute value. Probable cause:"
                        + " Stray duplicate equals sign.");
                return;
            case '<':
                /*
                 * we deal with this case in the attribute-value error- checking
                 * code in the getPseudoAttributesFromPiData method
                 */
                // err("\u201C<\u201D at the start of an unquoted attribute
                // value. Probable cause: Missing \u201C>\u201D immediately
                // before.");
                return;
            case '`':
                err("\u201C`\u201D at the start of an unquoted \u201C"
                        + piTarget
                        + "\u201D pseudo-attribute value. Probable cause:"
                        + " Using the wrong character as a quote.");
                return;
        }
    }
Collect a set of attribues and values from the data part of a PI.

<p>
The bulk of this method and associated methods that follow it here are
copied from the nu.validator.htmlparser.impl.Tokenizer class, with
appropriate modifications.
</p>

@see nu.validator.htmlparser.impl.Tokenizer
@see nu.validator.htmlparser.impl.ErrorReportingTokenizer
src/nu/validator/checker/XmlPiChecker.java