tng 2002/12/10 13:01:33 Modified: c/src/xercesc/dom/impl DOMWriterImpl.cpp DOMWriterImpl.hpp Log: NLS: DOMWriter should use message loader to load message instead of using hardcoded static stirng Revision Changes Path 1.25 +41 -37 xml-xerces/c/src/xercesc/dom/impl/DOMWriterImpl.cpp Index: DOMWriterImpl.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMWriterImpl.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- DOMWriterImpl.cpp 10 Dec 2002 18:59:14 -0000 1.24 +++ DOMWriterImpl.cpp 10 Dec 2002 21:01:32 -0000 1.25 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.25 2002/12/10 21:01:32 tng + * NLS: DOMWriter should use message loader to load message instead of using hardcoded static stirng + * * Revision 1.24 2002/12/10 18:59:14 tng * pretty format print: consistent newline * @@ -137,6 +140,7 @@ #include "DOMWriterImpl.hpp" #include "DOMErrorImpl.hpp" #include "DOMLocatorImpl.hpp" +#include "DOMImplementationImpl.hpp" #include <xercesc/framework/MemBufFormatTarget.hpp> @@ -145,6 +149,8 @@ #include <xercesc/util/Janitor.hpp> #include <xercesc/util/XMLString.hpp> #include <xercesc/util/XMLUniDefs.hpp> +#include <xercesc/util/XMLMsgLoader.hpp> + XERCES_CPP_NAMESPACE_BEGIN @@ -325,31 +331,6 @@ chSpace, chDoubleQuote, chNull }; -// Unrecognized node type -static const XMLCh gUnrecognizedNodeType[] = -{ - chLatin_U, chLatin_n, chLatin_r, chLatin_e, chLatin_c, chLatin_o, - chLatin_g, chLatin_n, chLatin_i, chLatin_z, chLatin_e, chLatin_d, - chSpace, chLatin_N, chLatin_o, chLatin_d, chLatin_e, chSpace, - chLatin_T, chLatin_y, chLatin_p, chLatin_e, chNull -}; - -// nested cdata -static const XMLCh gNestedCdata[] = -{ - chLatin_N, chLatin_e, chLatin_s, chLatin_t, chLatin_e, chLatin_d, - chLatin_C, chLatin_D, chLatin_a, chLatin_t, chLatin_a, chNull -}; - -// Unrepresentable char -static const XMLCh gUnrepresentableChar[] = -{ - chLatin_U, chLatin_n, chLatin_r, chLatin_e, chLatin_p, chLatin_r, - chLatin_e, chLatin_s, chLatin_e, chLatin_n, chLatin_t, chLatin_a, - chLatin_b, chLatin_l, chLatin_e, chSpace, chLatin_C, chLatin_h, - chLatin_a, chLatin_r, chNull -}; - //Feature static const XMLCh gFeature[] = { @@ -569,7 +550,7 @@ return false; } - catch (const DOMException&) + catch (const XMLDOMMsg::Codes) { return false; } @@ -1031,8 +1012,7 @@ // search for "]]>" if (XMLString::patternMatch((XMLCh* const) nodeValue, gEndCDATA) != -1) { - reportError(nodeToWrite, DOMError::DOM_SEVERITY_FATAL_ERROR, gNestedCdata); - throw DOMException(DOMException::SYNTAX_ERR, gNestedCdata); + reportError(nodeToWrite, DOMError::DOM_SEVERITY_FATAL_ERROR, XMLDOMMsg::Writer_NestedCDATA); } TRY_CATCH_THROW @@ -1099,8 +1079,7 @@ // [75] ExternalID ::= 'SYSTEM' S SystemLiteral // | 'PUBLIC' S PubidLiteral S SystemLiteral // - reportError(nodeToWrite, DOMError::DOM_SEVERITY_FATAL_ERROR, gUnrecognizedNodeType); - throw DOMException(DOMException::NOT_FOUND_ERR, 0); + reportError(nodeToWrite, DOMError::DOM_SEVERITY_FATAL_ERROR, XMLDOMMsg::Writer_NotRecognizedType); // systemLiteral not found } } @@ -1162,8 +1141,7 @@ once unrecognized node type encountered. ***/ { - reportError(nodeToWrite, DOMError::DOM_SEVERITY_FATAL_ERROR, gUnrecognizedNodeType); - throw DOMException(DOMException::NOT_FOUND_ERR, 0); + reportError(nodeToWrite, DOMError::DOM_SEVERITY_FATAL_ERROR, XMLDOMMsg::Writer_NotRecognizedType); // UnreognizedNodeType; } @@ -1247,6 +1225,33 @@ } fErrorCount++; + + return toContinueProcess; +} + +bool DOMWriterImpl::reportError(const DOMNode* const errorNode + , DOMError::ErrorSeverity errorType + , XMLDOMMsg::Codes toEmit) +{ + const unsigned int msgSize = 1023; + XMLCh errText[msgSize + 1]; + + DOMImplementationImpl::getMsgLoader4DOM()->loadMsg(toEmit, errText, msgSize); + + bool toContinueProcess = true; // default value for no error handler + + if (fErrorHandler) + { + DOMLocatorImpl locator(0, 0, (DOMNode* const) errorNode, 0, 0); + DOMErrorImpl domError(errorType , errText, &locator); + toContinueProcess = fErrorHandler->handleError(domError); + } + + fErrorCount++; + + if (errorType == DOMError::DOM_SEVERITY_FATAL_ERROR) + throw toEmit; + return toContinueProcess; } @@ -1277,8 +1282,7 @@ { nextPtr = curPtr + endTagPos + offset; // skip the ']]>' *(curPtr + endTagPos) = chNull; //nullify the first ']' - - reportError(nodeToWrite, DOMError::DOM_SEVERITY_WARNING, gNestedCdata); + reportError(nodeToWrite, DOMError::DOM_SEVERITY_WARNING, XMLDOMMsg::Writer_NestedCDATA); } else { @@ -1381,7 +1385,7 @@ // // one warning for consective unrep chars - reportError(nodeToWrite, DOMError::DOM_SEVERITY_WARNING, gUnrepresentableChar); + reportError(nodeToWrite, DOMError::DOM_SEVERITY_WARNING, XMLDOMMsg::Writer_NotRepresentChar); while (srcPtr < endPtr) { @@ -1426,7 +1430,7 @@ { fCurrentLine++; *fFormatter << fNewLineUsed; -} + } } void DOMWriterImpl::printIndent(int level) const 1.10 +10 -3 xml-xerces/c/src/xercesc/dom/impl/DOMWriterImpl.hpp Index: DOMWriterImpl.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMWriterImpl.hpp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- DOMWriterImpl.hpp 9 Dec 2002 11:46:08 -0000 1.9 +++ DOMWriterImpl.hpp 10 Dec 2002 21:01:32 -0000 1.10 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.10 2002/12/10 21:01:32 tng + * NLS: DOMWriter should use message loader to load message instead of using hardcoded static stirng + * * Revision 1.9 2002/12/09 11:46:08 gareth * More pretty pretty print feature. Patch by Kevin King. Closes bug #13840. * @@ -308,6 +311,7 @@ #include <xercesc/dom/DOM.hpp> #include <xercesc/dom/DOMWriter.hpp> +#include <xercesc/util/XMLDOMMsg.hpp> XERCES_CPP_NAMESPACE_BEGIN @@ -380,6 +384,9 @@ bool reportError(const DOMNode* const errorNode , DOMError::ErrorSeverity errorType , const XMLCh* const errorMsg); + bool reportError(const DOMNode* const errorNode + , DOMError::ErrorSeverity errorType + , XMLDOMMsg::Codes toEmit); void procCdataSection(const XMLCh* const nodeValue , const DOMNode* const nodeToWrite); @@ -436,8 +443,8 @@ // based on this value. // // fCurrentLine - // the current line. Used to track the line number the current - // node begins on + // the current line. Used to track the line number the current + // node begins on // // -----------------------------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]