code: public final TextBuilder getAttrBuilder(String attrPrefix, String attrLocalName) throws XMLStreamException
      {
          /* Ok: we have parsed prefixed-name of a regular
           * attribute. So let's initialize the instance...
           */
          if (mAttrCount == 0) {
              if (mAttributes == null) {
                  allocBuffers();
              }
              mAttributes[0] = new Attribute(attrPrefix, attrLocalName, 0);
          } else {
              int valueStart = mValueBuilder.getCharSize();
              if (mAttrCount >= mAttributes.length) {
                  if ((mAttrCount + mNsCount) >= mMaxAttributesPerElement) {
                      throw new XMLStreamException("Attribute limit ("+mMaxAttributesPerElement+") exceeded");
                  }
                  mAttributes = (Attribute[]) DataUtil.growArrayBy50Pct(mAttributes);
              }
              Attribute curr = mAttributes[mAttrCount];
              if (curr == null) {
                  mAttributes[mAttrCount] = new Attribute(attrPrefix, attrLocalName, valueStart);
              } else {
                  curr.reset(attrPrefix, attrLocalName, valueStart);
              }
          }
          ++mAttrCount;
          // 25-Sep-2006, TSa: Need to keep track of xml:id attribute?
          if (attrLocalName == mXmlIdLocalName) {
              if (attrPrefix == mXmlIdPrefix) {
                  if (mXmlIdAttrIndex != XMLID_IX_DISABLED) {
                      mXmlIdAttrIndex = mAttrCount - 1;
                  }
              }
          }
          /* Can't yet create attribute map by name, since we only know
           * name prefix, not necessarily matching URI.
           */ 
          return mValueBuilder;
      }
docs: Low-level accessor method that attribute validation code may call
  for certain types of attributes; generally only for id and idref/idrefs
  attributes. It returns the underlying 'raw' attribute value buffer
  for direct access.