You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by tn...@apache.org on 2003/01/16 21:35:04 UTC

cvs commit: xml-xerces/c/doc faq-parse.xml

tng         2003/01/16 12:35:04

  Modified:    c/doc    faq-parse.xml
  Log:
  Doc update: modify FAQ about using transcodeTo and transcodeFrom, give an example.
  
  Revision  Changes    Path
  1.52      +27 -14    xml-xerces/c/doc/faq-parse.xml
  
  Index: faq-parse.xml
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/doc/faq-parse.xml,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- faq-parse.xml	27 Aug 2002 03:04:48 -0000	1.51
  +++ faq-parse.xml	16 Jan 2003 20:35:04 -0000	1.52
  @@ -597,8 +597,8 @@
            transcoder wrappers. You get a transcoder like this:
          </p>
          <ul>
  -		 <li>
  -         1. Call XMLPlatformUtils::fgTransServer->MakeNewTranscoderFor() and provide
  +         <li>
  +            Call XMLPlatformUtils::fgTransServer->MakeNewTranscoderFor() and provide
               the name of the encoding you wish to create a transcoder for. This will
               return a transcoder to you, which you own and must delete when you are
               through with it.
  @@ -612,35 +612,35 @@
              ever have to deal with and can set itself up for that internally. In
              general, you should stick to block sizes in the 4 to 64K range.
            </li>
  -		 <li>
  -         2. The returned transcoder is something derived from XMLTranscoder, so they
  +         <li>
  +            The returned transcoder is something derived from XMLTranscoder, so they
               are all returned to you via that interface.
            </li>
  -		 <li>
  -         3. This object is really just a wrapper around the underlying transcoding
  +         <li>
  +            This object is really just a wrapper around the underlying transcoding
               system actually in use by your version of Xerces, and does whatever is
               necessary to handle differences between the XMLCh representation and the
               representation used by that underlying transcoding system.
            </li>
  -		 <li>
  -         4. The transcoder object has two primary APIs, transcodeFrom() and
  +         <li>
  +            The transcoder object has two primary APIs, transcodeFrom() and
               transcodeTo(). These transcode between the XMLCh format and the encoding you
               indicated.
            </li>
  -		 <li>
  -         5. These APIs will transcode as much of the source data as will fit into the
  +         <li>
  +            These APIs will transcode as much of the source data as will fit into the
               outgoing buffer you provide. They will tell you how much of the source they
               ate and how much of the target they filled. You can use this information to
               continue the process until all source is consumed.
            </li>
  -		 <li>
  -         6. char* data is always dealt with in terms of bytes, and XMLCh data is
  +         <li>
  +            char* data is always dealt with in terms of bytes, and XMLCh data is
               always dealt with in terms of characters. Don't mix up which you are dealing
               with or you will not get the correct results, since many encodings don't
               have a one to one relationship of characters to bytes.
            </li>
  -		 <li>
  -         7. When transcoding from XMLCh to the target encoding, the transcodeTo()
  +         <li>
  +            When transcoding from XMLCh to the target encoding, the transcodeTo()
               method provides an 'unrepresentable flag' parameter, which tells the
               transcoder how to deal with an XMLCh code point that cannot be converted
               legally to the target encoding, which can easily happen since XMLCh is
  @@ -650,6 +650,19 @@
               throw an exception.
            </li>
          </ul>
  +         <p>Here is an example:</p>
  +<source>
  +// create an XMLTranscoder that is able to transcode between Unicode and Big5
  +// ASSUMPTION: assumes your underlying transcoding utility supports this encoding Big5
  +XMLTranscoder* t = XMLPlatformUtils::fgTransService->makeNewTranscoderFor("Big5", failReason, 16*1024);
  +
  +// source string is in Unicode, wanna to transcode to Big5
  +t-&gt;transcodeTo(source_unicode, length, result_Big5, length, charsEaten, XMLTranscoder::UnRep_Throw );
  +
  +// source string in Big5, wanna to transcode to Unicode
  +t-&gt;transcodeFrom(source_Big5, length, result_unicode, length, bytesEaten, (unsigned char*)charSz);
  +</source>
  +
       </a>
     </faq>
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org