00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #include "stdafx.h"
00035 #include <libCMMLTags/C_CMMLTag.h>
00036
00037 C_CMMLTag::C_CMMLTag(void)
00038 {
00039 }
00040
00041 C_CMMLTag::~C_CMMLTag(void)
00042 {
00043 }
00044
00045
00046 wstring C_CMMLTag::id() {
00047 return mId;
00048 }
00049
00050
00051 void C_CMMLTag::setId(wstring inId) {
00052 mId = inId;
00053 }
00054
00055
00056 wstring C_CMMLTag::makeAttribute(wstring inElemName, wstring inElemContent) {
00057 if (inElemContent != L"") {
00058 wstring retStr;
00059 retStr = L" " + escapeEntities(inElemName) + L"=\"" + escapeEntities(inElemContent) + L"\"";
00060 return retStr;
00061 } else {
00062 return L"";
00063 }
00064 }
00065
00066 wstring C_CMMLTag::makeRequiredAttribute(wstring inElemName, wstring inElemContent) {
00067 wstring retStr;
00068 retStr = L" " + escapeEntities(inElemName) + L"=\"" + escapeEntities(inElemContent) + L"\"";
00069 return retStr;
00070 }
00071
00072
00073 wstring C_CMMLTag::replaceAll(wstring inOriginal, wchar_t inReplaceThis, wstring inWithThis)
00074 {
00075 size_t locPos = 0;
00076
00077 while ((locPos = inOriginal.find(inReplaceThis,locPos)) != wstring::npos)
00078 {
00079 inOriginal.replace( locPos++, 1, inWithThis );
00080 }
00081 return inOriginal;
00082
00083 }
00084
00085
00086
00087
00088
00089
00090
00091
00092 wstring C_CMMLTag::escapeEntities(wstring inString)
00093 {
00094 wstring retStr = inString;
00095
00096 retStr = replaceAll(retStr, L'&', L"&");
00097 retStr = replaceAll(retStr, L'<', L"<");
00098 retStr = replaceAll(retStr, L'>', L">");
00099 retStr = replaceAll(retStr, L'"', L""");
00100 retStr = replaceAll(retStr, L'\'', L"'");
00101
00102 return retStr;
00103
00104 }
00105
00106
00107 void C_CMMLTag::privateClone(C_CMMLTag* outTag) {
00108 outTag->setId(mId);
00109 }
00110
00111 C_CMMLTag::eTagType C_CMMLTag::tagType() {
00112 return mTagType;
00113 }
00114