亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xmldatetime.cpp

?? IBM的解析xml的工具Xerces的源代碼
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
    //find 'Y'    int end = indexOf(fStart, endDate, DURATION_Y);    if ( end != NOT_FOUND )    {        //scan year        fValue[CentYear] = negate * parseInt(fStart, end);        fStart = end+1;        designator = true;    }    end = indexOf(fStart, endDate, DURATION_M);    if ( end != NOT_FOUND )    {        //scan month        fValue[Month] = negate * parseInt(fStart, end);        fStart = end+1;        designator = true;    }    end = indexOf(fStart, endDate, DURATION_D);    if ( end != NOT_FOUND )    {        //scan day        fValue[Day] = negate * parseInt(fStart,end);        fStart = end+1;        designator = true;    }    if ( (fEnd == endDate) &&   // 'T' absent         (fStart != fEnd)   )   // something after Day    {        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_dur_inv_b4T                , fBuffer                , fMemoryManager);    }    if ( fEnd != endDate ) // 'T' present    {        //scan hours, minutes, seconds        //        // skip 'T' first        end = indexOf(++fStart, fEnd, DURATION_H);        if ( end != NOT_FOUND )        {            //scan hours            fValue[Hour] = negate * parseInt(fStart, end);            fStart = end+1;            designator = true;        }        end = indexOf(fStart, fEnd, DURATION_M);        if ( end != NOT_FOUND )        {            //scan min            fValue[Minute] = negate * parseInt(fStart, end);            fStart = end+1;            designator = true;        }        end = indexOf(fStart, fEnd, DURATION_S);        if ( end != NOT_FOUND )        {            //scan seconds            int mlsec = indexOf (fStart, end, MILISECOND_SEPARATOR);            /***             * Schema Errata: E2-23             * at least one digit must follow the decimal point if it appears.              * That is, the value of the seconds component must conform              * to the following pattern: [0-9]+(.[0-9]+)?              */            if ( mlsec != NOT_FOUND )            {                /***                 * make usure there is something after the '.' and before the end.                 */                if ( mlsec+1 == end )                {                    ThrowXMLwithMemMgr1(SchemaDateTimeException                            , XMLExcepts::DateTime_dur_inv_seconds                            , fBuffer                            , fMemoryManager);                }                fValue[Second]     = negate * parseInt(fStart, mlsec);                fMiliSecond        = negate * parseMiliSecond(mlsec+1, end);            }            else            {                fValue[Second] = negate * parseInt(fStart,end);            }            fStart = end+1;            designator = true;        }        // no additional data should appear after last item        // P1Y1M1DT is illigal value as well        if ( (fStart != fEnd) ||              fBuffer[--fStart] == DATETIME_SEPARATOR )        {            ThrowXMLwithMemMgr1(SchemaDateTimeException                    , XMLExcepts::DateTime_dur_NoTimeAfterT                    , fBuffer                    , fMemoryManager);        }    }    if ( !designator )    {        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_dur_NoElementAtAll                , fBuffer                , fMemoryManager);    }}// ---------------------------------------------------------------------------//  Scanners// ---------------------------------------------------------------------------//// [-]{CCYY-MM-DD}//// Note: CCYY could be more than 4 digits//       Assuming fStart point to the beginning of the Date Section//       fStart updated to point to the position right AFTER the second 'D'//       Since the lenght of CCYY might be variable, we can't check format upfront//void XMLDateTime::getDate(){    // Ensure enough chars in buffer    if ( (fStart+YMD_MIN_SIZE) > fEnd)        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_date_incomplete                , fBuffer                , fMemoryManager);    getYearMonth();    // Scan YearMonth and                       // fStart point to the next '-'    if (fBuffer[fStart++] != DATE_SEPARATOR)    {        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_date_invalid                , fBuffer                , fMemoryManager);        //("CCYY-MM must be followed by '-' sign");    }    fValue[Day] = parseInt(fStart, fStart+2);    fStart += 2 ;  //fStart points right after the Day    return;}//// hh:mm:ss[.msssss]['Z']// hh:mm:ss[.msssss][['+'|'-']hh:mm]// 012345678//// Note: Assuming fStart point to the beginning of the Time Section//       fStart updated to point to the position right AFTER the second 's'//                                                  or ms if any//void XMLDateTime::getTime(){    // Ensure enough chars in buffer    if ( (fStart+TIME_MIN_SIZE) > fEnd)        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_time_incomplete                , fBuffer                , fMemoryManager);        //"Imcomplete Time Format"    // check (fixed) format first    if ((fBuffer[fStart + 2] != TIME_SEPARATOR) ||        (fBuffer[fStart + 5] != TIME_SEPARATOR)  )    {        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_time_invalid                , fBuffer                , fMemoryManager);        //("Error in parsing time" );    }    //    // get hours, minute and second    //    fValue[Hour]   = parseInt(fStart + 0, fStart + 2);    fValue[Minute] = parseInt(fStart + 3, fStart + 5);    fValue[Second] = parseInt(fStart + 6, fStart + 8);    fStart += 8;    // to see if any ms and/or utc part after that    if (fStart >= fEnd)        return;    //find UTC sign if any    int sign = findUTCSign(fStart);    //parse miliseconds    int milisec = (fBuffer[fStart] == MILISECOND_SEPARATOR)? fStart : NOT_FOUND;    if ( milisec != NOT_FOUND )    {        fStart++;   // skip the '.'        // make sure we have some thing between the '.' and fEnd        if (fStart >= fEnd)        {            ThrowXMLwithMemMgr1(SchemaDateTimeException                    , XMLExcepts::DateTime_ms_noDigit                    , fBuffer                    , fMemoryManager);            //("ms shall be present once '.' is present" );        }        if ( sign == NOT_FOUND )        {            fMiliSecond = parseMiliSecond(fStart, fEnd);  //get ms between '.' and fEnd            fStart = fEnd;        }        else        {            fMiliSecond = parseMiliSecond(fStart, sign);  //get ms between UTC sign and fEnd        }	}    else if(sign == 0 || sign != fStart)    {        // seconds has more than 2 digits        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_min_invalid                , fBuffer                , fMemoryManager);    }    //parse UTC time zone (hh:mm)    if ( sign > 0 ) {        getTimeZone(sign);    }}//// [-]{CCYY-MM}//// Note: CCYY could be more than 4 digits//       fStart updated to point AFTER the second 'M' (probably meet the fEnd)//void XMLDateTime::getYearMonth(){    // Ensure enough chars in buffer    if ( (fStart+YMONTH_MIN_SIZE) > fEnd)        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_ym_incomplete                , fBuffer                , fMemoryManager);        //"Imcomplete YearMonth Format";    // skip the first leading '-'    int start = ( fBuffer[0] == chDash ) ? fStart + 1 : fStart;    //    // search for year separator '-'    //    int yearSeparator = indexOf(start, fEnd, DATE_SEPARATOR);    if ( yearSeparator == NOT_FOUND)        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_ym_invalid                , fBuffer                , fMemoryManager);        //("Year separator is missing or misplaced");    fValue[CentYear] = parseIntYear(yearSeparator);    fStart = yearSeparator + 1;  //skip the '-' and point to the first M    //    //gonna check we have enough byte for month    //    if ((fStart + 2) > fEnd )        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_ym_noMonth                , fBuffer                , fMemoryManager);        //"no month in buffer"    fValue[Month] = parseInt(fStart, yearSeparator + 3);    fStart += 2;  //fStart points right after the MONTH    return;}void XMLDateTime::parseTimeZone(){    if ( fStart < fEnd )    {        int sign = findUTCSign(fStart);        if ( sign < 0 )        {            ThrowXMLwithMemMgr1(SchemaDateTimeException                    , XMLExcepts::DateTime_tz_noUTCsign                    , fBuffer                    , fMemoryManager);            //("Error in month parsing");        }        else        {            getTimeZone(sign);        }    }    return;}//// 'Z'// ['+'|'-']hh:mm//// Note: Assuming fStart points to the beginning of TimeZone section//       fStart updated to meet fEnd//void XMLDateTime::getTimeZone(const int sign){    if ( fBuffer[sign] == UTC_STD_CHAR )    {        if ((sign + 1) != fEnd )        {            ThrowXMLwithMemMgr1(SchemaDateTimeException                    , XMLExcepts::DateTime_tz_stuffAfterZ                    , fBuffer                    , fMemoryManager);            //"Error in parsing time zone");        }		        return;	    }    //    // otherwise, it has to be this format    // '[+|-]'hh:mm    //    1   23456 7    //   sign      fEnd    //    if ( ( ( sign + TIMEZONE_SIZE + 1) != fEnd )      ||         ( fBuffer[sign + 3] != TIMEZONE_SEPARATOR ) )    {        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_tz_invalid                , fBuffer                , fMemoryManager);        //("Error in parsing time zone");    }    fTimeZone[hh] = parseInt(sign+1, sign+3);		    fTimeZone[mm] = parseInt(sign+4, fEnd);        		    return;}// ---------------------------------------------------------------------------//  Validator and normalizer// ---------------------------------------------------------------------------/** * If timezone present - normalize dateTime  [E Adding durations to dateTimes] * * @param date   CCYY-MM-DDThh:mm:ss+03 * @return CCYY-MM-DDThh:mm:ssZ */void XMLDateTime::normalize(){    if ((fValue[utc] == UTC_UNKNOWN) ||        (fValue[utc] == UTC_STD)      )        return;    int negate = (fValue[utc] == UTC_POS)? -1: 1;    // add mins    int temp = fValue[Minute] + negate * fTimeZone[mm];    int carry = fQuotient(temp, 60);    fValue[Minute] = mod(temp, 60, carry);    //add hours    temp = fValue[Hour] + negate * fTimeZone[hh] + carry;    carry = fQuotient(temp, 24);    fValue[Hour] = mod(temp, 24, carry);    fValue[Day] += carry;    while (1)    {        temp = maxDayInMonthFor(fValue[CentYear], fValue[Month]);        if (fValue[Day] < 1)        {            fValue[Day] += maxDayInMonthFor(fValue[CentYear], fValue[Month] - 1);            carry = -1;        }        else if ( fValue[Day] > temp )        {            fValue[Day] -= temp;            carry = 1;        }        else        {            break;        }        temp = fValue[Month] + carry;        fValue[Month] = modulo(temp, 1, 13);        fValue[CentYear] += fQuotient(temp, 1, 13);    }    // set to normalized    fValue[utc] = UTC_STD;    return;}void XMLDateTime::validateDateTime() const{    //REVISIT: should we throw an exception for not valid dates    //          or reporting an error message should be sufficient?    if ( fValue[CentYear] == 0 )    {        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_year_zero                , fBuffer                , fMemoryManager);        //"The year \"0000\" is an illegal year value");    }    if ( fValue[Month] < 1  ||         fValue[Month] > 12  )    {        ThrowXMLwithMemMgr1(SchemaDateTimeException                , XMLExcepts::DateTime_mth_invalid                , fBuffer                , fMemoryManager);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精选午夜久久久乱码6080| 亚洲欧美激情视频在线观看一区二区三区| 欧美日韩国产小视频| 日本韩国欧美一区| 91成人网在线| 91久久奴性调教| 欧美人xxxx| 欧美丰满少妇xxxxx高潮对白| 欧美日韩国产123区| 欧美高清你懂得| 日韩欧美国产午夜精品| 精品电影一区二区三区| 精品国产成人在线影院| 久久久久高清精品| 国产精品久久久久久久裸模| 日韩毛片精品高清免费| 亚洲毛片av在线| 亚洲一二三四在线| 亚洲成人免费视频| 亚洲午夜三级在线| 首页亚洲欧美制服丝腿| 久久精品噜噜噜成人88aⅴ| 秋霞成人午夜伦在线观看| 国产在线观看一区二区| 成人黄色av电影| 在线一区二区三区做爰视频网站| 91传媒视频在线播放| 91精品国产综合久久精品性色| 日韩一区二区在线看| 国产欧美一区二区精品仙草咪| 国产精品电影院| 亚洲成人tv网| 狠狠色狠狠色综合| 99re这里只有精品6| 欧美美女一区二区| 精品欧美乱码久久久久久1区2区| 国产欧美精品一区aⅴ影院| 亚洲乱码中文字幕综合| 日韩一区欧美二区| 国产成人亚洲精品狼色在线| 91日韩一区二区三区| 欧美一区二区视频在线观看| 国产日本亚洲高清| 亚洲一区二区三区中文字幕| 精品亚洲成a人在线观看| 99国产精品国产精品久久| 91精品国产综合久久精品麻豆| 中文字幕第一区二区| 亚洲国产欧美日韩另类综合| 国产一区999| 欧美视频一区在线| 久久欧美中文字幕| 日本sm残虐另类| 久久亚洲私人国产精品va媚药| 欧美日韩卡一卡二| 国产色产综合产在线视频| 亚洲一区二区三区四区不卡 | 午夜伊人狠狠久久| 国产真实乱对白精彩久久| 丁香亚洲综合激情啪啪综合| 欧美日韩一区二区三区四区五区| 亚洲欧美另类综合偷拍| 国产成人免费av在线| 精品国产凹凸成av人导航| 青娱乐精品视频在线| 欧美肥妇free| 五月婷婷综合网| 欧美日韩成人综合天天影院| 亚洲综合免费观看高清完整版 | 久久久久综合网| 激情欧美一区二区| 久久在线免费观看| 国产乱子伦一区二区三区国色天香| 日韩三级视频在线观看| 日韩av一区二区在线影视| 欧美精品v国产精品v日韩精品 | 91福利视频网站| 亚洲制服丝袜av| 欧美撒尿777hd撒尿| 亚洲福利电影网| 6080亚洲精品一区二区| 蜜桃精品在线观看| 精品理论电影在线| 狠狠色狠狠色合久久伊人| 精品福利一区二区三区| 国产精品综合一区二区| 国产嫩草影院久久久久| 成人免费av网站| 亚洲精品ww久久久久久p站| 91国产免费看| 日本aⅴ精品一区二区三区| 欧美成人精品福利| 懂色一区二区三区免费观看| 欧美激情中文字幕一区二区| www.av精品| 亚洲主播在线播放| 日韩一区二区三区四区 | 久久久久久久久蜜桃| 粉嫩av一区二区三区在线播放 | 99re66热这里只有精品3直播 | 欧美亚洲愉拍一区二区| 图片区日韩欧美亚洲| 日韩一区二区三区观看| 国产精品一品二品| 亚洲伦理在线免费看| 欧美美女网站色| 国产黄人亚洲片| 亚洲精品美国一| 日韩欧美国产系列| 99久久99久久精品免费观看 | 欧美一区二区视频在线观看| 国产一区日韩二区欧美三区| 亚洲人成影院在线观看| 欧美丰满少妇xxxxx高潮对白| 国产乱人伦偷精品视频免下载 | 91视频观看视频| 日本成人在线看| 亚洲国产精品av| 欧美精品一二三四| 福利一区二区在线| 亚洲.国产.中文慕字在线| 国产亚洲一区二区在线观看| 91搞黄在线观看| 国产精品亚洲一区二区三区妖精| 亚洲欧美日韩国产另类专区| 精品国产一区二区亚洲人成毛片 | 亚洲男人的天堂网| 日韩精品中午字幕| 在线精品观看国产| 国产一区二区三区精品欧美日韩一区二区三区 | 中文字幕一区在线| 欧美一卡2卡3卡4卡| 99国产精品视频免费观看| 全国精品久久少妇| 一区二区三区欧美激情| 久久夜色精品国产欧美乱极品| 欧美在线制服丝袜| 国产成人av一区二区三区在线| 天天色天天爱天天射综合| 国产精品久久网站| 欧美成人女星排行榜| 欧美一a一片一级一片| 不卡一区二区三区四区| 麻豆精品一区二区综合av| 又紧又大又爽精品一区二区| 久久久久久97三级| 日韩一区二区三区精品视频 | 偷拍自拍另类欧美| 亚洲精品日产精品乱码不卡| 久久亚洲捆绑美女| 日韩一区二区影院| 欧美美女网站色| 在线欧美日韩国产| 99久久精品99国产精品| 国产成人免费视频网站| 黑人巨大精品欧美黑白配亚洲| 丝瓜av网站精品一区二区| 亚洲在线一区二区三区| 亚洲免费观看高清| 国产精品久久看| 久久免费精品国产久精品久久久久| 91精品国产aⅴ一区二区| 欧美影院一区二区| 91视视频在线观看入口直接观看www| 风间由美一区二区三区在线观看 | 日本一区二区综合亚洲| 欧美刺激脚交jootjob| 欧美精品乱码久久久久久按摩| 欧美在线小视频| 色婷婷亚洲精品| 91麻豆福利精品推荐| av激情成人网| bt7086福利一区国产| 成人黄色小视频在线观看| 国产69精品一区二区亚洲孕妇| 国产一区高清在线| 韩国成人精品a∨在线观看| 精品一区二区三区在线观看| 奇米888四色在线精品| 琪琪久久久久日韩精品| 日本少妇一区二区| 日韩国产高清影视| 日本欧美在线看| 另类成人小视频在线| 另类中文字幕网| 国产一区二区剧情av在线| 韩国成人精品a∨在线观看| 国产精品性做久久久久久| 国产盗摄一区二区三区| 波多野结衣中文一区| 99久久精品国产毛片| 欧美综合欧美视频| 欧美日韩国产区一| 91精品国产手机| 日韩一区二区三区精品视频| www激情久久| 亚洲国产电影在线观看| 亚洲天堂免费看| 亚洲一二三四区不卡| 免费在线观看成人|