diff --git a/250501_DIW_2504회_A형_채점결과.xlsx b/250501_DIW_2504회_A형_채점결과.xlsx deleted file mode 100644 index 759a530..0000000 Binary files a/250501_DIW_2504회_A형_채점결과.xlsx and /dev/null differ diff --git a/250501_DIW_2504회_B형_채점결과.xlsx b/250501_DIW_2504회_B형_채점결과.xlsx deleted file mode 100644 index 5782c5a..0000000 Binary files a/250501_DIW_2504회_B형_채점결과.xlsx and /dev/null differ diff --git a/250501_DIW_2504회_C형_채점결과.xlsx b/250501_DIW_2504회_C형_채점결과.xlsx deleted file mode 100644 index ab18a38..0000000 Binary files a/250501_DIW_2504회_C형_채점결과.xlsx and /dev/null differ diff --git a/250521_DIW_2504회_C형_TEST.xlsx b/250521_DIW_2504회_C형_TEST.xlsx deleted file mode 100644 index 9eda480..0000000 Binary files a/250521_DIW_2504회_C형_TEST.xlsx and /dev/null differ diff --git a/250522_DIW_2504회_A형_채점결과.xlsx b/250522_DIW_2504회_A형_채점결과.xlsx new file mode 100644 index 0000000..baad8e5 Binary files /dev/null and b/250522_DIW_2504회_A형_채점결과.xlsx differ diff --git a/250522_DIW_2504회_B형_채점결과.xlsx b/250522_DIW_2504회_B형_채점결과.xlsx new file mode 100644 index 0000000..19f2374 Binary files /dev/null and b/250522_DIW_2504회_B형_채점결과.xlsx differ diff --git a/250521_DIW_2504회_C형_채점결과.xlsx b/250522_DIW_2504회_C형_채점결과.xlsx similarity index 89% rename from 250521_DIW_2504회_C형_채점결과.xlsx rename to 250522_DIW_2504회_C형_채점결과.xlsx index e3f7916..d18d8ec 100644 Binary files a/250521_DIW_2504회_C형_채점결과.xlsx and b/250522_DIW_2504회_C형_채점결과.xlsx differ diff --git a/250523_DIW_2504회_A형_채점결과.xlsx b/250523_DIW_2504회_A형_채점결과.xlsx new file mode 100644 index 0000000..0a1b9f5 Binary files /dev/null and b/250523_DIW_2504회_A형_채점결과.xlsx differ diff --git a/250523_DIW_2504회_B형_채점결과.xlsx b/250523_DIW_2504회_B형_채점결과.xlsx new file mode 100644 index 0000000..0393722 Binary files /dev/null and b/250523_DIW_2504회_B형_채점결과.xlsx differ diff --git a/250523_DIW_2504회_C형_채점결과.xlsx b/250523_DIW_2504회_C형_채점결과.xlsx new file mode 100644 index 0000000..e3164b1 Binary files /dev/null and b/250523_DIW_2504회_C형_채점결과.xlsx differ diff --git a/DIW_2504A.json b/DIW_2504A.json index 729542b..0604868 100644 --- a/DIW_2504A.json +++ b/DIW_2504A.json @@ -8,27 +8,35 @@ "item": "파일명 (수검번호.hwp/hwpx)" }, "1": { - "path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])", - "path2": null, - "searchValue": null, - "value": true, + "path": "//PAGEMARGIN", + "value": { + "Top": 20, + "Bottom": 20, + "Left": 20, + "Right": 20, + "Header": 10, + "Footer": 10, + "Gutter": 0 + }, + "tolerance": 1, "points": 4, - "category": "용지설정", + "category": "PageSetting", "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" }, "2": { - "path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')", - "path2": null, - "searchValue": null, - "value": true, + "path": "", + "value": { + "FontName": "바탕", + "FontSize": "1000", + "Alignment": "Justify", + "LineSpacing": "160" + }, "points": 4, - "category": "기본설정", + "category": "BasicSetting", "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" }, "3": { "path": "", - "path2": null, - "searchValue": null, "value": null, "points": 40, "category": "오타감점", @@ -38,825 +46,787 @@ "1": { "1": { "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "path2": null, "searchValue": "클라우드컴퓨팅컨퍼런스", "value": "맑은 고딕", "points": 1, - "category": "글맵시", + "category": "OneAnswer", "item": "문구 (클라우드컴퓨팅컨퍼런스)/① 글씨체 (맑은 고딕)" }, "2": { "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "path2": null, "searchValue": "클라우드컴퓨팅컨퍼런스", - "value": "6438172", + "value": "28,61,98", "points": 2, - "category": "글맵시", + "category": "Color", "item": "문구 (클라우드컴퓨팅컨퍼런스)/② 채우기 : 색상(RGB:100,170,92)" }, "3": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "path2": null, "searchValue": "클라우드컴퓨팅컨퍼런스", - "value": 31181, + "value": "110", + "tolerance": 1, "points": 2, - "category": "글맵시", - "item": "문구 (클라우드컴퓨팅컨퍼런스)/③ 크기-너비 (100mm)" + "category": "mmSize", + "item": "문구 (클라우드컴퓨팅컨퍼런스)/③ 크기-너비 (110mm)" }, "4": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "path2": null, "searchValue": "클라우드컴퓨팅컨퍼런스", - "value": 5669, + "value": "20", + "tolerance": 1, "points": 2, - "category": "글맵시", + "category": "mmSize", "item": "문구 (클라우드컴퓨팅컨퍼런스)/④ 크기-높이 (20mm)" }, "5": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "path2": null, "searchValue": "클라우드컴퓨팅컨퍼런스", "value": "true", "points": 2, - "category": "글맵시", + "category": "OneAnswer", "item": "문구 (클라우드컴퓨팅컨퍼런스)/⑤ 위치 (글자처럼 취급)" }, "6": { - "path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "path2": null, + "path":"//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", "searchValue": "클라우드컴퓨팅컨퍼런스", "value": "Center", "points": 2, - "category": "글맵시", + "category": "OneAnswer", "item": "문구 (클라우드컴퓨팅컨퍼런스)/⑥ 정렬 (가운데 정렬)" }, "7": { - "path": "boolean(//TEXTART[@Text='{searchValue}'])", - "path2": null, + "path": "//TEXTART[@Text='{searchValue}']", "searchValue": "클라우드컴퓨팅컨퍼런스", "value": true, "points": 2, - "category": "글맵시", + "category": "Boolean", "item": "문구 (클라우드컴퓨팅컨퍼런스)/⑦ 글맵시모양 (육안확인)" }, "8": { - "path": "boolean(//RECTANGLE[.//CHAR[text()='전']][.//SIZE[(@Height >= 2600 and @Height <= 3000)and(@Width >= 2600 and @Width <= 3000)]])", - "path2": null, - "searchValue": null, - "value": true, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", + "searchValue": "전", + "value": { + "Height": 2800, + "Width": 2800 + }, + "tolerance": 200, "points": 1, - "category": "문단첫글자장식", + "category": "TwoLineSize", "item": "전/① 모양 (2줄)" }, "9": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='전']]/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, - "searchValue": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "전", "value": "궁서체", "points": 1, - "category": "문단첫글자장식", + "category": "FontName", "item": "전/② 글씨체 (궁서체)" }, "10": { - "path": "//RECTANGLE[.//CHAR[text()='전']]//WINDOWBRUSH/@FaceColor", - "path2": null, - "searchValue": null, - "value": "3835135", + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", + "searchValue": "전", + "value": "255,132,58", "points": 2, - "category": "문단첫글자장식", + "category": "Color", "item": "전/③ 면색 : 색상(RGB:255,132,58)" }, "11": { - "path": "//RECTANGLE[.//CHAR[text()='전']]//OUTSIDEMARGIN/@Right", - "path2": null, - "searchValue": null, - "value": "850", + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", + "searchValue": "전", + "value": "3.0", + "tolerance": 1, "points": 2, - "category": "문단첫글자장식", + "category": "mmSize", "item": "전/④ 본문과의 간격 : 3.0mm" }, "12": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])", - "path2": null, + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", "searchValue": "글로벌 클라우드 컴퓨팅 컨퍼런스", - "value": true, + "value": "BOLD", "points": 2, - "category": "글꼴 속성", + "category": "FontAttribute", "item": "문구 (글로벌 클라우드 컴퓨팅 컨퍼런스)/① 진하게" }, "13": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])", - "path2": null, + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", "searchValue": "글로벌 클라우드 컴퓨팅 컨퍼런스", - "value": true, + "value": "UNDERLINE", "points": 2, - "category": "글꼴 속성", + "category": "FontAttribute", "item": "문구 (글로벌 클라우드 컴퓨팅 컨퍼런스)/② 밑줄" }, "14": { - "path": "count(//CHAR[contains(text(),'●')]) + count(//CHAR[contains(text(),'※')])", - "path2": "string-length(//CHAR[contains(text(),'●')]) - string-length(translate(//CHAR[contains(text(),'●')], '●', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))", - "searchValue": null, + "path": "//CHAR[contains(text(),'{char1}')]", + "path2": "//CHAR[contains(text(),'{char2}')]", + "path3": "//CHAR[contains(text(),'{char3}')]", + "char1": "●", + "char2": "●", + "char3": "※", "value": 3, "points": 3, - "category": "특수문자", + "category": "SpecialChar", "item": "① ●, ② ●, ③ ※" }, "15": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", "searchValue": "참여안내", "value": "궁서", "points": 1, - "category": "글꼴 속성", + "category": "FontName", "item": "문구 (● 참여안내 ●)/① 글씨체 (궁서)" }, "16": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "path2": null, "searchValue": "참여안내", "value": "Center", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (● 참여안내 ●)/② 정렬 (가운데 정렬)" }, "17": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])", - "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][ITALIC])", - "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", "searchValue": "홈페이지(http://www.ihd.or.kr) 참조", - "value": true, + "value": "ITALIC", "points": 1, - "category": "Hyperlink", + "category": "FontAttribute", "item": "문구 (홈페이지(http://www.ihd.or.kr) 참조)/① 기울임" }, "18": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])", - "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][UNDERLINE])", - "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", "searchValue": "홈페이지(http://www.ihd.or.kr) 참조", - "value": true, + "value": "UNDERLINE", "points": 1, - "category": "Hyperlink", + "category": "FontAttribute", "item": "문구 (홈페이지(http://www.ihd.or.kr) 참조)/② 밑줄" }, "19": { - "path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)", - "path2": null, + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", "searchValue": "기타사항", - "value": true, + "value": { + "Left": 15, + "Indent": 12 + }, "points": 2, - "category": "문단모양", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)" + "category": "ParaShape", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)", + "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" }, "20": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "path2": null, "searchValue": "2025. 04. 26.", - "value": 1400, + "value": "1400", "points": 1, - "category": "글꼴 속성", - "item": "문구 (2025. 04. 26.)/① 크기 (14pt)" + "category": "OneAnswer", + "item": "문구 (2025. 04. 26.)/① 크기 (14pt)", + "desc": "1pt당 100" }, "21": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "path2": null, "searchValue": "2025. 04. 26.", "value": "Center", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (2025. 04. 26.)/② 정렬 (가운데 정렬)" }, "22": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "글로벌멀티클라우드협의회", "value": "궁서체", "points": 1, - "category": "글꼴 속성", + "category": "FontName", "item": "문구 (글로벌멀티클라우드협의회)/① 글씨체 (궁서체)" }, "23": { - "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "글로벌멀티클라우드협의회", - "value": 2600, + "value": "2600", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (글로벌멀티클라우드협의회)/② 크기 (26pt)" }, "24": { "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "path2": null, "searchValue": "글로벌멀티클라우드협의회", "value": "Center", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (글로벌멀티클라우드협의회)/③ 정렬 (가운데 정렬)" }, "25": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "DIAT", "value": "궁서", "points": 1, - "category": "머리말", + "category": "FontName", "item": "문구 (DIAT)/① 글꼴 (궁서)" }, "26": { - "path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "DIAT", - "value": 900, + "value": "900", "points": 1, - "category": "머리말", + "category": "OneAnswer", "item": "문구 (DIAT)/② 크기 (9pt)" - }, + }, "27": { "path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "path2": null, "searchValue": "DIAT", "value": "Right", "points": 1, - "category": "머리말", + "category": "OneAnswer", "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" }, "28": { "path": "//PAGENUM/@FormatType", - "path2": null, - "searchValue": null, "value": "LatinCapital", "points": 2, - "category": "쪽번호", - "item": "① 쪽 번호 매기기 (A,B,C 순으로)" + "category": "PageNumber", + "item": "① 쪽 번호 매기기 (A,B,C 순으로)", + "desc1": { + "가,나,다":"HangulSyllable", + "1,2,3":"Digit", + "갑,을,병":"DecagonCircle", + "A,B,C":"LatinCapital", + "①,②,③":"CircledDigit", + "一,二,三":"Ideograph", + "㉠,㉡,㉢":"CircledHangulJamo", + "ⓐ,ⓑ,ⓒ":"CircledLatinSmall", + "i,ii,iii":"RomanSmall", + "정답에 맞는 값 value에 입력":"" + }, + "desc2": "1, 2페이지 모두 정답이어야 점수 부여" }, "29": { "path": "//PAGENUM/@Pos", - "path2": null, - "searchValue": null, "value": "BottomRight", "points": 2, - "category": "쪽번호", - "item": "② 오른쪽 아래" + "category": "PageNumber", + "item": "오른쪽 아래", + "desc": "1, 2페이지 모두 정답이어야 점수 부여", + "desc2": { + "가운데 아래": "BottomCenter", + "오른쪽 아래": "BottomRight" + } }, "30": { - "path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='200'])", - "path2": null, - "searchValue": null, + "path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='{option}'])", + "option": "200", "value": true, "points": 2, - "category": "줄간격", - "item": "문제 1 줄간격 200% 설정" + "category": "Boolean", + "item": "문제 1 줄간격 200% 설정", + "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점)" } }, "2": { "1": { - "path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')", - "path2": null, - "searchValue": null, - "value": true, + "path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside", + "path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]", + "value": { + "header_inside": true, + "all_double_slim": true + }, "points": 4, - "category": "쪽 테두리", - "item": "문제2 쪽 테두리(이중 실선, 머리말 포함) 설정" + "category": "PageBorder", + "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" }, "2": { "path": "count(//SECTION)>1", - "path2": null, - "searchValue": null, "value": true, "points": 3, - "category": "다단", - "item": "① 구역나누기" + "category": "Boolean", + "item": "① 구역나누기", + "desc": "섹션이 1개 이상이면 점수부여" }, "3": { - "path": "//COLDEF/@Count>1", - "path2": null, - "searchValue": null, - "value": true, + "path": "//COLDEF/@Count", + "value": "2", "points": 3, - "category": "다단", + "category": "OneAnswer", "item": "② 다단 2단" }, "4": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "path2": null, "searchValue": "클라우드 컴퓨팅", - "value": 17007, + "value": "60", "points": 2, - "category": "글상자", + "category": "mmSize", "item": "문구 (클라우드 컴퓨팅)/① 크기-너비 (60mm)" }, "5": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "path2": null, "searchValue": "클라우드 컴퓨팅", - "value": 3401, + "value": "12", "points": 2, - "category": "글상자", + "category": "mmSize", "item": "문구 (클라우드 컴퓨팅)/② 크기-높이 (12mm)" }, "6": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style", + "path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width", "searchValue": "클라우드 컴퓨팅", - "value": "DoubleSlim", + "value": [ "DoubleSlim", "283" ], "points": 2, - "category": "글상자", - "item": "문구 (클라우드 컴퓨팅)/③ 테두리 : 이중 실선(1.00mm)" + "category": "DoubleAnswer", + "item": "문구 (클라우드 컴퓨팅)/③ 테두리 : 이중 실선(1.00mm)", + "desc": "1mm = 283pt" }, "7": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio", "searchValue": "클라우드 컴퓨팅", - "value": 50, + "value": "50", "points": 2, - "category": "글상자", - "item": "문구 (클라우드 컴퓨팅)/④ 글상자 모서리 (반원)" + "category": "OneAnswer", + "item": "문구 (클라우드 컴퓨팅)/④ 글상자 모서리 (반원)", + "desc": "모서리 비율 50이면 반원 / 20이면 둥근모양" }, "8": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", "searchValue": "클라우드 컴퓨팅", - "value": "10966730", + "value": "202,86,167", "points": 2, - "category": "글상자", + "category": "Color", "item": "문구 (클라우드 컴퓨팅)/⑤ 채우기 : 색상(RGB:202,86,167)" }, "9": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar", "searchValue": "클라우드 컴퓨팅", "value": "true", "points": 1, - "category": "글상자", + "category": "OneAnswer", "item": "문구 (클라우드 컴퓨팅)/⑥ 글상자 위치 (글자처럼 취급)" }, "10": { "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align", - "path2": null, "searchValue": "클라우드 컴퓨팅", "value": "Center", "points": 1, - "category": "글상자", + "category": "OneAnswer", "item": "문구 (클라우드 컴퓨팅)/⑦ 글상자 정렬 (가운데 정렬)" }, "11": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "클라우드 컴퓨팅", - "value": "한양견고딕", + "value": "견고딕", "points": 1, - "category": "글상자", + "category": "FontName", "item": "문구 (클라우드 컴퓨팅)/⑧ 글씨체 (견고딕)" }, "12": { - "path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')", - "path2": null, + "path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "클라우드 컴퓨팅", - "value": true, + "value": "2000", "points": 1, - "category": "글상자", - "item": "문구 (클라우드 컴퓨팅)/⑨ 글씨크기 (20pt)" + "category": "OneAnswer", + "item": "문구 (클라우드 컴퓨팅)/⑨ 글씨크기 (20pt)", + "desc":"1pt당 100" }, "13": { - "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align", - "path2": null, + "path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", "searchValue": "클라우드 컴퓨팅", "value": "Center", "points": 1, - "category": "글상자", + "category": "OneAnswer", "item": "문구 (클라우드 컴퓨팅)/⑩ 정렬 (가운데 정렬)" }, "14": { - "path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])", - "path2": null, + "path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])", "searchValue": "원본 그림의 이름: 그림", "value": true, "points": 2, - "category": "그림삽입", + "category": "Boolean", "item": "① 파일명 \"그림A.jpg\" 삽입" }, "15": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width", - "path2": null, - "searchValue": null, - "value": 22677, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", + "value": "80", "points": 2, - "category": "그림삽입", - "item": "② 크기-너비 (80mm)" + "category": "mmSize", + "item": "② 크기-너비 (80 mm)" }, "16": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height", - "path2": null, - "searchValue": null, - "value": 12755, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", + "value": "45", "points": 2, - "category": "그림삽입", - "item": "③ 크기-높이 (40mm)" + "category": "mmSize", + "item": "③ 크기-높이 (45 mm)" }, "17": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset", - "path2": null, - "searchValue": null, - "value": 0, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION/@HorzOffset", + "value": "0", "points": 2, - "category": "그림삽입", + "category": "mmSize", "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)" }, "18": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset", - "path2": null, - "searchValue": null, - "value": 6803, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION/@VertOffset", + "value": "24", "points": 2, - "category": "그림삽입", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 22mm)" + "category": "mmSize", + "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24mm)" }, "19": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "1. 주목하는 최신 트렌드", "value": "굴림", "points": 1, - "category": "속성", + "category": "FontName", "item": "문구① (1. 주목하는 최신 트렌드)/① 글씨체 (굴림)" }, "20": { - "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "1. 주목하는 최신 트렌드", - "value": 1200, + "value": "1200", "points": 1, - "category": "속성", + "category": "OneAnswer", "item": "문구① (1. 주목하는 최신 트렌드)/② 크기 (12pt)" }, "21": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "searchValue": "1. 주목하는 최신 트렌드", - "value": true, + "value": "BOLD", "points": 1, - "category": "속성", + "category": "FontAttribute", "item": "문구① (1. 주목하는 최신 트렌드)/③ 진하게" }, "22": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "2. 기술의 경제적 가치", "value": "굴림", "points": 1, - "category": "속성", + "category": "FontName", "item": "문구② (2. 기술의 경제적 가치)/① 글씨체 (굴림)" }, "23": { - "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "2. 기술의 경제적 가치", - "value": 1200, + "value": "1200", "points": 1, - "category": "속성", + "category": "OneAnswer", "item": "문구② (2. 기술의 경제적 가치)/② 크기 (12pt)" }, "24": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "searchValue": "2. 기술의 경제적 가치", - "value": true, + "value": "BOLD", "points": 1, - "category": "속성", + "category": "FontAttribute", "item": "문구② (2. 기술의 경제적 가치)/③ 진하게" }, "25": { - "path": "boolean(//CHAR[contains(text(),'클라우드')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)", - "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('클라우드') + 1) = '클라우드']/following-sibling::FOOTNOTE/descendant::CHAR)", - "searchValue": null, + "path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)", + "option": "클라우드", "value": true, "points": 2, - "category": "각주", + "category": "Boolean", "item": "문구 (클라우드)/① 각주 설정 및 문구 입력" }, "26": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", "searchValue": "인터넷을 통해 액세스할 수 있는 가상화된 서버에서 실행되는 프로그램과 데이터베이스를 제공하는 환경", - "value": "한양중고딕", + "value": "중고딕", "points": 1, - "category": "각주", - "item": "문구 (클라우드)/② 글씨체 (한양중고딕)" + "category": "FontName", + "item": "문구 (클라우드)/② 글씨체 (중고딕)" }, "27": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", "searchValue": "인터넷을 통해 액세스할 수 있는 가상화된 서버에서 실행되는 프로그램과 데이터베이스를 제공하는 환경", - "value": 900, + "value": "900", "points": 1, - "category": "각주", + "category": "OneAnswer", "item": "문구 (클라우드)/③ 크기 (9pt)" }, "28": { "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "path2": null, "searchValue": "인터넷을 통해 액세스할 수 있는 가상화된 서버에서 실행되는 프로그램과 데이터베이스를 제공하는 환경", "value": "Ideograph", "points": 2, - "category": "각주", - "item": "문구 (클라우드)/④ 각주 번호모양" + "category": "OneAnswer", + "item": "문구 (클라우드)/④ 각주 번호모양", + "desc": { + "가,나,다":"HangulSyllable", + "1,2,3":"Digit", + "갑,을,병":"DecagonCircle", + "A,B,C":"LatinCapital", + "①,②,③":"CircledDigit", + "一,二,三":"Ideograph", + "㉠,㉡,㉢":"CircledHangulJamo", + "ⓐ,ⓑ,ⓒ":"CircledLatinSmall", + "i,ii,iii":"RomanSmall", + "정답에 맞는 값 value에 입력":"" + } }, "29": { "path": "boolean(//CHAR[contains(text(),'Digital')])", - "path2": null, "ignoreWord": "Digital", "value": true, "points": 3, - "category": "영단어", - "item": "Digital/영단어 미입력, 대소문자/오타 시 전체 감점" + "category": "Boolean", + "item": "Digital/영단어 미입력, 대소문자/오타 시 전체 감점", + "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" }, "30": { - "path": "(count(//CHAR[contains(text(),'전환')][contains(text(),'轉換')])+count(//CHAR[contains(text(),'핵심')][contains(text(),'核心')])+count(//CHAR[contains(text(),'확산')][contains(text(),'擴散')])+count(//CHAR[contains(text(),'보안')][contains(text(),'保安')])+count(//CHAR[contains(text(),'도입')][contains(text(),'導入')]))*2", - "path2": null, - "searchValue": null, + "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", + "word":[ + ["전환", "轉換"], + ["핵심", "核心"], + ["확산", "擴散"], + ["보안", "保安"], + ["도입", "導入"] + ], "value": 10, "points": 10, - "category": "한자", + "category": "Hanja", "item": "① 전환(轉換), ② 핵심(核心), ③ 확산(擴散), ④ 보안(保安), ⑤ 도입(導入)" }, "31": { "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'션이발전')])", - "path2": null, - "searchValue": null, "value": true, "points": 3, - "category": "편집", + "category": "Boolean", "item": "문구 (…보안(保安) 솔루션은 발전하면서…)/\"은\" → \"이\" 글자바꿈" }, "32": { "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이터유출')])", - "path2": null, - "searchValue": null, "value": true, "points": 3, - "category": "편집", + "category": "Boolean", "item": "문구 (…유출과 데이터 사이버…)/\"유출과\" / \"데이터\" 순서바꿈" }, "33": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", "searchValue": "클라우드 보안(단위: 백만 달러)", "value": "돋움", "points": 1, - "category": "표", + "category": "FontName", "item": "제목 문구 (클라우드 보안(단위: 백만 달러))/① 글씨체 (돋움)" }, "34": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "클라우드 보안(단위: 백만 달러)", - "value": 1200, + "value": "1200", "points": 1, - "category": "표", + "category": "OneAnswer", "item": "제목 문구 (클라우드 보안(단위: 백만 달러))/② 크기 (12pt)" }, "35": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "searchValue": "클라우드 보안(단위: 백만 달러)", - "value": true, + "value": "BOLD", "points": 1, - "category": "표", + "category": "FontAttribute", "item": "제목 문구 (클라우드 보안(단위: 백만 달러))/③ 진하게" }, "36": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "path2": null, + "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", "searchValue": "클라우드 보안(단위: 백만 달러)", "value": "Center", "points": 1, - "category": "표", + "category": "OneAnswer", "item": "제목 문구 (클라우드 보안(단위: 백만 달러))/④ 정렬 (가운데 정렬)" }, "37": { "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "2862825", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "value": "233,174,43", "points": 2, - "category": "표", + "category": "Color", "item": "위쪽 제목 셀/① 색상(RGB:233,174,43)" }, "38": { - "path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)", - "path2": null, - "searchValue": null, - "value": true, + "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", + "value": "BOLD", "points": 1, - "category": "표", - "item": "위쪽 제목 셀/② 진하게" + "category": "FontAttribute", + "item": "위쪽 제목 셀/② 진하게", + "desc": "글자 속성이라 CELLZONE으로 적용 되지 않음" }, "39": { "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type", - "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Type", - "searchValue": null, + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", "value": "DoubleSlim", "points": 2, - "category": "표", + "category": "TableAnswer", "item": "제목 셀 아래선/① 이중실선" }, "40": { "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width", - "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Width", - "searchValue": null, + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", "value": "0.5mm", "points": 2, - "category": "표", + "category": "TableAnswer", "item": "제목 셀 아래선/② 0.5mm" }, "41": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, - "searchValue": null, - "value": "한양중고딕", + "path": "//TABLE//TEXT/@CharShape", + "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "value": "중고딕", "points": 1, - "category": "표", - "item": "글자모양/① 글씨체 (중고딕)" + "category": "TableFontName", + "category_tmp": "FontName", + "item": "글자모양/① 글씨체 (중고딕)", + "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" }, "42": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height", - "path2": null, - "searchValue": null, - "value": 1000, + "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", + "value": "1000", "points": 1, - "category": "표", + "category": "TableAnswer", "item": "글자모양/② 크기 (10pt)" }, "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align", - "path2": null, - "searchValue": null, + "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", "value": "Center", "points": 1, - "category": "표", + "category": "TableAnswer", "item": "글자모양/③ 정렬 (가운데 정렬)" }, "44": { - "path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=SUM') and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=SUM')]])", - "path2": null, - "searchValue": null, + "path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])", + "option": "SUM", "value": true, "points": 4, - "category": "표", - "item": "블록 계산식/합계" + "category": "Boolean", + "item": "블록 계산식/합계", + "desc": "option값에 합계는 SUM / 평균은 AVG" }, "45": { - "path": "boolean(//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']])", - "path2": null, - "searchValue": null, + "chart_xpath": "", + "chart_type": "묶은세로막대형", "value": true, "points": 2, - "category": "chart_xml", - "item": "① 종류 (묶은 세로 막대형)" + "category": "ChartType", + "item": "① 종류 (묶은 세로 막대형)", + "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" }, "46": { - "path": "//c:valAx/c:majorTickMark/@val", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:valAx/c:majorTickMark/@val", "value": "out", "points": 2, - "category": "chart_xml", - "item": "② 값 축 주 눈금선" + "category": "OneAnswer", + "item": "② 값 축 주 눈금선", + "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" }, "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width", - "path2": null, - "searchValue": null, - "value": 22677, + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", + "value": "80", "points": 2, - "category": "차트", - "item": "③ 크기-너비 (80mm)" + "category": "mmSize", + "item": "③ 크기-너비 (80 mm)" }, "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height", - "path2": null, - "searchValue": null, - "value": 25511, + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", + "value": "90", "points": 2, - "category": "차트", - "item": "④ 크기-높이 (90mm)" + "category": "mmSize", + "item": "④ 크기-높이 (90 mm)" }, "49": { - "path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])", - "path2": null, - "searchValue": null, + "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", "value": true, "points": 2, - "category": "chart_xml", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)" + "category": "Boolean", + "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", + "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" }, "50": { - "path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "path2": null, + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", "searchValue": "클라우드 보안 투자", "value": "굴림", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "제목 문구 (클라우드 보안 투자)/① 글씨체 (굴림)" }, "51": { - "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "path2": null, + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", "searchValue": "클라우드 보안 투자", - "value": 1300, + "value": "1300", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "제목 문구 (클라우드 보안 투자)/② 크기 (13pt)" }, "52": { - "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b", - "path2": null, + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", + "option": "b", "searchValue": "클라우드 보안 투자", - "value": 1, + "value": "1", "points": 1, - "category": "chart_xml", - "item": "제목 문구 (클라우드 보안 투자)/③ 진하게" + "category": "OneAnswer", + "item": "제목 문구 (클라우드 보안 투자)/③ 진하게", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "53": { - "path": "//c:catAx//a:ea/@typeface", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", "value": "돋움", "points": 1, - "category": "chart_xml", + "category": "ChartOneAnswer", "item": "X축/① 글꼴 (돋움)" }, "54": { - "path": "//c:catAx//a:defRPr/@sz", - "path2": null, - "searchValue": null, - "value": 900, + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", + "value": "900", "points": 1, - "category": "chart_xml", + "category": "ChartOneAnswer", "item": "X축/② 크기 (9pt)" }, "55": { - "path": "//c:catAx//a:defRPr/@i", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", + "option": "i", "value": "1", "points": 1, - "category": "chart_xml", - "item": "X축/③ 기울임" + "category": "ChartOneAnswer", + "item": "X축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "56": { - "path": "//c:valAx//a:ea/@typeface", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", "value": "돋움", "points": 1, - "category": "chart_xml", + "category": "ChartOneAnswer", "item": "Y축/① 글꼴 (돋움)" }, "57": { - "path": "//c:valAx//a:defRPr/@sz", - "path2": null, - "searchValue": null, - "value": 900, + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", + "value": "900", "points": 1, - "category": "chart_xml", + "category": "ChartOneAnswer", "item": "Y축/② 크기 (9pt)" }, "58": { - "path": "//c:valAx//a:defRPr/@i", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", + "option": "i", "value": "1", "points": 1, - "category": "chart_xml", - "item": "Y축/③ 기울임" + "category": "ChartOneAnswer", + "item": "Y축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "59": { - "path": "//c:legend//a:ea/@typeface", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:legend//a:ea/@typeface", "value": "돋움", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "범례/① 글꼴 (돋움)" }, "60": { - "path": "//c:legend//a:defRPr/@sz", - "path2": null, - "searchValue": null, - "value": 900, + "chart_xpath": "//c:legend//a:defRPr/@sz", + "value": "900", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "범례/② 크기 (9pt)" }, "61": { - "path": "//c:legend//a:defRPr/@i", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:legend//a:defRPr/@{option}", + "option": "i", "value": "1", "points": 1, - "category": "chart_xml", - "item": "범례/③ 기울임" + "category": "OneAnswer", + "item": "범례/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" } } } \ No newline at end of file diff --git a/DIW_2504B.json b/DIW_2504B.json index 8f47ff7..2ac1a76 100644 --- a/DIW_2504B.json +++ b/DIW_2504B.json @@ -8,27 +8,35 @@ "item": "파일명 (수검번호.hwp/hwpx)" }, "1": { - "path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])", - "path2": null, - "searchValue": null, - "value": true, + "path": "//PAGEMARGIN", + "value": { + "Top": 20, + "Bottom": 20, + "Left": 20, + "Right": 20, + "Header": 10, + "Footer": 10, + "Gutter": 0 + }, + "tolerance": 1, "points": 4, - "category": "용지설정", + "category": "PageSetting", "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" }, "2": { - "path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')", - "path2": null, - "searchValue": null, - "value": true, + "path": "", + "value": { + "FontName": "바탕", + "FontSize": "1000", + "Alignment": "Justify", + "LineSpacing": "160" + }, "points": 4, - "category": "기본설정", + "category": "BasicSetting", "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" }, "3": { "path": "", - "path2": null, - "searchValue": null, "value": null, "points": 40, "category": "오타감점", @@ -38,826 +46,787 @@ "1": { "1": { "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "path2": null, "searchValue": "친환경에너지박람회", "value": "궁서체", "points": 1, - "category": "글맵시", - "item": "문구 (친환경에너지박람회)/① 글씨체 : 궁서체" + "category": "OneAnswer", + "item": "문구 (친환경에너지박람회)/① 글씨체 (궁서체)" }, "2": { "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "path2": null, "searchValue": "친환경에너지박람회", - "value": "5395143", + "value": "199,82,82", "points": 2, - "category": "글맵시", + "category": "Color", "item": "문구 (친환경에너지박람회)/② 채우기 : 색상(RGB:199,82,82)" }, "3": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "path2": null, "searchValue": "친환경에너지박람회", - "value": 31181, + "value": "110", + "tolerance": 1, "points": 2, - "category": "글맵시", - "item": "문구 (친환경에너지박람회)/③ 크기 : 너비(110mm)" + "category": "mmSize", + "item": "문구 (친환경에너지박람회)/③ 크기-너비 (110mm)" }, "4": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "path2": null, "searchValue": "친환경에너지박람회", - "value": 5669, + "value": "20", + "tolerance": 1, "points": 2, - "category": "글맵시", - "item": "문구 (친환경에너지박람회)/④ 크기 : 높이(20mm)" + "category": "mmSize", + "item": "문구 (친환경에너지박람회)/④ 크기-높이 (20mm)" }, "5": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "path2": null, "searchValue": "친환경에너지박람회", "value": "true", "points": 2, - "category": "글맵시", + "category": "OneAnswer", "item": "문구 (친환경에너지박람회)/⑤ 위치 (글자처럼 취급)" }, "6": { - "path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "path2": null, + "path":"//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", "searchValue": "친환경에너지박람회", "value": "Center", "points": 2, - "category": "글맵시", + "category": "OneAnswer", "item": "문구 (친환경에너지박람회)/⑥ 정렬 (가운데 정렬)" }, "7": { - "path": "boolean(//TEXTART[@Text='{searchValue}'])", - "path2": null, + "path": "//TEXTART[@Text='{searchValue}']", "searchValue": "친환경에너지박람회", "value": true, "points": 2, - "category": "글맵시", + "category": "Boolean", "item": "문구 (친환경에너지박람회)/⑦ 글맵시모양 (육안확인)" }, "8": { - "path": "boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])", - "path2": null, - "searchValue": null, - "value": true, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", + "searchValue": "지", + "value": { + "Height": 2800, + "Width": 2800 + }, + "tolerance": 200, "points": 1, - "category": "문단첫글자장식", - "item": "자/① 모양 (2줄)" + "category": "TwoLineSize", + "item": "지/① 모양 (2줄)" }, "9": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, - "searchValue": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "지", "value": "궁서", "points": 1, - "category": "문단첫글자장식", + "category": "FontName", "item": "지/② 글씨체 (궁서)" }, "10": { - "path": "//RECTANGLE[.//CHAR[text()='지']]//WINDOWBRUSH/@FaceColor", - "path2": null, - "searchValue": null, - "value": "16768058", + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", + "searchValue": "지", + "value": "58,220,255", "points": 2, - "category": "문단첫글자장식", + "category": "Color", "item": "지/③ 면색 : 색상(RGB:58,220,255)" }, "11": { - "path": "//RECTANGLE[.//CHAR[text()='지']]//OUTSIDEMARGIN/@Right", - "path2": null, - "searchValue": null, - "value": "850", + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", + "searchValue": "지", + "value": "3.0", + "tolerance": 1, "points": 2, - "category": "문단첫글자장식", + "category": "mmSize", "item": "지/④ 본문과의 간격 : 3.0mm" }, "12": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])", - "path2": null, + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", "searchValue": "태양광, 풍력, 수소에너지 등 신재생 에너지 기술", - "value": true, + "value": "BOLD", "points": 2, - "category": "글꼴 속성", + "category": "FontAttribute", "item": "문구 (태양광, 풍력, 수소에너지 등 신재생 에너지 기술)/① 진하게" }, "13": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])", - "path2": null, + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", "searchValue": "태양광, 풍력, 수소에너지 등 신재생 에너지 기술", - "value": true, + "value": "UNDERLINE", "points": 2, - "category": "글꼴 속성", + "category": "FontAttribute", "item": "문구 (태양광, 풍력, 수소에너지 등 신재생 에너지 기술)/② 밑줄" }, "14": { - "path": "count(//CHAR[contains(text(),'▶')]) + count(//CHAR[contains(text(),'◀')]) + count(//CHAR[contains(text(),'※')])", - "path2": "string-length(//CHAR[contains(text(),'▶')]) - string-length(translate(//CHAR[contains(text(),'▶')], '▶', '')) + string-length(//CHAR[contains(text(),'◀')]) - string-length(translate(//CHAR[contains(text(),'◀')], '◀', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))", - "searchValue": null, + "path": "//CHAR[contains(text(),'{char1}')]", + "path2": "//CHAR[contains(text(),'{char2}')]", + "path3": "//CHAR[contains(text(),'{char3}')]", + "char1": "▶", + "char2": "◀", + "char3": "※", "value": 3, "points": 3, - "category": "특수문자", + "category": "SpecialChar", "item": "① ▶, ② ◀, ③ ※" }, "15": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", "searchValue": "행사안내", - "value": "한양중고딕", + "value": "중고딕", "points": 1, - "category": "글꼴 속성", + "category": "FontName", "item": "문구 (▶ 행사안내 ◀)/① 글씨체 (중고딕)" }, "16": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "path2": null, "searchValue": "행사안내", "value": "Center", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (▶ 행사안내 ◀)/② 정렬 (가운데 정렬)" }, "17": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][BOLD])", - "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][BOLD])", - "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", "searchValue": "블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록", - "value": true, + "value": "BOLD", "points": 1, - "category": "Hyperlink", + "category": "FontAttribute", "item": "문구 (블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록)/① 진하게" }, "18": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])", - "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][ITALIC])", - "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", "searchValue": "블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록", - "value": true, + "value": "ITALIC", "points": 1, - "category": "Hyperlink", + "category": "FontAttribute", "item": "문구 (블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록)/② 기울임" }, - "1-19": { - "path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=2000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)", - "path2": null, + "19": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", "searchValue": "기타사항", - "value": true, + "value": { + "Left": 10, + "Indent": 12 + }, "points": 2, - "category": "문단모양", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)" + "category": "ParaShape", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)", + "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" }, "20": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "path2": null, "searchValue": "2025. 04. 26.", - "value": 1300, + "value": "1300", "points": 1, - "category": "글꼴 속성", - "item": "문구 (2025. 04. 26.)/① 크기 (13pt)" + "category": "OneAnswer", + "item": "문구 (2025. 04. 26.)/① 크기 (14pt)", + "desc": "1pt당 100" }, "21": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "path2": null, "searchValue": "2025. 04. 26.", "value": "Center", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (2025. 04. 26.)/② 정렬 (가운데 정렬)" }, "22": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "친환경에너지발전협의회", "value": "돋움", "points": 1, - "category": "글꼴 속성", + "category": "FontName", "item": "문구 (친환경에너지발전협의회)/① 글씨체 (돋움)" }, "23": { - "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "친환경에너지발전협의회", - "value": 2700, + "value": "2700", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (친환경에너지발전협의회)/② 크기 (27pt)" }, "24": { "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "path2": null, "searchValue": "친환경에너지발전협의회", "value": "Center", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (친환경에너지발전협의회)/③ 정렬 (가운데 정렬)" }, "25": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "DIAT", "value": "굴림", "points": 1, - "category": "머리말", + "category": "FontName", "item": "문구 (DIAT)/① 글꼴 (굴림)" }, "26": { - "path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "DIAT", - "value": 900, + "value": "900", "points": 1, - "category": "머리말", + "category": "OneAnswer", "item": "문구 (DIAT)/② 크기 (9pt)" - }, + }, "27": { "path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "path2": null, "searchValue": "DIAT", "value": "Right", "points": 1, - "category": "머리말", + "category": "OneAnswer", "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" }, "28": { "path": "//PAGENUM/@FormatType", - "path2": null, - "searchValue": null, "value": "HangulSyllable", "points": 2, - "category": "쪽번호", - "item": "① 쪽 번호 매기기 (가,나,다 순으로)" + "category": "PageNumber", + "item": "① 쪽 번호 매기기 (A,B,C 순으로)", + "desc1": { + "가,나,다":"HangulSyllable", + "1,2,3":"Digit", + "갑,을,병":"DecagonCircle", + "A,B,C":"LatinCapital", + "①,②,③":"CircledDigit", + "一,二,三":"Ideograph", + "㉠,㉡,㉢":"CircledHangulJamo", + "ⓐ,ⓑ,ⓒ":"CircledLatinSmall", + "i,ii,iii":"RomanSmall", + "정답에 맞는 값 value에 입력":"" + }, + "desc2": "1, 2페이지 모두 정답이어야 점수 부여" }, "29": { "path": "//PAGENUM/@Pos", - "path2": null, - "searchValue": null, "value": "BottomCenter", "points": 2, - "category": "쪽번호", - "item": "② 가운데 아래" + "category": "PageNumber", + "item": "가운데 아래", + "desc": "1, 2페이지 모두 정답이어야 점수 부여", + "desc2": { + "가운데 아래": "BottomCenter", + "오른쪽 아래": "BottomRight" + } }, "30": { - "path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])", - "path2": null, - "searchValue": null, + "path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='{option}'])", + "option": "180", "value": true, "points": 2, - "category": "줄간격", - "item": "문제 1 줄간격 180% 설정" + "category": "Boolean", + "item": "문제 1 줄간격 180% 설정", + "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점)" } }, "2": { "1": { - "path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')", - "path2": null, - "searchValue": null, - "value": true, + "path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside", + "path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]", + "value": { + "header_inside": true, + "all_double_slim": true + }, "points": 4, - "category": "쪽 테두리", - "item": "문제2 쪽 테두리(이중 실선, 머리말 포함) 설정" + "category": "PageBorder", + "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" }, "2": { "path": "count(//SECTION)>1", - "path2": null, - "searchValue": null, "value": true, "points": 3, - "category": "다단", - "item": "① 구역나누기" + "category": "Boolean", + "item": "① 구역나누기", + "desc": "섹션이 1개 이상이면 점수부여" }, "3": { - "path": "//COLDEF/@Count>1", - "path2": null, - "searchValue": null, - "value": true, + "path": "//COLDEF/@Count", + "value": "2", "points": 3, - "category": "다단", + "category": "OneAnswer", "item": "② 다단 2단" }, "4": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "path2": null, "searchValue": "친환경 에너지", - "value": 14173, + "value": "50", "points": 2, - "category": "글상자", + "category": "mmSize", "item": "문구 (친환경 에너지)/① 크기-너비 (50mm)" }, "5": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "path2": null, "searchValue": "친환경 에너지", - "value": 3402, + "value": "12", "points": 2, - "category": "글상자", + "category": "mmSize", "item": "문구 (친환경 에너지)/② 크기-높이 (12mm)" }, "6": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style", + "path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width", "searchValue": "친환경 에너지", - "value": "DoubleSlim", + "value": [ "DoubleSlim", "283" ], "points": 2, - "category": "글상자", - "item": "문구 (친환경 에너지)/③ 테두리 : 이중 실선(1.00mm)" + "category": "DoubleAnswer", + "item": "문구 (친환경 에너지)/③ 테두리 : 이중 실선(1.00mm)", + "desc": "1mm = 283pt" }, "7": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio", "searchValue": "친환경 에너지", - "value": 20, + "value": "20", "points": 2, - "category": "글상자", - "item": "문구 (친환경 에너지)/④ 글상자 모서리 (둥근 모양)" + "category": "OneAnswer", + "item": "문구 (친환경 에너지)/④ 글상자 모서리 (둥근모양)", + "desc": "모서리 비율 50이면 반원 / 20이면 둥근모양" }, "8": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", "searchValue": "친환경 에너지", - "value": "9537333", + "value": "53,135,145", "points": 2, - "category": "글상자", + "category": "Color", "item": "문구 (친환경 에너지)/⑤ 채우기 : 색상(RGB:53,135,145)" }, "9": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar", "searchValue": "친환경 에너지", "value": "true", "points": 1, - "category": "글상자", + "category": "OneAnswer", "item": "문구 (친환경 에너지)/⑥ 글상자 위치 (글자처럼 취급)" }, "10": { "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align", - "path2": null, "searchValue": "친환경 에너지", "value": "Center", "points": 1, - "category": "글상자", + "category": "OneAnswer", "item": "문구 (친환경 에너지)/⑦ 글상자 정렬 (가운데 정렬)" }, "11": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "친환경 에너지", "value": "궁서체", "points": 1, - "category": "글상자", + "category": "FontName", "item": "문구 (친환경 에너지)/⑧ 글씨체 (궁서체)" }, "12": { - "path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')", - "path2": null, + "path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "친환경 에너지", - "value": true, + "value": "2000", "points": 1, - "category": "글상자", - "item": "문구 (친환경 에너지)/⑨ 글씨크기 (20pt)" + "category": "OneAnswer", + "item": "문구 (친환경 에너지)/⑨ 글씨크기 (20pt)", + "desc":"1pt당 100" }, "13": { - "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align", - "path2": null, + "path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", "searchValue": "친환경 에너지", "value": "Center", "points": 1, - "category": "글상자", + "category": "OneAnswer", "item": "문구 (친환경 에너지)/⑩ 정렬 (가운데 정렬)" }, "14": { - "path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])", - "path2": null, + "path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])", "searchValue": "원본 그림의 이름: 그림", "value": true, "points": 2, - "category": "그림삽입", + "category": "Boolean", "item": "① 파일명 \"그림B.jpg\" 삽입" }, "15": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width", - "path2": null, - "searchValue": null, - "value": 24094, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", + "value": "85", "points": 2, - "category": "그림삽입", - "item": "② 크기-너비 (85mm)" + "category": "mmSize", + "item": "② 크기-너비 (85 mm)" }, "16": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height", - "path2": null, - "searchValue": null, - "value": 11338, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", + "value": "40", "points": 2, - "category": "그림삽입", - "item": "③ 크기-높이 (40mm)" + "category": "mmSize", + "item": "③ 크기-높이 (40 mm)" }, "17": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset", - "path2": null, - "searchValue": null, - "value": 0, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION/@HorzOffset", + "value": "0", "points": 2, - "category": "그림삽입", + "category": "mmSize", "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)" }, "18": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset", - "path2": null, - "searchValue": null, - "value": 6800, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION/@VertOffset", + "value": "24", "points": 2, - "category": "그림삽입", + "category": "mmSize", "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24mm)" }, "19": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "1. 친환경 에너지 개요", "value": "돋움", "points": 1, - "category": "속성", + "category": "FontName", "item": "문구① (1. 친환경 에너지 개요)/① 글씨체 (돋움)" }, "20": { - "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "1. 친환경 에너지 개요", - "value": 1200, + "value": "1200", "points": 1, - "category": "속성", + "category": "OneAnswer", "item": "문구① (1. 친환경 에너지 개요)/② 크기 (12pt)" }, "21": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "searchValue": "1. 친환경 에너지 개요", - "value": true, + "value": "BOLD", "points": 1, - "category": "속성", + "category": "FontAttribute", "item": "문구① (1. 친환경 에너지 개요)/③ 진하게" }, "22": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "2. 신재생 에너지", "value": "돋움", "points": 1, - "category": "속성", + "category": "FontName", "item": "문구② (2. 신재생 에너지)/① 글씨체 (돋움)" }, "23": { - "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "2. 신재생 에너지", - "value": 1200, + "value": "1200", "points": 1, - "category": "속성", + "category": "OneAnswer", "item": "문구② (2. 신재생 에너지)/② 크기 (12pt)" }, "24": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "searchValue": "2. 신재생 에너지", - "value": true, + "value": "BOLD", "points": 1, - "category": "속성", + "category": "FontAttribute", "item": "문구② (2. 신재생 에너지)/③ 진하게" }, "25": { - "path": "boolean(//CHAR[contains(text(),'태양전지')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)", - "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('태양전지') + 1) = '태양전지']/following-sibling::FOOTNOTE/descendant::CHAR)", - "searchValue": null, + "path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)", + "option": "태양전지", "value": true, "points": 2, - "category": "각주", - "item": "문구 (태양전지)/① 문구입력" + "category": "Boolean", + "item": "문구 (태양전지)/① 각주 설정 및 문구 입력" }, "26": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", "searchValue": "태양의 빛에너지를 전기에너지로 변환시켜 전기를 발생하는 장치로 친환경 방식으로 알려져 있음", "value": "굴림", "points": 1, - "category": "각주", + "category": "FontName", "item": "문구 (태양전지)/② 글씨체 (굴림)" }, "27": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", "searchValue": "태양의 빛에너지를 전기에너지로 변환시켜 전기를 발생하는 장치로 친환경 방식으로 알려져 있음", - "value": 900, + "value": "900", "points": 1, - "category": "각주", + "category": "OneAnswer", "item": "문구 (태양전지)/③ 크기 (9pt)" }, "28": { "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "path2": null, "searchValue": "태양의 빛에너지를 전기에너지로 변환시켜 전기를 발생하는 장치로 친환경 방식으로 알려져 있음", "value": "CircledHangulJamo", "points": 2, - "category": "각주", - "item": "문구 (태양전지)/④ 각주 번호 모양" + "category": "OneAnswer", + "item": "문구 (태양전지)/④ 각주 번호모양", + "desc": { + "가,나,다":"HangulSyllable", + "1,2,3":"Digit", + "갑,을,병":"DecagonCircle", + "A,B,C":"LatinCapital", + "①,②,③":"CircledDigit", + "一,二,三":"Ideograph", + "㉠,㉡,㉢":"CircledHangulJamo", + "ⓐ,ⓑ,ⓒ":"CircledLatinSmall", + "i,ii,iii":"RomanSmall", + "정답에 맞는 값 value에 입력":"" + } }, "29": { "path": "boolean(//CHAR[contains(text(),'Campaign')])", - "path2": null, "ignoreWord": "Campaign", "value": true, "points": 3, - "category": "영단어", - "item": "Campaign/영단어 미입력, 대소문자/오타 시 전체 감점" + "category": "Boolean", + "item": "Campaign/영단어 미입력, 대소문자/오타 시 전체 감점", + "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" }, "30": { - "path": "(count(//CHAR[contains(text(),'저감')][contains(text(),'低減')])+count(//CHAR[contains(text(),'화석')][contains(text(),'化石')])+count(//CHAR[contains(text(),'투자')][contains(text(),'投資')])+count(//CHAR[contains(text(),'달성')][contains(text(),'達成')])+count(//CHAR[contains(text(),'세금')][contains(text(),'稅金')]))*2", - "path2": null, - "searchValue": null, + "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", + "word":[ + ["저감", "低減"], + ["화석", "化石"], + ["투자", "投資"], + ["달성", "達成"], + ["세금", "稅金"] + ], "value": 10, "points": 10, - "category": "한자", - "item": "① 한옥(韓屋), ② 사계절(四季節), ③거주(居住), ④ 구조(構造), ⑤ 골격(骨格)" + "category": "Hanja", + "item": "① 저감(低減), ② 화석(化石), ③ 투자(投資), ④ 달성(達成), ⑤ 세금(稅金)" }, "31": { "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'택을제공')])", - "path2": null, - "searchValue": null, "value": true, "points": 3, - "category": "편집", - "item": "문구 (…세금 혜택이 제공하고 있으며…)/\"이\" → \"을\" 글자바꿈" + "category": "Boolean", + "item": "문구 (…세금 혜택이 제공하고 있으며…)/\"이\" → \"을\" 글자바꿈" }, - "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'탄소배출')])", - "path2": null, - "searchValue": null, + "32": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'탄소배출')])", "value": true, "points": 3, - "category": "편집", - "item": "문구 (…배출 탄소 규제가 강화되면서…)/\"배출\" / \"탄소\" 순서바꿈" + "category": "Boolean", + "item": "문구 (…배출 탄소 규제가 강화되면서…)/\"배출\" / \"탄소\" 순서바꿈" }, "33": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, - "searchValue": "친환경 에너지 성장률(단위: %)", - "value": "돋움", + "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", + "searchValue": "친환경 에너지 성장률(단위: %)", + "value": "돋움", "points": 1, - "category": "표", - "item": "제목 문구 (친환경 에너지 성장률(단위: %))/① 글씨체 (돋움)" + "category": "FontName", + "item": "제목 문구 (친환경 에너지 성장률(단위: %))/① 글씨체 (돋움)" }, "34": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "path2": null, - "searchValue": "친환경 에너지 성장률(단위: %)", - "value": 1200, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "친환경 에너지 성장률(단위: %)", + "value": "1200", "points": 1, - "category": "표", - "item": "제목 문구 (친환경 에너지 성장률(단위: %))/② 크기 (12pt)" + "category": "OneAnswer", + "item": "제목 문구 (친환경 에너지 성장률(단위: %))/② 크기 (12pt)" }, "35": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)", - "path2": null, - "searchValue": "친환경 에너지 성장률(단위: %)", - "value": true, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "searchValue": "친환경 에너지 성장률(단위: %)", + "value": "BOLD", "points": 1, - "category": "표", - "item": "제목 문구 (친환경 에너지 성장률(단위: %))/③ 진하게" + "category": "FontAttribute", + "item": "제목 문구 (친환경 에너지 성장률(단위: %))/③ 진하게" }, "36": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "path2": null, - "searchValue": "친환경 에너지 성장률(단위: %)", + "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", + "searchValue": "친환경 에너지 성장률(단위: %)", "value": "Center", "points": 1, - "category": "표", - "item": "제목 문구 (친환경 에너지 성장률(단위: %))/④ 정렬 (가운데 정렬)" + "category": "OneAnswer", + "item": "제목 문구 (친환경 에너지 성장률(단위: %))/④ 정렬 (가운데 정렬)" }, "37": { "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "searchValue": null, - "value": "10966730", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "value": "202,86,167", "points": 2, - "category": "표", - "item": "위쪽 제목 셀/① 색상(RGB:202,86,167)" + "category": "Color", + "item": "위쪽 제목 셀/① 색상(RGB:202,86,167)" }, "38": { - "path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)", - "path2": null, - "searchValue": null, - "value": true, + "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", + "value": "BOLD", "points": 1, - "category": "표", - "item": "위쪽 제목 셀/② 진하게" + "category": "FontAttribute", + "item": "위쪽 제목 셀/② 진하게", + "desc": "글자 속성이라 CELLZONE으로 적용 되지 않음" }, "39": { "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type", - "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Type", - "searchValue": null, + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", "value": "DoubleSlim", "points": 2, - "category": "표", - "item": "제목 셀 아래선/① 이중 실선" + "category": "TableAnswer", + "item": "제목 셀 아래선/① 이중실선" }, "40": { "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width", - "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Width", - "searchValue": null, + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", "value": "0.5mm", "points": 2, - "category": "표", + "category": "TableAnswer", "item": "제목 셀 아래선/② 0.5mm" }, "41": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, - "searchValue": null, - "value": "한양중고딕", + "path": "//TABLE//TEXT/@CharShape", + "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "value": "중고딕", "points": 1, - "category": "표", - "item": "글자모양/① 글씨체 (중고딕)" + "category": "TableFontName", + "category_tmp": "FontName", + "item": "글자모양/① 글씨체 (중고딕)", + "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" }, "42": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height", - "path2": null, - "searchValue": null, - "value": 1000, + "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", + "value": "1000", "points": 1, - "category": "표", + "category": "TableAnswer", "item": "글자모양/② 크기 (10pt)" }, "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align", - "path2": null, - "searchValue": null, + "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", "value": "Center", "points": 1, - "category": "표", + "category": "TableAnswer", "item": "글자모양/③ 정렬 (가운데 정렬)" }, "44": { - "path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=AVG') and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=AVG')]])", - "path2": null, - "searchValue": null, + "path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])", + "option": "AVG", "value": true, "points": 4, - "category": "표", - "item": "블록계산식/평균" + "category": "Boolean", + "item": "블록 계산식/합계", + "desc": "option값에 합계는 SUM / 평균은 AVG" }, "45": { - "path": "//c:lineChart/c:grouping/@val='standard'", - "path2": null, - "searchValue": null, + "chart_xpath": "", + "chart_type": "꺾은선형", "value": true, "points": 2, - "category": "chart_xml", - "item": "① 종류 (꺾은선형)" + "category": "ChartType", + "item": "① 종류 (꺾은선형)", + "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" }, "46": { - "path": "//c:valAx/c:majorTickMark/@val", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:valAx/c:majorTickMark/@val", "value": "out", "points": 2, - "category": "chart_xml", - "item": "② 값 축 주 눈금선" + "category": "OneAnswer", + "item": "② 값 축 주 눈금선", + "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" }, "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width", - "path2": null, - "searchValue": null, - "value": 22677, + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", + "value": "80", "points": 2, - "category": "차트", - "item": "③ 크기-너비 (80mm)" + "category": "mmSize", + "item": "③ 크기-너비 (80 mm)" }, "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height", - "path2": null, - "searchValue": null, - "value": 22677, + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", + "value": "80", "points": 2, - "category": "차트", - "item": "④ 크기-높이 (80mm)" + "category": "mmSize", + "item": "④ 크기-높이 (80 mm)" }, "49": { - "path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])", - "path2": null, - "searchValue": null, + "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", "value": true, "points": 2, - "category": "chart_xml", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)" + "category": "Boolean", + "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", + "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" }, "50": { - "path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "path2": null, - "searchValue": "친환경 에너지 성장률", - "value": "궁서체", + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", + "searchValue": "친환경 에너지 성장률", + "value": "궁서체", "points": 1, - "category": "chart_xml", - "item": "제목 문구 (친환경 에너지 성장률)/① 글씨체 (궁서체)" + "category": "OneAnswer", + "item": "제목 문구 (친환경 에너지 성장률)/① 글씨체 (궁서체)" }, "51": { - "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "path2": null, - "searchValue": "친환경 에너지 성장률", - "value": 1300, + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", + "searchValue": "친환경 에너지 성장률", + "value": "1300", "points": 1, - "category": "chart_xml", - "item": "제목 문구 (친환경 에너지 성장률)/② 크기 (13pt)" + "category": "OneAnswer", + "item": "제목 문구 (친환경 에너지 성장률)/② 크기 (13pt)" }, "52": { - "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b", - "path2": null, - "searchValue": "친환경 에너지 성장률", - "value": 1, + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", + "option": "b", + "searchValue": "친환경 에너지 성장률", + "value": "1", "points": 1, - "category": "chart_xml", - "item": "제목 문구 (친환경 에너지 성장률)/③ 진하게" + "category": "OneAnswer", + "item": "제목 문구 (친환경 에너지 성장률)/③ 진하게", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "53": { - "path": "//c:catAx//a:ea/@typeface", - "path2": null, - "searchValue": null, - "value": "바탕", + "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", + "value": "바탕", "points": 1, - "category": "chart_xml", - "item": "X축/① 글꼴 (바탕)" + "category": "OneAnswer", + "item": "X축/① 글꼴 (바탕)" }, "54": { - "path": "//c:catAx//a:defRPr/@sz", - "path2": null, - "searchValue": null, - "value": 900, + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", + "value": "900", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "X축/② 크기 (9pt)" }, "55": { - "path": "//c:catAx//a:defRPr/@i", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", + "option": "i", "value": "1", "points": 1, - "category": "chart_xml", - "item": "X축/③ 기울임" + "category": "OneAnswer", + "item": "X축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "56": { - "path": "//c:valAx//a:ea/@typeface", - "path2": null, - "searchValue": null, - "value": "바탕", + "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", + "value": "바탕", "points": 1, - "category": "chart_xml", - "item": "Y축/① 글꼴 (바탕)" + "category": "OneAnswer", + "item": "Y축/① 글꼴 (바탕)" }, "57": { - "path": "//c:valAx//a:defRPr/@sz", - "path2": null, - "searchValue": null, - "value": 900, + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", + "value": "900", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "Y축/② 크기 (9pt)" }, "58": { - "path": "//c:valAx//a:defRPr/@i", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", + "option": "i", "value": "1", "points": 1, - "category": "chart_xml", - "item": "Y축/③ 기울임" + "category": "OneAnswer", + "item": "Y축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "59": { - "path": "//c:legend//a:ea/@typeface", - "path2": null, - "searchValue": null, - "value": "바탕", + "chart_xpath": "//c:legend//a:ea/@typeface", + "value": "바탕", "points": 1, - "category": "chart_xml", - "item": "범례/① 글꼴 (바탕)" + "category": "OneAnswer", + "item": "범례/① 글꼴 (바탕)" }, "60": { - "path": "//c:legend//a:defRPr/@sz", - "path2": null, - "searchValue": null, - "value": 900, + "chart_xpath": "//c:legend//a:defRPr/@sz", + "value": "900", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "범례/② 크기 (9pt)" }, "61": { - "path": "//c:legend//a:defRPr/@i", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:legend//a:defRPr/@{option}", + "option": "i", "value": "1", "points": 1, - "category": "chart_xml", - "item": "범례/③ 기울임" + "category": "OneAnswer", + "item": "범례/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" } } } \ No newline at end of file diff --git a/DIW_2504C.json b/DIW_2504C.json index 6d92128..0cf3fff 100644 --- a/DIW_2504C.json +++ b/DIW_2504C.json @@ -8,27 +8,35 @@ "item": "파일명 (수검번호.hwp/hwpx)" }, "1": { - "path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])", - "path2": null, - "searchValue": null, - "value": true, + "path": "//PAGEMARGIN", + "value": { + "Top": 20, + "Bottom": 20, + "Left": 20, + "Right": 20, + "Header": 10, + "Footer": 10, + "Gutter": 0 + }, + "tolerance": 1, "points": 4, - "category": "용지설정", + "category": "PageSetting", "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" }, "2": { - "path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')", - "path2": null, - "searchValue": null, - "value": true, + "path": "", + "value": { + "FontName": "바탕", + "FontSize": "1000", + "Alignment": "Justify", + "LineSpacing": "160" + }, "points": 4, - "category": "기본설정", + "category": "BasicSetting", "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" }, "3": { "path": "", - "path2": null, - "searchValue": null, "value": null, "points": 40, "category": "오타감점", @@ -38,826 +46,788 @@ "1": { "1": { "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "path2": null, "searchValue": "서울국제도서박람회", "value": "돋움", "points": 1, - "category": "글맵시", - "item": "문구 (서울국제도서박람회)/① 글씨체 : 돋움" + "category": "OneAnswer", + "item": "문구 (서울국제도서박람회)/① 글씨체 (돋움)" }, "2": { "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "path2": null, "searchValue": "서울국제도서박람회", - "value": "6438172", + "value": "28,61,98", "points": 2, - "category": "글맵시", - "item": "문구 (서울국제도서박람회)/② 채우기 : 색상(RGB:28,61,98)" + "category": "Color", + "item": "문구 (서울국제도서박람회)/② 채우기 : 색상(RGB:100,170,92)" }, "3": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "path2": null, "searchValue": "서울국제도서박람회", - "value": 28346, + "value": "100", + "tolerance": 1, "points": 2, - "category": "글맵시", - "item": "문구 (서울국제도서박람회)/③ 크기 : 너비(100mm)" + "category": "mmSize", + "item": "문구 (서울국제도서박람회)/③ 크기-너비 (100mm)" }, "4": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "path2": null, "searchValue": "서울국제도서박람회", - "value": 5669, + "value": "20", + "tolerance": 1, "points": 2, - "category": "글맵시", - "item": "문구 (서울국제도서박람회)/④ 크기 : 높이(20mm)" + "category": "mmSize", + "item": "문구 (서울국제도서박람회)/④ 크기-높이 (20mm)" }, "5": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "path2": null, "searchValue": "서울국제도서박람회", "value": "true", "points": 2, - "category": "글맵시", + "category": "OneAnswer", "item": "문구 (서울국제도서박람회)/⑤ 위치 (글자처럼 취급)" }, "6": { - "path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "path2": null, + "path":"//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", "searchValue": "서울국제도서박람회", "value": "Center", "points": 2, - "category": "글맵시", + "category": "OneAnswer", "item": "문구 (서울국제도서박람회)/⑥ 정렬 (가운데 정렬)" }, "7": { - "path": "boolean(//TEXTART[@Text='{searchValue}'])", - "path2": null, + "path": "//TEXTART[@Text='{searchValue}']", "searchValue": "서울국제도서박람회", "value": true, "points": 2, - "category": "글맵시", + "category": "Boolean", "item": "문구 (서울국제도서박람회)/⑦ 글맵시모양 (육안확인)" }, "8": { - "path": "boolean(//RECTANGLE[.//CHAR[text()='책']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])", - "path2": null, - "searchValue": null, - "value": true, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", + "searchValue": "책", + "value": { + "Height": 2800, + "Width": 2800 + }, + "tolerance": 200, "points": 1, - "category": "문단첫글자장식", + "category": "TwoLineSize", "item": "책/① 모양 (2줄)" }, "9": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='책']]/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, - "searchValue": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "책", "value": "돋움", "points": 1, - "category": "문단첫글자장식", + "category": "FontName", "item": "책/② 글씨체 (돋움)" }, "10": { - "path": "//RECTANGLE[.//CHAR[text()='책']]//WINDOWBRUSH/@FaceColor", - "path2": null, - "searchValue": null, - "value": "1943246", + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", + "searchValue": "책", + "value": "206,166,29", "points": 2, - "category": "문단첫글자장식", + "category": "Color", "item": "책/③ 면색 : 색상(RGB:206,166,29)" }, "11": { - "path": "//RECTANGLE[.//CHAR[text()='책']]//OUTSIDEMARGIN/@Right", - "path2": null, - "searchValue": null, - "value": "850", + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", + "searchValue": "책", + "value": "3.0", + "tolerance": 1, "points": 2, - "category": "문단첫글자장식", + "category": "mmSize", "item": "책/④ 본문과의 간격 : 3.0mm" }, "12": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])", - "path2": null, + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", "searchValue": "문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판", - "value": true, + "value": "BOLD", "points": 2, - "category": "글꼴 속성", + "category": "FontAttribute", "item": "문구 (문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판)/① 진하게" }, "13": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][ITALIC])", - "path2": null, + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", "searchValue": "문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판", - "value": true, + "value": "ITALIC", "points": 2, - "category": "글꼴 속성", + "category": "FontAttribute", "item": "문구 (문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판)/② 기울임" }, "14": { - "path": "count(//CHAR[contains(text(),'◆')]) + count(//CHAR[contains(text(),'※')])", - "path2": "string-length(//CHAR[contains(text(),'◆')]) - string-length(translate(//CHAR[contains(text(),'◆')], '◆', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))", - "searchValue": null, + "path": "//CHAR[contains(text(),'{char1}')]", + "path2": "//CHAR[contains(text(),'{char2}')]", + "path3": "//CHAR[contains(text(),'{char3}')]", + "char1": "◆", + "char2": "◆", + "char3": "※", "value": 3, "points": 3, - "category": "특수문자", + "category": "SpecialChar", "item": "① ◆, ② ◆, ③ ※" }, "15": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", "searchValue": "행사안내", "value": "궁서", "points": 1, - "category": "글꼴 속성", + "category": "FontName", "item": "문구 (◆ 행사안내 ◆)/① 글씨체 (궁서)" }, "16": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "path2": null, "searchValue": "행사안내", "value": "Center", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (◆ 행사안내 ◆)/② 정렬 (가운데 정렬)" }, "17": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])", - "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][ITALIC])", - "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", "searchValue": "서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조", - "value": true, + "value": "ITALIC", "points": 1, - "category": "Hyperlink", + "category": "FontAttribute", "item": "문구 (서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조)/① 기울임" }, "18": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])", - "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][UNDERLINE])", - "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", "searchValue": "서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조", - "value": true, + "value": "UNDERLINE", "points": 1, - "category": "Hyperlink", + "category": "FontAttribute", "item": "문구 (서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조)/② 밑줄" }, "19": { - "path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)", - "path2": null, + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", "searchValue": "기타사항", - "value": true, + "value": { + "Left": 15, + "Indent": 12 + }, "points": 2, - "category": "문단모양", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)" + "category": "ParaShape", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)", + "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" }, "20": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "path2": null, "searchValue": "2025. 04. 26.", - "value": 1300, + "value": "1300", "points": 1, - "category": "글꼴 속성", - "item": "문구 (2025. 04. 26.)/① 크기 (13pt)" + "category": "OneAnswer", + "item": "문구 (2025. 04. 26.)/① 크기 (14pt)", + "desc": "1pt당 100" }, "21": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "path2": null, "searchValue": "2025. 04. 26.", "value": "Center", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (2025. 04. 26.)/② 정렬 (가운데 정렬)" }, "22": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "서울국제도서박람회", - "value": "한양견고딕", + "value": "견고딕", "points": 1, - "category": "글꼴 속성", + "category": "FontName", "item": "문구 (서울국제도서박람회)/① 글씨체 (견고딕)" }, "23": { - "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "서울국제도서박람회", - "value": 2500, + "value": "2500", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (서울국제도서박람회)/② 크기 (25pt)" }, "24": { "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "path2": null, "searchValue": "서울국제도서박람회", "value": "Center", "points": 1, - "category": "글꼴 속성", + "category": "OneAnswer", "item": "문구 (서울국제도서박람회)/③ 정렬 (가운데 정렬)" }, "25": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "DIAT", - "value": "한양중고딕", + "value": "중고딕", "points": 1, - "category": "머리말", + "category": "FontName", "item": "문구 (DIAT)/① 글꼴 (중고딕)" }, "26": { - "path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "DIAT", - "value": 900, + "value": "900", "points": 1, - "category": "머리말", + "category": "OneAnswer", "item": "문구 (DIAT)/② 크기 (9pt)" - }, + }, "27": { "path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "path2": null, "searchValue": "DIAT", "value": "Right", "points": 1, - "category": "머리말", + "category": "OneAnswer", "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" }, "28": { "path": "//PAGENUM/@FormatType", - "path2": null, - "searchValue": null, "value": "RomanSmall", "points": 2, - "category": "쪽번호", - "item": "① 쪽 번호 매기기 (i,ii,iii 순으로)" + "category": "PageNumber", + "item": "① 쪽 번호 매기기 (A,B,C 순으로)", + "desc1": { + "가,나,다":"HangulSyllable", + "1,2,3":"Digit", + "갑,을,병":"DecagonCircle", + "A,B,C":"LatinCapital", + "①,②,③":"CircledDigit", + "一,二,三":"Ideograph", + "㉠,㉡,㉢":"CircledHangulJamo", + "ⓐ,ⓑ,ⓒ":"CircledLatinSmall", + "i,ii,iii":"RomanSmall", + "정답에 맞는 값 value에 입력":"" + }, + "desc2": "1, 2페이지 모두 정답이어야 점수 부여" }, "29": { "path": "//PAGENUM/@Pos", - "path2": null, - "searchValue": null, "value": "BottomRight", "points": 2, - "category": "쪽번호", - "item": "② 오른쪽 아래" + "category": "PageNumber", + "item": "가운데 아래", + "desc": "1, 2페이지 모두 정답이어야 점수 부여", + "desc2": { + "가운데 아래": "BottomCenter", + "오른쪽 아래": "BottomRight" + } }, "30": { - "path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])", - "path2": null, - "searchValue": null, + "path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='{option}'])", + "option": "180", "value": true, "points": 2, - "category": "줄간격", - "item": "문제 1 줄간격 180% 설정" + "category": "Boolean", + "item": "문제 1 줄간격 180% 설정", + "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점)" } }, "2": { "1": { - "path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')", - "path2": null, - "searchValue": null, - "value": true, + "path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside", + "path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]", + "value": { + "header_inside": true, + "all_double_slim": true + }, "points": 4, - "category": "쪽 테두리", - "item": "문제2 쪽 테두리(이중 실선, 머리말 포함) 설정" + "category": "PageBorder", + "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" }, "2": { "path": "count(//SECTION)>1", - "path2": null, - "searchValue": null, "value": true, "points": 3, - "category": "다단", - "item": "① 구역나누기" + "category": "Boolean", + "item": "① 구역나누기", + "desc": "섹션이 1개 이상이면 점수부여" }, "3": { - "path": "//COLDEF/@Count>1", - "path2": null, - "searchValue": null, - "value": true, + "path": "//COLDEF/@Count", + "value": "2", "points": 3, - "category": "다단", + "category": "OneAnswer", "item": "② 다단 2단" }, "4": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "path2": null, "searchValue": "출판 산업 트렌드", - "value": 19842, + "value": "70", "points": 2, - "category": "글상자", + "category": "mmSize", "item": "문구 (출판 산업 트렌드)/① 크기-너비 (70mm)" }, "5": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "path2": null, "searchValue": "출판 산업 트렌드", - "value": 3402, + "value": "12", "points": 2, - "category": "글상자", + "category": "mmSize", "item": "문구 (출판 산업 트렌드)/② 크기-높이 (12mm)" }, "6": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style", + "path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width", "searchValue": "출판 산업 트렌드", - "value": "DoubleSlim", + "value": [ "DoubleSlim", "283" ], "points": 2, - "category": "글상자", - "item": "문구 (출판 산업 트렌드)/③ 테두리 : 이중 실선(1.00mm)" + "category": "DoubleAnswer", + "item": "문구 (출판 산업 트렌드)/③ 테두리 : 이중 실선(1.00mm)", + "desc": "1mm = 283pt" }, "7": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio", "searchValue": "출판 산업 트렌드", - "value": 50, + "value": "50", "points": 2, - "category": "글상자", - "item": "문구 (출판 산업 트렌드)/④ 글상자 모서리 (반원)" + "category": "OneAnswer", + "item": "문구 (출판 산업 트렌드)/④ 글상자 모서리 (반원)", + "desc": "모서리 비율 50이면 반원 / 20이면 둥근모양" }, "8": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", "searchValue": "출판 산업 트렌드", - "value": "5395050", + "value": "106,82,82", "points": 2, - "category": "글상자", - "item": "문구 (출판 산업 트렌드)/⑤ 채우기 : 색상(RGB:199,82,82)" + "category": "Color", + "item": "문구 (출판 산업 트렌드)/⑤ 채우기 : 색상(RGB:106,82,82)" }, "9": { - "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "path2": null, + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar", "searchValue": "출판 산업 트렌드", "value": "true", "points": 1, - "category": "글상자", + "category": "OneAnswer", "item": "문구 (출판 산업 트렌드)/⑥ 글상자 위치 (글자처럼 취급)" }, "10": { "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align", - "path2": null, "searchValue": "출판 산업 트렌드", "value": "Center", "points": 1, - "category": "글상자", + "category": "OneAnswer", "item": "문구 (출판 산업 트렌드)/⑦ 글상자 정렬 (가운데 정렬)" }, "11": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "출판 산업 트렌드", "value": "휴먼옛체", "points": 1, - "category": "글상자", - "item": "문구 (출판 산업 트렌드)/⑧ 글씨체 (휴먼옛체)" + "category": "FontName", + "item": "문구 (출판 산업 트렌드)/⑧ 글씨체 (휴먼옛체)", + "desc": "폰트 '견고딕'과 '중고딕'은 한글프로그램 내부적으로 '한양견고딕', '한양중고딕'처리 되어서 프로그램 내부에서 수험자 답변에서 '한양'을 제거하는 과정을 거침" }, "12": { - "path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')", - "path2": null, + "path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "출판 산업 트렌드", - "value": true, + "value": "2000", "points": 1, - "category": "글상자", - "item": "문구 (출판 산업 트렌드)/⑨ 글씨크기 (20pt)" + "category": "OneAnswer", + "item": "문구 (출판 산업 트렌드)/⑨ 글씨크기 (20pt)", + "desc":"1pt당 100" }, "13": { - "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align", - "path2": null, + "path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", "searchValue": "출판 산업 트렌드", "value": "Center", "points": 1, - "category": "글상자", + "category": "OneAnswer", "item": "문구 (출판 산업 트렌드)/⑩ 정렬 (가운데 정렬)" }, "14": { - "path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])", - "path2": null, + "path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])", "searchValue": "원본 그림의 이름: 그림", "value": true, "points": 2, - "category": "그림삽입", + "category": "Boolean", "item": "① 파일명 \"그림C.jpg\" 삽입" }, "15": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width", - "path2": null, - "searchValue": null, - "value": 22677, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", + "value": "80", "points": 2, - "category": "그림삽입", - "item": "② 크기-너비 (85mm)" + "category": "mmSize", + "item": "② 크기-너비 (80 mm)" }, "16": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height", - "path2": null, - "searchValue": null, - "value": 11338, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", + "value": "40", "points": 2, - "category": "그림삽입", - "item": "③ 크기-높이 (40mm)" + "category": "mmSize", + "item": "③ 크기-높이 (40 mm)" }, "17": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset", - "path2": null, - "searchValue": null, - "value": 0, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION/@HorzOffset", + "value": "0", "points": 2, - "category": "그림삽입", + "category": "mmSize", "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)" }, "18": { - "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset", - "path2": null, - "searchValue": null, - "value": 6800, + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION/@VertOffset", + "value": "24", "points": 2, - "category": "그림삽입", + "category": "mmSize", "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24mm)" }, "19": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "1. 출판 산업의 확장", "value": "굴림", "points": 1, - "category": "속성", + "category": "FontName", "item": "문구① (1. 출판 산업의 확장)/① 글씨체 (굴림)" }, "20": { - "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "1. 출판 산업의 확장", - "value": 1200, + "value": "1200", "points": 1, - "category": "속성", + "category": "OneAnswer", "item": "문구① (1. 출판 산업의 확장)/② 크기 (12pt)" }, "21": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "searchValue": "1. 출판 산업의 확장", - "value": true, + "value": "BOLD", "points": 1, - "category": "속성", + "category": "FontAttribute", "item": "문구① (1. 출판 산업의 확장)/③ 진하게" }, "22": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "2. 도서 박람회의 가치", "value": "굴림", "points": 1, - "category": "속성", + "category": "FontName", "item": "문구② (2. 도서 박람회의 가치)/① 글씨체 (굴림)" }, "23": { - "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "2. 도서 박람회의 가치", - "value": 1200, + "value": "1200", "points": 1, - "category": "속성", + "category": "OneAnswer", "item": "문구② (2. 도서 박람회의 가치)/② 크기 (12pt)" }, "24": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "searchValue": "2. 도서 박람회의 가치", - "value": true, + "value": "BOLD", "points": 1, - "category": "속성", + "category": "FontAttribute", "item": "문구② (2. 도서 박람회의 가치)/③ 진하게" }, "25": { - "path": "boolean(//CHAR[contains(text(),'오디오북')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)", - "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('오디오북') + 1) = '오디오북']/following-sibling::FOOTNOTE/descendant::CHAR)", - "searchValue": null, + "path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)", + "option": "오디오북", "value": true, "points": 2, - "category": "각주", - "item": "문구 (오디오북)/① 문구입력" + "category": "Boolean", + "item": "문구 (오디오북)/① 각주 설정 및 문구 입력" }, "26": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", "searchValue": "눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함", "value": "궁서", "points": 1, - "category": "각주", + "category": "FontName", "item": "문구 (오디오북)/② 글씨체 (궁서)" }, "27": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", "searchValue": "눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함", - "value": 900, + "value": "900", "points": 1, - "category": "각주", + "category": "OneAnswer", "item": "문구 (오디오북)/③ 크기 (9pt)" }, "28": { "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "path2": null, "searchValue": "눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함", "value": "CircledLatinSmall", "points": 2, - "category": "각주", - "item": "문구 (오디오북)/④ 각주 번호 모양" + "category": "OneAnswer", + "item": "문구 (오디오북)/④ 각주 번호모양", + "desc": { + "가,나,다":"HangulSyllable", + "1,2,3":"Digit", + "갑,을,병":"DecagonCircle", + "A,B,C":"LatinCapital", + "①,②,③":"CircledDigit", + "一,二,三":"Ideograph", + "㉠,㉡,㉢":"CircledHangulJamo", + "ⓐ,ⓑ,ⓒ":"CircledLatinSmall", + "i,ii,iii":"RomanSmall", + "정답에 맞는 값 value에 입력":"" + } }, "29": { "path": "boolean(//CHAR[contains(text(),'Platform')])", - "path2": null, "ignoreWord": "Platform", "value": true, "points": 3, - "category": "영단어", - "item": "cornerstone/영단어 미입력, 대소문자/오타 시 전체 감점" + "category": "Boolean", + "item": "Platform/영단어 미입력, 대소문자/오타 시 전체 감점", + "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" }, "30": { - "path": "(count(//CHAR[contains(text(),'출판')][contains(text(),'出版')])+count(//CHAR[contains(text(),'독자')][contains(text(),'讀者')])+count(//CHAR[contains(text(),'박람회')][contains(text(),'博覽會')])+count(//CHAR[contains(text(),'교류')][contains(text(),'交流')])+count(//CHAR[contains(text(),'증가')][contains(text(),'增加')]))*2", - "path2": null, - "searchValue": null, + "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", + "word":[ + ["출판", "出版"], + ["독자", "讀者"], + ["박람회", "博覽會"], + ["교류", "交流"], + ["증가", "增加"] + ], "value": 10, "points": 10, - "category": "한자", + "category": "Hanja", "item": "① 출판(出版), ② 독자(讀者), ③ 박람회(博覽會), ④ 교류(交流), ⑤ 증가(增加)" }, "31": { "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'래도점점')])", - "path2": null, - "searchValue": null, "value": true, "points": 3, - "category": "편집", + "category": "Boolean", "item": "문구 (…콘텐츠 거래는 점점…)/\"는\" → \"도\" 글자바꿈" }, "32": { "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'양한산업')])", - "path2": null, - "searchValue": null, "value": true, "points": 3, - "category": "편집", + "category": "Boolean", "item": "문구 (…요식업 등의 산업과 다양한 연계되며…)/\"산업과\" / \"다양한\" 순서바꿈" }, "33": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, + "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", "searchValue": "출판 산업 성장률(단위: %)", "value": "돋움", "points": 1, - "category": "표", + "category": "FontName", "item": "제목 문구 (출판 산업 성장률(단위: %))/① 글씨체 (돋움)" }, "34": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", "searchValue": "출판 산업 성장률(단위: %)", - "value": 1200, + "value": "1200", "points": 1, - "category": "표", + "category": "OneAnswer", "item": "제목 문구 (출판 산업 성장률(단위: %))/② 크기 (12pt)" }, "35": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)", - "path2": null, + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "searchValue": "출판 산업 성장률(단위: %)", - "value": true, + "value": "BOLD", "points": 1, - "category": "표", + "category": "FontAttribute", "item": "제목 문구 (출판 산업 성장률(단위: %))/③ 진하게" }, "36": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "path2": null, + "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", "searchValue": "출판 산업 성장률(단위: %)", "value": "Center", "points": 1, - "category": "표", + "category": "OneAnswer", "item": "제목 문구 (출판 산업 성장률(단위: %))/④ 정렬 (가운데 정렬)" }, "37": { "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "searchValue": null, - "value": "13938409", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "value": "233,174,212", "points": 2, - "category": "표", - "item": "위쪽 제목 셀/① 색상(RGB:233,174,43)" + "category": "Color", + "item": "위쪽 제목 셀/① 색상(RGB:233,174,212)" }, "38": { - "path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)", - "path2": null, - "searchValue": null, - "value": true, + "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", + "value": "BOLD", "points": 1, - "category": "표", - "item": "위쪽 제목 셀/② 진하게" + "category": "FontAttribute", + "item": "위쪽 제목 셀/② 진하게", + "desc": "글자 속성이라 CELLZONE으로 적용 되지 않음" }, "39": { "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type", - "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Type", - "searchValue": null, + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", "value": "DoubleSlim", "points": 2, - "category": "표", - "item": "제목 셀 아래선/① 이중 실선" + "category": "TableAnswer", + "item": "제목 셀 아래선/① 이중실선" }, "40": { "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width", - "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Width", - "searchValue": null, + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", "value": "0.5mm", "points": 2, - "category": "표", + "category": "TableAnswer", "item": "제목 셀 아래선/② 0.5mm" }, "41": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "path2": null, - "searchValue": null, - "value": "한양중고딕", + "path": "//TABLE//TEXT/@CharShape", + "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "value": "중고딕", "points": 1, - "category": "표", - "item": "글자모양/① 글씨체 (중고딕)" + "category": "TableFontName", + "category_tmp": "FontName", + "item": "글자모양/① 글씨체 (중고딕)", + "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" }, "42": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height", - "path2": null, - "searchValue": null, - "value": 1000, + "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", + "value": "1000", "points": 1, - "category": "표", + "category": "TableAnswer", "item": "글자모양/② 크기 (10pt)" }, "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align", - "path2": null, - "searchValue": null, + "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", "value": "Center", "points": 1, - "category": "표", + "category": "TableAnswer", "item": "글자모양/③ 정렬 (가운데 정렬)" }, "44": { - "path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=AVG') and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=AVG')]])", - "path2": null, - "searchValue": null, + "path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])", + "option": "AVG", "value": true, "points": 4, - "category": "표", - "item": "블록계산식/평균" + "category": "Boolean", + "item": "블록 계산식/합계", + "desc": "option값에 합계는 SUM / 평균은 AVG" }, "45": { - "path": "boolean(//c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']])", - "path2": null, - "searchValue": null, + "chart_xpath": "", + "chart_type": "묶은가로막대형", "value": true, "points": 2, - "category": "chart_xml", - "item": "① 종류 (묶은 가로 막대형)" + "category": "ChartType", + "item": "① 종류 (묶은가로막대형)", + "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" }, "46": { - "path": "//c:valAx/c:majorTickMark/@val", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:valAx/c:majorTickMark/@val", "value": "out", "points": 2, - "category": "chart_xml", - "item": "② 값 축 주 눈금선" + "category": "OneAnswer", + "item": "② 값 축 주 눈금선", + "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" }, "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width", - "path2": null, - "searchValue": null, - "value": 22677, + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", + "value": "80", "points": 2, - "category": "차트", - "item": "③ 크기-너비 (80mm)" + "category": "mmSize", + "item": "③ 크기-너비 (80 mm)" }, "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height", - "path2": null, - "searchValue": null, - "value": 22677, + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", + "value": "80", "points": 2, - "category": "차트", - "item": "④ 크기-높이 (80mm)" + "category": "mmSize", + "item": "④ 크기-높이 (80 mm)" }, "49": { - "path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='평균'])", - "path2": null, - "searchValue": null, + "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", "value": true, "points": 2, - "category": "chart_xml", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)" + "category": "Boolean", + "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", + "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" }, "50": { - "path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "path2": null, + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", "searchValue": "출판 산업 성장률", "value": "바탕", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "제목 문구 (출판 산업 성장률)/① 글씨체 (바탕)" }, "51": { - "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "path2": null, + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", "searchValue": "출판 산업 성장률", - "value": 1200, + "value": "1200", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "제목 문구 (출판 산업 성장률)/② 크기 (12pt)" }, "52": { - "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b", - "path2": null, + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", + "option": "b", "searchValue": "출판 산업 성장률", - "value": 1, + "value": "1", "points": 1, - "category": "chart_xml", - "item": "제목 문구 (출판 산업 성장률)/③ 진하게" + "category": "OneAnswer", + "item": "제목 문구 (출판 산업 성장률)/③ 진하게", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "53": { - "path": "//c:catAx//a:ea/@typeface", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", "value": "돋움", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "X축/① 글꼴 (돋움)" }, "54": { - "path": "//c:catAx//a:defRPr/@sz", - "path2": null, - "searchValue": null, - "value": 900, + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", + "value": "900", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "X축/② 크기 (9pt)" }, "55": { - "path": "//c:catAx//a:defRPr/@i", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", + "option": "i", "value": "1", "points": 1, - "category": "chart_xml", - "item": "X축/③ 기울임" + "category": "OneAnswer", + "item": "X축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "56": { - "path": "//c:valAx//a:ea/@typeface", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", "value": "돋움", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "Y축/① 글꼴 (돋움)" }, "57": { - "path": "//c:valAx//a:defRPr/@sz", - "path2": null, - "searchValue": null, - "value": 900, + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", + "value": "900", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "Y축/② 크기 (9pt)" }, "58": { - "path": "//c:valAx//a:defRPr/@i", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", + "option": "i", "value": "1", "points": 1, - "category": "chart_xml", - "item": "Y축/③ 기울임" + "category": "OneAnswer", + "item": "Y축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "59": { - "path": "//c:legend//a:ea/@typeface", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:legend//a:ea/@typeface", "value": "돋움", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "범례/① 글꼴 (돋움)" }, "60": { - "path": "//c:legend//a:defRPr/@sz", - "path2": null, - "searchValue": null, - "value": 900, + "chart_xpath": "//c:legend//a:defRPr/@sz", + "value": "900", "points": 1, - "category": "chart_xml", + "category": "OneAnswer", "item": "범례/② 크기 (9pt)" }, "61": { - "path": "//c:legend//a:defRPr/@i", - "path2": null, - "searchValue": null, + "chart_xpath": "//c:legend//a:defRPr/@{option}", + "option": "i", "value": "1", "points": 1, - "category": "chart_xml", - "item": "범례/③ 기울임" + "category": "OneAnswer", + "item": "범례/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" } } } \ No newline at end of file diff --git a/diwScoring2.py b/diwScoring2.py index ebf3d5a..ff17d01 100644 --- a/diwScoring2.py +++ b/diwScoring2.py @@ -94,15 +94,22 @@ class XMLScorer: is_correct = False + # 일치 여부 확인 if method == "equal": is_correct = (user_answer == right_answer) + + # 정답이 오차범위가 필요한 경우 elif method == "tolerance": if isinstance(user_answer, dict) and isinstance(right_answer, dict): is_correct = all(abs(user_answer[k] - right_answer[k]) <= tolerance for k in right_answer) else: is_correct = abs(user_answer - right_answer) <= tolerance + + # 정답이 포함되어 있는 경우 elif method == "in": is_correct = user_answer in right_answer + + # 정답을 부분점수로 계산(특수문자, 한자) elif method == "partial_score": # 부분 점수 계산 is_correct = isinstance(user_answer, (int, float)) and user_answer <= right_answer @@ -176,7 +183,8 @@ class XMLScorer: xpath = xpath.replace('{option}', option) if xpath else "" xpath2 = xpath2.replace('{option}', option) if xpath2 else "" chart_xpath = chart_xpath.replace('{option}', option) if chart_xpath else "" - + + # 문항 별 채점 결과 저장 scoring = { 'section': section_id, @@ -281,33 +289,72 @@ class XMLScorer: self.partial_score += points scoring['points'] = points - # 정답이 하나 또는 테이블의 모든 값이 정답인 경우 - elif (category or "") in ["OneAnswer", "TableOneAnswer"]: + # 테이블의 경우 모든 셀에 요구사항이 적용되어야 정답처리 + elif (category or "") == "TableAnswer": items = root.xpath(xpath) if xpath else [] items2 = root.xpath(xpath2) if xpath2 else [] + + def is_all_match(item_list): + return item_list and all(item == right_answer for item in item_list) + ## 위 코드와 동일한 기능(풀어서 설명) + # 리스트가 비어 있으면 False 반환 + # if not item_list: + # return False + + # # 리스트의 모든 항목이 right_answer와 같은지 검사 + # for item in item_list: + # if item != right_answer: + # return False # 하나라도 다르면 False 반환 + + # return True # 전부 일치하면 True 반환 + + if is_all_match(items): + user_answer = right_answer + elif is_all_match(items2): + user_answer = right_answer + else: + user_answer = "" + points = 0 + + self.evaluate_answer(scoring, user_answer, right_answer, points) + + + # 정답이 하나인 경우 + # elif (category or "") == "OneAnswer": + elif (category or "") in ["OneAnswer", "ChartOneAnswer"]: + items = root.xpath(xpath) if xpath else [] + items2 = root.xpath(xpath2) if xpath2 else [] + + # 차트 XML에서 정답을 찾는 경우 + # 차트 종류가 + # 세로막대형이면 x축이 카테고리(catAx) y축이 값(valAx) + # 가로막대형이면 x축이 값(valAx) y축이 카테고리(catAx) + if category == "ChartOneAnswer": + # 하드코딩이라 [2-45문항] 변경시 수정 필요 + # chart_type = self.scoring_criteria["2"]["45"]["chart_type"].replace(" ","") + + # chart_type 변수의 경우 45번 문항을 먼저 채점하므로 + # xy축의 변경이 필요한 53~58번 문항 채점시에 chart_type변수에 차트모양의 정보는 입력 되어있음 + + # 가로 차트일 경우에만 x축과 y축을 바꿔줌 + # 세로, 꺾은선, 원형 차트의 경우 그대로 사용 + if "가로" in chart_type: + chart_xpath = chart_xpath.replace("catAx", "valAx") + chart_xpath = chart_xpath.replace("valAx", "catAx") + + + chart_items = chart_tree.xpath(chart_xpath, namespaces=namespaces) if chart_xpath else [] - - require_all_match = (category == "TableOneAnswer") - any_match = False - all_match = True - + for item in chain(items, items2, chart_items): user_answer = item - if user_answer == right_answer: - any_match = True - else: - all_match = False - if require_all_match: - break # 하나라도 다르면 바로 탈출 - - if require_all_match: - score = points if all_match else 0 - else: - score = points if any_match else 0 - - self.evaluate_answer(scoring, user_answer, right_answer, score) + self.evaluate_answer(scoring, user_answer, right_answer, points) + if scoring['points'] > 0: + break + + # 정답이 두개인 경우 elif (category or "") == "DoubleAnswer": items1 = root.xpath(xpath) if xpath else [] items2 = root.xpath(xpath2) if xpath else [] @@ -326,7 +373,7 @@ class XMLScorer: items = root.xpath(xpath) # 오차범위 설정 - # 한글 프로그램 내부에서 드물게 mm단위는 0mm이지만 pt단위는 1pt로 저장되는 경우가 있음 + # 한글 프로그램 내부에서 드물게 0mm이지만 1pt로 저장되는 경우가 있음 # # XML파일의 요소 옵션값은 내부적으로 1=0.01pt # 이 경우를 대비하여 tolerance를 10으로 설정 (1pt=약0.04mm 만큼의 오차 혀용) @@ -419,6 +466,7 @@ class XMLScorer: require_all_match = (category == "TableFontName") any_match = False all_match = True + matched_user_answer = None # 일치하는 user_answer를 기억 for charshape_id in charshape_list: font_id = root.xpath(f"//CHARSHAPE[@Id='{charshape_id}']/FONTID/@Hangul") @@ -439,6 +487,7 @@ class XMLScorer: if user_answer == right_answer: any_match = True + matched_user_answer = user_answer else: all_match = False if require_all_match: @@ -446,19 +495,19 @@ class XMLScorer: if require_all_match: score = points if all_match else 0 + self.evaluate_answer(scoring, user_answer, right_answer, score) else: score = points if any_match else 0 - - self.evaluate_answer(scoring, user_answer, right_answer, score, method="equal") + self.evaluate_answer(scoring, matched_user_answer if any_match else "", right_answer, score) # 폰트 속성 elif (category or "") == "FontAttribute": # 하이퍼링크 처리 hyperlink_ptag = criterion.get('hyperlink_ptag', None) - has_ptag = root.xpath(hyperlink_ptag) if hyperlink_ptag else False + has_hyperlink_ptag = root.xpath(hyperlink_ptag) if hyperlink_ptag else False # hyperlink가 아닌 경우(일반적인 텍스트 일 경우) - if not has_ptag: + if not has_hyperlink_ptag: charshape = root.xpath(xpath) if not charshape: charshape = None @@ -473,12 +522,20 @@ class XMLScorer: self.evaluate_answer(scoring, user_answer, right_answer, points, method="equal") # 하이퍼링크인 경우 - elif has_ptag: + elif has_hyperlink_ptag: hyperlink_text = search_value.replace(" ", "") - p_elements = has_ptag + p_elements = has_hyperlink_ptag for p in p_elements: + # 수험자가 입력한 텍스트 중 하이퍼링크가 들어간 문단의 모든 텍스트를 가져와 + # 채점하고자 하는 (정답) 하이퍼링크 텍스트와 시작 위치를 비교 + # (예시) + # [수험자입력] 1. 사전등록 : 서울 국제 도서 박람회 흠페이지(http://www.ind.or.kr) 참조 + # [정답] 서울 국제 도서 박람회 흠페이지(http://www.ind.or.kr) 참조 + # 수험자 텍스트의 "1. 사전등록" 부분을 제외하고 난 뒤 + # 남은 "서울 국제 도서 박람회 흠페이지(http://www.ind.or.kr) 참조"의 정답 부분과 유사도를 비교 + text_list = p.xpath(".//CHAR/text()") full_text = ''.join(text_list).replace(" ", "") # print("full_text: ", full_text) @@ -623,13 +680,12 @@ class XMLScorer: self.evaluate_answer(scoring, user_answer, right_answer, points, method="equal") # 한자 - elif (category or "") == "Hanja": - word_list = criterion.get('word', []) - + elif (category or "") == "Hanja": # 점수 계산 score = 0 max_score = points + word_list = criterion.get('word', []) # 부분점수 (최대점수에서 한자 갯수만큼 나눈 몫) score_per_pair = max_score // len(word_list) @@ -652,15 +708,13 @@ class XMLScorer: elif (category or "") == "ChartType": chart_type_list = { '꺾은선형': "//c:lineChart[c:grouping[@val='standard']]", - '가로막대형': "//c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']]", - '세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]", + '묶은가로막대형': "//c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']]", + '묶은세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]", '원형': "//c:pieChart", '분산형': "//c:scatterChart" } chart_type = criterion.get('chart_type').replace(" ","") - if "묶은" in chart_type: - chart_type = chart_type.replace("묶은", "") - + # 입력한 chart_type에 해당하는 xpath를 가져옴 chart_xpath = chart_type_list[chart_type] @@ -723,10 +777,8 @@ class XMLScorer: return xml_data def typo_check(self, correct_answer_file, user_answer_file, chart_xml): - user_answer_tree = ET.parse(user_answer_file) - user_answer_root = user_answer_tree.getroot() - correct_answer_tree = ET.parse(correct_answer_file) - correct_answer_root = correct_answer_tree.getroot() + user_answer_root = ET.parse(user_answer_file).getroot() + correct_answer_root = ET.parse(correct_answer_file).getroot() # xpath로 바이너리 부분추출 user_input_text = user_answer_root.xpath('//CHAR//text()[not(ancestor::HEADER) and not(ancestor::TABLE)]') @@ -762,8 +814,6 @@ class XMLScorer: correct_input_text = [re.sub(r'\d+\.\s*|-', '', text) for text in correct_input_text] try : - # xpath = self.scoring_criteria["2"]["29"]['path'].split("'")[1] - # ignore_word = xpath.split("'")[1] ignore_word = self.scoring_criteria["2"]["29"]["ignoreWord"] # 특정 단어 제거 # 오타와 누락의 경우만 판단하면 정상작동하지만 @@ -975,19 +1025,22 @@ def main(): # 시험회차 및 유형 exam_round = '2504' + + # 채점하고자 하는 유형은 주석 해제 exam_types = [ - # 'A', - # 'B', + 'A', + 'B', 'C', ] + test_mode = False - # test_mode = True + # test_mode = True #/TEST 폴더 채점시 output_excel_paths = [] for exam_type in exam_types: # JSON 채점기준표 파일 (예시:DIW_2503A.json) # scoring_criteria_path = f'./DIW_{exam_round}.json' - scoring_criteria_path = f'./DIW_{exam_round}{exam_type}_new.json' + scoring_criteria_path = f'./DIW_{exam_round}{exam_type}.json' # xml(hml)파일 디렉토리 경로 (예시:./output/A/DIW) # xml_directory = f'./output/{exam_type}/{"TEST" if test_mode else "DIW"}' diff --git a/zzz.xbook b/zzz.xbook index bce9d7b..165fd1c 100644 --- a/zzz.xbook +++ b/zzz.xbook @@ -1 +1 @@ -[{"kind":2,"language":"xpath","value":"//a:t[text()='클라우드 보안투자']/ancestor::a:r//a:ea/@typeface"},{"kind":2,"language":"xpath","value":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕'"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT/@Name"},{"kind":2,"language":"xpath","value":"//CHARSHAPE/@Height"},{"kind":2,"language":"xpath","value":"//PARASHAPE/PARAMARGIN/@LineSpacing"},{"kind":2,"language":"xpath","value":"//PARASHAPE/@Align"},{"kind":2,"language":"xpath","value":"//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width"}] \ No newline at end of file +[{"kind":2,"language":"xpath","value":"//a:t[text()='클라우드 보안투자']/ancestor::a:r//a:ea/@typeface"},{"kind":2,"language":"xpath","value":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕'"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT/@Name"},{"kind":2,"language":"xpath","value":"//CHARSHAPE/@Height"},{"kind":2,"language":"xpath","value":"//c:valAx//a:defRPr/@sz"},{"kind":2,"language":"xpath","value":"//c:catAx/c:txPr//a:defRPr/@i"},{"kind":2,"language":"xpath","value":"//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width"}] \ No newline at end of file diff --git a/구버전신버전점수비교A형.xlsx b/구버전신버전점수비교A형.xlsx index d9e79ee..66ffaeb 100644 Binary files a/구버전신버전점수비교A형.xlsx and b/구버전신버전점수비교A형.xlsx differ diff --git a/구버전신버전점수비교C형.xlsx b/구버전신버전점수비교C형.xlsx index 6005fe1..bbe1733 100644 Binary files a/구버전신버전점수비교C형.xlsx and b/구버전신버전점수비교C형.xlsx differ diff --git a/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_A형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_A형_채점결과.xlsx index 15ea1b8..759a530 100644 Binary files a/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_A형_채점결과.xlsx and b/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_A형_채점결과.xlsx differ diff --git a/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_B형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_B형_채점결과.xlsx index 0d54665..5782c5a 100644 Binary files a/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_B형_채점결과.xlsx and b/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_B형_채점결과.xlsx differ diff --git a/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_C형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_C형_채점결과.xlsx index 9a95053..ab18a38 100644 Binary files a/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_C형_채점결과.xlsx and b/회차별채점자료/2504/excel_채점결과/250501_DIW_2504회_C형_채점결과.xlsx differ diff --git a/250507_DIW_2504회_A형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250507_DIW_2504회_A형_채점결과.xlsx similarity index 100% rename from 250507_DIW_2504회_A형_채점결과.xlsx rename to 회차별채점자료/2504/excel_채점결과/250507_DIW_2504회_A형_채점결과.xlsx diff --git a/250507_DIW_2504회_B형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250507_DIW_2504회_B형_채점결과.xlsx similarity index 100% rename from 250507_DIW_2504회_B형_채점결과.xlsx rename to 회차별채점자료/2504/excel_채점결과/250507_DIW_2504회_B형_채점결과.xlsx diff --git a/250507_DIW_2504회_C형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250507_DIW_2504회_C형_채점결과.xlsx similarity index 100% rename from 250507_DIW_2504회_C형_채점결과.xlsx rename to 회차별채점자료/2504/excel_채점결과/250507_DIW_2504회_C형_채점결과.xlsx diff --git a/250516_DIW_2504회_A형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250516_DIW_2504회_A형_채점결과.xlsx similarity index 100% rename from 250516_DIW_2504회_A형_채점결과.xlsx rename to 회차별채점자료/2504/excel_채점결과/250516_DIW_2504회_A형_채점결과.xlsx diff --git a/250519_DIW_2504회_A형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250519_DIW_2504회_A형_채점결과.xlsx similarity index 100% rename from 250519_DIW_2504회_A형_채점결과.xlsx rename to 회차별채점자료/2504/excel_채점결과/250519_DIW_2504회_A형_채점결과.xlsx diff --git a/250520_DIW_2504회_A형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250520_DIW_2504회_A형_채점결과.xlsx similarity index 100% rename from 250520_DIW_2504회_A형_채점결과.xlsx rename to 회차별채점자료/2504/excel_채점결과/250520_DIW_2504회_A형_채점결과.xlsx diff --git a/250520_DIW_2504회_B형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250520_DIW_2504회_B형_채점결과.xlsx similarity index 100% rename from 250520_DIW_2504회_B형_채점결과.xlsx rename to 회차별채점자료/2504/excel_채점결과/250520_DIW_2504회_B형_채점결과.xlsx diff --git a/250521_DIW_2504회_B형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250521_DIW_2504회_B형_채점결과.xlsx similarity index 100% rename from 250521_DIW_2504회_B형_채점결과.xlsx rename to 회차별채점자료/2504/excel_채점결과/250521_DIW_2504회_B형_채점결과.xlsx diff --git a/회차별채점자료/2504/excel_채점결과/250521_DIW_2504회_C형_채점결과.xlsx b/회차별채점자료/2504/excel_채점결과/250521_DIW_2504회_C형_채점결과.xlsx new file mode 100644 index 0000000..efe6e76 Binary files /dev/null and b/회차별채점자료/2504/excel_채점결과/250521_DIW_2504회_C형_채점결과.xlsx differ diff --git a/회차별채점자료/2504/json_채점기준표/0507/DIW_2504A.json b/회차별채점자료/2504/json_채점기준표/0507/DIW_2504A.json new file mode 100644 index 0000000..729542b --- /dev/null +++ b/회차별채점자료/2504/json_채점기준표/0507/DIW_2504A.json @@ -0,0 +1,862 @@ +{ + "0": { + "0": { + "path": "", + "path2": "", + "points": 0, + "category": "파일저장", + "item": "파일명 (수검번호.hwp/hwpx)" + }, + "1": { + "path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "용지설정", + "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" + }, + "2": { + "path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "기본설정", + "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" + }, + "3": { + "path": "", + "path2": null, + "searchValue": null, + "value": null, + "points": 40, + "category": "오타감점", + "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" + } + }, + "1": { + "1": { + "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", + "path2": null, + "searchValue": "클라우드컴퓨팅컨퍼런스", + "value": "맑은 고딕", + "points": 1, + "category": "글맵시", + "item": "문구 (클라우드컴퓨팅컨퍼런스)/① 글씨체 (맑은 고딕)" + }, + "2": { + "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", + "path2": null, + "searchValue": "클라우드컴퓨팅컨퍼런스", + "value": "6438172", + "points": 2, + "category": "글맵시", + "item": "문구 (클라우드컴퓨팅컨퍼런스)/② 채우기 : 색상(RGB:100,170,92)" + }, + "3": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", + "path2": null, + "searchValue": "클라우드컴퓨팅컨퍼런스", + "value": 31181, + "points": 2, + "category": "글맵시", + "item": "문구 (클라우드컴퓨팅컨퍼런스)/③ 크기-너비 (100mm)" + }, + "4": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", + "path2": null, + "searchValue": "클라우드컴퓨팅컨퍼런스", + "value": 5669, + "points": 2, + "category": "글맵시", + "item": "문구 (클라우드컴퓨팅컨퍼런스)/④ 크기-높이 (20mm)" + }, + "5": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", + "path2": null, + "searchValue": "클라우드컴퓨팅컨퍼런스", + "value": "true", + "points": 2, + "category": "글맵시", + "item": "문구 (클라우드컴퓨팅컨퍼런스)/⑤ 위치 (글자처럼 취급)" + }, + "6": { + "path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "클라우드컴퓨팅컨퍼런스", + "value": "Center", + "points": 2, + "category": "글맵시", + "item": "문구 (클라우드컴퓨팅컨퍼런스)/⑥ 정렬 (가운데 정렬)" + }, + "7": { + "path": "boolean(//TEXTART[@Text='{searchValue}'])", + "path2": null, + "searchValue": "클라우드컴퓨팅컨퍼런스", + "value": true, + "points": 2, + "category": "글맵시", + "item": "문구 (클라우드컴퓨팅컨퍼런스)/⑦ 글맵시모양 (육안확인)" + }, + "8": { + "path": "boolean(//RECTANGLE[.//CHAR[text()='전']][.//SIZE[(@Height >= 2600 and @Height <= 3000)and(@Width >= 2600 and @Width <= 3000)]])", + "path2": null, + "searchValue": null, + "value": true, + "points": 1, + "category": "문단첫글자장식", + "item": "전/① 모양 (2줄)" + }, + "9": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='전']]/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": null, + "value": "궁서체", + "points": 1, + "category": "문단첫글자장식", + "item": "전/② 글씨체 (궁서체)" + }, + "10": { + "path": "//RECTANGLE[.//CHAR[text()='전']]//WINDOWBRUSH/@FaceColor", + "path2": null, + "searchValue": null, + "value": "3835135", + "points": 2, + "category": "문단첫글자장식", + "item": "전/③ 면색 : 색상(RGB:255,132,58)" + }, + "11": { + "path": "//RECTANGLE[.//CHAR[text()='전']]//OUTSIDEMARGIN/@Right", + "path2": null, + "searchValue": null, + "value": "850", + "points": 2, + "category": "문단첫글자장식", + "item": "전/④ 본문과의 간격 : 3.0mm" + }, + "12": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])", + "path2": null, + "searchValue": "글로벌 클라우드 컴퓨팅 컨퍼런스", + "value": true, + "points": 2, + "category": "글꼴 속성", + "item": "문구 (글로벌 클라우드 컴퓨팅 컨퍼런스)/① 진하게" + }, + "13": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])", + "path2": null, + "searchValue": "글로벌 클라우드 컴퓨팅 컨퍼런스", + "value": true, + "points": 2, + "category": "글꼴 속성", + "item": "문구 (글로벌 클라우드 컴퓨팅 컨퍼런스)/② 밑줄" + }, + "14": { + "path": "count(//CHAR[contains(text(),'●')]) + count(//CHAR[contains(text(),'※')])", + "path2": "string-length(//CHAR[contains(text(),'●')]) - string-length(translate(//CHAR[contains(text(),'●')], '●', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))", + "searchValue": null, + "value": 3, + "points": 3, + "category": "특수문자", + "item": "① ●, ② ●, ③ ※" + }, + "15": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "참여안내", + "value": "궁서", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (● 참여안내 ●)/① 글씨체 (궁서)" + }, + "16": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "참여안내", + "value": "Center", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (● 참여안내 ●)/② 정렬 (가운데 정렬)" + }, + "17": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])", + "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][ITALIC])", + "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "홈페이지(http://www.ihd.or.kr) 참조", + "value": true, + "points": 1, + "category": "Hyperlink", + "item": "문구 (홈페이지(http://www.ihd.or.kr) 참조)/① 기울임" + }, + "18": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])", + "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][UNDERLINE])", + "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "홈페이지(http://www.ihd.or.kr) 참조", + "value": true, + "points": 1, + "category": "Hyperlink", + "item": "문구 (홈페이지(http://www.ihd.or.kr) 참조)/② 밑줄" + }, + "19": { + "path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)", + "path2": null, + "searchValue": "기타사항", + "value": true, + "points": 2, + "category": "문단모양", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)" + }, + "20": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "2025. 04. 26.", + "value": 1400, + "points": 1, + "category": "글꼴 속성", + "item": "문구 (2025. 04. 26.)/① 크기 (14pt)" + }, + "21": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "2025. 04. 26.", + "value": "Center", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (2025. 04. 26.)/② 정렬 (가운데 정렬)" + }, + "22": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "글로벌멀티클라우드협의회", + "value": "궁서체", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (글로벌멀티클라우드협의회)/① 글씨체 (궁서체)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "글로벌멀티클라우드협의회", + "value": 2600, + "points": 1, + "category": "글꼴 속성", + "item": "문구 (글로벌멀티클라우드협의회)/② 크기 (26pt)" + }, + "24": { + "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "글로벌멀티클라우드협의회", + "value": "Center", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (글로벌멀티클라우드협의회)/③ 정렬 (가운데 정렬)" + }, + "25": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "DIAT", + "value": "궁서", + "points": 1, + "category": "머리말", + "item": "문구 (DIAT)/① 글꼴 (궁서)" + }, + "26": { + "path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "DIAT", + "value": 900, + "points": 1, + "category": "머리말", + "item": "문구 (DIAT)/② 크기 (9pt)" + }, + "27": { + "path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "DIAT", + "value": "Right", + "points": 1, + "category": "머리말", + "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" + }, + "28": { + "path": "//PAGENUM/@FormatType", + "path2": null, + "searchValue": null, + "value": "LatinCapital", + "points": 2, + "category": "쪽번호", + "item": "① 쪽 번호 매기기 (A,B,C 순으로)" + }, + "29": { + "path": "//PAGENUM/@Pos", + "path2": null, + "searchValue": null, + "value": "BottomRight", + "points": 2, + "category": "쪽번호", + "item": "② 오른쪽 아래" + }, + "30": { + "path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='200'])", + "path2": null, + "searchValue": null, + "value": true, + "points": 2, + "category": "줄간격", + "item": "문제 1 줄간격 200% 설정" + } + }, + "2": { + "1": { + "path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "쪽 테두리", + "item": "문제2 쪽 테두리(이중 실선, 머리말 포함) 설정" + }, + "2": { + "path": "count(//SECTION)>1", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "다단", + "item": "① 구역나누기" + }, + "3": { + "path": "//COLDEF/@Count>1", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "다단", + "item": "② 다단 2단" + }, + "4": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width", + "path2": null, + "searchValue": "클라우드 컴퓨팅", + "value": 17007, + "points": 2, + "category": "글상자", + "item": "문구 (클라우드 컴퓨팅)/① 크기-너비 (60mm)" + }, + "5": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height", + "path2": null, + "searchValue": "클라우드 컴퓨팅", + "value": 3401, + "points": 2, + "category": "글상자", + "item": "문구 (클라우드 컴퓨팅)/② 크기-높이 (12mm)" + }, + "6": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style", + "path2": null, + "searchValue": "클라우드 컴퓨팅", + "value": "DoubleSlim", + "points": 2, + "category": "글상자", + "item": "문구 (클라우드 컴퓨팅)/③ 테두리 : 이중 실선(1.00mm)" + }, + "7": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio", + "path2": null, + "searchValue": "클라우드 컴퓨팅", + "value": 50, + "points": 2, + "category": "글상자", + "item": "문구 (클라우드 컴퓨팅)/④ 글상자 모서리 (반원)" + }, + "8": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor", + "path2": null, + "searchValue": "클라우드 컴퓨팅", + "value": "10966730", + "points": 2, + "category": "글상자", + "item": "문구 (클라우드 컴퓨팅)/⑤ 채우기 : 색상(RGB:202,86,167)" + }, + "9": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", + "path2": null, + "searchValue": "클라우드 컴퓨팅", + "value": "true", + "points": 1, + "category": "글상자", + "item": "문구 (클라우드 컴퓨팅)/⑥ 글상자 위치 (글자처럼 취급)" + }, + "10": { + "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align", + "path2": null, + "searchValue": "클라우드 컴퓨팅", + "value": "Center", + "points": 1, + "category": "글상자", + "item": "문구 (클라우드 컴퓨팅)/⑦ 글상자 정렬 (가운데 정렬)" + }, + "11": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "클라우드 컴퓨팅", + "value": "한양견고딕", + "points": 1, + "category": "글상자", + "item": "문구 (클라우드 컴퓨팅)/⑧ 글씨체 (견고딕)" + }, + "12": { + "path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')", + "path2": null, + "searchValue": "클라우드 컴퓨팅", + "value": true, + "points": 1, + "category": "글상자", + "item": "문구 (클라우드 컴퓨팅)/⑨ 글씨크기 (20pt)" + }, + "13": { + "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align", + "path2": null, + "searchValue": "클라우드 컴퓨팅", + "value": "Center", + "points": 1, + "category": "글상자", + "item": "문구 (클라우드 컴퓨팅)/⑩ 정렬 (가운데 정렬)" + }, + "14": { + "path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])", + "path2": null, + "searchValue": "원본 그림의 이름: 그림", + "value": true, + "points": 2, + "category": "그림삽입", + "item": "① 파일명 \"그림A.jpg\" 삽입" + }, + "15": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width", + "path2": null, + "searchValue": null, + "value": 22677, + "points": 2, + "category": "그림삽입", + "item": "② 크기-너비 (80mm)" + }, + "16": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height", + "path2": null, + "searchValue": null, + "value": 12755, + "points": 2, + "category": "그림삽입", + "item": "③ 크기-높이 (40mm)" + }, + "17": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset", + "path2": null, + "searchValue": null, + "value": 0, + "points": 2, + "category": "그림삽입", + "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)" + }, + "18": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset", + "path2": null, + "searchValue": null, + "value": 6803, + "points": 2, + "category": "그림삽입", + "item": "⑤ 위치 (어울림 : 세로-쪽의 위 22mm)" + }, + "19": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "1. 주목하는 최신 트렌드", + "value": "굴림", + "points": 1, + "category": "속성", + "item": "문구① (1. 주목하는 최신 트렌드)/① 글씨체 (굴림)" + }, + "20": { + "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "1. 주목하는 최신 트렌드", + "value": 1200, + "points": 1, + "category": "속성", + "item": "문구① (1. 주목하는 최신 트렌드)/② 크기 (12pt)" + }, + "21": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": "1. 주목하는 최신 트렌드", + "value": true, + "points": 1, + "category": "속성", + "item": "문구① (1. 주목하는 최신 트렌드)/③ 진하게" + }, + "22": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "2. 기술의 경제적 가치", + "value": "굴림", + "points": 1, + "category": "속성", + "item": "문구② (2. 기술의 경제적 가치)/① 글씨체 (굴림)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "2. 기술의 경제적 가치", + "value": 1200, + "points": 1, + "category": "속성", + "item": "문구② (2. 기술의 경제적 가치)/② 크기 (12pt)" + }, + "24": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": "2. 기술의 경제적 가치", + "value": true, + "points": 1, + "category": "속성", + "item": "문구② (2. 기술의 경제적 가치)/③ 진하게" + }, + "25": { + "path": "boolean(//CHAR[contains(text(),'클라우드')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('클라우드') + 1) = '클라우드']/following-sibling::FOOTNOTE/descendant::CHAR)", + "searchValue": null, + "value": true, + "points": 2, + "category": "각주", + "item": "문구 (클라우드)/① 각주 설정 및 문구 입력" + }, + "26": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "인터넷을 통해 액세스할 수 있는 가상화된 서버에서 실행되는 프로그램과 데이터베이스를 제공하는 환경", + "value": "한양중고딕", + "points": 1, + "category": "각주", + "item": "문구 (클라우드)/② 글씨체 (한양중고딕)" + }, + "27": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "인터넷을 통해 액세스할 수 있는 가상화된 서버에서 실행되는 프로그램과 데이터베이스를 제공하는 환경", + "value": 900, + "points": 1, + "category": "각주", + "item": "문구 (클라우드)/③ 크기 (9pt)" + }, + "28": { + "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", + "path2": null, + "searchValue": "인터넷을 통해 액세스할 수 있는 가상화된 서버에서 실행되는 프로그램과 데이터베이스를 제공하는 환경", + "value": "Ideograph", + "points": 2, + "category": "각주", + "item": "문구 (클라우드)/④ 각주 번호모양" + }, + "29": { + "path": "boolean(//CHAR[contains(text(),'Digital')])", + "path2": null, + "ignoreWord": "Digital", + "value": true, + "points": 3, + "category": "영단어", + "item": "Digital/영단어 미입력, 대소문자/오타 시 전체 감점" + }, + "30": { + "path": "(count(//CHAR[contains(text(),'전환')][contains(text(),'轉換')])+count(//CHAR[contains(text(),'핵심')][contains(text(),'核心')])+count(//CHAR[contains(text(),'확산')][contains(text(),'擴散')])+count(//CHAR[contains(text(),'보안')][contains(text(),'保安')])+count(//CHAR[contains(text(),'도입')][contains(text(),'導入')]))*2", + "path2": null, + "searchValue": null, + "value": 10, + "points": 10, + "category": "한자", + "item": "① 전환(轉換), ② 핵심(核心), ③ 확산(擴散), ④ 보안(保安), ⑤ 도입(導入)" + }, + "31": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'션이발전')])", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "편집", + "item": "문구 (…보안(保安) 솔루션은 발전하면서…)/\"은\" → \"이\" 글자바꿈" + }, + "32": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이터유출')])", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "편집", + "item": "문구 (…유출과 데이터 사이버…)/\"유출과\" / \"데이터\" 순서바꿈" + }, + "33": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "클라우드 보안(단위: 백만 달러)", + "value": "돋움", + "points": 1, + "category": "표", + "item": "제목 문구 (클라우드 보안(단위: 백만 달러))/① 글씨체 (돋움)" + }, + "34": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "클라우드 보안(단위: 백만 달러)", + "value": 1200, + "points": 1, + "category": "표", + "item": "제목 문구 (클라우드 보안(단위: 백만 달러))/② 크기 (12pt)" + }, + "35": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": "클라우드 보안(단위: 백만 달러)", + "value": true, + "points": 1, + "category": "표", + "item": "제목 문구 (클라우드 보안(단위: 백만 달러))/③ 진하게" + }, + "36": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "클라우드 보안(단위: 백만 달러)", + "value": "Center", + "points": 1, + "category": "표", + "item": "제목 문구 (클라우드 보안(단위: 백만 달러))/④ 정렬 (가운데 정렬)" + }, + "37": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "value": "2862825", + "points": 2, + "category": "표", + "item": "위쪽 제목 셀/① 색상(RGB:233,174,43)" + }, + "38": { + "path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": null, + "value": true, + "points": 1, + "category": "표", + "item": "위쪽 제목 셀/② 진하게" + }, + "39": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Type", + "searchValue": null, + "value": "DoubleSlim", + "points": 2, + "category": "표", + "item": "제목 셀 아래선/① 이중실선" + }, + "40": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Width", + "searchValue": null, + "value": "0.5mm", + "points": 2, + "category": "표", + "item": "제목 셀 아래선/② 0.5mm" + }, + "41": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": null, + "value": "한양중고딕", + "points": 1, + "category": "표", + "item": "글자모양/① 글씨체 (중고딕)" + }, + "42": { + "path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": null, + "value": 1000, + "points": 1, + "category": "표", + "item": "글자모양/② 크기 (10pt)" + }, + "43": { + "path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align", + "path2": null, + "searchValue": null, + "value": "Center", + "points": 1, + "category": "표", + "item": "글자모양/③ 정렬 (가운데 정렬)" + }, + "44": { + "path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=SUM') and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=SUM')]])", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "표", + "item": "블록 계산식/합계" + }, + "45": { + "path": "boolean(//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']])", + "path2": null, + "searchValue": null, + "value": true, + "points": 2, + "category": "chart_xml", + "item": "① 종류 (묶은 세로 막대형)" + }, + "46": { + "path": "//c:valAx/c:majorTickMark/@val", + "path2": null, + "searchValue": null, + "value": "out", + "points": 2, + "category": "chart_xml", + "item": "② 값 축 주 눈금선" + }, + "47": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width", + "path2": null, + "searchValue": null, + "value": 22677, + "points": 2, + "category": "차트", + "item": "③ 크기-너비 (80mm)" + }, + "48": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height", + "path2": null, + "searchValue": null, + "value": 25511, + "points": 2, + "category": "차트", + "item": "④ 크기-높이 (90mm)" + }, + "49": { + "path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])", + "path2": null, + "searchValue": null, + "value": true, + "points": 2, + "category": "chart_xml", + "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)" + }, + "50": { + "path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", + "path2": null, + "searchValue": "클라우드 보안 투자", + "value": "굴림", + "points": 1, + "category": "chart_xml", + "item": "제목 문구 (클라우드 보안 투자)/① 글씨체 (굴림)" + }, + "51": { + "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", + "path2": null, + "searchValue": "클라우드 보안 투자", + "value": 1300, + "points": 1, + "category": "chart_xml", + "item": "제목 문구 (클라우드 보안 투자)/② 크기 (13pt)" + }, + "52": { + "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b", + "path2": null, + "searchValue": "클라우드 보안 투자", + "value": 1, + "points": 1, + "category": "chart_xml", + "item": "제목 문구 (클라우드 보안 투자)/③ 진하게" + }, + "53": { + "path": "//c:catAx//a:ea/@typeface", + "path2": null, + "searchValue": null, + "value": "돋움", + "points": 1, + "category": "chart_xml", + "item": "X축/① 글꼴 (돋움)" + }, + "54": { + "path": "//c:catAx//a:defRPr/@sz", + "path2": null, + "searchValue": null, + "value": 900, + "points": 1, + "category": "chart_xml", + "item": "X축/② 크기 (9pt)" + }, + "55": { + "path": "//c:catAx//a:defRPr/@i", + "path2": null, + "searchValue": null, + "value": "1", + "points": 1, + "category": "chart_xml", + "item": "X축/③ 기울임" + }, + "56": { + "path": "//c:valAx//a:ea/@typeface", + "path2": null, + "searchValue": null, + "value": "돋움", + "points": 1, + "category": "chart_xml", + "item": "Y축/① 글꼴 (돋움)" + }, + "57": { + "path": "//c:valAx//a:defRPr/@sz", + "path2": null, + "searchValue": null, + "value": 900, + "points": 1, + "category": "chart_xml", + "item": "Y축/② 크기 (9pt)" + }, + "58": { + "path": "//c:valAx//a:defRPr/@i", + "path2": null, + "searchValue": null, + "value": "1", + "points": 1, + "category": "chart_xml", + "item": "Y축/③ 기울임" + }, + "59": { + "path": "//c:legend//a:ea/@typeface", + "path2": null, + "searchValue": null, + "value": "돋움", + "points": 1, + "category": "chart_xml", + "item": "범례/① 글꼴 (돋움)" + }, + "60": { + "path": "//c:legend//a:defRPr/@sz", + "path2": null, + "searchValue": null, + "value": 900, + "points": 1, + "category": "chart_xml", + "item": "범례/② 크기 (9pt)" + }, + "61": { + "path": "//c:legend//a:defRPr/@i", + "path2": null, + "searchValue": null, + "value": "1", + "points": 1, + "category": "chart_xml", + "item": "범례/③ 기울임" + } + } +} \ No newline at end of file diff --git a/회차별채점자료/2504/json_채점기준표/0507/DIW_2504B.json b/회차별채점자료/2504/json_채점기준표/0507/DIW_2504B.json new file mode 100644 index 0000000..8f47ff7 --- /dev/null +++ b/회차별채점자료/2504/json_채점기준표/0507/DIW_2504B.json @@ -0,0 +1,863 @@ +{ + "0": { + "0": { + "path": "", + "path2": "", + "points": 0, + "category": "파일저장", + "item": "파일명 (수검번호.hwp/hwpx)" + }, + "1": { + "path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "용지설정", + "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" + }, + "2": { + "path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "기본설정", + "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" + }, + "3": { + "path": "", + "path2": null, + "searchValue": null, + "value": null, + "points": 40, + "category": "오타감점", + "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" + } + }, + "1": { + "1": { + "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", + "path2": null, + "searchValue": "친환경에너지박람회", + "value": "궁서체", + "points": 1, + "category": "글맵시", + "item": "문구 (친환경에너지박람회)/① 글씨체 : 궁서체" + }, + "2": { + "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", + "path2": null, + "searchValue": "친환경에너지박람회", + "value": "5395143", + "points": 2, + "category": "글맵시", + "item": "문구 (친환경에너지박람회)/② 채우기 : 색상(RGB:199,82,82)" + }, + "3": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", + "path2": null, + "searchValue": "친환경에너지박람회", + "value": 31181, + "points": 2, + "category": "글맵시", + "item": "문구 (친환경에너지박람회)/③ 크기 : 너비(110mm)" + }, + "4": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", + "path2": null, + "searchValue": "친환경에너지박람회", + "value": 5669, + "points": 2, + "category": "글맵시", + "item": "문구 (친환경에너지박람회)/④ 크기 : 높이(20mm)" + }, + "5": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", + "path2": null, + "searchValue": "친환경에너지박람회", + "value": "true", + "points": 2, + "category": "글맵시", + "item": "문구 (친환경에너지박람회)/⑤ 위치 (글자처럼 취급)" + }, + "6": { + "path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "친환경에너지박람회", + "value": "Center", + "points": 2, + "category": "글맵시", + "item": "문구 (친환경에너지박람회)/⑥ 정렬 (가운데 정렬)" + }, + "7": { + "path": "boolean(//TEXTART[@Text='{searchValue}'])", + "path2": null, + "searchValue": "친환경에너지박람회", + "value": true, + "points": 2, + "category": "글맵시", + "item": "문구 (친환경에너지박람회)/⑦ 글맵시모양 (육안확인)" + }, + "8": { + "path": "boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])", + "path2": null, + "searchValue": null, + "value": true, + "points": 1, + "category": "문단첫글자장식", + "item": "자/① 모양 (2줄)" + }, + "9": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": null, + "value": "궁서", + "points": 1, + "category": "문단첫글자장식", + "item": "지/② 글씨체 (궁서)" + }, + "10": { + "path": "//RECTANGLE[.//CHAR[text()='지']]//WINDOWBRUSH/@FaceColor", + "path2": null, + "searchValue": null, + "value": "16768058", + "points": 2, + "category": "문단첫글자장식", + "item": "지/③ 면색 : 색상(RGB:58,220,255)" + }, + "11": { + "path": "//RECTANGLE[.//CHAR[text()='지']]//OUTSIDEMARGIN/@Right", + "path2": null, + "searchValue": null, + "value": "850", + "points": 2, + "category": "문단첫글자장식", + "item": "지/④ 본문과의 간격 : 3.0mm" + }, + "12": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])", + "path2": null, + "searchValue": "태양광, 풍력, 수소에너지 등 신재생 에너지 기술", + "value": true, + "points": 2, + "category": "글꼴 속성", + "item": "문구 (태양광, 풍력, 수소에너지 등 신재생 에너지 기술)/① 진하게" + }, + "13": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])", + "path2": null, + "searchValue": "태양광, 풍력, 수소에너지 등 신재생 에너지 기술", + "value": true, + "points": 2, + "category": "글꼴 속성", + "item": "문구 (태양광, 풍력, 수소에너지 등 신재생 에너지 기술)/② 밑줄" + }, + "14": { + "path": "count(//CHAR[contains(text(),'▶')]) + count(//CHAR[contains(text(),'◀')]) + count(//CHAR[contains(text(),'※')])", + "path2": "string-length(//CHAR[contains(text(),'▶')]) - string-length(translate(//CHAR[contains(text(),'▶')], '▶', '')) + string-length(//CHAR[contains(text(),'◀')]) - string-length(translate(//CHAR[contains(text(),'◀')], '◀', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))", + "searchValue": null, + "value": 3, + "points": 3, + "category": "특수문자", + "item": "① ▶, ② ◀, ③ ※" + }, + "15": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "행사안내", + "value": "한양중고딕", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (▶ 행사안내 ◀)/① 글씨체 (중고딕)" + }, + "16": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "행사안내", + "value": "Center", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (▶ 행사안내 ◀)/② 정렬 (가운데 정렬)" + }, + "17": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][BOLD])", + "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][BOLD])", + "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록", + "value": true, + "points": 1, + "category": "Hyperlink", + "item": "문구 (블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록)/① 진하게" + }, + "18": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])", + "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][ITALIC])", + "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록", + "value": true, + "points": 1, + "category": "Hyperlink", + "item": "문구 (블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록)/② 기울임" + }, + "1-19": { + "path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=2000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)", + "path2": null, + "searchValue": "기타사항", + "value": true, + "points": 2, + "category": "문단모양", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)" + }, + "20": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "2025. 04. 26.", + "value": 1300, + "points": 1, + "category": "글꼴 속성", + "item": "문구 (2025. 04. 26.)/① 크기 (13pt)" + }, + "21": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "2025. 04. 26.", + "value": "Center", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (2025. 04. 26.)/② 정렬 (가운데 정렬)" + }, + "22": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "친환경에너지발전협의회", + "value": "돋움", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (친환경에너지발전협의회)/① 글씨체 (돋움)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "친환경에너지발전협의회", + "value": 2700, + "points": 1, + "category": "글꼴 속성", + "item": "문구 (친환경에너지발전협의회)/② 크기 (27pt)" + }, + "24": { + "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "친환경에너지발전협의회", + "value": "Center", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (친환경에너지발전협의회)/③ 정렬 (가운데 정렬)" + }, + "25": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "DIAT", + "value": "굴림", + "points": 1, + "category": "머리말", + "item": "문구 (DIAT)/① 글꼴 (굴림)" + }, + "26": { + "path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "DIAT", + "value": 900, + "points": 1, + "category": "머리말", + "item": "문구 (DIAT)/② 크기 (9pt)" + }, + "27": { + "path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "DIAT", + "value": "Right", + "points": 1, + "category": "머리말", + "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" + }, + "28": { + "path": "//PAGENUM/@FormatType", + "path2": null, + "searchValue": null, + "value": "HangulSyllable", + "points": 2, + "category": "쪽번호", + "item": "① 쪽 번호 매기기 (가,나,다 순으로)" + }, + "29": { + "path": "//PAGENUM/@Pos", + "path2": null, + "searchValue": null, + "value": "BottomCenter", + "points": 2, + "category": "쪽번호", + "item": "② 가운데 아래" + }, + "30": { + "path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])", + "path2": null, + "searchValue": null, + "value": true, + "points": 2, + "category": "줄간격", + "item": "문제 1 줄간격 180% 설정" + } + }, + "2": { + "1": { + "path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "쪽 테두리", + "item": "문제2 쪽 테두리(이중 실선, 머리말 포함) 설정" + }, + "2": { + "path": "count(//SECTION)>1", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "다단", + "item": "① 구역나누기" + }, + "3": { + "path": "//COLDEF/@Count>1", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "다단", + "item": "② 다단 2단" + }, + "4": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width", + "path2": null, + "searchValue": "친환경 에너지", + "value": 14173, + "points": 2, + "category": "글상자", + "item": "문구 (친환경 에너지)/① 크기-너비 (50mm)" + }, + "5": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height", + "path2": null, + "searchValue": "친환경 에너지", + "value": 3402, + "points": 2, + "category": "글상자", + "item": "문구 (친환경 에너지)/② 크기-높이 (12mm)" + }, + "6": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style", + "path2": null, + "searchValue": "친환경 에너지", + "value": "DoubleSlim", + "points": 2, + "category": "글상자", + "item": "문구 (친환경 에너지)/③ 테두리 : 이중 실선(1.00mm)" + }, + "7": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio", + "path2": null, + "searchValue": "친환경 에너지", + "value": 20, + "points": 2, + "category": "글상자", + "item": "문구 (친환경 에너지)/④ 글상자 모서리 (둥근 모양)" + }, + "8": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor", + "path2": null, + "searchValue": "친환경 에너지", + "value": "9537333", + "points": 2, + "category": "글상자", + "item": "문구 (친환경 에너지)/⑤ 채우기 : 색상(RGB:53,135,145)" + }, + "9": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", + "path2": null, + "searchValue": "친환경 에너지", + "value": "true", + "points": 1, + "category": "글상자", + "item": "문구 (친환경 에너지)/⑥ 글상자 위치 (글자처럼 취급)" + }, + "10": { + "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align", + "path2": null, + "searchValue": "친환경 에너지", + "value": "Center", + "points": 1, + "category": "글상자", + "item": "문구 (친환경 에너지)/⑦ 글상자 정렬 (가운데 정렬)" + }, + "11": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "친환경 에너지", + "value": "궁서체", + "points": 1, + "category": "글상자", + "item": "문구 (친환경 에너지)/⑧ 글씨체 (궁서체)" + }, + "12": { + "path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')", + "path2": null, + "searchValue": "친환경 에너지", + "value": true, + "points": 1, + "category": "글상자", + "item": "문구 (친환경 에너지)/⑨ 글씨크기 (20pt)" + }, + "13": { + "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align", + "path2": null, + "searchValue": "친환경 에너지", + "value": "Center", + "points": 1, + "category": "글상자", + "item": "문구 (친환경 에너지)/⑩ 정렬 (가운데 정렬)" + }, + "14": { + "path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])", + "path2": null, + "searchValue": "원본 그림의 이름: 그림", + "value": true, + "points": 2, + "category": "그림삽입", + "item": "① 파일명 \"그림B.jpg\" 삽입" + }, + "15": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width", + "path2": null, + "searchValue": null, + "value": 24094, + "points": 2, + "category": "그림삽입", + "item": "② 크기-너비 (85mm)" + }, + "16": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height", + "path2": null, + "searchValue": null, + "value": 11338, + "points": 2, + "category": "그림삽입", + "item": "③ 크기-높이 (40mm)" + }, + "17": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset", + "path2": null, + "searchValue": null, + "value": 0, + "points": 2, + "category": "그림삽입", + "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)" + }, + "18": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset", + "path2": null, + "searchValue": null, + "value": 6800, + "points": 2, + "category": "그림삽입", + "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24mm)" + }, + "19": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "1. 친환경 에너지 개요", + "value": "돋움", + "points": 1, + "category": "속성", + "item": "문구① (1. 친환경 에너지 개요)/① 글씨체 (돋움)" + }, + "20": { + "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "1. 친환경 에너지 개요", + "value": 1200, + "points": 1, + "category": "속성", + "item": "문구① (1. 친환경 에너지 개요)/② 크기 (12pt)" + }, + "21": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": "1. 친환경 에너지 개요", + "value": true, + "points": 1, + "category": "속성", + "item": "문구① (1. 친환경 에너지 개요)/③ 진하게" + }, + "22": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "2. 신재생 에너지", + "value": "돋움", + "points": 1, + "category": "속성", + "item": "문구② (2. 신재생 에너지)/① 글씨체 (돋움)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "2. 신재생 에너지", + "value": 1200, + "points": 1, + "category": "속성", + "item": "문구② (2. 신재생 에너지)/② 크기 (12pt)" + }, + "24": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": "2. 신재생 에너지", + "value": true, + "points": 1, + "category": "속성", + "item": "문구② (2. 신재생 에너지)/③ 진하게" + }, + "25": { + "path": "boolean(//CHAR[contains(text(),'태양전지')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('태양전지') + 1) = '태양전지']/following-sibling::FOOTNOTE/descendant::CHAR)", + "searchValue": null, + "value": true, + "points": 2, + "category": "각주", + "item": "문구 (태양전지)/① 문구입력" + }, + "26": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "태양의 빛에너지를 전기에너지로 변환시켜 전기를 발생하는 장치로 친환경 방식으로 알려져 있음", + "value": "굴림", + "points": 1, + "category": "각주", + "item": "문구 (태양전지)/② 글씨체 (굴림)" + }, + "27": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "태양의 빛에너지를 전기에너지로 변환시켜 전기를 발생하는 장치로 친환경 방식으로 알려져 있음", + "value": 900, + "points": 1, + "category": "각주", + "item": "문구 (태양전지)/③ 크기 (9pt)" + }, + "28": { + "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", + "path2": null, + "searchValue": "태양의 빛에너지를 전기에너지로 변환시켜 전기를 발생하는 장치로 친환경 방식으로 알려져 있음", + "value": "CircledHangulJamo", + "points": 2, + "category": "각주", + "item": "문구 (태양전지)/④ 각주 번호 모양" + }, + "29": { + "path": "boolean(//CHAR[contains(text(),'Campaign')])", + "path2": null, + "ignoreWord": "Campaign", + "value": true, + "points": 3, + "category": "영단어", + "item": "Campaign/영단어 미입력, 대소문자/오타 시 전체 감점" + }, + "30": { + "path": "(count(//CHAR[contains(text(),'저감')][contains(text(),'低減')])+count(//CHAR[contains(text(),'화석')][contains(text(),'化石')])+count(//CHAR[contains(text(),'투자')][contains(text(),'投資')])+count(//CHAR[contains(text(),'달성')][contains(text(),'達成')])+count(//CHAR[contains(text(),'세금')][contains(text(),'稅金')]))*2", + "path2": null, + "searchValue": null, + "value": 10, + "points": 10, + "category": "한자", + "item": "① 한옥(韓屋), ② 사계절(四季節), ③거주(居住), ④ 구조(構造), ⑤ 골격(骨格)" + }, + "31": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'택을제공')])", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "편집", + "item": "문구 (…세금 혜택이 제공하고 있으며…)/\"이\" → \"을\" 글자바꿈" + }, + "32": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'탄소배출')])", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "편집", + "item": "문구 (…배출 탄소 규제가 강화되면서…)/\"배출\" / \"탄소\" 순서바꿈" + }, + "33": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "친환경 에너지 성장률(단위: %)", + "value": "돋움", + "points": 1, + "category": "표", + "item": "제목 문구 (친환경 에너지 성장률(단위: %))/① 글씨체 (돋움)" + }, + "34": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "친환경 에너지 성장률(단위: %)", + "value": 1200, + "points": 1, + "category": "표", + "item": "제목 문구 (친환경 에너지 성장률(단위: %))/② 크기 (12pt)" + }, + "35": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": "친환경 에너지 성장률(단위: %)", + "value": true, + "points": 1, + "category": "표", + "item": "제목 문구 (친환경 에너지 성장률(단위: %))/③ 진하게" + }, + "36": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "친환경 에너지 성장률(단위: %)", + "value": "Center", + "points": 1, + "category": "표", + "item": "제목 문구 (친환경 에너지 성장률(단위: %))/④ 정렬 (가운데 정렬)" + }, + "37": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "searchValue": null, + "value": "10966730", + "points": 2, + "category": "표", + "item": "위쪽 제목 셀/① 색상(RGB:202,86,167)" + }, + "38": { + "path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": null, + "value": true, + "points": 1, + "category": "표", + "item": "위쪽 제목 셀/② 진하게" + }, + "39": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Type", + "searchValue": null, + "value": "DoubleSlim", + "points": 2, + "category": "표", + "item": "제목 셀 아래선/① 이중 실선" + }, + "40": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Width", + "searchValue": null, + "value": "0.5mm", + "points": 2, + "category": "표", + "item": "제목 셀 아래선/② 0.5mm" + }, + "41": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": null, + "value": "한양중고딕", + "points": 1, + "category": "표", + "item": "글자모양/① 글씨체 (중고딕)" + }, + "42": { + "path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": null, + "value": 1000, + "points": 1, + "category": "표", + "item": "글자모양/② 크기 (10pt)" + }, + "43": { + "path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align", + "path2": null, + "searchValue": null, + "value": "Center", + "points": 1, + "category": "표", + "item": "글자모양/③ 정렬 (가운데 정렬)" + }, + "44": { + "path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=AVG') and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=AVG')]])", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "표", + "item": "블록계산식/평균" + }, + "45": { + "path": "//c:lineChart/c:grouping/@val='standard'", + "path2": null, + "searchValue": null, + "value": true, + "points": 2, + "category": "chart_xml", + "item": "① 종류 (꺾은선형)" + }, + "46": { + "path": "//c:valAx/c:majorTickMark/@val", + "path2": null, + "searchValue": null, + "value": "out", + "points": 2, + "category": "chart_xml", + "item": "② 값 축 주 눈금선" + }, + "47": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width", + "path2": null, + "searchValue": null, + "value": 22677, + "points": 2, + "category": "차트", + "item": "③ 크기-너비 (80mm)" + }, + "48": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height", + "path2": null, + "searchValue": null, + "value": 22677, + "points": 2, + "category": "차트", + "item": "④ 크기-높이 (80mm)" + }, + "49": { + "path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])", + "path2": null, + "searchValue": null, + "value": true, + "points": 2, + "category": "chart_xml", + "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)" + }, + "50": { + "path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", + "path2": null, + "searchValue": "친환경 에너지 성장률", + "value": "궁서체", + "points": 1, + "category": "chart_xml", + "item": "제목 문구 (친환경 에너지 성장률)/① 글씨체 (궁서체)" + }, + "51": { + "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", + "path2": null, + "searchValue": "친환경 에너지 성장률", + "value": 1300, + "points": 1, + "category": "chart_xml", + "item": "제목 문구 (친환경 에너지 성장률)/② 크기 (13pt)" + }, + "52": { + "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b", + "path2": null, + "searchValue": "친환경 에너지 성장률", + "value": 1, + "points": 1, + "category": "chart_xml", + "item": "제목 문구 (친환경 에너지 성장률)/③ 진하게" + }, + "53": { + "path": "//c:catAx//a:ea/@typeface", + "path2": null, + "searchValue": null, + "value": "바탕", + "points": 1, + "category": "chart_xml", + "item": "X축/① 글꼴 (바탕)" + }, + "54": { + "path": "//c:catAx//a:defRPr/@sz", + "path2": null, + "searchValue": null, + "value": 900, + "points": 1, + "category": "chart_xml", + "item": "X축/② 크기 (9pt)" + }, + "55": { + "path": "//c:catAx//a:defRPr/@i", + "path2": null, + "searchValue": null, + "value": "1", + "points": 1, + "category": "chart_xml", + "item": "X축/③ 기울임" + }, + "56": { + "path": "//c:valAx//a:ea/@typeface", + "path2": null, + "searchValue": null, + "value": "바탕", + "points": 1, + "category": "chart_xml", + "item": "Y축/① 글꼴 (바탕)" + }, + "57": { + "path": "//c:valAx//a:defRPr/@sz", + "path2": null, + "searchValue": null, + "value": 900, + "points": 1, + "category": "chart_xml", + "item": "Y축/② 크기 (9pt)" + }, + "58": { + "path": "//c:valAx//a:defRPr/@i", + "path2": null, + "searchValue": null, + "value": "1", + "points": 1, + "category": "chart_xml", + "item": "Y축/③ 기울임" + }, + "59": { + "path": "//c:legend//a:ea/@typeface", + "path2": null, + "searchValue": null, + "value": "바탕", + "points": 1, + "category": "chart_xml", + "item": "범례/① 글꼴 (바탕)" + }, + "60": { + "path": "//c:legend//a:defRPr/@sz", + "path2": null, + "searchValue": null, + "value": 900, + "points": 1, + "category": "chart_xml", + "item": "범례/② 크기 (9pt)" + }, + "61": { + "path": "//c:legend//a:defRPr/@i", + "path2": null, + "searchValue": null, + "value": "1", + "points": 1, + "category": "chart_xml", + "item": "범례/③ 기울임" + } + } +} \ No newline at end of file diff --git a/회차별채점자료/2504/json_채점기준표/0507/DIW_2504C.json b/회차별채점자료/2504/json_채점기준표/0507/DIW_2504C.json new file mode 100644 index 0000000..6d92128 --- /dev/null +++ b/회차별채점자료/2504/json_채점기준표/0507/DIW_2504C.json @@ -0,0 +1,863 @@ +{ + "0": { + "0": { + "path": "", + "path2": "", + "points": 0, + "category": "파일저장", + "item": "파일명 (수검번호.hwp/hwpx)" + }, + "1": { + "path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "용지설정", + "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" + }, + "2": { + "path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "기본설정", + "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" + }, + "3": { + "path": "", + "path2": null, + "searchValue": null, + "value": null, + "points": 40, + "category": "오타감점", + "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" + } + }, + "1": { + "1": { + "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", + "path2": null, + "searchValue": "서울국제도서박람회", + "value": "돋움", + "points": 1, + "category": "글맵시", + "item": "문구 (서울국제도서박람회)/① 글씨체 : 돋움" + }, + "2": { + "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", + "path2": null, + "searchValue": "서울국제도서박람회", + "value": "6438172", + "points": 2, + "category": "글맵시", + "item": "문구 (서울국제도서박람회)/② 채우기 : 색상(RGB:28,61,98)" + }, + "3": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", + "path2": null, + "searchValue": "서울국제도서박람회", + "value": 28346, + "points": 2, + "category": "글맵시", + "item": "문구 (서울국제도서박람회)/③ 크기 : 너비(100mm)" + }, + "4": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", + "path2": null, + "searchValue": "서울국제도서박람회", + "value": 5669, + "points": 2, + "category": "글맵시", + "item": "문구 (서울국제도서박람회)/④ 크기 : 높이(20mm)" + }, + "5": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", + "path2": null, + "searchValue": "서울국제도서박람회", + "value": "true", + "points": 2, + "category": "글맵시", + "item": "문구 (서울국제도서박람회)/⑤ 위치 (글자처럼 취급)" + }, + "6": { + "path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "서울국제도서박람회", + "value": "Center", + "points": 2, + "category": "글맵시", + "item": "문구 (서울국제도서박람회)/⑥ 정렬 (가운데 정렬)" + }, + "7": { + "path": "boolean(//TEXTART[@Text='{searchValue}'])", + "path2": null, + "searchValue": "서울국제도서박람회", + "value": true, + "points": 2, + "category": "글맵시", + "item": "문구 (서울국제도서박람회)/⑦ 글맵시모양 (육안확인)" + }, + "8": { + "path": "boolean(//RECTANGLE[.//CHAR[text()='책']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])", + "path2": null, + "searchValue": null, + "value": true, + "points": 1, + "category": "문단첫글자장식", + "item": "책/① 모양 (2줄)" + }, + "9": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='책']]/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": null, + "value": "돋움", + "points": 1, + "category": "문단첫글자장식", + "item": "책/② 글씨체 (돋움)" + }, + "10": { + "path": "//RECTANGLE[.//CHAR[text()='책']]//WINDOWBRUSH/@FaceColor", + "path2": null, + "searchValue": null, + "value": "1943246", + "points": 2, + "category": "문단첫글자장식", + "item": "책/③ 면색 : 색상(RGB:206,166,29)" + }, + "11": { + "path": "//RECTANGLE[.//CHAR[text()='책']]//OUTSIDEMARGIN/@Right", + "path2": null, + "searchValue": null, + "value": "850", + "points": 2, + "category": "문단첫글자장식", + "item": "책/④ 본문과의 간격 : 3.0mm" + }, + "12": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])", + "path2": null, + "searchValue": "문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판", + "value": true, + "points": 2, + "category": "글꼴 속성", + "item": "문구 (문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판)/① 진하게" + }, + "13": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][ITALIC])", + "path2": null, + "searchValue": "문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판", + "value": true, + "points": 2, + "category": "글꼴 속성", + "item": "문구 (문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판)/② 기울임" + }, + "14": { + "path": "count(//CHAR[contains(text(),'◆')]) + count(//CHAR[contains(text(),'※')])", + "path2": "string-length(//CHAR[contains(text(),'◆')]) - string-length(translate(//CHAR[contains(text(),'◆')], '◆', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))", + "searchValue": null, + "value": 3, + "points": 3, + "category": "특수문자", + "item": "① ◆, ② ◆, ③ ※" + }, + "15": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "행사안내", + "value": "궁서", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (◆ 행사안내 ◆)/① 글씨체 (궁서)" + }, + "16": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "행사안내", + "value": "Center", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (◆ 행사안내 ◆)/② 정렬 (가운데 정렬)" + }, + "17": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])", + "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][ITALIC])", + "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조", + "value": true, + "points": 1, + "category": "Hyperlink", + "item": "문구 (서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조)/① 기울임" + }, + "18": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])", + "hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][UNDERLINE])", + "hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조", + "value": true, + "points": 1, + "category": "Hyperlink", + "item": "문구 (서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조)/② 밑줄" + }, + "19": { + "path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)", + "path2": null, + "searchValue": "기타사항", + "value": true, + "points": 2, + "category": "문단모양", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)" + }, + "20": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "2025. 04. 26.", + "value": 1300, + "points": 1, + "category": "글꼴 속성", + "item": "문구 (2025. 04. 26.)/① 크기 (13pt)" + }, + "21": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "2025. 04. 26.", + "value": "Center", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (2025. 04. 26.)/② 정렬 (가운데 정렬)" + }, + "22": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "서울국제도서박람회", + "value": "한양견고딕", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (서울국제도서박람회)/① 글씨체 (견고딕)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "서울국제도서박람회", + "value": 2500, + "points": 1, + "category": "글꼴 속성", + "item": "문구 (서울국제도서박람회)/② 크기 (25pt)" + }, + "24": { + "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "서울국제도서박람회", + "value": "Center", + "points": 1, + "category": "글꼴 속성", + "item": "문구 (서울국제도서박람회)/③ 정렬 (가운데 정렬)" + }, + "25": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "DIAT", + "value": "한양중고딕", + "points": 1, + "category": "머리말", + "item": "문구 (DIAT)/① 글꼴 (중고딕)" + }, + "26": { + "path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "DIAT", + "value": 900, + "points": 1, + "category": "머리말", + "item": "문구 (DIAT)/② 크기 (9pt)" + }, + "27": { + "path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "DIAT", + "value": "Right", + "points": 1, + "category": "머리말", + "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" + }, + "28": { + "path": "//PAGENUM/@FormatType", + "path2": null, + "searchValue": null, + "value": "RomanSmall", + "points": 2, + "category": "쪽번호", + "item": "① 쪽 번호 매기기 (i,ii,iii 순으로)" + }, + "29": { + "path": "//PAGENUM/@Pos", + "path2": null, + "searchValue": null, + "value": "BottomRight", + "points": 2, + "category": "쪽번호", + "item": "② 오른쪽 아래" + }, + "30": { + "path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])", + "path2": null, + "searchValue": null, + "value": true, + "points": 2, + "category": "줄간격", + "item": "문제 1 줄간격 180% 설정" + } + }, + "2": { + "1": { + "path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "쪽 테두리", + "item": "문제2 쪽 테두리(이중 실선, 머리말 포함) 설정" + }, + "2": { + "path": "count(//SECTION)>1", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "다단", + "item": "① 구역나누기" + }, + "3": { + "path": "//COLDEF/@Count>1", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "다단", + "item": "② 다단 2단" + }, + "4": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width", + "path2": null, + "searchValue": "출판 산업 트렌드", + "value": 19842, + "points": 2, + "category": "글상자", + "item": "문구 (출판 산업 트렌드)/① 크기-너비 (70mm)" + }, + "5": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height", + "path2": null, + "searchValue": "출판 산업 트렌드", + "value": 3402, + "points": 2, + "category": "글상자", + "item": "문구 (출판 산업 트렌드)/② 크기-높이 (12mm)" + }, + "6": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style", + "path2": null, + "searchValue": "출판 산업 트렌드", + "value": "DoubleSlim", + "points": 2, + "category": "글상자", + "item": "문구 (출판 산업 트렌드)/③ 테두리 : 이중 실선(1.00mm)" + }, + "7": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio", + "path2": null, + "searchValue": "출판 산업 트렌드", + "value": 50, + "points": 2, + "category": "글상자", + "item": "문구 (출판 산업 트렌드)/④ 글상자 모서리 (반원)" + }, + "8": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor", + "path2": null, + "searchValue": "출판 산업 트렌드", + "value": "5395050", + "points": 2, + "category": "글상자", + "item": "문구 (출판 산업 트렌드)/⑤ 채우기 : 색상(RGB:199,82,82)" + }, + "9": { + "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", + "path2": null, + "searchValue": "출판 산업 트렌드", + "value": "true", + "points": 1, + "category": "글상자", + "item": "문구 (출판 산업 트렌드)/⑥ 글상자 위치 (글자처럼 취급)" + }, + "10": { + "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align", + "path2": null, + "searchValue": "출판 산업 트렌드", + "value": "Center", + "points": 1, + "category": "글상자", + "item": "문구 (출판 산업 트렌드)/⑦ 글상자 정렬 (가운데 정렬)" + }, + "11": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "출판 산업 트렌드", + "value": "휴먼옛체", + "points": 1, + "category": "글상자", + "item": "문구 (출판 산업 트렌드)/⑧ 글씨체 (휴먼옛체)" + }, + "12": { + "path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')", + "path2": null, + "searchValue": "출판 산업 트렌드", + "value": true, + "points": 1, + "category": "글상자", + "item": "문구 (출판 산업 트렌드)/⑨ 글씨크기 (20pt)" + }, + "13": { + "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align", + "path2": null, + "searchValue": "출판 산업 트렌드", + "value": "Center", + "points": 1, + "category": "글상자", + "item": "문구 (출판 산업 트렌드)/⑩ 정렬 (가운데 정렬)" + }, + "14": { + "path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])", + "path2": null, + "searchValue": "원본 그림의 이름: 그림", + "value": true, + "points": 2, + "category": "그림삽입", + "item": "① 파일명 \"그림C.jpg\" 삽입" + }, + "15": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width", + "path2": null, + "searchValue": null, + "value": 22677, + "points": 2, + "category": "그림삽입", + "item": "② 크기-너비 (85mm)" + }, + "16": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height", + "path2": null, + "searchValue": null, + "value": 11338, + "points": 2, + "category": "그림삽입", + "item": "③ 크기-높이 (40mm)" + }, + "17": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset", + "path2": null, + "searchValue": null, + "value": 0, + "points": 2, + "category": "그림삽입", + "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)" + }, + "18": { + "path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset", + "path2": null, + "searchValue": null, + "value": 6800, + "points": 2, + "category": "그림삽입", + "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24mm)" + }, + "19": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "1. 출판 산업의 확장", + "value": "굴림", + "points": 1, + "category": "속성", + "item": "문구① (1. 출판 산업의 확장)/① 글씨체 (굴림)" + }, + "20": { + "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "1. 출판 산업의 확장", + "value": 1200, + "points": 1, + "category": "속성", + "item": "문구① (1. 출판 산업의 확장)/② 크기 (12pt)" + }, + "21": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": "1. 출판 산업의 확장", + "value": true, + "points": 1, + "category": "속성", + "item": "문구① (1. 출판 산업의 확장)/③ 진하게" + }, + "22": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "2. 도서 박람회의 가치", + "value": "굴림", + "points": 1, + "category": "속성", + "item": "문구② (2. 도서 박람회의 가치)/① 글씨체 (굴림)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "2. 도서 박람회의 가치", + "value": 1200, + "points": 1, + "category": "속성", + "item": "문구② (2. 도서 박람회의 가치)/② 크기 (12pt)" + }, + "24": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": "2. 도서 박람회의 가치", + "value": true, + "points": 1, + "category": "속성", + "item": "문구② (2. 도서 박람회의 가치)/③ 진하게" + }, + "25": { + "path": "boolean(//CHAR[contains(text(),'오디오북')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('오디오북') + 1) = '오디오북']/following-sibling::FOOTNOTE/descendant::CHAR)", + "searchValue": null, + "value": true, + "points": 2, + "category": "각주", + "item": "문구 (오디오북)/① 문구입력" + }, + "26": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함", + "value": "궁서", + "points": 1, + "category": "각주", + "item": "문구 (오디오북)/② 글씨체 (궁서)" + }, + "27": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함", + "value": 900, + "points": 1, + "category": "각주", + "item": "문구 (오디오북)/③ 크기 (9pt)" + }, + "28": { + "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", + "path2": null, + "searchValue": "눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함", + "value": "CircledLatinSmall", + "points": 2, + "category": "각주", + "item": "문구 (오디오북)/④ 각주 번호 모양" + }, + "29": { + "path": "boolean(//CHAR[contains(text(),'Platform')])", + "path2": null, + "ignoreWord": "Platform", + "value": true, + "points": 3, + "category": "영단어", + "item": "cornerstone/영단어 미입력, 대소문자/오타 시 전체 감점" + }, + "30": { + "path": "(count(//CHAR[contains(text(),'출판')][contains(text(),'出版')])+count(//CHAR[contains(text(),'독자')][contains(text(),'讀者')])+count(//CHAR[contains(text(),'박람회')][contains(text(),'博覽會')])+count(//CHAR[contains(text(),'교류')][contains(text(),'交流')])+count(//CHAR[contains(text(),'증가')][contains(text(),'增加')]))*2", + "path2": null, + "searchValue": null, + "value": 10, + "points": 10, + "category": "한자", + "item": "① 출판(出版), ② 독자(讀者), ③ 박람회(博覽會), ④ 교류(交流), ⑤ 증가(增加)" + }, + "31": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'래도점점')])", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "편집", + "item": "문구 (…콘텐츠 거래는 점점…)/\"는\" → \"도\" 글자바꿈" + }, + "32": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'양한산업')])", + "path2": null, + "searchValue": null, + "value": true, + "points": 3, + "category": "편집", + "item": "문구 (…요식업 등의 산업과 다양한 연계되며…)/\"산업과\" / \"다양한\" 순서바꿈" + }, + "33": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": "출판 산업 성장률(단위: %)", + "value": "돋움", + "points": 1, + "category": "표", + "item": "제목 문구 (출판 산업 성장률(단위: %))/① 글씨체 (돋움)" + }, + "34": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": "출판 산업 성장률(단위: %)", + "value": 1200, + "points": 1, + "category": "표", + "item": "제목 문구 (출판 산업 성장률(단위: %))/② 크기 (12pt)" + }, + "35": { + "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": "출판 산업 성장률(단위: %)", + "value": true, + "points": 1, + "category": "표", + "item": "제목 문구 (출판 산업 성장률(단위: %))/③ 진하게" + }, + "36": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "path2": null, + "searchValue": "출판 산업 성장률(단위: %)", + "value": "Center", + "points": 1, + "category": "표", + "item": "제목 문구 (출판 산업 성장률(단위: %))/④ 정렬 (가운데 정렬)" + }, + "37": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "searchValue": null, + "value": "13938409", + "points": 2, + "category": "표", + "item": "위쪽 제목 셀/① 색상(RGB:233,174,43)" + }, + "38": { + "path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)", + "path2": null, + "searchValue": null, + "value": true, + "points": 1, + "category": "표", + "item": "위쪽 제목 셀/② 진하게" + }, + "39": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Type", + "searchValue": null, + "value": "DoubleSlim", + "points": 2, + "category": "표", + "item": "제목 셀 아래선/① 이중 실선" + }, + "40": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Width", + "searchValue": null, + "value": "0.5mm", + "points": 2, + "category": "표", + "item": "제목 셀 아래선/② 0.5mm" + }, + "41": { + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "path2": null, + "searchValue": null, + "value": "한양중고딕", + "points": 1, + "category": "표", + "item": "글자모양/① 글씨체 (중고딕)" + }, + "42": { + "path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height", + "path2": null, + "searchValue": null, + "value": 1000, + "points": 1, + "category": "표", + "item": "글자모양/② 크기 (10pt)" + }, + "43": { + "path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align", + "path2": null, + "searchValue": null, + "value": "Center", + "points": 1, + "category": "표", + "item": "글자모양/③ 정렬 (가운데 정렬)" + }, + "44": { + "path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=AVG') and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=AVG')]])", + "path2": null, + "searchValue": null, + "value": true, + "points": 4, + "category": "표", + "item": "블록계산식/평균" + }, + "45": { + "path": "boolean(//c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']])", + "path2": null, + "searchValue": null, + "value": true, + "points": 2, + "category": "chart_xml", + "item": "① 종류 (묶은 가로 막대형)" + }, + "46": { + "path": "//c:valAx/c:majorTickMark/@val", + "path2": null, + "searchValue": null, + "value": "out", + "points": 2, + "category": "chart_xml", + "item": "② 값 축 주 눈금선" + }, + "47": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width", + "path2": null, + "searchValue": null, + "value": 22677, + "points": 2, + "category": "차트", + "item": "③ 크기-너비 (80mm)" + }, + "48": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height", + "path2": null, + "searchValue": null, + "value": 22677, + "points": 2, + "category": "차트", + "item": "④ 크기-높이 (80mm)" + }, + "49": { + "path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='평균'])", + "path2": null, + "searchValue": null, + "value": true, + "points": 2, + "category": "chart_xml", + "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)" + }, + "50": { + "path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", + "path2": null, + "searchValue": "출판 산업 성장률", + "value": "바탕", + "points": 1, + "category": "chart_xml", + "item": "제목 문구 (출판 산업 성장률)/① 글씨체 (바탕)" + }, + "51": { + "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", + "path2": null, + "searchValue": "출판 산업 성장률", + "value": 1200, + "points": 1, + "category": "chart_xml", + "item": "제목 문구 (출판 산업 성장률)/② 크기 (12pt)" + }, + "52": { + "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b", + "path2": null, + "searchValue": "출판 산업 성장률", + "value": 1, + "points": 1, + "category": "chart_xml", + "item": "제목 문구 (출판 산업 성장률)/③ 진하게" + }, + "53": { + "path": "//c:catAx//a:ea/@typeface", + "path2": null, + "searchValue": null, + "value": "돋움", + "points": 1, + "category": "chart_xml", + "item": "X축/① 글꼴 (돋움)" + }, + "54": { + "path": "//c:catAx//a:defRPr/@sz", + "path2": null, + "searchValue": null, + "value": 900, + "points": 1, + "category": "chart_xml", + "item": "X축/② 크기 (9pt)" + }, + "55": { + "path": "//c:catAx//a:defRPr/@i", + "path2": null, + "searchValue": null, + "value": "1", + "points": 1, + "category": "chart_xml", + "item": "X축/③ 기울임" + }, + "56": { + "path": "//c:valAx//a:ea/@typeface", + "path2": null, + "searchValue": null, + "value": "돋움", + "points": 1, + "category": "chart_xml", + "item": "Y축/① 글꼴 (돋움)" + }, + "57": { + "path": "//c:valAx//a:defRPr/@sz", + "path2": null, + "searchValue": null, + "value": 900, + "points": 1, + "category": "chart_xml", + "item": "Y축/② 크기 (9pt)" + }, + "58": { + "path": "//c:valAx//a:defRPr/@i", + "path2": null, + "searchValue": null, + "value": "1", + "points": 1, + "category": "chart_xml", + "item": "Y축/③ 기울임" + }, + "59": { + "path": "//c:legend//a:ea/@typeface", + "path2": null, + "searchValue": null, + "value": "돋움", + "points": 1, + "category": "chart_xml", + "item": "범례/① 글꼴 (돋움)" + }, + "60": { + "path": "//c:legend//a:defRPr/@sz", + "path2": null, + "searchValue": null, + "value": 900, + "points": 1, + "category": "chart_xml", + "item": "범례/② 크기 (9pt)" + }, + "61": { + "path": "//c:legend//a:defRPr/@i", + "path2": null, + "searchValue": null, + "value": "1", + "points": 1, + "category": "chart_xml", + "item": "범례/③ 기울임" + } + } +} \ No newline at end of file diff --git a/DIW_2504A_new.json b/회차별채점자료/2504/json_채점기준표/0522/DIW_2504A.json similarity index 97% rename from DIW_2504A_new.json rename to 회차별채점자료/2504/json_채점기준표/0522/DIW_2504A.json index 7028356..c688cba 100644 --- a/DIW_2504A_new.json +++ b/회차별채점자료/2504/json_채점기준표/0522/DIW_2504A.json @@ -15,8 +15,8 @@ "Left": 20, "Right": 20, "Header": 10, - "Gutter": 0, - "Footer": 10 + "Footer": 10, + "Gutter": 0 }, "tolerance": 1, "points": 4, @@ -517,9 +517,9 @@ "item": "문구② (2. 기술의 경제적 가치)/③ 진하게" }, "25": { - "path": "boolean(//TEXT[CHAR[contains(text(),'{searchValue}')]]/FOOTNOTE)", - "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{searchValue}') + 1) = '{searchValue}']/following-sibling::FOOTNOTE/descendant::CHAR)", - "searchValue": "클라우드", + "path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)", + "option": "클라우드", "value": true, "points": 2, "category": "Boolean", @@ -651,7 +651,7 @@ "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", "value": "DoubleSlim", "points": 2, - "category": "OneAnswer", + "category": "TableAnswer", "item": "제목 셀 아래선/① 이중실선" }, "40": { @@ -659,7 +659,7 @@ "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", "value": "0.5mm", "points": 2, - "category": "OneAnswer", + "category": "TableAnswer", "item": "제목 셀 아래선/② 0.5mm" }, "41": { @@ -676,14 +676,14 @@ "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", "value": "1000", "points": 1, - "category": "OneAnswer", + "category": "TableAnswer", "item": "글자모양/② 크기 (10pt)" }, "43": { "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", "value": "Center", "points": 1, - "category": "OneAnswer", + "category": "TableAnswer", "item": "글자모양/③ 정렬 (가운데 정렬)" }, "44": { @@ -761,21 +761,21 @@ "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "53": { - "chart_xpath": "//c:catAx//a:ea/@typeface", + "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", "value": "돋움", "points": 1, "category": "OneAnswer", "item": "X축/① 글꼴 (돋움)" }, "54": { - "chart_xpath": "//c:catAx//a:defRPr/@sz", + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", "value": "900", "points": 1, "category": "OneAnswer", "item": "X축/② 크기 (9pt)" }, "55": { - "chart_xpath": "//c:catAx//a:defRPr/@{option}", + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", "option": "i", "value": "1", "points": 1, @@ -784,28 +784,27 @@ "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "56": { - "chart_xpath": "//c:valAx//a:ea/@typeface", + "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", "value": "돋움", "points": 1, "category": "OneAnswer", "item": "Y축/① 글꼴 (돋움)" }, "57": { - "chart_xpath": "//c:valAx//a:defRPr/@sz", + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", "value": "900", "points": 1, "category": "OneAnswer", "item": "Y축/② 크기 (9pt)" }, "58": { - "chart_xpath": "//c:valAx//a:defRPr/@{option}", + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", "option": "i", "value": "1", "points": 1, "category": "OneAnswer", "item": "Y축/③ 기울임", "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, "59": { "chart_xpath": "//c:legend//a:ea/@typeface", diff --git a/DIW_2504B_new.json b/회차별채점자료/2504/json_채점기준표/0522/DIW_2504B.json similarity index 97% rename from DIW_2504B_new.json rename to 회차별채점자료/2504/json_채점기준표/0522/DIW_2504B.json index f95e5af..4a2b765 100644 --- a/DIW_2504B_new.json +++ b/회차별채점자료/2504/json_채점기준표/0522/DIW_2504B.json @@ -517,9 +517,9 @@ "item": "문구② (2. 신재생 에너지)/③ 진하게" }, "25": { - "path": "boolean(//TEXT[CHAR[contains(text(),'{searchValue}')]]/FOOTNOTE)", - "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{searchValue}') + 1) = '{searchValue}']/following-sibling::FOOTNOTE/descendant::CHAR)", - "searchValue": "태양전지", + "path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)", + "option": "태양전지", "value": true, "points": 2, "category": "Boolean", @@ -651,7 +651,7 @@ "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", "value": "DoubleSlim", "points": 2, - "category": "OneAnswer", + "category": "TableAnswer", "item": "제목 셀 아래선/① 이중실선" }, "40": { @@ -659,7 +659,7 @@ "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", "value": "0.5mm", "points": 2, - "category": "OneAnswer", + "category": "TableAnswer", "item": "제목 셀 아래선/② 0.5mm" }, "41": { @@ -676,14 +676,14 @@ "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", "value": "1000", "points": 1, - "category": "OneAnswer", + "category": "TableAnswer", "item": "글자모양/② 크기 (10pt)" }, "43": { "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", "value": "Center", "points": 1, - "category": "OneAnswer", + "category": "TableAnswer", "item": "글자모양/③ 정렬 (가운데 정렬)" }, "44": { @@ -761,21 +761,21 @@ "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "53": { - "chart_xpath": "//c:catAx//a:ea/@typeface", + "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", "value": "바탕", "points": 1, "category": "OneAnswer", "item": "X축/① 글꼴 (바탕)" }, "54": { - "chart_xpath": "//c:catAx//a:defRPr/@sz", + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", "value": "900", "points": 1, "category": "OneAnswer", "item": "X축/② 크기 (9pt)" }, "55": { - "chart_xpath": "//c:catAx//a:defRPr/@{option}", + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", "option": "i", "value": "1", "points": 1, @@ -784,28 +784,27 @@ "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "56": { - "chart_xpath": "//c:valAx//a:ea/@typeface", + "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", "value": "바탕", "points": 1, "category": "OneAnswer", "item": "Y축/① 글꼴 (바탕)" }, "57": { - "chart_xpath": "//c:valAx//a:defRPr/@sz", + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", "value": "900", "points": 1, "category": "OneAnswer", "item": "Y축/② 크기 (9pt)" }, "58": { - "chart_xpath": "//c:valAx//a:defRPr/@{option}", + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", "option": "i", "value": "1", "points": 1, "category": "OneAnswer", "item": "Y축/③ 기울임", "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, "59": { "chart_xpath": "//c:legend//a:ea/@typeface", diff --git a/DIW_2504C_new.json b/회차별채점자료/2504/json_채점기준표/0522/DIW_2504C.json similarity index 98% rename from DIW_2504C_new.json rename to 회차별채점자료/2504/json_채점기준표/0522/DIW_2504C.json index 5f7940a..0cf3fff 100644 --- a/DIW_2504C_new.json +++ b/회차별채점자료/2504/json_채점기준표/0522/DIW_2504C.json @@ -651,7 +651,7 @@ "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", "value": "DoubleSlim", "points": 2, - "category": "OneAnswer", + "category": "TableAnswer", "item": "제목 셀 아래선/① 이중실선" }, "40": { @@ -659,7 +659,7 @@ "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", "value": "0.5mm", "points": 2, - "category": "OneAnswer", + "category": "TableAnswer", "item": "제목 셀 아래선/② 0.5mm" }, "41": { @@ -676,14 +676,14 @@ "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", "value": "1000", "points": 1, - "category": "TableOneAnswer", + "category": "TableAnswer", "item": "글자모양/② 크기 (10pt)" }, "43": { "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", "value": "Center", "points": 1, - "category": "TableOneAnswer", + "category": "TableAnswer", "item": "글자모양/③ 정렬 (가운데 정렬)" }, "44": { @@ -761,21 +761,21 @@ "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "53": { - "chart_xpath": "//c:catAx//a:ea/@typeface", + "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", "value": "돋움", "points": 1, "category": "OneAnswer", "item": "X축/① 글꼴 (돋움)" }, "54": { - "chart_xpath": "//c:catAx//a:defRPr/@sz", + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", "value": "900", "points": 1, "category": "OneAnswer", "item": "X축/② 크기 (9pt)" }, "55": { - "chart_xpath": "//c:catAx//a:defRPr/@{option}", + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", "option": "i", "value": "1", "points": 1, @@ -784,28 +784,27 @@ "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "56": { - "chart_xpath": "//c:valAx//a:ea/@typeface", + "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", "value": "돋움", "points": 1, "category": "OneAnswer", "item": "Y축/① 글꼴 (돋움)" }, "57": { - "chart_xpath": "//c:valAx//a:defRPr/@sz", + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", "value": "900", "points": 1, "category": "OneAnswer", "item": "Y축/② 크기 (9pt)" }, "58": { - "chart_xpath": "//c:valAx//a:defRPr/@{option}", + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", "option": "i", "value": "1", "points": 1, "category": "OneAnswer", "item": "Y축/③ 기울임", "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, "59": { "chart_xpath": "//c:legend//a:ea/@typeface",