XalanDOMChar XalanTranscodingServices::getMaximumCharacterValue() { // $$$ ToDo: We need to set this according to the local // code page, but how? Perhaps try to transcode various // strings with increasingly larger character values, using // DOMStringHelper's TranscodeToLocalCodePage()? Not exactly // what we need, but it may do. return XalanDOMChar(0x7fu); }
XalanDOMChar XalanTranscodingServices::getMaximumCharacterValue(const XalanDOMString& theEncoding) { if (compareIgnoreCaseASCII(c_wstr(theEncoding), s_utf8String) == 0 || compareIgnoreCaseASCII(c_wstr(theEncoding), s_utf16String) == 0) { return XalanDOMChar(0xFFFFu); } else if (compareIgnoreCaseASCII(c_wstr(theEncoding), s_iso88591String) == 0) { return XalanDOMChar(0x00FFu); } else if (compareIgnoreCaseASCII(c_wstr(theEncoding), s_utf16LEString) == 0 || compareIgnoreCaseASCII(c_wstr(theEncoding), s_utf16BEString) == 0 || compareIgnoreCaseASCII(c_wstr(theEncoding), s_utf32String) == 0 || compareIgnoreCaseASCII(c_wstr(theEncoding), s_shiftJISString) == 0) { return XalanDOMChar(0xFFFFu); } else { return XalanDOMChar(0x007fu); } }
// Append the suffix to the provided string. void getSuffix( const XalanNode* theNode, XalanDOMString& theResult) { assert(theNode != 0); // We're assuming here that each node has an implementation with a // unique address that we can convert into a string... if (theNode->getOwnerDocument() != 0) { PointerToDOMString(theNode->getOwnerDocument(), theResult); append(theResult, XalanDOMChar(XalanUnicode::charFullStop)); } PointerToDOMString(theNode, theResult); }
XalanDOMString& XalanDOMString::assign( iterator theFirstPosition, iterator theLastPosition) { invariants(); m_data.reserve(theLastPosition - theFirstPosition + 1); m_data.assign(theFirstPosition, theLastPosition); m_data.push_back(XalanDOMChar(0)); m_size = size_type(m_data.size()) - 1; assert(m_data.size() - 1 == m_size); invariants(); return *this; }
const XalanTranscodingServices::XalanXMLByte XalanTranscodingServices::s_UTF8ByteOrderMark[] = { XalanTranscodingServices::XalanXMLByte(0xEF), XalanTranscodingServices::XalanXMLByte(0xBB), XalanTranscodingServices::XalanXMLByte(0xBF), XalanTranscodingServices::XalanXMLByte(0) }; const XalanDOMChar XalanTranscodingServices::s_UTF16ByteOrderMark[] = { XalanDOMChar(0xFEFF), XalanDOMChar(0) }; XALAN_USING_XERCES(XMLTransService) static XalanTranscodingServices::eCode translateCode(XMLTransService::Codes theCode) { if (theCode == XMLTransService::Ok) { return XalanTranscodingServices::OK;