code: @Override
      public void characters(char[] ch, int start, int length) 
          throws SAXException {
          // read entire inline XML metadata chunks into a buffer
          if (m_inXMLMetadata && !m_gotAudit) {
              // since this data is encoded straight back to xml,
              // we need to make sure special characters &, <, >, ", and '
              // are re-converted to the xml-acceptable equivalents.
              ensureInlineXmlCharBuffer();
              StreamUtility.enc(ch, start, length, m_dsXMLBuffer);
          } else if (m_gotAudit || m_readingBinaryContent){
              // Use a separate buffer to deal with the special case
              // of AUDIT datastreams, which may be inline, but need to
              // retrieve individual element content to deserialize correctly
              // append element content into a byte buffer; or b64-encoded
              // binary content
              if (m_elementContent == null) {
                  m_elementContent = new ReadableByteArrayOutputStream();
              }
              CharBuffer chars = CharBuffer.wrap(ch, start, length);
              ByteBuffer bytes = Charset.forName(m_characterEncoding).encode(chars);
              m_elementContent.write(bytes.array(), bytes.arrayOffset(), bytes.limit());
          }
      }
docs: {@inheritDoc}