_prefixTable.pushScope(_prefixIndex, _namespaceNameIndex);
if (_namespacePrefixesFeature) {
// Add the namespace delcaration as an attribute
if (prefix != "") {
_attributes.addAttribute(new QualifiedName(
EncodingConstants.XMLNS_NAMESPACE_PREFIX,
EncodingConstants.XMLNS_NAMESPACE_NAME,
prefix),
namespaceName);
} else {
_attributes.addAttribute(EncodingConstants.DEFAULT_NAMESPACE_DECLARATION,
namespaceName);
}
}
try {
_contentHandler.startPrefixMapping(prefix, namespaceName);
} catch (SAXException e) {
throw new IOException("processStartNamespaceAII");
}
b = read();
}
if (b != EncodingConstants.TERMINATOR) {
throw new IOException(CommonResourceBundle.getInstance().getString("message.EIInamespaceNameNotTerminatedCorrectly"));
}
final int end = _namespacePrefixesIndex;
_b = read();
switch(DecoderStateTables.EII(_b)) {
case DecoderStateTables.EII_NO_AIIS_INDEX_SMALL:
processEII(_elementNameTable._array[_b], hasAttributes);
break;
case DecoderStateTables.EII_INDEX_MEDIUM:
processEII(decodeEIIIndexMedium(), hasAttributes);
break;
case DecoderStateTables.EII_INDEX_LARGE:
processEII(decodeEIIIndexLarge(), hasAttributes);
break;
case DecoderStateTables.EII_LITERAL:
{
final QualifiedName qn = decodeLiteralQualifiedName(
_b & EncodingConstants.LITERAL_QNAME_PREFIX_NAMESPACE_NAME_MASK,
_elementNameTable.getNext());
_elementNameTable.add(qn);
processEII(qn, hasAttributes);
break;