protected boolean isValidQName(
        String prefix,
        String local,
        boolean xml11Version) {

        // check that both prefix and local part match NCName
        if (local == null)
            return false;
        boolean validNCName = false;

        if (!xml11Version) {
            validNCName =
                (prefix == null || XMLChar.isValidNCName(prefix))
                    && XMLChar.isValidNCName(local);
        } else {
            validNCName =
                (prefix == null || XML11Char.isXML11ValidNCName(prefix))
                    && XML11Char.isXML11ValidNCName(local);
        }

        return validNCName;
    }
protected boolean isValidQName ( String prefix , String local , boolean xml11Version ) { if ( local == null ) return false ; boolean validNCName = false ; if ( ! xml11Version ) { validNCName = ( prefix == null || XMLChar . isValidNCName ( prefix ) ) && XMLChar . isValidNCName ( local ) ; } else { validNCName = ( prefix == null || XML11Char . isXML11ValidNCName ( prefix ) ) && XML11Char . isXML11ValidNCName ( local ) ; } return validNCName ; }
Taken from org.apache.xerces.dom.CoreDocumentImpl

Checks if the given qualified name is legal with respect
to the version of XML to which this document must conform.

@param prefix prefix of qualified name
@param local local part of qualified name