21 @file |
21 @file |
22 @released |
22 @released |
23 @internalTechnology |
23 @internalTechnology |
24 */ |
24 */ |
25 |
25 |
|
26 #include "util.h" |
26 #include "xmlgenerator.h" |
27 #include "xmlgenerator.h" |
27 #include "../common/exception.h" |
28 #include "exception.h" |
28 #include "is_utils.h" |
29 #include "is_utils.h" |
29 #include "../common/util.h" |
30 |
30 #include "utf8_wrapper.h" |
31 #include "utf8_wrapper.h" |
31 |
32 |
32 #include <xercesc/dom/DOM.hpp> |
33 #include <xercesc/dom/DOM.hpp> |
33 #include <xercesc/util/XMLString.hpp> |
34 #include <xercesc/util/XMLString.hpp> |
34 #include <xercesc/util/PlatformUtils.hpp> |
35 #include <xercesc/util/PlatformUtils.hpp> |
106 const XMLCh* KRomApplication = (const XMLCh*) "R\0o\0m\0A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0\0\0"; |
107 const XMLCh* KRomApplication = (const XMLCh*) "R\0o\0m\0A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0\0\0"; |
107 const XMLCh* KApplicationRegistrationInfo = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0R\0e\0g\0i\0s\0t\0r\0a\0t\0i\0o\0n\0I\0n\0f\0o\0\0\0"; |
108 const XMLCh* KApplicationRegistrationInfo = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0R\0e\0g\0i\0s\0t\0r\0a\0t\0i\0o\0n\0I\0n\0f\0o\0\0\0"; |
108 const XMLCh* KOpaqueData = (const XMLCh*) "O\0p\0a\0q\0u\0e\0D\0a\0t\0a\0\0\0"; |
109 const XMLCh* KOpaqueData = (const XMLCh*) "O\0p\0a\0q\0u\0e\0D\0a\0t\0a\0\0\0"; |
109 const XMLCh* KData = (const XMLCh*) "D\0a\0t\0a\0\0\0"; |
110 const XMLCh* KData = (const XMLCh*) "D\0a\0t\0a\0\0\0"; |
110 const XMLCh* KOpaqueLocale = (const XMLCh*) "O\0p\0a\0q\0u\0e\0L\0o\0c\0a\0l\0e\0\0\0"; |
111 const XMLCh* KOpaqueLocale = (const XMLCh*) "O\0p\0a\0q\0u\0e\0L\0o\0c\0a\0l\0e\0\0\0"; |
|
112 const XMLCh* KIsBinary = (const XMLCh*) "I\0s\0B\0i\0n\0a\0r\0y\0\0\0"; |
111 const XMLCh* KFileOwnershipinfo = (const XMLCh*) "F\0i\0l\0e\0O\0w\0n\0e\0r\0s\0h\0i\0p\0i\0n\0f\0o\0\0\0"; |
113 const XMLCh* KFileOwnershipinfo = (const XMLCh*) "F\0i\0l\0e\0O\0w\0n\0e\0r\0s\0h\0i\0p\0i\0n\0f\0o\0\0\0"; |
112 const XMLCh* KFileName = (const XMLCh*) "F\0i\0l\0e\0N\0a\0m\0e\0\0\0"; |
114 const XMLCh* KFileName = (const XMLCh*) "F\0i\0l\0e\0N\0a\0m\0e\0\0\0"; |
113 const XMLCh* KApplicationLocalizableInfo = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0I\0n\0f\0o\0\0\0"; |
115 const XMLCh* KApplicationLocalizableInfo = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0I\0n\0f\0o\0\0\0"; |
114 const XMLCh* KLocalizableAttribute = (const XMLCh*) "L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0A\0t\0t\0r\0i\0b\0u\0t\0e\0\0\0"; |
116 const XMLCh* KLocalizableAttribute = (const XMLCh*) "L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0A\0t\0t\0r\0i\0b\0u\0t\0e\0\0\0"; |
115 const XMLCh* KLocalizableAttribute_Value = (const XMLCh*) "L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0A\0t\0t\0r\0i\0b\0u\0t\0e\0_\0V\0a\0l\0u\0e\0\0\0"; |
117 const XMLCh* KLocalizableAttribute_Value = (const XMLCh*) "L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0A\0t\0t\0r\0i\0b\0u\0t\0e\0_\0V\0a\0l\0u\0e\0\0\0"; |
438 for( fileAppOpaqueDataType = aAppOpaqueDataType.begin() ; fileAppOpaqueDataType != aAppOpaqueDataType.end() ; ++fileAppOpaqueDataType) |
440 for( fileAppOpaqueDataType = aAppOpaqueDataType.begin() ; fileAppOpaqueDataType != aAppOpaqueDataType.end() ; ++fileAppOpaqueDataType) |
439 { |
441 { |
440 if(0 == fileAppOpaqueDataType->iServiceUid) |
442 if(0 == fileAppOpaqueDataType->iServiceUid) |
441 { |
443 { |
442 DOMElement* filePropValueRoot = AddTag(compFileRoot, aDocument, KOpaqueData); |
444 DOMElement* filePropValueRoot = AddTag(compFileRoot, aDocument, KOpaqueData); |
443 XercesString opaqueData = WStringToXercesString(fileAppOpaqueDataType->iOpaqueData); |
445 |
444 AddChildElement(filePropValueRoot,aDocument, KData, opaqueData.c_str()); |
446 if(fileAppOpaqueDataType->iIsBinary) |
|
447 { |
|
448 std::string temp = wstring2string(fileAppOpaqueDataType->iOpaqueData); |
|
449 std::string binStrData = Util::Base64Encode(temp); |
|
450 std::wstring binData = string2wstring(binStrData); |
|
451 AddChildElement(filePropValueRoot,aDocument, KData, binData.c_str()); |
|
452 } |
|
453 else |
|
454 { |
|
455 AddChildElement(filePropValueRoot,aDocument, KData, fileAppOpaqueDataType->iOpaqueData.c_str()); |
|
456 } |
|
457 |
445 XercesString locale = IntegerToXercesString(fileAppOpaqueDataType->iLocale); |
458 XercesString locale = IntegerToXercesString(fileAppOpaqueDataType->iLocale); |
446 AddChildElement(filePropValueRoot,aDocument, KOpaqueLocale, locale.c_str()); |
459 AddChildElement(filePropValueRoot,aDocument, KOpaqueLocale, locale.c_str()); |
|
460 |
|
461 XercesString iBinary = IntegerToXercesString(fileAppOpaqueDataType->iIsBinary); |
|
462 AddChildElement(filePropValueRoot,aDocument, KIsBinary, iBinary.c_str()); |
|
463 |
447 } |
464 } |
448 } |
465 } |
449 |
466 |
450 for(vector<std::wstring>::iterator mimeiter = compFileIter->iFileOwnershipInfo.begin() ; mimeiter != compFileIter->iFileOwnershipInfo.end() ; ++mimeiter ) |
467 for(vector<std::wstring>::iterator mimeiter = compFileIter->iFileOwnershipInfo.begin() ; mimeiter != compFileIter->iFileOwnershipInfo.end() ; ++mimeiter ) |
451 { |
468 { |