hi alberto, what is the encoding i have to set for the CT2CA object? how do i do this? please let me know
regards, Pranav On Mon, Dec 1, 2008 at 3:31 PM, Alberto Massari <[EMAIL PROTECTED]>wrote: > Pranav Savkur wrote: > >> Hello Alberto, thanks for replying. >> 1.i do hav an XMLException block but the control does not come here >> 2. i have deleted the wrapper4inputsource now >> 3.its just that the m_XMLFileName in this case contains the XML string >> itself and not really the file name. >> >> > > If m_XMLFileName contains an XML string, and you really need to convert it > to a different encoding using the CT2CA object, you should invoke > setEncoding on the MemBufInputSource to tell the parser to ignore the > encoding declaration contained in the XML stream. > If this also fails, you should just try running the program in the debugger > and see what exception is really thrown. > > Alberto > > > Is it correct the way the parameters to MembufInput source are data typed? >> We are using VS2005 with Xerces 2.8 >> >> On Mon, Dec 1, 2008 at 3:11 PM, Alberto Massari <[EMAIL PROTECTED] >> >wrote: >> >> >> >>> A few things that you should check: >>> 1) add a catch handler for XMLException, and check what getMessage says; >>> using only the catch(...) will not give you any information on the real >>> cause of the error >>> 2) why are you declaring a Wrapper4InputSource object if you are not >>> using >>> it? >>> 3) the MemBufInputSource class must be used to hold an XML fragment, but >>> you are constructing it around a variable named m_XMLFileName; if this >>> variable holds a file name (instead of the file content) you should use >>> LocalFileInputSource >>> >>> Alberto >>> >>> >>> Pranav Savkur wrote: >>> >>> >>> >>>> I have one implementation in Xerces C++ 2.8 where in I have this code: >>>> >>>> >>>> >>>> >>>>> try >>>>> { >>>>> //const XMLCh* const bufID = NULL; >>>>> const XMLCh *const bufId = _T("SPVoice"); >>>>> //static const TCHAR* bufID = "SPVoice"; >>>>> CT2CA pszConvertedAnsiString (m_XMLFileName); >>>>> std::string strStd (pszConvertedAnsiString); >>>>> >>>>> const char* pStr = strStd.c_str(); >>>>> //char* TCHAR = StringToChar(m_XMLFileName); >>>>> >>>>> TRACE_INFO("CSPVXMLParserWrapper::CreateDOMTree() converted >>>>> StringToChar"); >>>>> >>>>> MemBufInputSource* memBufIS = new >>>>> MemBufInputSource( >>>>> (const XMLByte *)pStr >>>>> ,strlen(pStr) >>>>> , bufId >>>>> , false >>>>> ); >>>>> >>>>> TRACE_INFO("CSPVXMLParserWrapper::CreateDOMTree() formed >>>>> MemBufInputSourceObject Successfully"); >>>>> >>>>> m_pDOMParser->setDoNamespaces(false); >>>>> TRACE_INFO("Entering >>>>> CSPVXMLParserWrapper::CreateDOMTree() SetDoNamespace set to false"); >>>>> >>>>> Wrapper4InputSource wrap(memBufIS, false); >>>>> >>>>> m_pDOMParser->parse(*memBufIS); >>>>> } >>>>> catch (...) >>>>> { >>>>> cstrTraceMsg.Format(_T("ERROR: Internal Error >>>>> - Unexpected exception during parsing: %s "), m_XMLFileName); >>>>> >>>>> TRACE_ERROR(CLString(cstrTraceMsg),ERR_FAILURE); >>>>> sifRetCode = ERR_FAILURE; >>>>> m_strErrorString = _T("Generic Exception >>>>> During Parsing the input XML File.Please check if the XML input >>>>> conforms to the schema"); >>>>> >>>>> } >>>>> >>>>> At the m_pDOMParser->parse(*memBufIS); The control goes into the catch >>>>> block. >>>>> Can you point out any probs in the code? Without the >>>>> Wrapper4InputSource wrap(memBufIS, false);, this code was working in >>>>> Xerces 2.2 of C++ >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>> >>> >> >> >> > >