diff --git a/01_copy_files_answer.py b/01_copy_files_answer.py index e32ec02..c7731bb 100644 --- a/01_copy_files_answer.py +++ b/01_copy_files_answer.py @@ -6,17 +6,17 @@ import re # 채점자료 정답 파일만 복사하는 스크립트 # ===== 사용자 설정 ===== -source_dir = r"D:\project\HWP\HWP-Scoring\회차별채점자료\2512" -exam_round = "2512" # 회차명 +source_dir = r"D:\project\HWP\HWP-Scoring\회차별채점자료\2601_2" +exam_round = "2601_2" # 회차명 exam_code = "DIW" # 코드명 # ======================= def get_exam_type(filename: str): """ - 파일명에서 확장자 앞의 마지막 알파벳을 추출 (예: 국어A.hwpx → A) + 파일명에서 확장자 앞의 마지막 알파벳을 추출 (예: 국어A.hwp → A) """ - match = re.search(r"([A-Za-z])\.hwpx$", filename) + match = re.search(r"([A-Za-z])\.hwp$", filename) return match.group(1).upper() if match else None @@ -30,7 +30,7 @@ def copy_exam_files(): copied = 0 for path in src.rglob("*"): - if path.is_file() and path.suffix.lower() == ".hwpx": + if path.is_file() and path.suffix.lower() == ".hwp": exam_type = get_exam_type(path.name) if not exam_type: continue # 마지막 문자가 알파벳이 아니면 건너뜀 diff --git a/01_copy_files_by_origin.py b/01_copy_files_by_origin.py index 68f3142..6de02fd 100644 --- a/01_copy_files_by_origin.py +++ b/01_copy_files_by_origin.py @@ -41,10 +41,10 @@ def copy_dic_subdirs(source_root, target_root_a, target_root_b, target_root_c, t print(f"Skipping {dir_name} under {parent_dir}, as it doesn't match '2교시' or '3교시'.") # 사용법 -exam_round = "2512_2" +exam_round = "2601_2" # exam_round = "2510_4" # source_directory = r"D:\project\data\제2510회 수시2(제주)\답안파일\제2510회 수시2 제주지부_답안파일" -source_directory = r"D:\project\HWP\HWP-Scoring\회차별채점자료\2510" +source_directory = r"D:\project\data\제2601회 수시2(제주)\제2601회 수시2(제주)\답안파일\2601회 수시2 답안파일" target_directory_a = f".\\input\\{exam_round}\\A" # '1교시'의 타겟 경로 diff --git a/02_conversion_hwp_to_xml.py b/02_conversion_hwp_to_xml.py index db17c49..0a3b37a 100644 --- a/02_conversion_hwp_to_xml.py +++ b/02_conversion_hwp_to_xml.py @@ -166,7 +166,7 @@ if __name__ == "__main__": setup_logging() exam_rounds = [ - "2512", + "2601_2", ] # 변환할 폴더 경로 설정 diff --git a/2503회_추가문제처리방법.md b/2503회_추가문제처리방법.md deleted file mode 100644 index 1ff2406..0000000 --- a/2503회_추가문제처리방법.md +++ /dev/null @@ -1,101 +0,0 @@ -# 2503회 추가 문제 처리방법 - -## 체크 할 변경 문항 - -* 문제1 - * 쪽 번호 매기기 (A,B,C 순으로) (28번) - * 가운데 아래 (29번) - * ***문제1, 2 모두적용*** 채점기준 변동으로 인해 - 기존 1페이지(SECTION[1]태그) 기준 제외 - - > ~~//SECTION[1]~~//PAGENUM/@Pos - -## 추가 문항 - -* 문제1 - * 문단 첫글자 장식 - * 8번 : 모양 (2줄) - * 줄 간격 160%일때 높이, 너비 2600 - 줄 간격 180%일때 높이, 너비 2800 - 그 사이의 값 일 경우 정답처리 - - ```xpath - boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800) and (@Width >= 2600 and @Width <= 2800)]]) - ``` - - * 9번 : 글씨체 (궁서체) - * 기존 글씨체 찾는 xpath구문과 동일 - - ```xpath - //FONTFACE[@Lang="Hangul"]/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name - ``` - - * 10번 : 색상(RGB:105,155,55) - * '지'를 포함하는 RECTANGLE요소의 자손 WINDOWBRUSH태그의 @FaceColor속성 - - ```xpath - //RECTANGLE[.//CHAR[text()='지']]//WINDOWBRUSH/@FaceColor - ``` - - * 11번 : 본문과의 간격 : 3.0mm - * '지'를 포함하는 RECTANGLE요소의 자손 OUTSIDEMARGIN태그의 @Right속성 - * ***한글문서에서 본문과의 간격 항목을 변경하면 @Right속성만 변함*** - - ```xpath - //RECTANGLE[.//CHAR[text()='지']]//OUTSIDEMARGIN/@Right - ``` - - * 문제 1의 줄간격 180% 설정 (30번) - * 1페이지에 속한 모든 문단의 줄간격이 180이 아닌것이 하나도 없을 경우 - - ```xpath - not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180']) - ``` - -* 문제2 - - * 각주 번호모양 (28번) - * 1,2,3 : Digit - * ①,②,③ : CircledDigit - * I,II,III : RomanCapital - * i,ii,iii : RomanSmall - * 항목이 많아 채점 시 파악 - - ```xpath - //P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type - ``` - - * 영단어 Hybrid (29번) - * 문서 전체 CHAR태그 내 Hybrid 단어가 들어가 있으면 정답 - * "영단어 미입력, 대소문자/오타 시 전체 감점" 처리방법 - * ***오타 체크 시 Hybrid (해당 문항의 영단어)를 제외 필요*** - - ```xpath - boolean(//CHAR[contains(text(),'Hybrid')]) - ``` - - * 블록 계산식 (44번) - * 표 **마지막 행/열** 과 **마지막-1 행/열**의 자손 FIELDBEGIN태그의 @Command속성 확인 - * @Command속성이 '=SUM'으로 시작하고 '결과값'으로 끝나는지 확인 - * 계산식을 입력하는 방법에 따라 *계산식*,*블록계산식*,*자동계산식*으로 다양하게 입력가능하고 - xml 파일에도 속성값이 바뀌는 경우가 있다 - - ```xpath - boolean(//TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '190'] and //TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '290']) - ``` - - * **값 축** 주 눈금선 (46번) - * 차트의 값 축(보통 세로축) 눈금선 옵션이 부여되었는지 확인하는 문항인데 - 차트 생성하면 기본적으로 부여되어 있어서 따로 항목을 제거하지 않는 이상 정답일 듯하다 - - ```xpath - //c:valAx/c:majorTickMark/@val - ``` - - * 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용) (49번) - * 계산식 행의 제목(마지막 행 1열 "합계")이 차트 데이터 항목에 포함되어 있지 않으면 정답처리 - * 혹여나 불필요한 '범례' 속성 제외 - - ```xpath - not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계']) - ``` diff --git a/DIW_2512B.json b/DIW_2512B.json deleted file mode 100644 index 80c4a60..0000000 --- a/DIW_2512B.json +++ /dev/null @@ -1,850 +0,0 @@ -{ - "0": { - "0": { - "path": "", - "path2": "", - "points": 0, - "category": "파일저장", - "item": "파일명 (수검번호.hwp/hwpx)" - }, - "1": { - "path": "//PAGEMARGIN", - "value": { - "Top": 20, - "Bottom": 20, - "Left": 20, - "Right": 20, - "Header": 10, - "Footer": 10, - "Gutter": 0 - }, - "tolerance": 1, - "points": 4, - "category": "PageSetting", - "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" - }, - "2": { - "path": "", - "value": { - "FontName": "바탕", - "FontSize": "1000", - "Alignment": "Justify", - "LineSpacing": "160" - }, - "points": 4, - "category": "BasicSetting", - "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" - }, - "3": { - "path": "", - "value": null, - "points": 40, - "category": "오타감점", - "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" - } - }, - "1": { - "1": { - "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "청소년창작음악페스티벌", - "value": "궁서체", - "points": 1, - "category": "OneAnswer", - "item": "문구 (청소년창작음악페스티벌)/① 글씨체 (궁서체)" - }, - "2": { - "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "청소년창작음악페스티벌", - "value": "48,117,97", - "points": 2, - "category": "Color", - "item": "문구 (청소년창작음악페스티벌)/② 채우기 : 색상(RGB:48,117,97)" - }, - "3": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "청소년창작음악페스티벌", - "value": "110", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (청소년창작음악페스티벌)/③ 크기-너비 (110 mm)" - }, - "4": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "청소년창작음악페스티벌", - "value": "20", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (청소년창작음악페스티벌)/④ 크기-높이 (20 mm)" - }, - "5": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "청소년창작음악페스티벌", - "value": "true", - "points": 2, - "category": "OneAnswer", - "item": "문구 (청소년창작음악페스티벌)/⑤ 위치 (글자처럼 취급)" - }, - "6": { - "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "청소년창작음악페스티벌", - "value": "Center", - "points": 2, - "category": "OneAnswer", - "item": "문구 (청소년창작음악페스티벌)/⑥ 정렬 (가운데 정렬)" - }, - "7": { - "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "청소년창작음악페스티벌", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (전통주페어링특강안내)/⑦ 글맵시모양 (육안확인)" - }, - "8": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "음", - "value": { - "Height": 2800, - "Width": 2800 - }, - "tolerance": 200, - "points": 1, - "category": "TwoLineSize", - "item": "어/① 모양 (2줄)" - }, - "9": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "음", - "value": "굴림체", - "points": 1, - "category": "FontName", - "item": "어/② 글씨체 (굴림체)" - }, - "10": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "음", - "value": "248,132,58", - "points": 2, - "category": "Color", - "item": "어/③ 면색 : 색상(RGB:248,132,58)" - }, - "11": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "음", - "value": "3.0", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "어/④ 본문과의 간격 : 3.0mm" - }, - "12": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "행사의 주제는 ‘음악, 꿈을 노래하다’", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (행사의 주제는 ‘음악, 꿈을 노래하다’)/① BOLD" - }, - "13": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "행사의 주제는 ‘음악, 꿈을 노래하다’", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (행사의 주제는 ‘음악, 꿈을 노래하다’)/② UNDERLINE" - }, - "14": { - "path": "//CHAR[contains(string(.),'{char1}')]/text()", - "path2": "//CHAR[contains(string(.),'{char2}')]/text()", - "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "★", - "char2": "★", - "char3": "※", - "value": 3, - "points": 3, - "category": "SpecialChar", - "item": "① ★, ② ★, ③ ※" - }, - "15": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "행사안내", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구 (★ 행사안내 ★)/① 글씨체 (중고딕)" - }, - "16": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "행사안내", - "value": "Center", - "points": 1, - "category": "Align", - "item": "문구 (★ 행사안내 ★)/② 정렬 (가운데 정렬)" - }, - "17": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인)/① BOLD" - }, - "18": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인", - "value": "ITALIC", - "points": 1, - "category": "FontAttribute", - "item": "문구 (자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인)/② ITALIC" - }, - "19": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", - "searchValue": "기타사항", - "value": { - "Left": 15, - "Indent": 12 - }, - "points": 2, - "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)", - "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" - }, - "20": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 12. 20.", - "value": "1300", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 20.)/① 크기 (1300)", - "desc": "1pt당 100" - }, - "21": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 12. 20.", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "청소년 창작 음악 사무국", - "value": "돋움", - "points": 1, - "category": "FontName", - "item": "문구 (청소년 창작 음악 사무국)/① 글씨체 (돋움)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "청소년 창작 음악 사무국", - "value": "2700", - "points": 1, - "category": "OneAnswer", - "item": "문구 (청소년 창작 음악 사무국)/② 크기 (2700)" - }, - "24": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "청소년 창작 음악 사무국", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (청소년 창작 음악 사무국)/③ 정렬 (가운데 정렬)" - }, - "25": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "DIAT", - "value": "굴림", - "points": 1, - "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (굴림)" - }, - "26": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "DIAT", - "value": "900", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/② 크기 (9pt)" - }, - "27": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "searchValue": "DIAT", - "value": "Right", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" - }, - "28": { - "path": "//PAGENUM/@FormatType", - "value": "HangulSyllable", - "points": 2, - "category": "PageNumber", - "item": "① 쪽 번호 매기기 (가,나,다 순으로)", - "desc1": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - }, - "desc2": "1, 2페이지 모두 정답이어야 점수 부여" - }, - "29": { - "path": "//PAGENUM/@Pos", - "value": "BottomRight", - "points": 2, - "category": "PageNumber", - "item": "오른쪽 아래", - "desc": "1, 2페이지 모두 정답이어야 점수 부여", - "desc2": { - "가운데 아래": "BottomCenter", - "오른쪽 아래": "BottomRight", - "왼쪽 아래": "BottomLeft" - } - }, - "30": { - "path": "//CHAR[contains(text(),'{searchValue}')]", - "searchValue": "http", - "value": true, - "points": 2, - "category": "hyperlink", - "item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성", - "desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답" - }, - "31": { - "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "180", - "first_word": "음", - "points": 2, - "category": "LineSpacing", - "item": "문제 1 줄간격 180% 설정", - "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." - } - }, - "2": { - "1": { - "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": "PageBorder", - "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" - }, - "2": { - "path": "count(//SECTION)>1", - "value": true, - "points": 3, - "category": "Boolean", - "item": "① 구역나누기", - "desc": "섹션이 1개 이상이면 점수부여" - }, - "3": { - "path": "./TEXT/COLDEF/@Count", - "value": "2", - "points": 3, - "category": "TwoColumn", - "item": "② 다단 2단" - }, - "4": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "60", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (청소년 음악 창작)/① 크기-너비 (60 mm)" - }, - "5": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "value": "12", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (청소년 음악 창작)/② 크기-높이 (12 mm)" - }, - "6": { - "path": "//RECTANGLE//LINESHAPE", - "value": { - "Style": "DoubleSlim", - "Width": "283" - }, - "points": 2, - "category": "Rectangle.LineShape", - "item": "문구 (청소년 음악 창작)/③ 테두리 : 이중 실선(1.00mm)", - "desc": "1mm = 283pt value['Width']에 pt값 입력" - }, - "7": { - "path": "//RECTANGLE/@Ratio", - "value": "20", - "points": 2, - "category": "Rectangle.OneAnswer", - "item": "문구 (청소년 음악 창작)/④ 글상자 모서리 (반원)", - "desc": "모서리 비율 반원:50 / 둥근모양:20" - }, - "8": { - "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "53,135,145", - "points": 2, - "category": "Rectangle.Color", - "item": "문구 (청소년 음악 창작)/⑤ 채우기 : 색상(RGB:53,135,145)" - }, - "9": { - "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "value": "true", - "points": 1, - "category": "Rectangle.OneAnswer", - "item": "문구 (청소년 음악 창작)/⑥ 글상자 위치 (글자처럼 취급)" - }, - "10": { - "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (청소년 음악 창작)/⑦ 글상자 정렬 (가운데 정렬)" - }, - "11": { - "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "궁서체", - "points": 1, - "category": "Rectangle.FontName", - "item": "문구 (청소년 음악 창작)/⑧ 글씨체 (궁서체)" - }, - "12": { - "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "2000", - "points": 1, - "category": "Rectangle.FontSize", - "item": "문구 (청소년 음악 창작)/⑨ 글씨크기 (2000)", - "desc": "1pt당 100" - }, - "13": { - "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (청소년 음악 창작)/⑩ 정렬 (가운데 정렬)" - }, - "14": { - "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", - "value": true, - "points": 2, - "category": "Boolean", - "item": "① 파일명 \"그림B.jpg\" 삽입", - "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" - }, - "15": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", - "value": "85", - "points": 2, - "category": "mmSize", - "item": "② 크기-너비 (85 mm)" - }, - "16": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", - "value": "40", - "points": 2, - "category": "mmSize", - "item": "③ 크기-높이 (40 mm)" - }, - "17": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", - "value": "0", - "points": 2, - "category": "mmSize", - "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" - }, - "18": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "24", - "points": 2, - "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)" - }, - "19": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 청소년 음악 창작", - "value": "돋움체", - "points": 1, - "category": "FontName", - "item": "문구① (1. 청소년 음악 창작)/① 글씨체 (돋움체)" - }, - "20": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 청소년 음악 창작", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구① (1. 청소년 음악 창작)/② 크기 (1200)" - }, - "21": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 청소년 음악 창작", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구① (1. 청소년 음악 창작)/③ 진하게" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 청소년 음악 산업", - "value": "돋움체", - "points": 1, - "category": "FontName", - "item": "문구② (2. 청소년 음악 산업)/① 글씨체 (돋움체)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 청소년 음악 산업", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구② (2. 청소년 음악 산업)/② 크기 (1200)" - }, - "24": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 청소년 음악 산업", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구② (2. 청소년 음악 산업)/③ 진하게" - }, - "25": { - "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", - "item": "문구 (스트리밍)/① 각주 설정 및 문구 입력" - }, - "26": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "문구 (스트리밍)/② 글씨체 (굴림)" - }, - "27": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "문구 (스트리밍)/③ 크기 (9pt)" - }, - "28": { - "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함", - "value": "CircledHangulJamo", - "points": 2, - "category": "OneAnswer", - "item": "문구 (스트리밍)/④ 각주 번호모양", - "desc": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - } - }, - "29": { - "path": "boolean(//CHAR[contains(text(),'Artist')])", - "ignoreWord": "Artist", - "value": true, - "points": 3, - "category": "Boolean", - "item": "Artist/영단어 미입력, 대소문자/오타 시 전체 감점", - "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" - }, - "30": { - "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", - "word": [ - ["작곡", "作曲"], - ["유통", "流通"], - ["창작", "創作"], - ["발표", "發表"], - ["수익", "受益"] - ], - "value": 10, - "points": 10, - "category": "Hanja", - "item": "① 작곡(作曲), ② 유통(流通), ③ 창작(創作), ④ 발표(發表), ⑤ 수익(受益)" - }, - "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이고실험')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…벗어나 자율적이구 실험적인…)>'구' → '고' 글자바꿈" - }, - "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'로운기회')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…뮤지션들에게도 기회가 새로운 열리고…)>'기회가 / 새로운' 순서바꿈" - }, - "33": { - "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "청소년 음악 성장률(단위:%)", - "value": "돋움", - "points": 1, - "category": "FontName", - "item": "제목 문구 (청소년 음악 성장률(단위:%))/① 글씨체 (돋움)" - }, - "34": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "청소년 음악 성장률(단위:%)", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (청소년 음악 성장률(단위:%))/② 크기 (1200)" - }, - "35": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "청소년 음악 성장률(단위:%)", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "제목 문구 (청소년 음악 성장률(단위:%))/③ 진하게" - }, - "36": { - "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "청소년 음악 성장률(단위:%)", - "value": "Center", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "202,86,167", - "points": 2, - "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:202,86,167)" - }, - "38": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", - "value": "BOLD", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", - "value": "DoubleSlim", - "points": 2, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", - "value": "0.5mm", - "points": 2, - "category": "TableAnswer", - "item": "제목 셀 아래선/② 0.5mm" - }, - "41": { - "path": "//TABLE//TEXT/@CharShape", - "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "중고딕", - "points": 1, - "category": "TableFontName", - "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (중고딕)", - "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" - }, - "42": { - "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", - "value": "1000", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/② 크기 (1000)" - }, - "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", - "value": "Center", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/③ 정렬 (가운데 정렬)" - }, - "44": { - "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": "Boolean", - "item": "블록 계산식/합계", - "desc": "option값에 합계는 SUM / 평균은 AVG" - }, - "45": { - "chart_xpath": "", - "chart_type": "꺾은선형", - "value": true, - "points": 2, - "category": "ChartType", - "item": "① 종류 (꺾은선형)", - "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" - }, - "46": { - "chart_xpath": "//c:valAx/c:majorTickMark/@val", - "value": "out", - "points": 2, - "category": "ChartOneAnswer", - "item": "② 값 축 주 눈금선", - "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" - }, - "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "③ 크기-너비 (80 mm)" - }, - "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "90", - "points": 2, - "category": "mmSize", - "item": "④ 크기-높이 (90 mm)" - }, - "49": { - "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", - "value": true, - "points": 2, - "category": "Boolean", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", - "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" - }, - "50": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "청소년 음악 성장률(단위:%)", - "value": "맑은 고딕", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (청소년 음악 성장률(단위:%))/① 글씨체 (맑은 고딕)" - }, - "51": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "청소년 음악 성장률(단위:%)", - "value": "1300", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (청소년 음악 성장률(단위:%))/② 크기 (1300)" - }, - "52": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", - "option": "b", - "searchValue": "청소년 음악 성장률(단위:%)", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (청소년 음악 성장률(단위:%))/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "53": { - "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", - "value": "바탕", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/① 글꼴 (바탕)" - }, - "54": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/② 크기 (9pt)" - }, - "55": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "56": { - "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", - "value": "바탕", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/① 글꼴 (바탕)" - }, - "57": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/② 크기 (9pt)" - }, - "58": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "59": { - "chart_xpath": "//c:legend//a:ea/@typeface", - "value": "바탕", - "points": 1, - "category": "OneAnswer", - "item": "범례/① 글꼴 (바탕)" - }, - "60": { - "chart_xpath": "//c:legend//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "범례/② 크기 (9pt)" - }, - "61": { - "chart_xpath": "//c:legend//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "범례/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - } - } -} diff --git a/DIW_2512C.json b/DIW_2512C.json deleted file mode 100644 index 020c461..0000000 --- a/DIW_2512C.json +++ /dev/null @@ -1,850 +0,0 @@ -{ - "0": { - "0": { - "path": "", - "path2": "", - "points": 0, - "category": "파일저장", - "item": "파일명 (수검번호.hwp/hwpx)" - }, - "1": { - "path": "//PAGEMARGIN", - "value": { - "Top": 20, - "Bottom": 20, - "Left": 20, - "Right": 20, - "Header": 10, - "Footer": 10, - "Gutter": 0 - }, - "tolerance": 1, - "points": 4, - "category": "PageSetting", - "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" - }, - "2": { - "path": "", - "value": { - "FontName": "바탕", - "FontSize": "1000", - "Alignment": "Justify", - "LineSpacing": "160" - }, - "points": 4, - "category": "BasicSetting", - "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" - }, - "3": { - "path": "", - "value": null, - "points": 40, - "category": "오타감점", - "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" - } - }, - "1": { - "1": { - "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "한국전통공예박람회", - "value": "굴림체", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한국전통공예박람회)/① 글씨체 (굴림체)" - }, - "2": { - "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "한국전통공예박람회", - "value": "28,61,98", - "points": 2, - "category": "Color", - "item": "문구 (한국전통공예박람회)/② 채우기 : 색상(RGB:28,61,98)" - }, - "3": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "한국전통공예박람회", - "value": "110", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한국전통공예박람회)/③ 크기-너비 (110 mm)" - }, - "4": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "한국전통공예박람회", - "value": "20", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한국전통공예박람회)/④ 크기-높이 (20 mm)" - }, - "5": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "한국전통공예박람회", - "value": "true", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한국전통공예박람회)/⑤ 위치 (글자처럼 취급)" - }, - "6": { - "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "한국전통공예박람회", - "value": "Center", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한국전통공예박람회)/⑥ 정렬 (가운데 정렬)" - }, - "7": { - "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "한국전통공예박람회", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (한국전통공예박람회)/⑦ 글맵시모양 (육안확인)" - }, - "8": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "전", - "value": { - "Height": 2800, - "Width": 2800 - }, - "tolerance": 200, - "points": 1, - "category": "TwoLineSize", - "item": "어/① 모양 (2줄)" - }, - "9": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "전", - "value": "궁서체", - "points": 1, - "category": "FontName", - "item": "어/② 글씨체 (궁서체)" - }, - "10": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "전", - "value": "236,217,74", - "points": 2, - "category": "Color", - "item": "어/③ 면색 : 색상(RGB:236,217,74)" - }, - "11": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "전", - "value": "3.0", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "어/④ 본문과의 간격 : 3.0mm" - }, - "12": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "다양한 분야의 장인과 예술가들이 참여", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (다양한 분야의 장인과 예술가들이 참여)/① BOLD" - }, - "13": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "다양한 분야의 장인과 예술가들이 참여", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (다양한 분야의 장인과 예술가들이 참여)/② UNDERLINE" - }, - "14": { - "path": "//CHAR[contains(string(.),'{char1}')]/text()", - "path2": "//CHAR[contains(string(.),'{char2}')]/text()", - "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "●", - "char2": "●", - "char3": "※", - "value": 3, - "points": 3, - "category": "SpecialChar", - "item": "① ●, ② ●, ③ ※" - }, - "15": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "행사안내", - "value": "궁서", - "points": 1, - "category": "FontName", - "item": "문구 (● 행사안내 ●)/① 글씨체 (궁서)" - }, - "16": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "행사안내", - "value": "Center", - "points": 1, - "category": "Align", - "item": "문구 (● 행사안내 ●)/② 정렬 (가운데 정렬)" - }, - "17": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr)", - "value": "ITALIC", - "points": 1, - "category": "FontAttribute", - "item": "문구 (한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr))/① ITALIC" - }, - "18": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr)", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr))/② UNDERLINE" - }, - "19": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", - "searchValue": "기타사항", - "value": { - "Left": 15, - "Indent": 12 - }, - "points": 2, - "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)", - "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" - }, - "20": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 12. 20.", - "value": "1400", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 20.)/① 크기 (1400)", - "desc": "1pt당 100" - }, - "21": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 12. 20.", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "한국 전통공예 협의회", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "문구 (한국 전통공예 협의회)/① 글씨체 (굴림)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "한국 전통공예 협의회", - "value": "2600", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한국 전통공예 협의회)/② 크기 (2600)" - }, - "24": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "한국 전통공예 협의회", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한국 전통공예 협의회)/③ 정렬 (가운데 정렬)" - }, - "25": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "DIAT", - "value": "궁서", - "points": 1, - "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (궁서)" - }, - "26": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "DIAT", - "value": "900", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/② 크기 (9pt)" - }, - "27": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "searchValue": "DIAT", - "value": "Right", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" - }, - "28": { - "path": "//PAGENUM/@FormatType", - "value": "LatinCapital", - "points": 2, - "category": "PageNumber", - "item": "① 쪽 번호 매기기", - "desc1": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - }, - "desc2": "1, 2페이지 모두 정답이어야 점수 부여" - }, - "29": { - "path": "//PAGENUM/@Pos", - "value": "BottomRight", - "points": 2, - "category": "PageNumber", - "item": "가운데 아래", - "desc": "1, 2페이지 모두 정답이어야 점수 부여", - "desc2": { - "가운데 아래": "BottomCenter", - "오른쪽 아래": "BottomRight", - "왼쪽 아래": "BottomLeft" - } - }, - "30": { - "path": "//CHAR[contains(text(),'{searchValue}')]", - "searchValue": "http", - "value": true, - "points": 2, - "category": "hyperlink", - "item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성", - "desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답" - }, - "31": { - "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "200", - "first_word": "전", - "points": 2, - "category": "LineSpacing", - "item": "문제 1 줄간격 200% 설정", - "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." - } - }, - "2": { - "1": { - "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": "PageBorder", - "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" - }, - "2": { - "path": "count(//SECTION)>1", - "value": true, - "points": 3, - "category": "Boolean", - "item": "① 구역나누기", - "desc": "섹션이 1개 이상이면 점수부여" - }, - "3": { - "path": "./TEXT/COLDEF/@Count", - "value": "2", - "points": 3, - "category": "TwoColumn", - "item": "② 다단 2단" - }, - "4": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "65", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (한국 전통공예)/① 크기-너비 (65 mm)" - }, - "5": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "value": "12", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (한국 전통공예)/② 크기-높이 (12 mm)" - }, - "6": { - "path": "//RECTANGLE//LINESHAPE", - "value": { - "Style": "DoubleSlim", - "Width": "283" - }, - "points": 2, - "category": "Rectangle.LineShape", - "item": "문구 (한국 전통공예)/③ 테두리 : 이중 실선(1.00mm)", - "desc": "1mm = 283pt value['Width']에 pt값 입력" - }, - "7": { - "path": "//RECTANGLE/@Ratio", - "value": "50", - "points": 2, - "category": "Rectangle.OneAnswer", - "item": "문구 (한국 전통공예)/④ 글상자 모서리 (반원)", - "desc": "모서리 비율 반원:50 / 둥근모양:20" - }, - "8": { - "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "202,86,167", - "points": 2, - "category": "Rectangle.Color", - "item": "문구 (한국 전통공예)/⑤ 채우기 : 색상(RGB:202,86,167)" - }, - "9": { - "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "value": "true", - "points": 1, - "category": "Rectangle.OneAnswer", - "item": "문구 (한국 전통공예)/⑥ 글상자 위치 (글자처럼 취급)" - }, - "10": { - "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (한국 전통공예)/⑦ 글상자 정렬 (가운데 정렬)" - }, - "11": { - "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "견고딕", - "points": 1, - "category": "Rectangle.FontName", - "item": "문구 (한국 전통공예)/⑧ 글씨체 (견고딕)" - }, - "12": { - "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "2000", - "points": 1, - "category": "Rectangle.FontSize", - "item": "문구 (한국 전통공예)/⑨ 글씨크기 (2000)", - "desc": "1pt당 100" - }, - "13": { - "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (한국 전통공예)/⑩ 정렬 (가운데 정렬)" - }, - "14": { - "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", - "value": true, - "points": 2, - "category": "Boolean", - "item": "① 파일명 \"그림C.jpg\" 삽입", - "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" - }, - "15": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "② 크기-너비 (80 mm)" - }, - "16": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", - "value": "40", - "points": 2, - "category": "mmSize", - "item": "③ 크기-높이 (40 mm)" - }, - "17": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", - "value": "0", - "points": 2, - "category": "mmSize", - "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" - }, - "18": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "24", - "points": 2, - "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)" - }, - "19": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 전통공예", - "value": "굴림체", - "points": 1, - "category": "FontName", - "item": "문구① (1. 전통공예)/① 글씨체 (굴림체)" - }, - "20": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 전통공예", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구① (1. 전통공예)/② 크기 (1200)" - }, - "21": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 전통공예", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구① (1. 전통공예)/③ 진하게" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 전통 공예 산업", - "value": "굴림체", - "points": 1, - "category": "FontName", - "item": "문구② (2. 전통 공예 산업)/① 글씨체 (굴림체)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 전통 공예 산업", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구② (2. 전통 공예 산업)/② 크기 (1200)" - }, - "24": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 전통 공예 산업", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구② (2. 전통 공예 산업)/③ 진하게" - }, - "25": { - "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", - "item": "문구 (업사이클링)/① 각주 설정 및 문구 입력" - }, - "26": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구 (업사이클링)/② 글씨체 (중고딕)" - }, - "27": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "문구 (업사이클링)/③ 크기 (9pt)" - }, - "28": { - "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함", - "value": "CircledIdeograph", - "points": 2, - "category": "OneAnswer", - "item": "문구 (전당)/④ 각주 번호모양", - "desc": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - } - }, - "29": { - "path": "boolean(//CHAR[contains(text(),'Upcycling')])", - "ignoreWord": "Upcycling", - "value": true, - "points": 3, - "category": "Boolean", - "item": "Upcycling/영단어 미입력, 대소문자/오타 시 전체 감점", - "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" - }, - "30": { - "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", - "word": [ - ["차원", "次元"], - ["사례", "事例"], - ["주목", "注目"], - ["소비", "消費"], - ["명장", "名匠"] - ], - "value": 10, - "points": 10, - "category": "Hanja", - "item": "① 차원(次元), ② 사례(事例), ③ 주목(注目), ④ 소비(消費), ⑤ 명장(名匠)" - }, - "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'국인관광')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (...활성화되면서 관광객과 외국인 일반...)>'관광객과 / 외국인' 순서바꿈" - }, - "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'예품등이')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (...디지털 아트 공예품 통이...)>'통' → '등' 글자바꿈" - }, - "33": { - "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "전통 공예 산업 성장률(단위: %)", - "value": "돋움", - "points": 1, - "category": "FontName", - "item": "제목 문구 (전통 공예 산업 성장률(단위: %))/① 글씨체 (돋움)" - }, - "34": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "전통 공예 산업 성장률(단위: %)", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (전통 공예 산업 성장률(단위: %))/② 크기 (1200)" - }, - "35": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "전통 공예 산업 성장률(단위: %)", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "제목 문구 (전통 공예 산업 성장률(단위: %))/③ 진하게" - }, - "36": { - "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "전통 공예 산업 성장률(단위: %)", - "value": "Center", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "138,194,217", - "points": 2, - "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:138,194,217)" - }, - "38": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", - "value": "BOLD", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", - "value": "DoubleSlim", - "points": 2, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", - "value": "0.5mm", - "points": 2, - "category": "TableAnswer", - "item": "제목 셀 아래선/② 0.5mm" - }, - "41": { - "path": "//TABLE//TEXT/@CharShape", - "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "중고딕", - "points": 1, - "category": "TableFontName", - "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (중고딕)", - "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" - }, - "42": { - "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", - "value": "1000", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/② 크기 (1000)" - }, - "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", - "value": "Center", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/③ 정렬 (가운데 정렬)" - }, - "44": { - "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": "Boolean", - "item": "블록 계산식/합계", - "desc": "option값에 합계는 SUM / 평균은 AVG" - }, - "45": { - "chart_xpath": "", - "chart_type": "표식만 있는 분산형", - "value": true, - "points": 2, - "category": "ChartType", - "item": "① 종류 (표식만 있는 분산형)", - "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" - }, - "46": { - "chart_xpath": "//c:valAx/c:majorTickMark/@val", - "value": "out", - "points": 2, - "category": "ChartOneAnswer", - "item": "② 값 축 주 눈금선", - "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" - }, - "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "③ 크기-너비 (80 mm)" - }, - "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "90", - "points": 2, - "category": "mmSize", - "item": "④ 크기-높이 (90 mm)" - }, - "49": { - "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", - "value": true, - "points": 2, - "category": "Boolean", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", - "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" - }, - "50": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "전통 공예 산업 성장률(단위: %)", - "value": "굴림", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (전통 공예 산업 성장률(단위: %))/① 글씨체 (굴림)" - }, - "51": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "전통 공예 산업 성장률(단위: %)", - "value": "1300", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (전통 공예 산업 성장률(단위: %))/② 크기 (1300)" - }, - "52": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", - "option": "b", - "searchValue": "전통 공예 산업 성장률(단위: %)", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (전통 공예 산업 성장률(단위: %))/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "53": { - "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", - "value": "돋움체", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/① 글꼴 (돋움체)" - }, - "54": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/② 크기 (9pt)" - }, - "55": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "56": { - "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", - "value": "돋움체", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/① 글꼴 (돋움체)" - }, - "57": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/② 크기 (9pt)" - }, - "58": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "59": { - "chart_xpath": "//c:legend//a:ea/@typeface", - "value": "돋움체", - "points": 1, - "category": "OneAnswer", - "item": "범례/① 글꼴 (돋움체)" - }, - "60": { - "chart_xpath": "//c:legend//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "범례/② 크기 (9pt)" - }, - "61": { - "chart_xpath": "//c:legend//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "범례/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - } - } -} diff --git a/DIW_2512D.json b/DIW_2512D.json deleted file mode 100644 index 720f2ea..0000000 --- a/DIW_2512D.json +++ /dev/null @@ -1,850 +0,0 @@ -{ - "0": { - "0": { - "path": "", - "path2": "", - "points": 0, - "category": "파일저장", - "item": "파일명 (수검번호.hwp/hwpx)" - }, - "1": { - "path": "//PAGEMARGIN", - "value": { - "Top": 20, - "Bottom": 20, - "Left": 20, - "Right": 20, - "Header": 10, - "Footer": 10, - "Gutter": 0 - }, - "tolerance": 1, - "points": 4, - "category": "PageSetting", - "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" - }, - "2": { - "path": "", - "value": { - "FontName": "바탕", - "FontSize": "1000", - "Alignment": "Justify", - "LineSpacing": "160" - }, - "points": 4, - "category": "BasicSetting", - "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" - }, - "3": { - "path": "", - "value": null, - "points": 40, - "category": "오타감점", - "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" - } - }, - "1": { - "1": { - "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "생성형 인공지능 세미나 안내", - "value": "궁서체", - "points": 1, - "category": "OneAnswer", - "item": "문구 (생성형 인공지능 세미나 안내)/① 글씨체 (궁서체)" - }, - "2": { - "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "생성형 인공지능 세미나 안내", - "value": "233,190,46", - "points": 2, - "category": "Color", - "item": "문구 (생성형 인공지능 세미나 안내)/② 채우기 : 색상(RGB:233,190,46)" - }, - "3": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "생성형 인공지능 세미나 안내", - "value": "110", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (생성형 인공지능 세미나 안내)/③ 크기-너비 (110 mm)" - }, - "4": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "생성형 인공지능 세미나 안내", - "value": "20", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (생성형 인공지능 세미나 안내)/④ 크기-높이 (20 mm)" - }, - "5": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "생성형 인공지능 세미나 안내", - "value": "true", - "points": 2, - "category": "OneAnswer", - "item": "문구 (생성형 인공지능 세미나 안내)/⑤ 위치 (글자처럼 취급)" - }, - "6": { - "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "생성형 인공지능 세미나 안내", - "value": "Center", - "points": 2, - "category": "OneAnswer", - "item": "문구 (생성형 인공지능 세미나 안내)/⑥ 정렬 (가운데 정렬)" - }, - "7": { - "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "생성형 인공지능 세미나 안내", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (생성형 인공지능 세미나 안내)/⑦ 글맵시모양 (육안확인)" - }, - "8": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "생", - "value": { - "Height": 2800, - "Width": 2800 - }, - "tolerance": 200, - "points": 1, - "category": "TwoLineSize", - "item": "어/① 모양 (2줄)" - }, - "9": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "생", - "value": "굴림체", - "points": 1, - "category": "FontName", - "item": "어/② 글씨체 (굴림체)" - }, - "10": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "생", - "value": "221,251,229", - "points": 2, - "category": "Color", - "item": "어/③ 면색 : 색상(RGB:221,251,229)" - }, - "11": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "생", - "value": "3.0", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "어/④ 본문과의 간격 : 3.0mm" - }, - "12": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "생성형 인공지능", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (생성형 인공지능)/① BOLD" - }, - "13": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "생성형 인공지능", - "value": "ITALIC", - "points": 1, - "category": "FontAttribute", - "item": "문구 (생성형 인공지능)/② ITALIC" - }, - "14": { - "path": "//CHAR[contains(string(.),'{char1}')]/text()", - "path2": "//CHAR[contains(string(.),'{char2}')]/text()", - "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "★", - "char2": "★", - "char3": "※", - "value": 3, - "points": 3, - "category": "SpecialChar", - "item": "① ★, ② ★, ③ ※" - }, - "15": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "행사안내", - "value": "궁서", - "points": 1, - "category": "FontName", - "item": "문구 (★ 행사안내 ★)/① 글씨체 (궁서)" - }, - "16": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "행사안내", - "value": "Center", - "points": 1, - "category": "Align", - "item": "문구 (★ 행사안내 ★)/② 정렬 (가운데 정렬)" - }, - "17": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "협회 홈페이지(https://www.ihd.or.kr)", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (협회 홈페이지(https://www.ihd.or.kr))/① BOLD" - }, - "18": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "협회 홈페이지(https://www.ihd.or.kr)", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (협회 홈페이지(https://www.ihd.or.kr))/② UNDERLINE" - }, - "19": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", - "searchValue": "기타사항", - "value": { - "Left": 13, - "Indent": 10 - }, - "points": 2, - "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (13), 내어쓰기 (10)", - "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" - }, - "20": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 12. 20.", - "value": "1300", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 20.)/① 크기 (1300)", - "desc": "1pt당 100" - }, - "21": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 12. 20.", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "생성형인공지능협회", - "value": "돋움", - "points": 1, - "category": "FontName", - "item": "문구 (생성형인공지능협회)/① 글씨체 (돋움)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "생성형인공지능협회", - "value": "2000", - "points": 1, - "category": "OneAnswer", - "item": "문구 (생성형인공지능협회)/② 크기 (2000)" - }, - "24": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "생성형인공지능협회", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (생성형인공지능협회)/③ 정렬 (가운데 정렬)" - }, - "25": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "DIAT", - "value": "굴림", - "points": 1, - "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (굴림)" - }, - "26": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "DIAT", - "value": "900", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/② 크기 (9pt)" - }, - "27": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "searchValue": "DIAT", - "value": "Right", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" - }, - "28": { - "path": "//PAGENUM/@FormatType", - "value": "LatinCapital", - "points": 2, - "category": "PageNumber", - "item": "① 쪽 번호 매기기", - "desc1": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - }, - "desc2": "1, 2페이지 모두 정답이어야 점수 부여" - }, - "29": { - "path": "//PAGENUM/@Pos", - "value": "BottomRight", - "points": 2, - "category": "PageNumber", - "item": "왼쪽 아래", - "desc": "1, 2페이지 모두 정답이어야 점수 부여", - "desc2": { - "가운데 아래": "BottomCenter", - "오른쪽 아래": "BottomRight", - "왼쪽 아래": "BottomLeft" - } - }, - "30": { - "path": "//CHAR[contains(text(),'{searchValue}')]", - "searchValue": "http", - "value": true, - "points": 2, - "category": "hyperlink", - "item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성", - "desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답" - }, - "31": { - "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "200", - "first_word": "생", - "points": 2, - "category": "LineSpacing", - "item": "문제 1 줄간격 200% 설정", - "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." - } - }, - "2": { - "1": { - "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": "PageBorder", - "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" - }, - "2": { - "path": "count(//SECTION)>1", - "value": true, - "points": 3, - "category": "Boolean", - "item": "① 구역나누기", - "desc": "섹션이 1개 이상이면 점수부여" - }, - "3": { - "path": "./TEXT/COLDEF/@Count", - "value": "2", - "points": 3, - "category": "TwoColumn", - "item": "② 다단 2단" - }, - "4": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "60", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (생성형 인공지능)/① 크기-너비 (60 mm)" - }, - "5": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "value": "12", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (생성형 인공지능)/② 크기-높이 (12 mm)" - }, - "6": { - "path": "//RECTANGLE//LINESHAPE", - "value": { - "Style": "DoubleSlim", - "Width": "283" - }, - "points": 2, - "category": "Rectangle.LineShape", - "item": "문구 (생성형 인공지능)/③ 테두리 : 이중 실선(1.00mm)", - "desc": "1mm = 283pt value['Width']에 pt값 입력" - }, - "7": { - "path": "//RECTANGLE/@Ratio", - "value": "0", - "points": 2, - "category": "Rectangle.OneAnswer", - "item": "문구 (생성형 인공지능)/④ 글상자 모서리 (직각)", - "desc": "모서리 비율 반원:50 / 둥근모양:20 / 직각:0" - }, - "8": { - "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "153,226,253", - "points": 2, - "category": "Rectangle.Color", - "item": "문구 (생성형 인공지능)/⑤ 채우기 : 색상(RGB:153,226,253)" - }, - "9": { - "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "value": "true", - "points": 1, - "category": "Rectangle.OneAnswer", - "item": "문구 (생성형 인공지능)/⑥ 글상자 위치 (글자처럼 취급)" - }, - "10": { - "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (생성형 인공지능)/⑦ 글상자 정렬 (가운데 정렬)" - }, - "11": { - "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "견고딕", - "points": 1, - "category": "Rectangle.FontName", - "item": "문구 (생성형 인공지능)/⑧ 글씨체 (견고딕)" - }, - "12": { - "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "2000", - "points": 1, - "category": "Rectangle.FontSize", - "item": "문구 (생성형 인공지능)/⑨ 글씨크기 (2000)", - "desc": "1pt당 100" - }, - "13": { - "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (생성형 인공지능)/⑩ 정렬 (가운데 정렬)" - }, - "14": { - "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", - "value": true, - "points": 2, - "category": "Boolean", - "item": "① 파일명 \"그림D.jpg\" 삽입", - "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" - }, - "15": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", - "value": "85", - "points": 2, - "category": "mmSize", - "item": "② 크기-너비 (85 mm)" - }, - "16": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", - "value": "40", - "points": 2, - "category": "mmSize", - "item": "③ 크기-높이 (40 mm)" - }, - "17": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", - "value": "0", - "points": 2, - "category": "mmSize", - "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" - }, - "18": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "22", - "points": 2, - "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)" - }, - "19": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 서비스 현황", - "value": "돋움체", - "points": 1, - "category": "FontName", - "item": "문구① (1. 서비스 현황)/① 글씨체 (돋움체)" - }, - "20": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 서비스 현황", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구① (1. 서비스 현황)/② 크기 (1200)" - }, - "21": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 서비스 현황", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구① (1. 서비스 현황)/③ 진하게" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 활용 분야", - "value": "돋움체", - "points": 1, - "category": "FontName", - "item": "문구② (2. 활용 분야)/① 글씨체 (돋움체)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 활용 분야", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구② (2. 활용 분야)/② 크기 (1200)" - }, - "24": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 활용 분야", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구② (2. 활용 분야)/③ 진하게" - }, - "25": { - "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", - "item": "문구 (핀테크)/① 각주 설정 및 문구 입력" - }, - "26": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "문구 (핀테크)/② 글씨체 (굴림)" - }, - "27": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "문구 (핀테크)/③ 크기 (9pt)" - }, - "28": { - "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업", - "value": "CircledLatinCapital", - "points": 2, - "category": "OneAnswer", - "item": "문구 (전당)/④ 각주 번호모양", - "desc": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - } - }, - "29": { - "path": "boolean(//CHAR[contains(text(),'Generative')])", - "ignoreWord": "Generative", - "value": true, - "points": 3, - "category": "Boolean", - "item": "Generative/영단어 미입력, 대소문자/오타 시 전체 감점", - "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" - }, - "30": { - "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", - "word": [ - ["생성", "生成"], - ["현재", "現在"], - ["창조", "創造"], - ["결함", "缺陷"], - ["극대", "極大"] - ], - "value": 10, - "points": 10, - "category": "Hanja", - "item": "① 생성(生成), ② 현재(現在), ③ 창조(創造), ④ 결함(缺陷), ⑤ 극대(極大)" - }, - "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'성형인공')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…사용하는 인공지능 생성형 서비스이다…)>'인공지능 / 생성형' 순서바꿈" - }, - "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'률검토를')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…작성 및 법률 검투를 수행…)>'투' → '토' 글자바꿈" - }, - "33": { - "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "생성형 인공지능 서비스 이용률 현황", - "value": "굴림체", - "points": 1, - "category": "FontName", - "item": "제목 문구 (생성형 인공지능 서비스 이용률 현황)/① 글씨체 (굴림체)" - }, - "34": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "생성형 인공지능 서비스 이용률 현황", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (생성형 인공지능 서비스 이용률 현황)/② 크기 (1200)" - }, - "35": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "생성형 인공지능 서비스 이용률 현황", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "제목 문구 (생성형 인공지능 서비스 이용률 현황)/③ 진하게" - }, - "36": { - "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "생성형 인공지능 서비스 이용률 현황", - "value": "Center", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "232,250,210", - "points": 2, - "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:232,250,210)" - }, - "38": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", - "value": "BOLD", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", - "value": "DoubleSlim", - "points": 2, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", - "value": "0.5mm", - "points": 2, - "category": "TableAnswer", - "item": "제목 셀 아래선/② 0.5mm" - }, - "41": { - "path": "//TABLE//TEXT/@CharShape", - "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "중고딕", - "points": 1, - "category": "TableFontName", - "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (중고딕)", - "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" - }, - "42": { - "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", - "value": "1000", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/② 크기 (1000)" - }, - "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", - "value": "Center", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/③ 정렬 (가운데 정렬)" - }, - "44": { - "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": "Boolean", - "item": "블록 계산식/합계", - "desc": "option값에 합계는 SUM / 평균은 AVG" - }, - "45": { - "chart_xpath": "", - "chart_type": "묶은 가로 막대형", - "value": true, - "points": 2, - "category": "ChartType", - "item": "① 종류 (묶은 가로 막대형)", - "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" - }, - "46": { - "chart_xpath": "//c:valAx/c:majorTickMark/@val", - "value": "out", - "points": 2, - "category": "ChartOneAnswer", - "item": "② 값 축 주 눈금선", - "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" - }, - "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "③ 크기-너비 (80 mm)" - }, - "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "④ 크기-높이 (80 mm)" - }, - "49": { - "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", - "value": true, - "points": 2, - "category": "Boolean", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", - "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" - }, - "50": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "생성형 인공지능 이용률 현황", - "value": "휴먼옛체", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (생성형 인공지능 이용률 현황)/① 글씨체 (휴먼옛체)" - }, - "51": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "생성형 인공지능 이용률 현황", - "value": "1300", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (생성형 인공지능 이용률 현황)/② 크기 (1300)" - }, - "52": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", - "option": "b", - "searchValue": "생성형 인공지능 이용률 현황", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (생성형 인공지능 이용률 현황)/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "53": { - "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/① 글꼴 (돋움)" - }, - "54": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/② 크기 (9pt)" - }, - "55": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "56": { - "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/① 글꼴 (돋움)" - }, - "57": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/② 크기 (9pt)" - }, - "58": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "59": { - "chart_xpath": "//c:legend//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "OneAnswer", - "item": "범례/① 글꼴 (돋움)" - }, - "60": { - "chart_xpath": "//c:legend//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "범례/② 크기 (9pt)" - }, - "61": { - "chart_xpath": "//c:legend//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "범례/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - } - } -} diff --git a/회차별채점자료/2511/DIW_2511A.json b/DIW_2601_2A.json similarity index 75% rename from 회차별채점자료/2511/DIW_2511A.json rename to DIW_2601_2A.json index ce992bb..d018b95 100644 --- a/회차별채점자료/2511/DIW_2511A.json +++ b/DIW_2601_2A.json @@ -46,61 +46,61 @@ "1": { "1": { "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "대학교육정책포럼", - "value": "휴먼옛체", + "searchValue": "재활용의 날 행사", + "value": "맑은고딕", "points": 1, "category": "OneAnswer", - "item": "문구 (대학교육정책포럼)/① 글씨체 (휴먼옛체)" + "item": "문구 (재활용의 날 행사)/① 글씨체 (맑은고딕)" }, "2": { "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "대학교육정책포럼", - "value": "53,135,145", + "searchValue": "재활용의 날 행사", + "value": "49,95,151", "points": 2, "category": "Color", - "item": "문구 (대학교육정책포럼)/② 채우기 : 색상(RGB:53,135,145)" + "item": "문구 (재활용의 날 행사)/② 채우기 : 색상(RGB:49,95,151)" }, "3": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "대학교육정책포럼", - "value": "120", + "searchValue": "재활용의 날 행사", + "value": "100", "tolerance": 1, "points": 2, "category": "mmSize", - "item": "문구 (대학교육정책포럼)/③ 크기-너비 (120 mm)" + "item": "문구 (재활용의 날 행사)/③ 크기-너비 (100 mm)" }, "4": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "대학교육정책포럼", + "searchValue": "재활용의 날 행사", "value": "20", "tolerance": 1, "points": 2, "category": "mmSize", - "item": "문구 (대학교육정책포럼)/④ 크기-높이 (20 mm)" + "item": "문구 (재활용의 날 행사)/④ 크기-높이 (20 mm)" }, "5": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "대학교육정책포럼", + "searchValue": "재활용의 날 행사", "value": "true", "points": 2, "category": "OneAnswer", - "item": "문구 (대학교육정책포럼)/⑤ 위치 (글자처럼 취급)" + "item": "문구 (재활용의 날 행사)/⑤ 위치 (글자처럼 취급)" }, "6": { "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "대학교육정책포럼", + "searchValue": "재활용의 날 행사", "value": "Center", "points": 2, "category": "OneAnswer", - "item": "문구 (대학교육정책포럼)/⑥ 정렬 (가운데 정렬)" + "item": "문구 (재활용의 날 행사)/⑥ 정렬 (가운데 정렬)" }, "7": { "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "대학교육정책포럼", + "searchValue": "재활용의 날 행사", "value": true, "points": 2, "category": "Boolean", - "item": "문구 (대학교육정책포럼)/⑦ 글맵시모양 (육안확인)" + "item": "문구 (재활용의 날 행사)/⑦ 글맵시모양 (육안확인)" }, "8": { "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", @@ -117,18 +117,18 @@ "9": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "한", - "value": "굴림체", + "value": "돋움체", "points": 1, "category": "FontName", - "item": "어/② 글씨체 (굴림체)" + "item": "어/② 글씨체 (돋움체)" }, "10": { "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", "searchValue": "한", - "value": "192,204,239", + "value": "210,154,216", "points": 2, "category": "Color", - "item": "어/③ 면색 : 색상(RGB:192,204,239)" + "item": "어/③ 면색 : 색상(RGB:210,154,216)" }, "11": { "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", @@ -141,39 +141,39 @@ }, "12": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "대학 퇴출 및 통폐합의 방향과 과제를 주제", + "searchValue": "자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "문구 (대학 퇴출 및 통폐합의 방향과 과제를 주제)/① BOLD" + "item": "문구 (자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정)/① BOLD" }, "13": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "대학 퇴출 및 통폐합의 방향과 과제를 주제", + "searchValue": "자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정", "value": "UNDERLINE", "points": 1, "category": "FontAttribute", - "item": "문구 (대학 퇴출 및 통폐합의 방향과 과제를 주제)/② UNDERLINE" + "item": "문구 (자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정)/② UNDERLINE" }, "14": { "path": "//CHAR[contains(string(.),'{char1}')]/text()", "path2": "//CHAR[contains(string(.),'{char2}')]/text()", "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "★", - "char2": "★", + "char1": "▣", + "char2": "▣", "char3": "※", "value": 3, "points": 3, "category": "SpecialChar", - "item": "① ★, ② ★, ③ ※" + "item": "① ▣ , ② ▣ , ③ ※" }, "15": { "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", "searchValue": "행사안내", - "value": "궁서", + "value": "돋움", "points": 1, "category": "FontName", - "item": "문구 (★ 행사안내 ★)/① 글씨체 (궁서)" + "item": "문구 (▣ 행사안내 ▣)/① 글씨체 (돋움)" }, "16": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", @@ -181,86 +181,86 @@ "value": "Center", "points": 1, "category": "Align", - "item": "문구 (★ 행사안내 ★)/② 정렬 (가운데 정렬)" + "item": "문구 (▣ 행사안내 ▣)/② 정렬 (가운데 정렬)" }, "17": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)", + "searchValue": "부산시청 앞 광장, 부산시 쓰레기 매립장 등", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "문구 (2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/① BOLD" + "item": "문구 (부산시청 앞 광장, 부산시 쓰레기 매립장 등)/① BOLD" }, "18": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)", + "searchValue": "부산시청 앞 광장, 부산시 쓰레기 매립장 등", "value": "ITALIC", "points": 1, "category": "FontAttribute", - "item": "문구 (2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/② ITALIC" + "item": "문구 (부산시청 앞 광장, 부산시 쓰레기 매립장 등)/② ITALIC" }, "19": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", "searchValue": "기타사항", "value": { - "Left": 10, + "Left": 12, "Indent": 12 }, "points": 2, "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (12)", "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" }, "20": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 11. 22.", - "value": "1300", + "searchValue": "2026. 1. 21.", + "value": "1200", "points": 1, "category": "OneAnswer", - "item": "문구 (2025. 11. 22.)/① 크기 (1300)", + "item": "문구 (2026. 1. 21.)/① 크기 (1200)", "desc": "1pt당 100" }, "21": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 11. 22.", + "searchValue": "2026. 1. 21.", "value": "Center", "points": 1, "category": "OneAnswer", - "item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)" + "item": "문구 (2026. 1. 21.)/② 정렬 (가운데 정렬)" }, "22": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "한국대학교육협의회", - "value": "견고딕", + "searchValue": "한국환경보전단체", + "value": "궁서", "points": 1, "category": "FontName", - "item": "문구 (한국대학교육협의회)/① 글씨체 (견고딕)" + "item": "문구 (한국환경보전단체)/① 글씨체 (궁서)" }, "23": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "한국대학교육협의회", - "value": "2500", + "searchValue": "한국환경보전단체", + "value": "2400", "points": 1, "category": "OneAnswer", - "item": "문구 (한국대학교육협의회)/② 크기 (2500)" + "item": "문구 (한국환경보전단체)/② 크기 (2400)" }, "24": { "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "한국대학교육협의회", + "searchValue": "한국환경보전단체", "value": "Center", "points": 1, "category": "OneAnswer", - "item": "문구 (한국대학교육협의회)/③ 정렬 (가운데 정렬)" + "item": "문구 (한국환경보전단체)/③ 정렬 (가운데 정렬)" }, "25": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "DIAT", - "value": "굴림", + "value": "돋움", "points": 1, "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (굴림)" + "item": "문구 (DIAT)/① 글꼴 (돋움)" }, "26": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", @@ -280,10 +280,10 @@ }, "28": { "path": "//PAGENUM/@FormatType", - "value": "LatinCapital", + "value": "HangulSyllable", "points": 2, "category": "PageNumber", - "item": "① 쪽 번호 매기기 (A,B,C 순으로)", + "item": "① 쪽 번호 매기기 (가,나,다 순으로)", "desc1": { "가,나,다": "HangulSyllable", "1,2,3": "Digit", @@ -325,16 +325,16 @@ "value": true, "points": 2, "category": "hyperlink", - "item": "문구 (https://www.ihd.or.kr)/하이퍼링크 없이 작성", + "item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성", "desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답" }, "31": { "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "200", + "value": "190", "first_word": "한", "points": 2, "category": "LineSpacing", - "item": "문제 1 줄간격 200% 설정", + "item": "문제 1 줄간격 190% 설정", "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." } }, @@ -367,17 +367,17 @@ }, "4": { "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "65", + "value": "50", "points": 2, "category": "Rectangle.mmSize", - "item": "문구 (대학 구조조정)/① 크기-너비 (65 mm)" + "item": "문구 (재활용 방법)/① 크기-너비 (50 mm)" }, "5": { "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", "value": "12", "points": 2, "category": "Rectangle.mmSize", - "item": "문구 (대학 구조조정)/② 크기-높이 (12 mm)" + "item": "문구 (재활용 방법)/② 크기-높이 (12 mm)" }, "6": { "path": "//RECTANGLE//LINESHAPE", @@ -387,7 +387,7 @@ }, "points": 2, "category": "Rectangle.LineShape", - "item": "문구 (대학 구조조정)/③ 테두리 : 이중 실선(1.00mm)", + "item": "문구 (재활용 방법)/③ 테두리 : 이중 실선(1.00mm)", "desc": "1mm = 283pt value['Width']에 pt값 입력" }, "7": { @@ -395,7 +395,7 @@ "value": "20", "points": 2, "category": "Rectangle.OneAnswer", - "item": "문구 (대학 구조조정)/④ 글상자 모서리 (반원)", + "item": "문구 (재활용 방법)/④ 글상자 모서리 (둥근모양)", "desc": "모서리 비율 반원:50 / 둥근모양:20" }, "8": { @@ -403,35 +403,35 @@ "value": "227,220,193", "points": 2, "category": "Rectangle.Color", - "item": "문구 (대학 구조조정)/⑤ 채우기 : 색상(RGB:227,220,193)" + "item": "문구 (재활용 방법)/⑤ 채우기 : 색상(RGB:227,220,193)" }, "9": { "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", "value": "true", "points": 1, "category": "Rectangle.OneAnswer", - "item": "문구 (대학 구조조정)/⑥ 글상자 위치 (글자처럼 취급)" + "item": "문구 (재활용 방법)/⑥ 글상자 위치 (글자처럼 취급)" }, "10": { "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", "value": "Center", "points": 1, "category": "Rectangle.TextBoxAlign", - "item": "문구 (대학 구조조정)/⑦ 글상자 정렬 (가운데 정렬)" + "item": "문구 (재활용 방법)/⑦ 글상자 정렬 (가운데 정렬)" }, "11": { "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "궁서체", + "value": "굴림체", "points": 1, "category": "Rectangle.FontName", - "item": "문구 (대학 구조조정)/⑧ 글씨체 (궁서체)" + "item": "문구 (재활용 방법)/⑧ 글씨체 (굴림체)" }, "12": { "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "2000", + "value": "1800", "points": 1, "category": "Rectangle.FontSize", - "item": "문구 (대학 구조조정)/⑨ 글씨크기 (2000)", + "item": "문구 (재활용 방법)/⑨ 글씨크기 (1800)", "desc": "1pt당 100" }, "13": { @@ -439,7 +439,7 @@ "value": "Center", "points": 1, "category": "Rectangle.TextBoxAlign", - "item": "문구 (대학 구조조정)/⑩ 정렬 (가운데 정렬)" + "item": "문구 (재활용 방법)/⑩ 정렬 (가운데 정렬)" }, "14": { "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", @@ -458,10 +458,10 @@ }, "16": { "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", - "value": "35", + "value": "40", "points": 2, "category": "mmSize", - "item": "③ 크기-높이 (35 mm)" + "item": "③ 크기-높이 (40 mm)" }, "17": { "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", @@ -472,88 +472,88 @@ }, "18": { "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "24", + "value": "22", "points": 2, "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)" + "item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)" }, "19": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 학령인구 감소", - "value": "중고딕", + "searchValue": "1. 재활용이란?", + "value": "돋움체", "points": 1, "category": "FontName", - "item": "문구① (1. 학령인구 감소)/① 글씨체 (중고딕)" + "item": "문구① (1. 재활용이란?)/① 글씨체 (돋움체)" }, "20": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 학령인구 감소", + "searchValue": "1. 재활용이란?", "value": "1200", "points": 1, "category": "OneAnswer", - "item": "문구① (1. 학령인구 감소)/② 크기 (1200)" + "item": "문구① (1. 재활용이란?)/② 크기 (1200)" }, "21": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 학령인구 감소", + "searchValue": "1. 재활용이란?", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "문구① (1. 학령인구 감소)/③ 진하게" + "item": "문구① (1. 재활용이란?)/③ 진하게" }, "22": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 한계대학이란?", - "value": "중고딕", + "searchValue": "2. 식재료 재활용 방법", + "value": "돋움체", "points": 1, "category": "FontName", - "item": "문구② (2. 한계대학이란?)/① 글씨체 (중고딕)" + "item": "문구② (2. 식재료 재활용 방법)/① 글씨체 (돋움체)" }, "23": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 한계대학이란?", + "searchValue": "2. 식재료 재활용 방법", "value": "1200", "points": 1, "category": "OneAnswer", - "item": "문구② (2. 한계대학이란?)/② 크기 (1200)" + "item": "문구② (2. 식재료 재활용 방법)/② 크기 (1200)" }, "24": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 한계대학이란?", + "searchValue": "2. 식재료 재활용 방법", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "문구② (2. 한계대학이란?)/③ 진하게" + "item": "문구② (2. 식재료 재활용 방법)/③ 진하게" }, "25": { "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": "학령인구", + "option": "얼룩", "value": true, "points": 2, "category": "Boolean", - "item": "문구 (학령인구)/① 각주 설정 및 문구 입력" + "item": "문구 (얼룩)/① 각주 설정 및 문구 입력" }, "26": { "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세", - "value": "돋움", + "searchValue": "본바탕에 다른 빛깔의 점이나 줄 따위가 뚜렷하게 섞인 자국", + "value": "돋움체", "points": 1, "category": "FontName", - "item": "문구 (학령인구)/② 글씨체 (돋움)" + "item": "문구 (얼룩)/② 글씨체 (돋움체)" }, "27": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세", + "searchValue": "본바탕에 다른 빛깔의 점이나 줄 따위가 뚜렷하게 섞인 자국", "value": "900", "points": 1, "category": "OneAnswer", - "item": "문구 (학령인구)/③ 크기 (9pt)" + "item": "문구 (얼룩)/③ 크기 (9pt)" }, "28": { "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세", - "value": "CircledHangulJamo", + "searchValue": "본바탕에 다른 빛깔의 점이나 줄 따위가 뚜렷하게 섞인 자국", + "value": "LatinSmall", "points": 2, "category": "OneAnswer", "item": "문구 (전당)/④ 각주 번호모양", @@ -579,81 +579,81 @@ } }, "29": { - "path": "boolean(//CHAR[contains(text(),'Management')])", - "ignoreWord": "Management", + "path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])", + "ignoreWord": "Refrigerator", "value": true, "points": 3, "category": "Boolean", - "item": "Management/영단어 미입력, 대소문자/오타 시 전체 감점", + "item": "Refrigerator/영단어 미입력, 대소문자/오타 시 전체 감점", "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" }, "30": { "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", "word": [ - ["환경", "環境"], - ["분석", "分析"], - ["재무구조", "財務構造"], - ["경영", "經營"], - ["상태", "狀態"] + ["적자", "赤字"], + ["가치", "價値"], + ["제거", "除去"], + ["청소", "淸掃"], + ["광택", "光澤"] ], "value": 10, "points": 10, "category": "Hanja", - "item": "① 환경(環境), ② 분석(分析), ③ 재무구조(財務構造), ④ 경영(經營), ⑤ 상태(狀態)" + "item": "① 적자(赤字), ② 가치(價値), ③ 제거(除去), ④ 청소(淸掃), ⑤ 광택(光澤)" }, "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'덕적해이')])", + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'용은주로')])", "value": true, "points": 3, "category": "Boolean", - "item": "문구 (…비위나 해이가 도덕적 대학…)>'해이가 / 도덕적' 순서바꿈" + "item": "문구 (…재활용이 주로 정치적…)>'이'→'은' 글자바꿈" }, "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'증가추이')])", + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'량만재활')])", "value": true, "points": 3, "category": "Boolean", - "item": "문구 (…향후 증강 추이는 가속화될 전망이다…)>'강 → 가' 글자바꿈" + "item": "문구 (상징적으로 재활용 소량만 하는 경우도)>'재활용 / 소량만' 순서바꿈" }, "33": { "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "학령인구 변동 추계(단위:천명)", - "value": "맑은고딕", + "searchValue": "재활용 주민 참여율(%)", + "value": "궁서", "points": 1, "category": "FontName", - "item": "제목 문구 (학령인구 변동 추계(단위:천명))/① 글씨체 (맑은고딕)" + "item": "제목 문구 (재활용 주민 참여율(%))/① 글씨체 (궁서)" }, "34": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "학령인구 변동 추계(단위:천명)", + "searchValue": "재활용 주민 참여율(%)", "value": "1200", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (학령인구 변동 추계(단위:천명))/② 크기 (1200)" + "item": "제목 문구 (재활용 주민 참여율(%))/② 크기 (1200)" }, "35": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "학령인구 변동 추계(단위:천명)", + "searchValue": "재활용 주민 참여율(%)", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "제목 문구 (학령인구 변동 추계(단위:천명))/③ 진하게" + "item": "제목 문구 (재활용 주민 참여율(%))/③ 진하게" }, "36": { "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "학령인구 변동 추계(단위:천명)", + "searchValue": "재활용 주민 참여율(%)", "value": "Center", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)" + "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "158,219,98", + "value": "33,174,201", "points": 2, "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:158,219,98)" + "item": "위쪽 제목 셀/① 색상(RGB:33,174,201)" }, "38": { "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", @@ -682,11 +682,11 @@ "41": { "path": "//TABLE//TEXT/@CharShape", "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "돋움체", + "value": "굴림", "points": 1, "category": "TableFontName", "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (돋움체)", + "item": "글자모양/① 글씨체 (굴림)", "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" }, "42": { @@ -714,11 +714,11 @@ }, "45": { "chart_xpath": "", - "chart_type": "꺾은선형", + "chart_type": "표식만 있는 분산형", "value": true, "points": 2, "category": "ChartType", - "item": "① 종류 (꺾은선형)", + "item": "① 종류 (표식만 있는 분산형)", "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" }, "46": { @@ -738,10 +738,10 @@ }, "48": { "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "90", + "value": "80", "points": 2, "category": "mmSize", - "item": "④ 크기-높이 (90 mm)" + "item": "④ 크기-높이 (80 mm)" }, "49": { "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", @@ -753,36 +753,36 @@ }, "50": { "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "학령인구 변동 추계", - "value": "굴림체", + "searchValue": "도시별 재활용 참여율", + "value": "돋움", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (학령인구 변동 추계)/① 글씨체 (굴림체)" + "item": "제목 문구 (도시별 재활용 참여율)/① 글씨체 (돋움)" }, "51": { "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "학령인구 변동 추계", + "searchValue": "도시별 재활용 참여율", "value": "1300", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (학령인구 변동 추계)/② 크기 (1300)" + "item": "제목 문구 (도시별 재활용 참여율)/② 크기 (1300)" }, "52": { "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", "option": "b", - "searchValue": "학령인구 변동 추계", + "searchValue": "도시별 재활용 참여율", "value": "1", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (학령인구 변동 추계)/③ 기울임", + "item": "제목 문구 (도시별 재활용 참여율)/③ 기울임", "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "53": { "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", - "value": "궁서", + "value": "바탕", "points": 1, "category": "ChartOneAnswer", - "item": "X축/① 글꼴 (궁서)" + "item": "X축/① 글꼴 (바탕)" }, "54": { "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", @@ -802,10 +802,10 @@ }, "56": { "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", - "value": "궁서", + "value": "바탕", "points": 1, "category": "ChartOneAnswer", - "item": "Y축/① 글꼴 (궁서)" + "item": "Y축/① 글꼴 (바탕)" }, "57": { "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", @@ -825,10 +825,10 @@ }, "59": { "chart_xpath": "//c:legend//a:ea/@typeface", - "value": "궁서", + "value": "바탕", "points": 1, "category": "OneAnswer", - "item": "범례/① 글꼴 (궁서)" + "item": "범례/① 글꼴 (바탕)" }, "60": { "chart_xpath": "//c:legend//a:defRPr/@sz", diff --git a/diwScoring2.py b/diwScoring2.py index bdfe004..4600a78 100644 --- a/diwScoring2.py +++ b/diwScoring2.py @@ -236,6 +236,7 @@ class XMLScorer: category = criterion.get('category', None) item = criterion.get('item', None) option = criterion.get('option', None) + ignore_word = criterion.get('ignoreWord', None) similar_text = None # search_value가 있는 경우 @@ -252,6 +253,9 @@ 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 "" + + if ignore_word: + xpath = xpath.replace('{ignoreWord}', ignore_word) if xpath else "" # 문항 별 채점 결과 저장 @@ -1470,7 +1474,7 @@ class XMLScorer: def main(): # 시험회차 및 유형 - exam_round = '2512' + exam_round = '2601_2' # exam_round = '2522' # 채점하고자 하는 유형은 주석 해제 @@ -1481,8 +1485,8 @@ def main(): # 'D', ] - test_mode = False - # test_mode = True #/TEST 폴더 채점시 + # test_mode = False + test_mode = True #/TEST 폴더 채점시 output_excel_paths = [] for exam_type in exam_types: diff --git a/hwp_conversion.log b/hwp_conversion.log index 4d1ace4..8ec4e99 100644 --- a/hwp_conversion.log +++ b/hwp_conversion.log @@ -27520,3 +27520,253 @@ 2025-12-24 18:08:45,798 - INFO - 변환 성공: 워드(한글)-008568-김세훈.hwpx -> 워드(한글)-008568-김세훈.hml 2025-12-24 18:08:46,521 - INFO - 변환 성공: 워드(한글)-008599-김가온.hwpx -> 워드(한글)-008599-김가온.hml 2025-12-24 18:08:46,920 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2512\B\DIW -> D:\project\HWP\HWP-Scoring\output\2512\B\DIW +2026-01-22 15:13:36,411 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\A\DIW +2026-01-22 15:13:45,750 - INFO - 변환 성공: DIW_2601_2A.hwp -> DIW_2601_2A.hml +2026-01-22 15:13:46,004 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\A\DIW +2026-01-22 15:13:46,505 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\B\DIW +2026-01-22 15:13:47,943 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\B\DIW +2026-01-22 15:13:48,444 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\C\DIW +2026-01-22 15:13:49,729 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\C\DIW +2026-01-22 15:13:50,230 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\D\DIW +2026-01-22 15:13:51,476 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\D\DIW +2026-01-22 15:13:51,977 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\E\DIW +2026-01-22 15:13:53,228 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\E\DIW +2026-01-22 16:46:21,832 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\A\DIW +2026-01-22 16:46:25,422 - INFO - 변환 성공: DIW_2601_2A.hwp -> DIW_2601_2A.hml +2026-01-22 16:46:25,857 - INFO - 변환 성공: DIW_2601_2A_1.hwp -> DIW_2601_2A_1.hml +2026-01-22 16:46:25,970 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\A\DIW +2026-01-22 16:46:26,471 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\B\DIW +2026-01-22 16:46:28,015 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\B\DIW +2026-01-22 16:46:28,516 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\C\DIW +2026-01-22 16:46:30,123 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\C\DIW +2026-01-22 16:46:30,624 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\D\DIW +2026-01-22 16:46:32,054 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\D\DIW +2026-01-22 16:46:32,555 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\E\DIW +2026-01-22 16:46:34,080 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\E\DIW +2026-01-22 16:54:14,003 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\A\DIW +2026-01-22 16:54:17,272 - INFO - 변환 성공: DIW_2601_2A.hwp -> DIW_2601_2A.hml +2026-01-22 16:54:17,634 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\A\DIW +2026-01-22 16:54:18,135 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\B\DIW +2026-01-22 16:54:19,530 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\B\DIW +2026-01-22 16:54:20,036 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\C\DIW +2026-01-22 16:54:21,302 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\C\DIW +2026-01-22 16:54:21,803 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\D\DIW +2026-01-22 16:54:23,113 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\D\DIW +2026-01-22 16:54:23,614 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\E\DIW +2026-01-22 16:54:24,923 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\E\DIW +2026-01-22 17:02:35,200 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\A\DIW +2026-01-22 17:02:38,311 - INFO - 변환 성공: DIW-006874-이현우.hwp -> DIW-006874-이현우.hml +2026-01-22 17:02:38,964 - INFO - 변환 성공: DIW-006875-한지아.hwp -> DIW-006875-한지아.hml +2026-01-22 17:02:39,523 - INFO - 변환 성공: DIW-006876-정지우.hwp -> DIW-006876-정지우.hml +2026-01-22 17:02:40,449 - INFO - 변환 성공: DIW-006877-문윤슬.hwp -> DIW-006877-문윤슬.hml +2026-01-22 17:02:41,198 - INFO - 변환 성공: DIW-006878-고원진.hwp -> DIW-006878-고원진.hml +2026-01-22 17:02:41,845 - INFO - 변환 성공: DIW-006879-강내인.hwp -> DIW-006879-강내인.hml +2026-01-22 17:02:42,530 - INFO - 변환 성공: DIW-006880-현민솔.hwp -> DIW-006880-현민솔.hml +2026-01-22 17:02:43,117 - INFO - 변환 성공: DIW-006881-오태율.hwp -> DIW-006881-오태율.hml +2026-01-22 17:02:43,632 - INFO - 변환 성공: DIW-006899-김지환.hwp -> DIW-006899-김지환.hml +2026-01-22 17:02:43,978 - INFO - 변환 성공: DIW-006900-강민재.hwp -> DIW-006900-강민재.hml +2026-01-22 17:02:44,354 - INFO - 변환 성공: DIW-006901-권원.hwp -> DIW-006901-권원.hml +2026-01-22 17:02:44,755 - INFO - 변환 성공: DIW-006902-김수현.hwp -> DIW-006902-김수현.hml +2026-01-22 17:02:45,107 - INFO - 변환 성공: DIW-006903-강다온.hwp -> DIW-006903-강다온.hml +2026-01-22 17:02:45,524 - INFO - 변환 성공: DIW-006904-허도준.hwp -> DIW-006904-허도준.hml +2026-01-22 17:02:45,934 - INFO - 변환 성공: DIW-006905-이현석.hwp -> DIW-006905-이현석.hml +2026-01-22 17:02:46,445 - INFO - 변환 성공: DIW-006906-정유은.hwp -> DIW-006906-정유은.hml +2026-01-22 17:02:47,037 - INFO - 변환 성공: DIW-006907-남아연.hwp -> DIW-006907-남아연.hml +2026-01-22 17:02:47,521 - INFO - 변환 성공: DIW-006957-김형우.hwp -> DIW-006957-김형우.hml +2026-01-22 17:02:47,974 - INFO - 변환 성공: DIW-006986-이나라.hwp -> DIW-006986-이나라.hml +2026-01-22 17:02:48,561 - INFO - 변환 성공: DIW-006987-고지혜.hwp -> DIW-006987-고지혜.hml +2026-01-22 17:02:49,232 - INFO - 변환 성공: DIW-006988-현승연.hwp -> DIW-006988-현승연.hml +2026-01-22 17:02:49,846 - INFO - 변환 성공: DIW-006989-고서윤.hwp -> DIW-006989-고서윤.hml +2026-01-22 17:02:50,427 - INFO - 변환 성공: DIW-006990-강예원.hwp -> DIW-006990-강예원.hml +2026-01-22 17:02:51,026 - INFO - 변환 성공: DIW-006991-이다연.hwp -> DIW-006991-이다연.hml +2026-01-22 17:02:51,585 - INFO - 변환 성공: DIW-006992-문준하.hwp -> DIW-006992-문준하.hml +2026-01-22 17:02:52,190 - INFO - 변환 성공: DIW-006993-오수연.hwp -> DIW-006993-오수연.hml +2026-01-22 17:02:52,774 - INFO - 변환 성공: DIW-006994-정은우.hwp -> DIW-006994-정은우.hml +2026-01-22 17:02:53,355 - INFO - 변환 성공: DIW-006996-조주연.hwp -> DIW-006996-조주연.hml +2026-01-22 17:02:54,210 - INFO - 변환 성공: DIW-006997-김정빈.hwp -> DIW-006997-김정빈.hml +2026-01-22 17:02:54,920 - INFO - 변환 성공: DIW-006998-김도윤.hwp -> DIW-006998-김도윤.hml +2026-01-22 17:02:55,377 - INFO - 변환 성공: DIW-006999-조준모.hwp -> DIW-006999-조준모.hml +2026-01-22 17:02:55,840 - INFO - 변환 성공: DIW-007000-이서아.hwp -> DIW-007000-이서아.hml +2026-01-22 17:02:56,433 - INFO - 변환 성공: DIW-007001-최시은.hwp -> DIW-007001-최시은.hml +2026-01-22 17:02:57,005 - INFO - 변환 성공: DIW-007002-이서율.hwp -> DIW-007002-이서율.hml +2026-01-22 17:02:57,561 - INFO - 변환 성공: DIW-007004-정슬아.hwp -> DIW-007004-정슬아.hml +2026-01-22 17:02:58,106 - INFO - 변환 성공: DIW-007005-조수아.hwp -> DIW-007005-조수아.hml +2026-01-22 17:02:58,688 - INFO - 변환 성공: DIW-007006-이유수.hwp -> DIW-007006-이유수.hml +2026-01-22 17:02:59,250 - INFO - 변환 성공: DIW-007007-손주한.hwp -> DIW-007007-손주한.hml +2026-01-22 17:02:59,847 - INFO - 변환 성공: DIW-007008-고연재.hwp -> DIW-007008-고연재.hml +2026-01-22 17:03:00,448 - INFO - 변환 성공: DIW-007009-강인우.hwp -> DIW-007009-강인우.hml +2026-01-22 17:03:01,120 - INFO - 변환 성공: DIW-007010-정유주.hwp -> DIW-007010-정유주.hml +2026-01-22 17:03:01,834 - INFO - 변환 성공: DIW-007011-고주원.hwp -> DIW-007011-고주원.hml +2026-01-22 17:03:02,451 - INFO - 변환 성공: DIW-007012-김한율.hwp -> DIW-007012-김한율.hml +2026-01-22 17:03:03,153 - INFO - 변환 성공: DIW-007013-현재민.hwp -> DIW-007013-현재민.hml +2026-01-22 17:03:03,784 - INFO - 변환 성공: DIW-007014-김주원.hwp -> DIW-007014-김주원.hml +2026-01-22 17:03:04,183 - INFO - 변환 성공: DIW-007033-김소율.hwp -> DIW-007033-김소율.hml +2026-01-22 17:03:04,424 - INFO - 변환 성공: DIW-007034-김수현.hwp -> DIW-007034-김수현.hml +2026-01-22 17:03:04,880 - INFO - 변환 성공: DIW-007039-김승현.hwp -> DIW-007039-김승현.hml +2026-01-22 17:03:05,487 - INFO - 변환 성공: DIW-007040-이현희.hwp -> DIW-007040-이현희.hml +2026-01-22 17:03:06,005 - INFO - 변환 성공: DIW-007041-임민서.hwp -> DIW-007041-임민서.hml +2026-01-22 17:03:06,301 - INFO - 변환 성공: DIW-007042-황지승.hwp -> DIW-007042-황지승.hml +2026-01-22 17:03:06,871 - INFO - 변환 성공: DIW-007043-고다영.hwp -> DIW-007043-고다영.hml +2026-01-22 17:03:07,441 - INFO - 변환 성공: DIW-007044-고성은.hwp -> DIW-007044-고성은.hml +2026-01-22 17:03:08,038 - INFO - 변환 성공: DIW-007045-김정아.hwp -> DIW-007045-김정아.hml +2026-01-22 17:03:08,644 - INFO - 변환 성공: DIW-007046-오지현.hwp -> DIW-007046-오지현.hml +2026-01-22 17:03:09,303 - INFO - 변환 성공: DIW-007047-유서연.hwp -> DIW-007047-유서연.hml +2026-01-22 17:03:09,907 - INFO - 변환 성공: DIW-007048-현서은.hwp -> DIW-007048-현서은.hml +2026-01-22 17:03:10,823 - INFO - 변환 성공: DIW-007049-강재형.hwp -> DIW-007049-강재형.hml +2026-01-22 17:03:11,429 - INFO - 변환 성공: DIW-007050-김시호.hwp -> DIW-007050-김시호.hml +2026-01-22 17:03:12,157 - INFO - 변환 성공: DIW-007051-현지윤.hwp -> DIW-007051-현지윤.hml +2026-01-22 17:03:12,805 - INFO - 변환 성공: DIW-007052-양서현.hwp -> DIW-007052-양서현.hml +2026-01-22 17:03:13,284 - INFO - 변환 성공: DIW-007061-신유민.hwp -> DIW-007061-신유민.hml +2026-01-22 17:03:13,762 - INFO - 변환 성공: DIW-007062-김가은.hwp -> DIW-007062-김가은.hml +2026-01-22 17:03:14,337 - INFO - 변환 성공: DIW-007063-노수완.hwp -> DIW-007063-노수완.hml +2026-01-22 17:03:14,961 - INFO - 변환 성공: DIW-007064-양승현.hwp -> DIW-007064-양승현.hml +2026-01-22 17:03:15,433 - INFO - 변환 성공: DIW-007065-고유성.hwp -> DIW-007065-고유성.hml +2026-01-22 17:03:15,944 - INFO - 변환 성공: DIW-007066-전유담.hwp -> DIW-007066-전유담.hml +2026-01-22 17:03:16,542 - INFO - 변환 성공: DIW-007067-고성빈.hwp -> DIW-007067-고성빈.hml +2026-01-22 17:03:17,135 - INFO - 변환 성공: DIW-007068-고희원.hwp -> DIW-007068-고희원.hml +2026-01-22 17:03:17,765 - INFO - 변환 성공: DIW-007069-김기쁨.hwp -> DIW-007069-김기쁨.hml +2026-01-22 17:03:18,424 - INFO - 변환 성공: DIW-007070-한결이.hwp -> DIW-007070-한결이.hml +2026-01-22 17:03:19,047 - INFO - 변환 성공: DIW-007071-김연우.hwp -> DIW-007071-김연우.hml +2026-01-22 17:03:19,645 - INFO - 변환 성공: DIW-007072-김서연.hwp -> DIW-007072-김서연.hml +2026-01-22 17:03:20,223 - INFO - 변환 성공: DIW-007073-허유진.hwp -> DIW-007073-허유진.hml +2026-01-22 17:03:20,811 - INFO - 변환 성공: DIW-007074-양도겸.hwp -> DIW-007074-양도겸.hml +2026-01-22 17:03:21,512 - INFO - 변환 성공: DIW-007075-김성한.hwp -> DIW-007075-김성한.hml +2026-01-22 17:03:22,005 - INFO - 변환 성공: DIW-007076-백경민.hwp -> DIW-007076-백경민.hml +2026-01-22 17:03:22,455 - INFO - 변환 성공: DIW-007077-양소율.hwp -> DIW-007077-양소율.hml +2026-01-22 17:03:22,912 - INFO - 변환 성공: DIW-007078-강동윤.hwp -> DIW-007078-강동윤.hml +2026-01-22 17:03:23,565 - INFO - 변환 성공: DIW-007079-이예준.hwp -> DIW-007079-이예준.hml +2026-01-22 17:03:24,545 - INFO - 변환 성공: DIW-007080-임지호.hwp -> DIW-007080-임지호.hml +2026-01-22 17:03:25,149 - INFO - 변환 성공: DIW-007081-오서영.hwp -> DIW-007081-오서영.hml +2026-01-22 17:03:25,637 - INFO - 변환 성공: DIW-007087-강혜원.hwp -> DIW-007087-강혜원.hml +2026-01-22 17:03:26,057 - INFO - 변환 성공: DIW-007088-임서아.hwp -> DIW-007088-임서아.hml +2026-01-22 17:03:26,636 - INFO - 변환 성공: DIW-007089-김준우.hwp -> DIW-007089-김준우.hml +2026-01-22 17:03:27,190 - INFO - 변환 성공: DIW-007090-문수한.hwp -> DIW-007090-문수한.hml +2026-01-22 17:03:27,793 - INFO - 변환 성공: DIW-007091-김나래.hwp -> DIW-007091-김나래.hml +2026-01-22 17:03:28,280 - INFO - 변환 성공: DIW-007092-유다율.hwp -> DIW-007092-유다율.hml +2026-01-22 17:03:28,762 - INFO - 변환 성공: DIW-007093-이수호.hwp -> DIW-007093-이수호.hml +2026-01-22 17:03:29,396 - INFO - 변환 성공: DIW-007094-강서현.hwp -> DIW-007094-강서현.hml +2026-01-22 17:03:29,890 - INFO - 변환 성공: DIW-007095-현민주.hwp -> DIW-007095-현민주.hml +2026-01-22 17:03:30,364 - INFO - 변환 성공: DIW-007096-신지유.hwp -> DIW-007096-신지유.hml +2026-01-22 17:03:30,885 - INFO - 변환 성공: DIW-007097-이지유.hwp -> DIW-007097-이지유.hml +2026-01-22 17:03:31,251 - INFO - 변환 성공: DIW-007098-변예범.hwp -> DIW-007098-변예범.hml +2026-01-22 17:03:31,626 - INFO - 변환 성공: DIW-007099-김민건.hwp -> DIW-007099-김민건.hml +2026-01-22 17:03:31,965 - INFO - 변환 성공: DIW-007100-현지호.hwp -> DIW-007100-현지호.hml +2026-01-22 17:03:32,349 - INFO - 변환 성공: DIW-007101-강건우.hwp -> DIW-007101-강건우.hml +2026-01-22 17:03:32,699 - INFO - 변환 성공: DIW-007102-고유빈.hwp -> DIW-007102-고유빈.hml +2026-01-22 17:03:33,174 - INFO - 변환 성공: DIW-007103-오수빈.hwp -> DIW-007103-오수빈.hml +2026-01-22 17:03:33,820 - INFO - 변환 성공: DIW-007110-윤희상.hwp -> DIW-007110-윤희상.hml +2026-01-22 17:03:34,549 - INFO - 변환 성공: DIW-007111-고은채.hwp -> DIW-007111-고은채.hml +2026-01-22 17:03:35,248 - INFO - 변환 성공: DIW-007112-김연우.hwp -> DIW-007112-김연우.hml +2026-01-22 17:03:35,785 - INFO - 변환 성공: DIW-007113-오채은.hwp -> DIW-007113-오채은.hml +2026-01-22 17:03:36,374 - INFO - 변환 성공: DIW-007114-박지혁.hwp -> DIW-007114-박지혁.hml +2026-01-22 17:03:36,934 - INFO - 변환 성공: DIW-007116-이다인.hwp -> DIW-007116-이다인.hml +2026-01-22 17:03:37,506 - INFO - 변환 성공: DIW-007156-백서진.hwp -> DIW-007156-백서진.hml +2026-01-22 17:03:38,078 - INFO - 변환 성공: DIW-007157-강하민.hwp -> DIW-007157-강하민.hml +2026-01-22 17:03:38,814 - INFO - 변환 성공: DIW-007214-고다은.hwp -> DIW-007214-고다은.hml +2026-01-22 17:03:39,361 - INFO - 변환 성공: DIW-007216-이건희.hwp -> DIW-007216-이건희.hml +2026-01-22 17:03:39,943 - INFO - 변환 성공: DIW-007217-신민아.hwp -> DIW-007217-신민아.hml +2026-01-22 17:03:40,744 - INFO - 변환 성공: DIW-007218-고우리.hwp -> DIW-007218-고우리.hml +2026-01-22 17:03:41,220 - INFO - 변환 성공: DIW-007219-강지환.hwp -> DIW-007219-강지환.hml +2026-01-22 17:03:41,664 - INFO - 변환 성공: DIW-007220-최수아.hwp -> DIW-007220-최수아.hml +2026-01-22 17:03:42,230 - INFO - 변환 성공: DIW-007221-양지은.hwp -> DIW-007221-양지은.hml +2026-01-22 17:03:42,741 - INFO - 변환 성공: DIW-007222-최아루.hwp -> DIW-007222-최아루.hml +2026-01-22 17:03:43,290 - INFO - 변환 성공: DIW-007223-윤효정.hwp -> DIW-007223-윤효정.hml +2026-01-22 17:03:44,073 - INFO - 변환 성공: DIW-007224-권지아.hwp -> DIW-007224-권지아.hml +2026-01-22 17:03:44,784 - INFO - 변환 성공: DIW-007232-김수아.hwp -> DIW-007232-김수아.hml +2026-01-22 17:03:45,454 - INFO - 변환 성공: DIW-007233-조예빈.hwp -> DIW-007233-조예빈.hml +2026-01-22 17:03:46,105 - INFO - 변환 성공: DIW-007234-김예진.hwp -> DIW-007234-김예진.hml +2026-01-22 17:03:46,612 - INFO - 변환 성공: DIW-007235-고나현.hwp -> DIW-007235-고나현.hml +2026-01-22 17:03:47,118 - INFO - 변환 성공: DIW-007236-고소진.hwp -> DIW-007236-고소진.hml +2026-01-22 17:03:47,831 - INFO - 변환 성공: DIW-007237-김용효.hwp -> DIW-007237-김용효.hml +2026-01-22 17:03:48,461 - INFO - 변환 성공: DIW-007238-강지환.hwp -> DIW-007238-강지환.hml +2026-01-22 17:03:48,990 - INFO - 변환 성공: DIW-007239-조민성.hwp -> DIW-007239-조민성.hml +2026-01-22 17:03:49,502 - INFO - 변환 성공: DIW-007240-허예온.hwp -> DIW-007240-허예온.hml +2026-01-22 17:03:50,427 - INFO - 변환 성공: DIW-007241-정예찬.hwp -> DIW-007241-정예찬.hml +2026-01-22 17:03:51,050 - INFO - 변환 성공: DIW-007242-양하율.hwp -> DIW-007242-양하율.hml +2026-01-22 17:03:51,586 - INFO - 변환 성공: DIW-007243-고유림.hwp -> DIW-007243-고유림.hml +2026-01-22 17:03:52,176 - INFO - 변환 성공: DIW-007244-김도영.hwp -> DIW-007244-김도영.hml +2026-01-22 17:03:52,935 - INFO - 변환 성공: DIW-007245-송승연.hwp -> DIW-007245-송승연.hml +2026-01-22 17:03:53,906 - INFO - 변환 성공: DIW-007246-강수연.hwp -> DIW-007246-강수연.hml +2026-01-22 17:03:54,521 - INFO - 변환 성공: DIW-007247-윤서준.hwp -> DIW-007247-윤서준.hml +2026-01-22 17:03:55,118 - INFO - 변환 성공: DIW-007248-박하빈.hwp -> DIW-007248-박하빈.hml +2026-01-22 17:03:55,820 - INFO - 변환 성공: DIW-007249-오연우.hwp -> DIW-007249-오연우.hml +2026-01-22 17:03:56,616 - INFO - 변환 성공: DIW-007250-김가온.hwp -> DIW-007250-김가온.hml +2026-01-22 17:03:57,237 - INFO - 변환 성공: DIW-007251-박유주.hwp -> DIW-007251-박유주.hml +2026-01-22 17:03:57,960 - INFO - 변환 성공: DIW-007252-고하성.hwp -> DIW-007252-고하성.hml +2026-01-22 17:03:58,960 - INFO - 변환 성공: DIW-007253-이재왕.hwp -> DIW-007253-이재왕.hml +2026-01-22 17:03:59,777 - INFO - 변환 성공: DIW-007254-고다은.hwp -> DIW-007254-고다은.hml +2026-01-22 17:04:00,473 - INFO - 변환 성공: DIW-007260-양수정.hwp -> DIW-007260-양수정.hml +2026-01-22 17:04:01,135 - INFO - 변환 성공: DIW-007261-추승비.hwp -> DIW-007261-추승비.hml +2026-01-22 17:04:01,751 - INFO - 변환 성공: DIW-007262-김혜미.hwp -> DIW-007262-김혜미.hml +2026-01-22 17:04:02,497 - INFO - 변환 성공: DIW-007272-강나은.hwp -> DIW-007272-강나은.hml +2026-01-22 17:04:03,170 - INFO - 변환 성공: DIW-007273-김정완.hwp -> DIW-007273-김정완.hml +2026-01-22 17:04:03,879 - INFO - 변환 성공: DIW-007274-김아영.hwp -> DIW-007274-김아영.hml +2026-01-22 17:04:04,555 - INFO - 변환 성공: DIW-007275-김민재.hwp -> DIW-007275-김민재.hml +2026-01-22 17:04:05,243 - INFO - 변환 성공: DIW-007276-방민준.hwp -> DIW-007276-방민준.hml +2026-01-22 17:04:05,884 - INFO - 변환 성공: DIW-007281-이가율.hwp -> DIW-007281-이가율.hml +2026-01-22 17:04:06,425 - INFO - 변환 성공: DIW-007282-강대성.hwp -> DIW-007282-강대성.hml +2026-01-22 17:04:06,988 - INFO - 변환 성공: DIW-007296-김지환.hwp -> DIW-007296-김지환.hml +2026-01-22 17:04:07,748 - INFO - 변환 성공: DIW-007297-송채린.hwp -> DIW-007297-송채린.hml +2026-01-22 17:04:08,401 - INFO - 변환 성공: DIW-007298-곽이준.hwp -> DIW-007298-곽이준.hml +2026-01-22 17:04:09,085 - INFO - 변환 성공: DIW-007299-고창현.hwp -> DIW-007299-고창현.hml +2026-01-22 17:04:09,795 - INFO - 변환 성공: DIW-007315-박해밀.hwp -> DIW-007315-박해밀.hml +2026-01-22 17:04:10,484 - INFO - 변환 성공: DIW-007316-김범서.hwp -> DIW-007316-김범서.hml +2026-01-22 17:04:11,162 - INFO - 변환 성공: DIW-007317-김재진.hwp -> DIW-007317-김재진.hml +2026-01-22 17:04:11,785 - INFO - 변환 성공: DIW-007318-김선준.hwp -> DIW-007318-김선준.hml +2026-01-22 17:04:12,472 - INFO - 변환 성공: DIW-007319-김무성.hwp -> DIW-007319-김무성.hml +2026-01-22 17:04:13,181 - INFO - 변환 성공: DIW-007320-백서준.hwp -> DIW-007320-백서준.hml +2026-01-22 17:04:13,989 - INFO - 변환 성공: DIW-007321-고유준.hwp -> DIW-007321-고유준.hml +2026-01-22 17:04:14,578 - INFO - 변환 성공: DIW-007322-윤현호.hwp -> DIW-007322-윤현호.hml +2026-01-22 17:04:15,185 - INFO - 변환 성공: DIW-007329-김미소.hwp -> DIW-007329-김미소.hml +2026-01-22 17:04:15,775 - INFO - 변환 성공: DIW-007330-김범주.hwp -> DIW-007330-김범주.hml +2026-01-22 17:04:16,365 - INFO - 변환 성공: DIW-007331-김비오.hwp -> DIW-007331-김비오.hml +2026-01-22 17:04:17,095 - INFO - 변환 성공: DIW-007332-김은빈.hwp -> DIW-007332-김은빈.hml +2026-01-22 17:04:17,624 - INFO - 변환 성공: DIW-007333-양태준.hwp -> DIW-007333-양태준.hml +2026-01-22 17:04:18,111 - INFO - 변환 성공: DIW-007334-임준호.hwp -> DIW-007334-임준호.hml +2026-01-22 17:04:18,919 - INFO - 변환 성공: DIW-007335-임태빈.hwp -> DIW-007335-임태빈.hml +2026-01-22 17:04:19,663 - INFO - 변환 성공: DIW-007336-현지영.hwp -> DIW-007336-현지영.hml +2026-01-22 17:04:20,286 - INFO - 변환 성공: DIW-007338-홍진희.hwp -> DIW-007338-홍진희.hml +2026-01-22 17:04:20,774 - INFO - 변환 성공: DIW-007350-송서율.hwp -> DIW-007350-송서율.hml +2026-01-22 17:04:21,229 - INFO - 변환 성공: DIW-007351-문희성.hwp -> DIW-007351-문희성.hml +2026-01-22 17:04:21,827 - INFO - 변환 성공: DIW-007352-고주현.hwp -> DIW-007352-고주현.hml +2026-01-22 17:04:22,444 - INFO - 변환 성공: DIW-007353-김정수.hwp -> DIW-007353-김정수.hml +2026-01-22 17:04:23,206 - INFO - 변환 성공: DIW-007354-김다온.hwp -> DIW-007354-김다온.hml +2026-01-22 17:04:23,948 - INFO - 변환 성공: DIW-007355-김우진.hwp -> DIW-007355-김우진.hml +2026-01-22 17:04:24,502 - INFO - 변환 성공: DIW-007357-이혜민.hwp -> DIW-007357-이혜민.hml +2026-01-22 17:04:25,079 - INFO - 변환 성공: DIW-007358-한정민.hwp -> DIW-007358-한정민.hml +2026-01-22 17:04:25,674 - INFO - 변환 성공: DIW-007359-김서호.hwp -> DIW-007359-김서호.hml +2026-01-22 17:04:26,301 - INFO - 변환 성공: DIW-007360-김윤서.hwp -> DIW-007360-김윤서.hml +2026-01-22 17:04:27,014 - INFO - 변환 성공: DIW-007361-고은찬.hwp -> DIW-007361-고은찬.hml +2026-01-22 17:04:27,669 - INFO - 변환 성공: DIW-007362-석다빈.hwp -> DIW-007362-석다빈.hml +2026-01-22 17:04:28,277 - INFO - 변환 성공: DIW-007364-김수.hwp -> DIW-007364-김수.hml +2026-01-22 17:04:28,925 - INFO - 변환 성공: DIW-007365-류지호.hwp -> DIW-007365-류지호.hml +2026-01-22 17:04:29,564 - INFO - 변환 성공: DIW-007366-박하람.hwp -> DIW-007366-박하람.hml +2026-01-22 17:04:30,137 - INFO - 변환 성공: DIW-007367-이승윤.hwp -> DIW-007367-이승윤.hml +2026-01-22 17:04:30,725 - INFO - 변환 성공: DIW-007368-허은서.hwp -> DIW-007368-허은서.hml +2026-01-22 17:04:31,339 - INFO - 변환 성공: DIW-007369-고유라.hwp -> DIW-007369-고유라.hml +2026-01-22 17:04:31,923 - INFO - 변환 성공: DIW-007370-조민준.hwp -> DIW-007370-조민준.hml +2026-01-22 17:04:32,510 - INFO - 변환 성공: DIW-007371-현윤지.hwp -> DIW-007371-현윤지.hml +2026-01-22 17:04:33,084 - INFO - 변환 성공: DIW-007372-송지우.hwp -> DIW-007372-송지우.hml +2026-01-22 17:04:33,691 - INFO - 변환 성공: DIW-007373-이승호.hwp -> DIW-007373-이승호.hml +2026-01-22 17:04:34,516 - INFO - 변환 성공: DIW-007374-정예준.hwp -> DIW-007374-정예준.hml +2026-01-22 17:04:35,168 - INFO - 변환 성공: DIW-007375-지수호.hwp -> DIW-007375-지수호.hml +2026-01-22 17:04:35,767 - INFO - 변환 성공: DIW-007376-이지후.hwp -> DIW-007376-이지후.hml +2026-01-22 17:04:36,269 - INFO - 변환 성공: DIW-007377-김한주.hwp -> DIW-007377-김한주.hml +2026-01-22 17:04:36,700 - INFO - 변환 성공: DIW-007379-현용곤.hwp -> DIW-007379-현용곤.hml +2026-01-22 17:04:37,309 - INFO - 변환 성공: DIW-007447-강미진.hwp -> DIW-007447-강미진.hml +2026-01-22 17:04:37,917 - INFO - 변환 성공: DIW-007448-강예찬.hwp -> DIW-007448-강예찬.hml +2026-01-22 17:04:38,530 - INFO - 변환 성공: DIW-007449-고은.hwp -> DIW-007449-고은.hml +2026-01-22 17:04:39,105 - INFO - 변환 성공: DIW-007450-고은강산.hwp -> DIW-007450-고은강산.hml +2026-01-22 17:04:39,687 - INFO - 변환 성공: DIW-007452-김지훈.hwp -> DIW-007452-김지훈.hml +2026-01-22 17:04:40,287 - INFO - 변환 성공: DIW-007453-임유준.hwp -> DIW-007453-임유준.hml +2026-01-22 17:04:40,921 - INFO - 변환 성공: DIW-007454-진하나.hwp -> DIW-007454-진하나.hml +2026-01-22 17:04:41,504 - INFO - 변환 성공: DIW_2601_2A.hwp -> DIW_2601_2A.hml +2026-01-22 17:04:41,753 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\A\DIW +2026-01-22 17:04:42,254 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\B\DIW +2026-01-22 17:04:46,624 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\B\DIW +2026-01-22 17:04:47,125 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\C\DIW +2026-01-22 17:04:48,412 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\C\DIW +2026-01-22 17:04:48,913 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\D\DIW +2026-01-22 17:04:50,228 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\D\DIW +2026-01-22 17:04:50,729 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601_2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\E\DIW +2026-01-22 17:04:51,952 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601_2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601_2\E\DIW diff --git a/수정사항.txt b/수정사항.txt deleted file mode 100644 index 45b5073..0000000 --- a/수정사항.txt +++ /dev/null @@ -1,49 +0,0 @@ -문제2 -- 글상자-크기(너비,높이) 채점 안됨 (4, 5) -- 그림삽입-크기(너비,높이) 채점 안됨 (15, 16) -- 그림삽입-위치 (어울림 : 세로-쪽의 위 23mm) 채점 안됨 (18) - >> mm에서 포인트로 변환 후 비교하여 채점하는 과정에서 소수점 단위의 오차가 발생 - >> 너비, 높이 등 길이 채점 시 오차범위 추가 -- 편집-문구 ("…서로 다른 색과 맛이…") "이" → "을" 글자바꿈 채점 안됨 -- 편집-문구 ("…튼튼하게 혈관을…") "튼튼하게" / "혈관을" 순서바꿈 채점 안됨 - >> 채점 방식 수정 - -수시5-002294-우시현 -- 1페이지에 문제2 답안 작성, 2페이지는 빈페이지 => 문제2 채점 제외대상 -ㄴ> (문제1에 머릿말은 채점해주신대로 점수가 들어가는게 맞을 것 같습니다. 문제2만 채점 점수 없는걸로 해주시면 됩니다) - >> 페이지 별 채점 채점 적용 - - - - <워드프로세서> -1. 문제2-쪽테두리 설정은 해당 페이지에 쪽테두리가 지시사항 처럼 설정되어 있으면 정답 -> (구역이 나뉘어져 있지 않는 경우, 양쪽이 아닌 짝수로 설정한 경우가 있음) - >> 특정 페이지만 검사하지 않고 쪽테두리 적용이 되어있으면 정상 채점 - -2. 문제2-속성-문구1-크기 배점 1점인데 2점씩 채점 - >> 채점 기준 수정 -3. 문제1-특수문자 (009866-성유나) 특수문자 3개 다 있는데 2점 - >> 채점 기준 수정 -4. 문제2-다단-구역나누기 (009866-성유나) 구역이 나누어져 있지 않은데 점수 3점받음 - >> 채점 기준 수정 -5. 문제2-다단-다단2단 (009866-성유나),(009890-오지은) 다단이 나누이져 있는데 감점 - >> 채점 기준 수정 -6. 문제2-속성-문구1,2 (009866-성유나),(009890-오지은) 글씨체(굴림),크기11pt,진하게 다되어있는데 감점 - >> 채점 기준 수정 -7. 오타(띄어쓰기 개수만큼 차감) -> 문제2의 표내에 오타가 있어서 차트 범주에도 오타가 있더라도, 1번만 차감 - -8. 쪽테두리는 구역이 나뉘어져 있지 않더라도 해당 페이지(2페이지)에 쪽테두리가 지시사항처럼 설정되었으면 정답 - >> 1. 쪽나눔 (한글 내부에서 Control+Enter 혹은 Enter여러번으로 다음 쪽으로 이동)의 경우 SECTION 태그가 생성되지 않음 - 2. Control+Enter - - - "path": "sum(//CHAR[contains(text(),'♤')]/string-length(text())) - sum(//CHAR[contains(text(),'♤')]/string-length(translate(text(), '♤', '')))+sum(//CHAR[contains(text(),'※')]/string-length(text()))-//CHAR[contains(text(),'※')]/string-length(translate(text(),'※',''))", - - - -기존 채점 기준은 오탈자가 나면 채점 기준에서 제외 - -현재 개발과정의 채점 기준은 문구의 오탈자를 포함해 유사한 단어를 찾아 채점 하는 방식이므로 - -기존 채점방식과 최종 점수가 상이할 가능성이 존재 \ No newline at end of file diff --git a/회차별채점자료/2511/DIW_2511A.hwpx b/회차별채점자료/2511/DIW_2511A.hwpx deleted file mode 100644 index 6c42c48..0000000 Binary files a/회차별채점자료/2511/DIW_2511A.hwpx and /dev/null differ diff --git a/회차별채점자료/2511/DIW_2511A_문제.hwpx b/회차별채점자료/2511/DIW_2511A_문제.hwpx deleted file mode 100644 index fd8fe62..0000000 Binary files a/회차별채점자료/2511/DIW_2511A_문제.hwpx and /dev/null differ diff --git a/회차별채점자료/2511/DIW_2511A_채점기준표.xlsx b/회차별채점자료/2511/DIW_2511A_채점기준표.xlsx deleted file mode 100644 index 951325e..0000000 Binary files a/회차별채점자료/2511/DIW_2511A_채점기준표.xlsx and /dev/null differ diff --git a/회차별채점자료/2511/DIW_2511B.hwpx b/회차별채점자료/2511/DIW_2511B.hwpx deleted file mode 100644 index 4f17fad..0000000 Binary files a/회차별채점자료/2511/DIW_2511B.hwpx and /dev/null differ diff --git a/회차별채점자료/2511/DIW_2511B.json b/회차별채점자료/2511/DIW_2511B.json deleted file mode 100644 index 5b25b42..0000000 --- a/회차별채점자료/2511/DIW_2511B.json +++ /dev/null @@ -1,850 +0,0 @@ -{ - "0": { - "0": { - "path": "", - "path2": "", - "points": 0, - "category": "파일저장", - "item": "파일명 (수검번호.hwp/hwpx)" - }, - "1": { - "path": "//PAGEMARGIN", - "value": { - "Top": 20, - "Bottom": 20, - "Left": 20, - "Right": 20, - "Header": 10, - "Footer": 10, - "Gutter": 0 - }, - "tolerance": 1, - "points": 4, - "category": "PageSetting", - "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" - }, - "2": { - "path": "", - "value": { - "FontName": "바탕", - "FontSize": "1000", - "Alignment": "Justify", - "LineSpacing": "160" - }, - "points": 4, - "category": "BasicSetting", - "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" - }, - "3": { - "path": "", - "value": null, - "points": 40, - "category": "오타감점", - "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" - } - }, - "1": { - "1": { - "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "전통주페어링특강안내", - "value": "휴먼옛체", - "points": 1, - "category": "OneAnswer", - "item": "문구 (전통주페어링특강안내)/① 글씨체 (휴먼옛체)" - }, - "2": { - "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "전통주페어링특강안내", - "value": "187,57,49", - "points": 2, - "category": "Color", - "item": "문구 (전통주페어링특강안내)/② 채우기 : 색상(RGB:187,57,49)" - }, - "3": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "전통주페어링특강안내", - "value": "110", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (전통주페어링특강안내)/③ 크기-너비 (110 mm)" - }, - "4": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "전통주페어링특강안내", - "value": "20", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (전통주페어링특강안내)/④ 크기-높이 (20 mm)" - }, - "5": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "전통주페어링특강안내", - "value": "true", - "points": 2, - "category": "OneAnswer", - "item": "문구 (전통주페어링특강안내)/⑤ 위치 (글자처럼 취급)" - }, - "6": { - "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "전통주페어링특강안내", - "value": "Center", - "points": 2, - "category": "OneAnswer", - "item": "문구 (전통주페어링특강안내)/⑥ 정렬 (가운데 정렬)" - }, - "7": { - "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "전통주페어링특강안내", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (전통주페어링특강안내)/⑦ 글맵시모양 (육안확인)" - }, - "8": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "혼", - "value": { - "Height": 2800, - "Width": 2800 - }, - "tolerance": 200, - "points": 1, - "category": "TwoLineSize", - "item": "어/① 모양 (2줄)" - }, - "9": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "혼", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "어/② 글씨체 (중고딕)" - }, - "10": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "혼", - "value": "252,231,95", - "points": 2, - "category": "Color", - "item": "어/③ 면색 : 색상(RGB:252,231,95)" - }, - "11": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "혼", - "value": "3.0", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "어/④ 본문과의 간격 : 3.0mm" - }, - "12": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것)/① BOLD" - }, - "13": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것)/② UNDERLINE" - }, - "14": { - "path": "//CHAR[contains(string(.),'{char1}')]/text()", - "path2": "//CHAR[contains(string(.),'{char2}')]/text()", - "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "★", - "char2": "★", - "char3": "※", - "value": 3, - "points": 3, - "category": "SpecialChar", - "item": "① ★, ② ★, ③ ※" - }, - "15": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "행사안내", - "value": "굴림체", - "points": 1, - "category": "FontName", - "item": "문구 (★ 행사안내 ★)/① 글씨체 (굴림체)" - }, - "16": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "행사안내", - "value": "Center", - "points": 1, - "category": "Align", - "item": "문구 (★ 행사안내 ★)/② 정렬 (가운데 정렬)" - }, - "17": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)", - "value": "ITALIC", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/① ITALIC" - }, - "18": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/② UNDERLINE" - }, - "19": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", - "searchValue": "기타사항", - "value": { - "Left": 12, - "Indent": 14 - }, - "points": 2, - "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (14)", - "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" - }, - "20": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 11. 22.", - "value": "1300", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 11. 22.)/① 크기 (1300)", - "desc": "1pt당 100" - }, - "21": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 11. 22.", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "대한민국전통주살리기협회", - "value": "궁서체", - "points": 1, - "category": "FontName", - "item": "문구 (대한민국전통주살리기협회)/① 글씨체 (궁서체)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "대한민국전통주살리기협회", - "value": "2700", - "points": 1, - "category": "OneAnswer", - "item": "문구 (대한민국전통주살리기협회)/② 크기 (2700)" - }, - "24": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "대한민국전통주살리기협회", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (대한민국전통주살리기협회)/③ 정렬 (가운데 정렬)" - }, - "25": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "DIAT", - "value": "굴림", - "points": 1, - "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (굴림)" - }, - "26": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "DIAT", - "value": "900", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/② 크기 (9pt)" - }, - "27": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "searchValue": "DIAT", - "value": "Right", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" - }, - "28": { - "path": "//PAGENUM/@FormatType", - "value": "HangulSyllable", - "points": 2, - "category": "PageNumber", - "item": "① 쪽 번호 매기기 (가,나,다 순으로)", - "desc1": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - }, - "desc2": "1, 2페이지 모두 정답이어야 점수 부여" - }, - "29": { - "path": "//PAGENUM/@Pos", - "value": "BottomCenter", - "points": 2, - "category": "PageNumber", - "item": "가운데 아래", - "desc": "1, 2페이지 모두 정답이어야 점수 부여", - "desc2": { - "가운데 아래": "BottomCenter", - "오른쪽 아래": "BottomRight", - "왼쪽 아래": "BottomLeft" - } - }, - "30": { - "path": "//CHAR[contains(text(),'{searchValue}')]", - "searchValue": "http", - "value": true, - "points": 2, - "category": "hyperlink", - "item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성", - "desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답" - }, - "31": { - "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "190", - "first_word": "혼", - "points": 2, - "category": "LineSpacing", - "item": "문제 1 줄간격 190% 설정", - "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." - } - }, - "2": { - "1": { - "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": "PageBorder", - "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" - }, - "2": { - "path": "count(//SECTION)>1", - "value": true, - "points": 3, - "category": "Boolean", - "item": "① 구역나누기", - "desc": "섹션이 1개 이상이면 점수부여" - }, - "3": { - "path": "./TEXT/COLDEF/@Count", - "value": "2", - "points": 3, - "category": "TwoColumn", - "item": "② 다단 2단" - }, - "4": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "60", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (한국의 전통주)/① 크기-너비 (60 mm)" - }, - "5": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "value": "12", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (한국의 전통주)/② 크기-높이 (12 mm)" - }, - "6": { - "path": "//RECTANGLE//LINESHAPE", - "value": { - "Style": "DoubleSlim", - "Width": "283" - }, - "points": 2, - "category": "Rectangle.LineShape", - "item": "문구 (한국의 전통주)/③ 테두리 : 이중 실선(1.00mm)", - "desc": "1mm = 283pt value['Width']에 pt값 입력" - }, - "7": { - "path": "//RECTANGLE/@Ratio", - "value": "20", - "points": 2, - "category": "Rectangle.OneAnswer", - "item": "문구 (한국의 전통주)/④ 글상자 모서리 (반원)", - "desc": "모서리 비율 반원:50 / 둥근모양:20" - }, - "8": { - "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "53,135,145", - "points": 2, - "category": "Rectangle.Color", - "item": "문구 (한국의 전통주)/⑤ 채우기 : 색상(RGB:53,135,145)" - }, - "9": { - "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "value": "true", - "points": 1, - "category": "Rectangle.OneAnswer", - "item": "문구 (한국의 전통주)/⑥ 글상자 위치 (글자처럼 취급)" - }, - "10": { - "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (한국의 전통주)/⑦ 글상자 정렬 (가운데 정렬)" - }, - "11": { - "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "궁서", - "points": 1, - "category": "Rectangle.FontName", - "item": "문구 (한국의 전통주)/⑧ 글씨체 (궁서)" - }, - "12": { - "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "2000", - "points": 1, - "category": "Rectangle.FontSize", - "item": "문구 (한국의 전통주)/⑨ 글씨크기 (2000)", - "desc": "1pt당 100" - }, - "13": { - "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (한국의 전통주)/⑩ 정렬 (가운데 정렬)" - }, - "14": { - "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", - "value": true, - "points": 2, - "category": "Boolean", - "item": "① 파일명 \"그림B.jpg\" 삽입", - "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" - }, - "15": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", - "value": "85", - "points": 2, - "category": "mmSize", - "item": "② 크기-너비 (85 mm)" - }, - "16": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", - "value": "40", - "points": 2, - "category": "mmSize", - "item": "③ 크기-높이 (40 mm)" - }, - "17": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", - "value": "0", - "points": 2, - "category": "mmSize", - "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" - }, - "18": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "24", - "points": 2, - "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)" - }, - "19": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 한국 전통주", - "value": "돋움", - "points": 1, - "category": "FontName", - "item": "문구① (1. 한국 전통주)/① 글씨체 (돋움)" - }, - "20": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 한국 전통주", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구① (1. 한국 전통주)/② 크기 (1200)" - }, - "21": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 한국 전통주", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구① (1. 한국 전통주)/③ 진하게" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 패러다임 바뀐 음주 문화", - "value": "돋움", - "points": 1, - "category": "FontName", - "item": "문구② (2. 패러다임 바뀐 음주 문화)/① 글씨체 (돋움)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 패러다임 바뀐 음주 문화", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구② (2. 패러다임 바뀐 음주 문화)/② 크기 (1200)" - }, - "24": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 패러다임 바뀐 음주 문화", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구② (2. 패러다임 바뀐 음주 문화)/③ 진하게" - }, - "25": { - "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": "MZ세대", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (MZ세대)/① 각주 설정 및 문구 입력" - }, - "26": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "밀레니얼 세대와 Z세대를 통틀어 지칭하는 신조어", - "value": "바탕체", - "points": 1, - "category": "FontName", - "item": "문구 (MZ세대)/② 글씨체 (바탕체)" - }, - "27": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "밀레니얼 세대와 Z세대를 통틀어 지칭하는 신조어", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "문구 (MZ세대)/③ 크기 (9pt)" - }, - "28": { - "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "밀레니얼 세대와 Z세대를 통틀어 지칭하는 신조어", - "value": "UserChar", - "points": 2, - "category": "OneAnswer", - "item": "문구 (전당)/④ 각주 번호모양", - "desc": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - } - }, - "29": { - "path": "boolean(//CHAR[contains(text(),'Paradigm')])", - "ignoreWord": "Paradigm", - "value": true, - "points": 3, - "category": "Boolean", - "item": "Paradigm/영단어 미입력, 대소문자/오타 시 전체 감점", - "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" - }, - "30": { - "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", - "word": [ - ["양조", "釀造"], - ["노동자", "勞動者"], - ["문인", "文人"], - ["백주", "白酒"], - ["음미", "吟味"] - ], - "value": 10, - "points": 10, - "category": "Hanja", - "item": "① 양조(釀造), ② 노동자(勞動者), ③ 문인(文人), ④ 백주(白酒), ⑤ 음미(吟味)" - }, - "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'있는술을')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…즐길 수 있게 술을 찾아 마시는 것이…)>'게' → '는' 글자바꿈" - }, - "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'하는문화')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…마시고 문화에서 취하는 술의 맛과…)>'문화에서' / '취하는' 순서바꿈" - }, - "33": { - "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "연도별 전통주 산업(단위:억원)", - "value": "돋움체", - "points": 1, - "category": "FontName", - "item": "제목 문구 (연도별 전통주 산업(단위:억원))/① 글씨체 (돋움체)" - }, - "34": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "연도별 전통주 산업(단위:억원)", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (연도별 전통주 산업(단위:억원))/② 크기 (1200)" - }, - "35": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "연도별 전통주 산업(단위:억원)", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "제목 문구 (연도별 전통주 산업(단위:억원))/③ 진하게" - }, - "36": { - "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "연도별 전통주 산업(단위:억원)", - "value": "Center", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "202,86,167", - "points": 2, - "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:202,86,167)" - }, - "38": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", - "value": "BOLD", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", - "value": "DoubleSlim", - "points": 2, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", - "value": "0.5mm", - "points": 2, - "category": "TableAnswer", - "item": "제목 셀 아래선/② 0.5mm" - }, - "41": { - "path": "//TABLE//TEXT/@CharShape", - "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "중고딕", - "points": 1, - "category": "TableFontName", - "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (중고딕)", - "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" - }, - "42": { - "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", - "value": "1000", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/② 크기 (1000)" - }, - "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", - "value": "Center", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/③ 정렬 (가운데 정렬)" - }, - "44": { - "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": "Boolean", - "item": "블록 계산식/합계", - "desc": "option값에 합계는 SUM / 평균은 AVG" - }, - "45": { - "chart_xpath": "", - "chart_type": "누적 세로 막대형", - "value": true, - "points": 2, - "category": "ChartType", - "item": "① 종류 (누적 세로 막대형)", - "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" - }, - "46": { - "chart_xpath": "//c:valAx/c:majorTickMark/@val", - "value": "out", - "points": 2, - "category": "ChartOneAnswer", - "item": "② 값 축 주 눈금선", - "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" - }, - "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "③ 크기-너비 (80 mm)" - }, - "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "90", - "points": 2, - "category": "mmSize", - "item": "④ 크기-높이 (90 mm)" - }, - "49": { - "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", - "value": true, - "points": 2, - "category": "Boolean", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", - "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" - }, - "50": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "연도별 전통주 산업", - "value": "굴림체", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (연도별 전통주 산업)/① 글씨체 (굴림체)" - }, - "51": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "연도별 전통주 산업", - "value": "1300", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (연도별 전통주 산업)/② 크기 (1300)" - }, - "52": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", - "option": "b", - "searchValue": "연도별 전통주 산업", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (연도별 전통주 산업)/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "53": { - "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", - "value": "바탕", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/① 글꼴 (바탕)" - }, - "54": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/② 크기 (9pt)" - }, - "55": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "56": { - "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", - "value": "바탕", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/① 글꼴 (바탕)" - }, - "57": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/② 크기 (9pt)" - }, - "58": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "59": { - "chart_xpath": "//c:legend//a:ea/@typeface", - "value": "바탕", - "points": 1, - "category": "OneAnswer", - "item": "범례/① 글꼴 (바탕)" - }, - "60": { - "chart_xpath": "//c:legend//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "범례/② 크기 (9pt)" - }, - "61": { - "chart_xpath": "//c:legend//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "범례/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - } - } -} diff --git a/회차별채점자료/2511/DIW_2511B_문제.hwpx b/회차별채점자료/2511/DIW_2511B_문제.hwpx deleted file mode 100644 index edae0f6..0000000 Binary files a/회차별채점자료/2511/DIW_2511B_문제.hwpx and /dev/null differ diff --git a/회차별채점자료/2511/DIW_2511B_채점기준표.xlsx b/회차별채점자료/2511/DIW_2511B_채점기준표.xlsx deleted file mode 100644 index 1a06403..0000000 Binary files a/회차별채점자료/2511/DIW_2511B_채점기준표.xlsx and /dev/null differ diff --git a/회차별채점자료/2511/DIW_2511C.hwpx b/회차별채점자료/2511/DIW_2511C.hwpx deleted file mode 100644 index da54c05..0000000 Binary files a/회차별채점자료/2511/DIW_2511C.hwpx and /dev/null differ diff --git a/회차별채점자료/2511/DIW_2511C.json b/회차별채점자료/2511/DIW_2511C.json deleted file mode 100644 index 5b11ac8..0000000 --- a/회차별채점자료/2511/DIW_2511C.json +++ /dev/null @@ -1,850 +0,0 @@ -{ - "0": { - "0": { - "path": "", - "path2": "", - "points": 0, - "category": "파일저장", - "item": "파일명 (수검번호.hwp/hwpx)" - }, - "1": { - "path": "//PAGEMARGIN", - "value": { - "Top": 20, - "Bottom": 20, - "Left": 20, - "Right": 20, - "Header": 10, - "Footer": 10, - "Gutter": 0 - }, - "tolerance": 1, - "points": 4, - "category": "PageSetting", - "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" - }, - "2": { - "path": "", - "value": { - "FontName": "바탕", - "FontSize": "1000", - "Alignment": "Justify", - "LineSpacing": "160" - }, - "points": 4, - "category": "BasicSetting", - "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" - }, - "3": { - "path": "", - "value": null, - "points": 40, - "category": "오타감점", - "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" - } - }, - "1": { - "1": { - "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "제18회인정시북페스티벌", - "value": "견고딕", - "points": 1, - "category": "OneAnswer", - "item": "문구 (제18회인정시북페스티벌)/① 글씨체 (견고딕)" - }, - "2": { - "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "제18회인정시북페스티벌", - "value": "104,37,245", - "points": 2, - "category": "Color", - "item": "문구 (제18회인정시북페스티벌)/② 채우기 : 색상(RGB:104,37,245)" - }, - "3": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "제18회인정시북페스티벌", - "value": "110", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (제18회인정시북페스티벌)/③ 크기-너비 (110 mm)" - }, - "4": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "제18회인정시북페스티벌", - "value": "20", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (제18회인정시북페스티벌)/④ 크기-높이 (20 mm)" - }, - "5": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "제18회인정시북페스티벌", - "value": "true", - "points": 2, - "category": "OneAnswer", - "item": "문구 (제18회인정시북페스티벌)/⑤ 위치 (글자처럼 취급)" - }, - "6": { - "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "제18회인정시북페스티벌", - "value": "Center", - "points": 2, - "category": "OneAnswer", - "item": "문구 (제18회인정시북페스티벌)/⑥ 정렬 (가운데 정렬)" - }, - "7": { - "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "제18회인정시북페스티벌", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (제18회인정시북페스티벌)/⑦ 글맵시모양 (육안확인)" - }, - "8": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "인", - "value": { - "Height": 2800, - "Width": 2800 - }, - "tolerance": 200, - "points": 1, - "category": "TwoLineSize", - "item": "어/① 모양 (2줄)" - }, - "9": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "인", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "어/② 글씨체 (굴림)" - }, - "10": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "인", - "value": "234,137,67", - "points": 2, - "category": "Color", - "item": "어/③ 면색 : 색상(RGB:234,137,67)" - }, - "11": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "인", - "value": "3.0", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "어/④ 본문과의 간격 : 3.0mm" - }, - "12": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "제18회 인정시 북 페스티벌", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (제18회 인정시 북 페스티벌)/① BOLD" - }, - "13": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "제18회 인정시 북 페스티벌", - "value": "ITALIC", - "points": 1, - "category": "FontAttribute", - "item": "문구 (제18회 인정시 북 페스티벌)/② ITALIC" - }, - "14": { - "path": "//CHAR[contains(string(.),'{char1}')]/text()", - "path2": "//CHAR[contains(string(.),'{char2}')]/text()", - "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "【", - "char2": "】", - "char3": "※", - "value": 3, - "points": 3, - "category": "SpecialChar", - "item": "① 【, ② 】, ③ ※" - }, - "15": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "행사안내", - "value": "돋움체", - "points": 1, - "category": "FontName", - "item": "문구 (【 행사안내 】)/① 글씨체 (돋움체)" - }, - "16": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "행사안내", - "value": "Center", - "points": 1, - "category": "Align", - "item": "문구 (【 행사안내 】)/② 정렬 (가운데 정렬)" - }, - "17": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "인정시립대학교 야외무대", - "value": "ITALIC", - "points": 1, - "category": "FontAttribute", - "item": "문구 (인정시립대학교 야외무대)/① ITALIC" - }, - "18": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "인정시립대학교 야외무대", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (인정시립대학교 야외무대)/② UNDERLINE" - }, - "19": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", - "searchValue": "기타사항", - "value": { - "Left": 15, - "Indent": 12 - }, - "points": 2, - "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)", - "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" - }, - "20": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 11. 22.", - "value": "1400", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 11. 22.)/① 크기 (1400)", - "desc": "1pt당 100" - }, - "21": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 11. 22.", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "인정시립대학교 총무팀", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구 (인정시립대학교 총무팀)/① 글씨체 (중고딕)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "인정시립대학교 총무팀", - "value": "2400", - "points": 1, - "category": "OneAnswer", - "item": "문구 (인정시립대학교 총무팀)/② 크기 (2400)" - }, - "24": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "인정시립대학교 총무팀", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (인정시립대학교 총무팀)/③ 정렬 (가운데 정렬)" - }, - "25": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "DIAT", - "value": "돋움", - "points": 1, - "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (돋움)" - }, - "26": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "DIAT", - "value": "900", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/② 크기 (9pt)" - }, - "27": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "searchValue": "DIAT", - "value": "Right", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" - }, - "28": { - "path": "//PAGENUM/@FormatType", - "value": "DecagonCircle", - "points": 2, - "category": "PageNumber", - "item": "① 쪽 번호 매기기 (갑,을,병 순으로)", - "desc1": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - }, - "desc2": "1, 2페이지 모두 정답이어야 점수 부여" - }, - "29": { - "path": "//PAGENUM/@Pos", - "value": "BottomCenter", - "points": 2, - "category": "PageNumber", - "item": "가운데 아래", - "desc": "1, 2페이지 모두 정답이어야 점수 부여", - "desc2": { - "가운데 아래": "BottomCenter", - "오른쪽 아래": "BottomRight", - "왼쪽 아래": "BottomLeft" - } - }, - "30": { - "path": "//CHAR[contains(text(),'{searchValue}')]", - "searchValue": "http", - "value": true, - "points": 2, - "category": "hyperlink", - "item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성", - "desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답" - }, - "31": { - "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "180", - "first_word": "인", - "points": 2, - "category": "LineSpacing", - "item": "문제 1 줄간격 180% 설정", - "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." - } - }, - "2": { - "1": { - "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": "PageBorder", - "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" - }, - "2": { - "path": "count(//SECTION)>1", - "value": true, - "points": 3, - "category": "Boolean", - "item": "① 구역나누기", - "desc": "섹션이 1개 이상이면 점수부여" - }, - "3": { - "path": "./TEXT/COLDEF/@Count", - "value": "2", - "points": 3, - "category": "TwoColumn", - "item": "② 다단 2단" - }, - "4": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "60", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (베스트와 스테디)/① 크기-너비 (60 mm)" - }, - "5": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "value": "12", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (베스트와 스테디)/② 크기-높이 (12 mm)" - }, - "6": { - "path": "//RECTANGLE//LINESHAPE", - "value": { - "Style": "DoubleSlim", - "Width": "283" - }, - "points": 2, - "category": "Rectangle.LineShape", - "item": "문구 (베스트와 스테디)/③ 테두리 : 이중 실선(1.00mm)", - "desc": "1mm = 283pt value['Width']에 pt값 입력" - }, - "7": { - "path": "//RECTANGLE/@Ratio", - "value": "20", - "points": 2, - "category": "Rectangle.OneAnswer", - "item": "문구 (베스트와 스테디)/④ 글상자 모서리 (반원)", - "desc": "모서리 비율 반원:50 / 둥근모양:20" - }, - "8": { - "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "233,106,147", - "points": 2, - "category": "Rectangle.Color", - "item": "문구 (베스트와 스테디)/⑤ 채우기 : 색상(RGB:233,106,147)" - }, - "9": { - "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "value": "true", - "points": 1, - "category": "Rectangle.OneAnswer", - "item": "문구 (베스트와 스테디)/⑥ 글상자 위치 (글자처럼 취급)" - }, - "10": { - "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (베스트와 스테디)/⑦ 글상자 정렬 (가운데 정렬)" - }, - "11": { - "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "궁서체", - "points": 1, - "category": "Rectangle.FontName", - "item": "문구 (베스트와 스테디)/⑧ 글씨체 (궁서체)" - }, - "12": { - "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "1800", - "points": 1, - "category": "Rectangle.FontSize", - "item": "문구 (베스트와 스테디)/⑨ 글씨크기 (1800)", - "desc": "1pt당 100" - }, - "13": { - "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (베스트와 스테디)/⑩ 정렬 (가운데 정렬)" - }, - "14": { - "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", - "value": true, - "points": 2, - "category": "Boolean", - "item": "① 파일명 \"그림C.jpg\" 삽입", - "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" - }, - "15": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "② 크기-너비 (80 mm)" - }, - "16": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", - "value": "40", - "points": 2, - "category": "mmSize", - "item": "③ 크기-높이 (40 mm)" - }, - "17": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", - "value": "0", - "points": 2, - "category": "mmSize", - "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" - }, - "18": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "24", - "points": 2, - "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)" - }, - "19": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 베스트셀러", - "value": "굴림체", - "points": 1, - "category": "FontName", - "item": "문구① (1. 베스트셀러)/① 글씨체 (굴림체)" - }, - "20": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 베스트셀러", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구① (1. 베스트셀러)/② 크기 (1200)" - }, - "21": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 베스트셀러", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구① (1. 베스트셀러)/③ 진하게" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 스테디셀러", - "value": "굴림체", - "points": 1, - "category": "FontName", - "item": "문구② (2. 스테디셀러)/① 글씨체 (굴림체)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 스테디셀러", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구② (2. 스테디셀러)/② 크기 (1200)" - }, - "24": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 스테디셀러", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구② (2. 스테디셀러)/③ 진하게" - }, - "25": { - "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", - "item": "문구 (로빈슨 크루소)/① 각주 설정 및 문구 입력" - }, - "26": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "영국의 작가 대니얼 디포의 장편소설", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구 (로빈슨 크루소)/② 글씨체 (중고딕)" - }, - "27": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "영국의 작가 대니얼 디포의 장편소설", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "문구 (로빈슨 크루소)/③ 크기 (9pt)" - }, - "28": { - "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "영국의 작가 대니얼 디포의 장편소설", - "value": "CircledIdeograph", - "points": 2, - "category": "OneAnswer", - "item": "문구 (전당)/④ 각주 번호모양", - "desc": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - } - }, - "29": { - "path": "boolean(//CHAR[contains(text(),'Bookman')])", - "ignoreWord": "Bookman", - "value": true, - "points": 3, - "category": "Boolean", - "item": "Bookman/영단어 미입력, 대소문자/오타 시 전체 감점", - "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" - }, - "30": { - "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", - "word": [ - ["시초", "始初"], - ["유래", "由來"], - ["양립", "兩立"], - ["수요", "需要"], - ["독자", "讀者"] - ], - "value": 10, - "points": 10, - "category": "Hanja", - "item": "① 시초(始初), ② 유래(由來), ③ 양립(兩立), ④ 수요(需要), ⑤ 독자(讀者)" - }, - "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'품의양립')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…작품은 양립(兩立)이…)>'은 → 의' 글자바꿈" - }, - "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'러와훌륭')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…훌륭한 베스트셀러와 작품의 양립…)>'훌륭한 / 베스트셀러와' 순서바꿈" - }, - "33": { - "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "연평균 성인 독서량 추이(단위 : 권)", - "value": "맑은 고딕", - "points": 1, - "category": "FontName", - "item": "제목 문구 (연평균 성인 독서량 추이(단위 : 권))/① 글씨체 (맑은 고딕)" - }, - "34": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "연평균 성인 독서량 추이(단위 : 권)", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (연평균 성인 독서량 추이(단위 : 권))/② 크기 (1200)" - }, - "35": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "연평균 성인 독서량 추이(단위 : 권)", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "제목 문구 (연평균 성인 독서량 추이(단위 : 권))/③ 진하게" - }, - "36": { - "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "연평균 성인 독서량 추이(단위 : 권)", - "value": "Center", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "37,233,245", - "points": 2, - "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:37,233,245)" - }, - "38": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", - "value": "BOLD", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", - "value": "DoubleSlim", - "points": 2, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", - "value": "0.5mm", - "points": 2, - "category": "TableAnswer", - "item": "제목 셀 아래선/② 0.5mm" - }, - "41": { - "path": "//TABLE//TEXT/@CharShape", - "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "돋움체", - "points": 1, - "category": "TableFontName", - "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (돋움체)", - "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" - }, - "42": { - "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", - "value": "1000", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/② 크기 (1000)" - }, - "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", - "value": "Center", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/③ 정렬 (가운데 정렬)" - }, - "44": { - "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": "Boolean", - "item": "블록 계산식/합계", - "desc": "option값에 합계는 SUM / 평균은 AVG" - }, - "45": { - "chart_xpath": "", - "chart_type": "묶은 가로 막대형", - "value": true, - "points": 2, - "category": "ChartType", - "item": "① 종류 (묶은 가로 막대형)", - "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" - }, - "46": { - "chart_xpath": "//c:valAx/c:majorTickMark/@val", - "value": "out", - "points": 2, - "category": "ChartOneAnswer", - "item": "② 값 축 주 눈금선", - "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" - }, - "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "③ 크기-너비 (80 mm)" - }, - "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "90", - "points": 2, - "category": "mmSize", - "item": "④ 크기-높이 (90 mm)" - }, - "49": { - "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", - "value": true, - "points": 2, - "category": "Boolean", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", - "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" - }, - "50": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "연평균 성인 독서량 추이", - "value": "궁서", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (연평균 성인 독서량 추이)/① 글씨체 (궁서)" - }, - "51": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "연평균 성인 독서량 추이", - "value": "1400", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (연평균 성인 독서량 추이)/② 크기 (1400)" - }, - "52": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", - "option": "b", - "searchValue": "연평균 성인 독서량 추이", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (연평균 성인 독서량 추이)/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "53": { - "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", - "value": "바탕체", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/① 글꼴 (바탕체)" - }, - "54": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/② 크기 (9pt)" - }, - "55": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "56": { - "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", - "value": "바탕체", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/① 글꼴 (바탕체)" - }, - "57": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/② 크기 (9pt)" - }, - "58": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "59": { - "chart_xpath": "//c:legend//a:ea/@typeface", - "value": "바탕체", - "points": 1, - "category": "OneAnswer", - "item": "범례/① 글꼴 (바탕체)" - }, - "60": { - "chart_xpath": "//c:legend//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "범례/② 크기 (9pt)" - }, - "61": { - "chart_xpath": "//c:legend//a:defRPr/@{option}", - "option": "i", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "범례/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - } - } -} diff --git a/회차별채점자료/2511/DIW_2511C_문제.hwpx b/회차별채점자료/2511/DIW_2511C_문제.hwpx deleted file mode 100644 index 1e29b3d..0000000 Binary files a/회차별채점자료/2511/DIW_2511C_문제.hwpx and /dev/null differ diff --git a/회차별채점자료/2511/DIW_2511C_채점기준표.xlsx b/회차별채점자료/2511/DIW_2511C_채점기준표.xlsx deleted file mode 100644 index b6ee9c5..0000000 Binary files a/회차별채점자료/2511/DIW_2511C_채점기준표.xlsx and /dev/null differ diff --git a/회차별채점자료/2511/DIW_2511D.hwpx b/회차별채점자료/2511/DIW_2511D.hwpx deleted file mode 100644 index ad2cf5d..0000000 Binary files a/회차별채점자료/2511/DIW_2511D.hwpx and /dev/null differ diff --git a/회차별채점자료/2511/DIW_2511D_문제.hwpx b/회차별채점자료/2511/DIW_2511D_문제.hwpx deleted file mode 100644 index 23bc3e8..0000000 Binary files a/회차별채점자료/2511/DIW_2511D_문제.hwpx and /dev/null differ diff --git a/회차별채점자료/2511/DIW_2511D_채점기준표.xlsx b/회차별채점자료/2511/DIW_2511D_채점기준표.xlsx deleted file mode 100644 index bf268ff..0000000 Binary files a/회차별채점자료/2511/DIW_2511D_채점기준표.xlsx and /dev/null differ diff --git a/회차별채점자료/2511/채점결과/251125_DIW_2511A_채점결과.xlsx b/회차별채점자료/2511/채점결과/251125_DIW_2511A_채점결과.xlsx deleted file mode 100644 index 1755c73..0000000 Binary files a/회차별채점자료/2511/채점결과/251125_DIW_2511A_채점결과.xlsx and /dev/null differ diff --git a/회차별채점자료/2511/채점결과/251125_DIW_2511B_채점결과.xlsx b/회차별채점자료/2511/채점결과/251125_DIW_2511B_채점결과.xlsx deleted file mode 100644 index aad7239..0000000 Binary files a/회차별채점자료/2511/채점결과/251125_DIW_2511B_채점결과.xlsx and /dev/null differ diff --git a/회차별채점자료/2511/채점결과/251125_DIW_2511C_채점결과.xlsx b/회차별채점자료/2511/채점결과/251125_DIW_2511C_채점결과.xlsx deleted file mode 100644 index c6194dd..0000000 Binary files a/회차별채점자료/2511/채점결과/251125_DIW_2511C_채점결과.xlsx and /dev/null differ diff --git a/회차별채점자료/2511/채점결과/251125_DIW_2511D_채점결과.xlsx b/회차별채점자료/2511/채점결과/251125_DIW_2511D_채점결과.xlsx deleted file mode 100644 index 5361b53..0000000 Binary files a/회차별채점자료/2511/채점결과/251125_DIW_2511D_채점결과.xlsx and /dev/null differ diff --git a/회차별채점자료/2511/채점결과/251128_DIW_2511A_채점결과.xlsx b/회차별채점자료/2511/채점결과/251128_DIW_2511A_채점결과.xlsx deleted file mode 100644 index a6ef8c5..0000000 Binary files a/회차별채점자료/2511/채점결과/251128_DIW_2511A_채점결과.xlsx and /dev/null differ diff --git a/회차별채점자료/2511/채점결과/251128_DIW_2511B_채점결과.xlsx b/회차별채점자료/2511/채점결과/251128_DIW_2511B_채점결과.xlsx deleted file mode 100644 index 752665a..0000000 Binary files a/회차별채점자료/2511/채점결과/251128_DIW_2511B_채점결과.xlsx and /dev/null differ diff --git a/회차별채점자료/2511/채점결과/251128_DIW_2511C_채점결과.xlsx b/회차별채점자료/2511/채점결과/251128_DIW_2511C_채점결과.xlsx deleted file mode 100644 index ba4052f..0000000 Binary files a/회차별채점자료/2511/채점결과/251128_DIW_2511C_채점결과.xlsx and /dev/null differ diff --git a/회차별채점자료/2511/채점결과/251128_DIW_2511D_채점결과.xlsx b/회차별채점자료/2511/채점결과/251128_DIW_2511D_채점결과.xlsx deleted file mode 100644 index 18698b0..0000000 Binary files a/회차별채점자료/2511/채점결과/251128_DIW_2511D_채점결과.xlsx and /dev/null differ diff --git a/251222_DIW_2512A_채점결과.xlsx b/회차별채점자료/2512/251222_DIW_2512A_채점결과.xlsx similarity index 100% rename from 251222_DIW_2512A_채점결과.xlsx rename to 회차별채점자료/2512/251222_DIW_2512A_채점결과.xlsx diff --git a/251222_DIW_2512B_채점결과.xlsx b/회차별채점자료/2512/251222_DIW_2512B_채점결과.xlsx similarity index 100% rename from 251222_DIW_2512B_채점결과.xlsx rename to 회차별채점자료/2512/251222_DIW_2512B_채점결과.xlsx diff --git a/251222_DIW_2512C_채점결과.xlsx b/회차별채점자료/2512/251222_DIW_2512C_채점결과.xlsx similarity index 100% rename from 251222_DIW_2512C_채점결과.xlsx rename to 회차별채점자료/2512/251222_DIW_2512C_채점결과.xlsx diff --git a/251222_DIW_2512D_채점결과.xlsx b/회차별채점자료/2512/251222_DIW_2512D_채점결과.xlsx similarity index 100% rename from 251222_DIW_2512D_채점결과.xlsx rename to 회차별채점자료/2512/251222_DIW_2512D_채점결과.xlsx diff --git a/251224_DIW_2512A_채점결과.xlsx b/회차별채점자료/2512/251224_DIW_2512A_채점결과.xlsx similarity index 100% rename from 251224_DIW_2512A_채점결과.xlsx rename to 회차별채점자료/2512/251224_DIW_2512A_채점결과.xlsx diff --git a/251224_DIW_2512B_채점결과.xlsx b/회차별채점자료/2512/251224_DIW_2512B_채점결과.xlsx similarity index 100% rename from 251224_DIW_2512B_채점결과.xlsx rename to 회차별채점자료/2512/251224_DIW_2512B_채점결과.xlsx diff --git a/251224_DIW_2512C_채점결과.xlsx b/회차별채점자료/2512/251224_DIW_2512C_채점결과.xlsx similarity index 100% rename from 251224_DIW_2512C_채점결과.xlsx rename to 회차별채점자료/2512/251224_DIW_2512C_채점결과.xlsx diff --git a/251224_DIW_2512D_채점결과.xlsx b/회차별채점자료/2512/251224_DIW_2512D_채점결과.xlsx similarity index 100% rename from 251224_DIW_2512D_채점결과.xlsx rename to 회차별채점자료/2512/251224_DIW_2512D_채점결과.xlsx diff --git a/회차별채점자료/2512/260120_DIW_2512A_채점결과.xlsx b/회차별채점자료/2512/260120_DIW_2512A_채점결과.xlsx new file mode 100644 index 0000000..3196dac Binary files /dev/null and b/회차별채점자료/2512/260120_DIW_2512A_채점결과.xlsx differ diff --git a/DIW_2512A.json b/회차별채점자료/2512/DIW_2512A copy.json similarity index 100% rename from DIW_2512A.json rename to 회차별채점자료/2512/DIW_2512A copy.json diff --git a/회차별채점자료/2512/DIW_2512A.json b/회차별채점자료/2512/DIW_2512A.json index 38f98f1..c7959dc 100644 --- a/회차별채점자료/2512/DIW_2512A.json +++ b/회차별채점자료/2512/DIW_2512A.json @@ -579,7 +579,7 @@ } }, "29": { - "path": "boolean(//CHAR[contains(text(),'Security')])", + "path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])", "ignoreWord": "Security", "value": true, "points": 3, diff --git a/회차별채점자료/2512/DIW_2512C.json b/회차별채점자료/2512/DIW_2512C.json index ec881bd..020c461 100644 --- a/회차별채점자료/2512/DIW_2512C.json +++ b/회차별채점자료/2512/DIW_2512C.json @@ -27,7 +27,7 @@ "path": "", "value": { "FontName": "바탕", - "FontSize": "1000", + "FontSize": "1000", "Alignment": "Justify", "LineSpacing": "160" }, diff --git a/회차별채점자료/2512_3/251219_DIW_2512_3A_채점결과.xlsx b/회차별채점자료/2512_3/251219_DIW_2512_3A_채점결과.xlsx deleted file mode 100644 index d0fe630..0000000 Binary files a/회차별채점자료/2512_3/251219_DIW_2512_3A_채점결과.xlsx and /dev/null differ diff --git a/회차별채점자료/2512_3/DIW_2512_3A copy.json b/회차별채점자료/2512_3/DIW_2512_3A copy.json deleted file mode 100644 index fa44a90..0000000 --- a/회차별채점자료/2512_3/DIW_2512_3A copy.json +++ /dev/null @@ -1,841 +0,0 @@ -{ - "0": { - "0": { - "path": "", - "path2": "", - "points": 0, - "category": "파일저장", - "item": "파일명 (수검번호.hwp/hwpx)" - }, - "1": { - "path": "//PAGEMARGIN", - "value": { - "Top": 20, - "Bottom": 20, - "Left": 20, - "Right": 20, - "Header": 10, - "Footer": 10, - "Gutter": 0 - }, - "tolerance": 1, - "points": 4, - "category": "PageSetting", - "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" - }, - "2": { - "path": "", - "value": { - "FontName": "바탕", - "FontSize": "1000", - "Alignment": "Justify", - "LineSpacing": "160" - }, - "points": 4, - "category": "BasicSetting", - "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" - }, - "3": { - "path": "", - "value": null, - "points": 40, - "category": "오타감점", - "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" - } - }, - "1": { - "1": { - "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "한산해안갯벌체험교실", - "value": "견고딕", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)" - }, - "2": { - "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "한산해안갯벌체험교실", - "value": "51,69,153", - "points": 2, - "category": "Color", - "item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)" - }, - "3": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "한산해안갯벌체험교실", - "value": "110", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)" - }, - "4": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "한산해안갯벌체험교실", - "value": "20", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)" - }, - "5": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "한산해안갯벌체험교실", - "value": "true", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)" - }, - "6": { - "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "한산해안갯벌체험교실", - "value": "Center", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)" - }, - "7": { - "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "한산해안갯벌체험교실", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)" - }, - "8": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "갯", - "value": { - "Height": 2800, - "Width": 2800 - }, - "tolerance": 200, - "points": 1, - "category": "TwoLineSize", - "item": "어/① 모양 (2줄)" - }, - "9": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "갯", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "어/② 글씨체 (굴림)" - }, - "10": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "갯", - "value": "219,207,102", - "points": 2, - "category": "Color", - "item": "어/③ 면색 : 색상(RGB:219,207,102)" - }, - "11": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "갯", - "value": "3.0", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "어/④ 본문과의 간격 : 3.0mm" - }, - "12": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "한산해안 갯벌체험 교실", - "value": "BOLD", - "points": 2, - "category": "FontAttribute", - "item": "문구 (한산해안 갯벌체험 교실)/① BOLD" - }, - "13": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "한산해안 갯벌체험 교실", - "value": "ITALIC", - "points": 2, - "category": "FontAttribute", - "item": "문구 (한산해안 갯벌체험 교실)/② ITALIC" - }, - "14": { - "path": "//CHAR[contains(string(.),'{char1}')]/text()", - "path2": "//CHAR[contains(string(.),'{char2}')]/text()", - "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "≪", - "char2": "≫", - "char3": "※", - "value": 3, - "points": 3, - "category": "SpecialChar", - "item": "① ≪, ② ≫, ③ ※" - }, - "15": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "행사안내", - "value": "돋움", - "points": 1, - "category": "FontName", - "item": "문구 (≪ 행사안내 ≫)/① 글씨체 (돋움)" - }, - "16": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "행사안내", - "value": "Center", - "points": 1, - "category": "Align", - "item": "문구 (≪ 행사안내 ≫)/② 정렬 (가운데 정렬)" - }, - "17": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/① BOLD" - }, - "18": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/② UNDERLINE" - }, - "19": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", - "searchValue": "신청안내", - "value": { - "Left": 10, - "Indent": 12 - }, - "points": 2, - "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)", - "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" - }, - "20": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 12. 11.", - "value": "1400", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 11.)/① 크기 (1400)", - "desc": "1pt당 100" - }, - "21": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 12. 11.", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "한산시청해양자원육성과", - "value": "견고딕", - "points": 1, - "category": "FontName", - "item": "문구 (한산시청해양자원육성과)/① 글씨체 (견고딕)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "한산시청해양자원육성과", - "value": "2200", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산시청해양자원육성과)/② 크기 (2200)" - }, - "24": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "한산시청해양자원육성과", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산시청해양자원육성과)/③ 정렬 (가운데 정렬)" - }, - "25": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "DIAT", - "value": "돋움체", - "points": 1, - "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (돋움체)" - }, - "26": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "DIAT", - "value": "900", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/② 크기 (9pt)" - }, - "27": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "searchValue": "DIAT", - "value": "Right", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" - }, - "28": { - "path": "//PAGENUM/@FormatType", - "value": "DecagonCircle", - "points": 2, - "category": "PageNumber", - "item": "① 쪽 번호 매기기 (A,B,C 순으로)", - "desc1": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - }, - "desc2": "1, 2페이지 모두 정답이어야 점수 부여" - }, - "29": { - "path": "//PAGENUM/@Pos", - "value": "BottomCenter", - "points": 2, - "category": "PageNumber", - "item": "가운데 아래", - "desc": "1, 2페이지 모두 정답이어야 점수 부여", - "desc2": { - "가운데 아래": "BottomCenter", - "오른쪽 아래": "BottomRight", - "왼쪽 아래": "BottomLeft" - } - }, - "30": { - "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "200", - "first_word": "갯", - "points": 2, - "category": "LineSpacing", - "item": "문제 1 줄간격 200% 설정", - "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." - } - }, - "2": { - "1": { - "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": "PageBorder", - "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" - }, - "2": { - "path": "count(//SECTION)>1", - "value": true, - "points": 3, - "category": "Boolean", - "item": "① 구역나누기", - "desc": "섹션이 1개 이상이면 점수부여" - }, - "3": { - "path": "./TEXT/COLDEF/@Count", - "value": "2", - "points": 3, - "category": "TwoColumn", - "item": "② 다단 2단" - }, - "4": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "60", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (살아있는 갯벌)/① 크기-너비 (60 mm)" - }, - "5": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "value": "12", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (살아있는 갯벌)/② 크기-높이 (12 mm)" - }, - "6": { - "path": "//RECTANGLE//LINESHAPE", - "value": { - "Style": "DoubleSlim", - "Width": "283" - }, - "points": 2, - "category": "Rectangle.LineShape", - "item": "문구 (살아있는 갯벌)/③ 테두리 : 이중 실선(1.00mm)", - "desc": "1mm = 283pt value['Width']에 pt값 입력" - }, - "7": { - "path": "//RECTANGLE/@Ratio", - "value": "50", - "points": 2, - "category": "Rectangle.OneAnswer", - "item": "문구 (살아있는 갯벌)/④ 글상자 모서리 (반원)", - "desc": "모서리 비율 반원:50 / 둥근모양:20" - }, - "8": { - "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "249,173,168", - "points": 2, - "category": "Rectangle.Color", - "item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)" - }, - "9": { - "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "value": "true", - "points": 1, - "category": "Rectangle.OneAnswer", - "item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)" - }, - "10": { - "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)" - }, - "11": { - "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "굴림체", - "points": 1, - "category": "Rectangle.FontName", - "item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)" - }, - "12": { - "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "1700", - "points": 1, - "category": "Rectangle.FontSize", - "item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)", - "desc": "1pt당 100" - }, - "13": { - "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)" - }, - "14": { - "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", - "value": true, - "points": 2, - "category": "Boolean", - "item": "① 파일명 \"그림A.jpg\" 삽입", - "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" - }, - "15": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "② 크기-너비 (80 mm)" - }, - "16": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", - "value": "40", - "points": 2, - "category": "mmSize", - "item": "③ 크기-높이 (40 mm)" - }, - "17": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", - "value": "0", - "points": 2, - "category": "mmSize", - "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" - }, - "18": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "23", - "points": 2, - "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)" - }, - "19": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 갯벌의 가치", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)" - }, - "20": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 갯벌의 가치", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구① (1. 갯벌의 가치)/② 크기 (1200)" - }, - "21": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 갯벌의 가치", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구① (1. 갯벌의 가치)/③ 진하게" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 우리나라의 갯벌", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구② (2. 우리나라의 갯벌)/① 글씨체 (중고딕)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 우리나라의 갯벌", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구② (2. 우리나라의 갯벌)/② 크기 (1200)" - }, - "24": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 우리나라의 갯벌", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구② (2. 우리나라의 갯벌)/③ 진하게" - }, - "25": { - "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", - "item": "문구 (리아스식 해안)/① 각주 설정 및 문구 입력" - }, - "26": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "돋움체", - "points": 1, - "category": "FontName", - "item": "문구 (리아스식 해안)/② 글씨체 (돋움체)" - }, - "27": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "문구 (리아스식 해안)/③ 크기 (9pt)" - }, - "28": { - "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "CircledLatinSmall", - "points": 2, - "category": "OneAnswer", - "item": "문구 (전당)/④ 각주 번호모양", - "desc": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - } - }, - "29": { - "path": "boolean(//CHAR[contains(text(),'Microorganism')])", - "ignoreWord": "Microorganism", - "value": true, - "points": 3, - "category": "Boolean", - "item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점", - "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" - }, - "30": { - "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", - "word": [ - ["조수", "潮水"], - ["유기물", "有機物"], - ["정화", "淨化"], - ["조수", "潮水"], - ["분포", "分布"] - ], - "value": 10, - "points": 10, - "category": "Hanja", - "item": "① 조수(潮水), ② 유기물(有機物), ③ 정화(淨化), ④ 조수(潮水), ⑤ 분포(分布)" - }, - "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'급이원활')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…산소공급은 원활하고…)>'은' → '이' 글자바꿈" - }, - "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면이바다')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈" - }, - "33": { - "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/① 글씨체 (굴림)" - }, - "34": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "1100", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/② 크기 (1100)" - }, - "35": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/③ 진하게" - }, - "36": { - "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)" - }, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "154,235,85", - "points": 2, - "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:154,235,85)" - }, - "38": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", - "value": "BOLD", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", - "value": "DoubleSlim", - "points": 2, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", - "value": "0.5mm", - "points": 2, - "category": "TableAnswer", - "item": "제목 셀 아래선/② 0.5mm" - }, - "41": { - "path": "//TABLE//TEXT/@CharShape", - "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "궁서", - "points": 1, - "category": "TableFontName", - "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (궁서)", - "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" - }, - "42": { - "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", - "value": "1000", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/② 크기 (1000)" - }, - "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", - "value": "Center", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/③ 정렬 (가운데 정렬)" - }, - "44": { - "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": "Boolean", - "item": "블록 계산식/합계", - "desc": "option값에 합계는 SUM / 평균은 AVG" - }, - "45": { - "chart_xpath": "", - "chart_type": "원뿔형 누적 가로 막대형", - "value": true, - "points": 2, - "category": "ChartType", - "item": "① 종류 (원뿔형 누적 가로 막대형)", - "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" - }, - "46": { - "chart_xpath": "//c:valAx/c:majorTickMark/@val", - "value": "out", - "points": 2, - "category": "ChartOneAnswer", - "item": "② 값 축 주 눈금선", - "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" - }, - "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "③ 크기-너비 (80 mm)" - }, - "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "90", - "points": 2, - "category": "mmSize", - "item": "④ 크기-높이 (90 mm)" - }, - "49": { - "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", - "value": true, - "points": 2, - "category": "Boolean", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", - "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" - }, - "50": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "지역별 갯벌 면적", - "value": "궁서체", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/① 글씨체 (궁서체)" - }, - "51": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "지역별 갯벌 면적", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)" - }, - "52": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", - "option": "i", - "searchValue": "지역별 갯벌 면적", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "53": { - "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/① 글꼴 (돋움)" - }, - "54": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/② 크기 (9pt)" - }, - "55": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "56": { - "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/① 글꼴 (돋움)" - }, - "57": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/② 크기 (9pt)" - }, - "58": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "59": { - "chart_xpath": "//c:legend//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "OneAnswer", - "item": "범례/① 글꼴 (돋움)" - }, - "60": { - "chart_xpath": "//c:legend//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "범례/② 크기 (9pt)" - }, - "61": { - "chart_xpath": "//c:legend//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "범례/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - } - } -} diff --git a/회차별채점자료/2512_3/DIW_2512_3A.hwpx b/회차별채점자료/2512_3/DIW_2512_3A.hwpx deleted file mode 100644 index 9021e33..0000000 Binary files a/회차별채점자료/2512_3/DIW_2512_3A.hwpx and /dev/null differ diff --git a/회차별채점자료/2512_3/DIW_2512_3A.json b/회차별채점자료/2512_3/DIW_2512_3A.json deleted file mode 100644 index fa44a90..0000000 --- a/회차별채점자료/2512_3/DIW_2512_3A.json +++ /dev/null @@ -1,841 +0,0 @@ -{ - "0": { - "0": { - "path": "", - "path2": "", - "points": 0, - "category": "파일저장", - "item": "파일명 (수검번호.hwp/hwpx)" - }, - "1": { - "path": "//PAGEMARGIN", - "value": { - "Top": 20, - "Bottom": 20, - "Left": 20, - "Right": 20, - "Header": 10, - "Footer": 10, - "Gutter": 0 - }, - "tolerance": 1, - "points": 4, - "category": "PageSetting", - "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" - }, - "2": { - "path": "", - "value": { - "FontName": "바탕", - "FontSize": "1000", - "Alignment": "Justify", - "LineSpacing": "160" - }, - "points": 4, - "category": "BasicSetting", - "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" - }, - "3": { - "path": "", - "value": null, - "points": 40, - "category": "오타감점", - "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" - } - }, - "1": { - "1": { - "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "한산해안갯벌체험교실", - "value": "견고딕", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)" - }, - "2": { - "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "한산해안갯벌체험교실", - "value": "51,69,153", - "points": 2, - "category": "Color", - "item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)" - }, - "3": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "한산해안갯벌체험교실", - "value": "110", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)" - }, - "4": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "한산해안갯벌체험교실", - "value": "20", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)" - }, - "5": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "한산해안갯벌체험교실", - "value": "true", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)" - }, - "6": { - "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "한산해안갯벌체험교실", - "value": "Center", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)" - }, - "7": { - "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "한산해안갯벌체험교실", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)" - }, - "8": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "갯", - "value": { - "Height": 2800, - "Width": 2800 - }, - "tolerance": 200, - "points": 1, - "category": "TwoLineSize", - "item": "어/① 모양 (2줄)" - }, - "9": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "갯", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "어/② 글씨체 (굴림)" - }, - "10": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "갯", - "value": "219,207,102", - "points": 2, - "category": "Color", - "item": "어/③ 면색 : 색상(RGB:219,207,102)" - }, - "11": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "갯", - "value": "3.0", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "어/④ 본문과의 간격 : 3.0mm" - }, - "12": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "한산해안 갯벌체험 교실", - "value": "BOLD", - "points": 2, - "category": "FontAttribute", - "item": "문구 (한산해안 갯벌체험 교실)/① BOLD" - }, - "13": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "한산해안 갯벌체험 교실", - "value": "ITALIC", - "points": 2, - "category": "FontAttribute", - "item": "문구 (한산해안 갯벌체험 교실)/② ITALIC" - }, - "14": { - "path": "//CHAR[contains(string(.),'{char1}')]/text()", - "path2": "//CHAR[contains(string(.),'{char2}')]/text()", - "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "≪", - "char2": "≫", - "char3": "※", - "value": 3, - "points": 3, - "category": "SpecialChar", - "item": "① ≪, ② ≫, ③ ※" - }, - "15": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "행사안내", - "value": "돋움", - "points": 1, - "category": "FontName", - "item": "문구 (≪ 행사안내 ≫)/① 글씨체 (돋움)" - }, - "16": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "행사안내", - "value": "Center", - "points": 1, - "category": "Align", - "item": "문구 (≪ 행사안내 ≫)/② 정렬 (가운데 정렬)" - }, - "17": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/① BOLD" - }, - "18": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/② UNDERLINE" - }, - "19": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", - "searchValue": "신청안내", - "value": { - "Left": 10, - "Indent": 12 - }, - "points": 2, - "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)", - "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" - }, - "20": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 12. 11.", - "value": "1400", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 11.)/① 크기 (1400)", - "desc": "1pt당 100" - }, - "21": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 12. 11.", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "한산시청해양자원육성과", - "value": "견고딕", - "points": 1, - "category": "FontName", - "item": "문구 (한산시청해양자원육성과)/① 글씨체 (견고딕)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "한산시청해양자원육성과", - "value": "2200", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산시청해양자원육성과)/② 크기 (2200)" - }, - "24": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "한산시청해양자원육성과", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산시청해양자원육성과)/③ 정렬 (가운데 정렬)" - }, - "25": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "DIAT", - "value": "돋움체", - "points": 1, - "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (돋움체)" - }, - "26": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "DIAT", - "value": "900", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/② 크기 (9pt)" - }, - "27": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "searchValue": "DIAT", - "value": "Right", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" - }, - "28": { - "path": "//PAGENUM/@FormatType", - "value": "DecagonCircle", - "points": 2, - "category": "PageNumber", - "item": "① 쪽 번호 매기기 (A,B,C 순으로)", - "desc1": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - }, - "desc2": "1, 2페이지 모두 정답이어야 점수 부여" - }, - "29": { - "path": "//PAGENUM/@Pos", - "value": "BottomCenter", - "points": 2, - "category": "PageNumber", - "item": "가운데 아래", - "desc": "1, 2페이지 모두 정답이어야 점수 부여", - "desc2": { - "가운데 아래": "BottomCenter", - "오른쪽 아래": "BottomRight", - "왼쪽 아래": "BottomLeft" - } - }, - "30": { - "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "200", - "first_word": "갯", - "points": 2, - "category": "LineSpacing", - "item": "문제 1 줄간격 200% 설정", - "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." - } - }, - "2": { - "1": { - "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": "PageBorder", - "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" - }, - "2": { - "path": "count(//SECTION)>1", - "value": true, - "points": 3, - "category": "Boolean", - "item": "① 구역나누기", - "desc": "섹션이 1개 이상이면 점수부여" - }, - "3": { - "path": "./TEXT/COLDEF/@Count", - "value": "2", - "points": 3, - "category": "TwoColumn", - "item": "② 다단 2단" - }, - "4": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "60", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (살아있는 갯벌)/① 크기-너비 (60 mm)" - }, - "5": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "value": "12", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (살아있는 갯벌)/② 크기-높이 (12 mm)" - }, - "6": { - "path": "//RECTANGLE//LINESHAPE", - "value": { - "Style": "DoubleSlim", - "Width": "283" - }, - "points": 2, - "category": "Rectangle.LineShape", - "item": "문구 (살아있는 갯벌)/③ 테두리 : 이중 실선(1.00mm)", - "desc": "1mm = 283pt value['Width']에 pt값 입력" - }, - "7": { - "path": "//RECTANGLE/@Ratio", - "value": "50", - "points": 2, - "category": "Rectangle.OneAnswer", - "item": "문구 (살아있는 갯벌)/④ 글상자 모서리 (반원)", - "desc": "모서리 비율 반원:50 / 둥근모양:20" - }, - "8": { - "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "249,173,168", - "points": 2, - "category": "Rectangle.Color", - "item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)" - }, - "9": { - "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "value": "true", - "points": 1, - "category": "Rectangle.OneAnswer", - "item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)" - }, - "10": { - "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)" - }, - "11": { - "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "굴림체", - "points": 1, - "category": "Rectangle.FontName", - "item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)" - }, - "12": { - "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "1700", - "points": 1, - "category": "Rectangle.FontSize", - "item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)", - "desc": "1pt당 100" - }, - "13": { - "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)" - }, - "14": { - "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", - "value": true, - "points": 2, - "category": "Boolean", - "item": "① 파일명 \"그림A.jpg\" 삽입", - "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" - }, - "15": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "② 크기-너비 (80 mm)" - }, - "16": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", - "value": "40", - "points": 2, - "category": "mmSize", - "item": "③ 크기-높이 (40 mm)" - }, - "17": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", - "value": "0", - "points": 2, - "category": "mmSize", - "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" - }, - "18": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "23", - "points": 2, - "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)" - }, - "19": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 갯벌의 가치", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)" - }, - "20": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 갯벌의 가치", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구① (1. 갯벌의 가치)/② 크기 (1200)" - }, - "21": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 갯벌의 가치", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구① (1. 갯벌의 가치)/③ 진하게" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 우리나라의 갯벌", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구② (2. 우리나라의 갯벌)/① 글씨체 (중고딕)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 우리나라의 갯벌", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구② (2. 우리나라의 갯벌)/② 크기 (1200)" - }, - "24": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 우리나라의 갯벌", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구② (2. 우리나라의 갯벌)/③ 진하게" - }, - "25": { - "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", - "item": "문구 (리아스식 해안)/① 각주 설정 및 문구 입력" - }, - "26": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "돋움체", - "points": 1, - "category": "FontName", - "item": "문구 (리아스식 해안)/② 글씨체 (돋움체)" - }, - "27": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "문구 (리아스식 해안)/③ 크기 (9pt)" - }, - "28": { - "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "CircledLatinSmall", - "points": 2, - "category": "OneAnswer", - "item": "문구 (전당)/④ 각주 번호모양", - "desc": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - } - }, - "29": { - "path": "boolean(//CHAR[contains(text(),'Microorganism')])", - "ignoreWord": "Microorganism", - "value": true, - "points": 3, - "category": "Boolean", - "item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점", - "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" - }, - "30": { - "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", - "word": [ - ["조수", "潮水"], - ["유기물", "有機物"], - ["정화", "淨化"], - ["조수", "潮水"], - ["분포", "分布"] - ], - "value": 10, - "points": 10, - "category": "Hanja", - "item": "① 조수(潮水), ② 유기물(有機物), ③ 정화(淨化), ④ 조수(潮水), ⑤ 분포(分布)" - }, - "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'급이원활')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…산소공급은 원활하고…)>'은' → '이' 글자바꿈" - }, - "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면이바다')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈" - }, - "33": { - "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/① 글씨체 (굴림)" - }, - "34": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "1100", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/② 크기 (1100)" - }, - "35": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/③ 진하게" - }, - "36": { - "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)" - }, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "154,235,85", - "points": 2, - "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:154,235,85)" - }, - "38": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", - "value": "BOLD", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", - "value": "DoubleSlim", - "points": 2, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", - "value": "0.5mm", - "points": 2, - "category": "TableAnswer", - "item": "제목 셀 아래선/② 0.5mm" - }, - "41": { - "path": "//TABLE//TEXT/@CharShape", - "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "궁서", - "points": 1, - "category": "TableFontName", - "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (궁서)", - "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" - }, - "42": { - "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", - "value": "1000", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/② 크기 (1000)" - }, - "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", - "value": "Center", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/③ 정렬 (가운데 정렬)" - }, - "44": { - "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": "Boolean", - "item": "블록 계산식/합계", - "desc": "option값에 합계는 SUM / 평균은 AVG" - }, - "45": { - "chart_xpath": "", - "chart_type": "원뿔형 누적 가로 막대형", - "value": true, - "points": 2, - "category": "ChartType", - "item": "① 종류 (원뿔형 누적 가로 막대형)", - "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" - }, - "46": { - "chart_xpath": "//c:valAx/c:majorTickMark/@val", - "value": "out", - "points": 2, - "category": "ChartOneAnswer", - "item": "② 값 축 주 눈금선", - "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" - }, - "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "③ 크기-너비 (80 mm)" - }, - "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "90", - "points": 2, - "category": "mmSize", - "item": "④ 크기-높이 (90 mm)" - }, - "49": { - "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", - "value": true, - "points": 2, - "category": "Boolean", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", - "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" - }, - "50": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "지역별 갯벌 면적", - "value": "궁서체", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/① 글씨체 (궁서체)" - }, - "51": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "지역별 갯벌 면적", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)" - }, - "52": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", - "option": "i", - "searchValue": "지역별 갯벌 면적", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "53": { - "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/① 글꼴 (돋움)" - }, - "54": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/② 크기 (9pt)" - }, - "55": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "56": { - "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/① 글꼴 (돋움)" - }, - "57": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/② 크기 (9pt)" - }, - "58": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "59": { - "chart_xpath": "//c:legend//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "OneAnswer", - "item": "범례/① 글꼴 (돋움)" - }, - "60": { - "chart_xpath": "//c:legend//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "범례/② 크기 (9pt)" - }, - "61": { - "chart_xpath": "//c:legend//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "범례/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - } - } -} diff --git a/회차별채점자료/2512_3/DIW_2512_3A_문제.hwpx b/회차별채점자료/2512_3/DIW_2512_3A_문제.hwpx deleted file mode 100644 index 5d0b1be..0000000 Binary files a/회차별채점자료/2512_3/DIW_2512_3A_문제.hwpx and /dev/null differ diff --git a/회차별채점자료/2512_3/DIW_2512_3A_채점기준표.xlsx b/회차별채점자료/2512_3/DIW_2512_3A_채점기준표.xlsx deleted file mode 100644 index 8665a2c..0000000 Binary files a/회차별채점자료/2512_3/DIW_2512_3A_채점기준표.xlsx and /dev/null differ diff --git a/회차별채점자료/2512_4/251219_DIW_2512_4A_채점결과.xlsx b/회차별채점자료/2512_4/251219_DIW_2512_4A_채점결과.xlsx deleted file mode 100644 index af6d685..0000000 Binary files a/회차별채점자료/2512_4/251219_DIW_2512_4A_채점결과.xlsx and /dev/null differ diff --git a/회차별채점자료/2512_4/DIW_2512_4A copy.json b/회차별채점자료/2512_4/DIW_2512_4A copy.json deleted file mode 100644 index fa44a90..0000000 --- a/회차별채점자료/2512_4/DIW_2512_4A copy.json +++ /dev/null @@ -1,841 +0,0 @@ -{ - "0": { - "0": { - "path": "", - "path2": "", - "points": 0, - "category": "파일저장", - "item": "파일명 (수검번호.hwp/hwpx)" - }, - "1": { - "path": "//PAGEMARGIN", - "value": { - "Top": 20, - "Bottom": 20, - "Left": 20, - "Right": 20, - "Header": 10, - "Footer": 10, - "Gutter": 0 - }, - "tolerance": 1, - "points": 4, - "category": "PageSetting", - "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" - }, - "2": { - "path": "", - "value": { - "FontName": "바탕", - "FontSize": "1000", - "Alignment": "Justify", - "LineSpacing": "160" - }, - "points": 4, - "category": "BasicSetting", - "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" - }, - "3": { - "path": "", - "value": null, - "points": 40, - "category": "오타감점", - "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" - } - }, - "1": { - "1": { - "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "한산해안갯벌체험교실", - "value": "견고딕", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)" - }, - "2": { - "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "한산해안갯벌체험교실", - "value": "51,69,153", - "points": 2, - "category": "Color", - "item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)" - }, - "3": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "한산해안갯벌체험교실", - "value": "110", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)" - }, - "4": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "한산해안갯벌체험교실", - "value": "20", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)" - }, - "5": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "한산해안갯벌체험교실", - "value": "true", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)" - }, - "6": { - "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "한산해안갯벌체험교실", - "value": "Center", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)" - }, - "7": { - "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "한산해안갯벌체험교실", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)" - }, - "8": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "갯", - "value": { - "Height": 2800, - "Width": 2800 - }, - "tolerance": 200, - "points": 1, - "category": "TwoLineSize", - "item": "어/① 모양 (2줄)" - }, - "9": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "갯", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "어/② 글씨체 (굴림)" - }, - "10": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "갯", - "value": "219,207,102", - "points": 2, - "category": "Color", - "item": "어/③ 면색 : 색상(RGB:219,207,102)" - }, - "11": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "갯", - "value": "3.0", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "어/④ 본문과의 간격 : 3.0mm" - }, - "12": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "한산해안 갯벌체험 교실", - "value": "BOLD", - "points": 2, - "category": "FontAttribute", - "item": "문구 (한산해안 갯벌체험 교실)/① BOLD" - }, - "13": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "한산해안 갯벌체험 교실", - "value": "ITALIC", - "points": 2, - "category": "FontAttribute", - "item": "문구 (한산해안 갯벌체험 교실)/② ITALIC" - }, - "14": { - "path": "//CHAR[contains(string(.),'{char1}')]/text()", - "path2": "//CHAR[contains(string(.),'{char2}')]/text()", - "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "≪", - "char2": "≫", - "char3": "※", - "value": 3, - "points": 3, - "category": "SpecialChar", - "item": "① ≪, ② ≫, ③ ※" - }, - "15": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "행사안내", - "value": "돋움", - "points": 1, - "category": "FontName", - "item": "문구 (≪ 행사안내 ≫)/① 글씨체 (돋움)" - }, - "16": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "행사안내", - "value": "Center", - "points": 1, - "category": "Align", - "item": "문구 (≪ 행사안내 ≫)/② 정렬 (가운데 정렬)" - }, - "17": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/① BOLD" - }, - "18": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/② UNDERLINE" - }, - "19": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", - "searchValue": "신청안내", - "value": { - "Left": 10, - "Indent": 12 - }, - "points": 2, - "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)", - "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" - }, - "20": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 12. 11.", - "value": "1400", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 11.)/① 크기 (1400)", - "desc": "1pt당 100" - }, - "21": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 12. 11.", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "한산시청해양자원육성과", - "value": "견고딕", - "points": 1, - "category": "FontName", - "item": "문구 (한산시청해양자원육성과)/① 글씨체 (견고딕)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "한산시청해양자원육성과", - "value": "2200", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산시청해양자원육성과)/② 크기 (2200)" - }, - "24": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "한산시청해양자원육성과", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산시청해양자원육성과)/③ 정렬 (가운데 정렬)" - }, - "25": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "DIAT", - "value": "돋움체", - "points": 1, - "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (돋움체)" - }, - "26": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "DIAT", - "value": "900", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/② 크기 (9pt)" - }, - "27": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "searchValue": "DIAT", - "value": "Right", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" - }, - "28": { - "path": "//PAGENUM/@FormatType", - "value": "DecagonCircle", - "points": 2, - "category": "PageNumber", - "item": "① 쪽 번호 매기기 (A,B,C 순으로)", - "desc1": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - }, - "desc2": "1, 2페이지 모두 정답이어야 점수 부여" - }, - "29": { - "path": "//PAGENUM/@Pos", - "value": "BottomCenter", - "points": 2, - "category": "PageNumber", - "item": "가운데 아래", - "desc": "1, 2페이지 모두 정답이어야 점수 부여", - "desc2": { - "가운데 아래": "BottomCenter", - "오른쪽 아래": "BottomRight", - "왼쪽 아래": "BottomLeft" - } - }, - "30": { - "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "200", - "first_word": "갯", - "points": 2, - "category": "LineSpacing", - "item": "문제 1 줄간격 200% 설정", - "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." - } - }, - "2": { - "1": { - "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": "PageBorder", - "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" - }, - "2": { - "path": "count(//SECTION)>1", - "value": true, - "points": 3, - "category": "Boolean", - "item": "① 구역나누기", - "desc": "섹션이 1개 이상이면 점수부여" - }, - "3": { - "path": "./TEXT/COLDEF/@Count", - "value": "2", - "points": 3, - "category": "TwoColumn", - "item": "② 다단 2단" - }, - "4": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "60", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (살아있는 갯벌)/① 크기-너비 (60 mm)" - }, - "5": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "value": "12", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (살아있는 갯벌)/② 크기-높이 (12 mm)" - }, - "6": { - "path": "//RECTANGLE//LINESHAPE", - "value": { - "Style": "DoubleSlim", - "Width": "283" - }, - "points": 2, - "category": "Rectangle.LineShape", - "item": "문구 (살아있는 갯벌)/③ 테두리 : 이중 실선(1.00mm)", - "desc": "1mm = 283pt value['Width']에 pt값 입력" - }, - "7": { - "path": "//RECTANGLE/@Ratio", - "value": "50", - "points": 2, - "category": "Rectangle.OneAnswer", - "item": "문구 (살아있는 갯벌)/④ 글상자 모서리 (반원)", - "desc": "모서리 비율 반원:50 / 둥근모양:20" - }, - "8": { - "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "249,173,168", - "points": 2, - "category": "Rectangle.Color", - "item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)" - }, - "9": { - "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "value": "true", - "points": 1, - "category": "Rectangle.OneAnswer", - "item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)" - }, - "10": { - "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)" - }, - "11": { - "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "굴림체", - "points": 1, - "category": "Rectangle.FontName", - "item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)" - }, - "12": { - "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "1700", - "points": 1, - "category": "Rectangle.FontSize", - "item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)", - "desc": "1pt당 100" - }, - "13": { - "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)" - }, - "14": { - "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", - "value": true, - "points": 2, - "category": "Boolean", - "item": "① 파일명 \"그림A.jpg\" 삽입", - "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" - }, - "15": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "② 크기-너비 (80 mm)" - }, - "16": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", - "value": "40", - "points": 2, - "category": "mmSize", - "item": "③ 크기-높이 (40 mm)" - }, - "17": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", - "value": "0", - "points": 2, - "category": "mmSize", - "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" - }, - "18": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "23", - "points": 2, - "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)" - }, - "19": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 갯벌의 가치", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)" - }, - "20": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 갯벌의 가치", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구① (1. 갯벌의 가치)/② 크기 (1200)" - }, - "21": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 갯벌의 가치", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구① (1. 갯벌의 가치)/③ 진하게" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 우리나라의 갯벌", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구② (2. 우리나라의 갯벌)/① 글씨체 (중고딕)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 우리나라의 갯벌", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구② (2. 우리나라의 갯벌)/② 크기 (1200)" - }, - "24": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 우리나라의 갯벌", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구② (2. 우리나라의 갯벌)/③ 진하게" - }, - "25": { - "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", - "item": "문구 (리아스식 해안)/① 각주 설정 및 문구 입력" - }, - "26": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "돋움체", - "points": 1, - "category": "FontName", - "item": "문구 (리아스식 해안)/② 글씨체 (돋움체)" - }, - "27": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "문구 (리아스식 해안)/③ 크기 (9pt)" - }, - "28": { - "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "CircledLatinSmall", - "points": 2, - "category": "OneAnswer", - "item": "문구 (전당)/④ 각주 번호모양", - "desc": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - } - }, - "29": { - "path": "boolean(//CHAR[contains(text(),'Microorganism')])", - "ignoreWord": "Microorganism", - "value": true, - "points": 3, - "category": "Boolean", - "item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점", - "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" - }, - "30": { - "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", - "word": [ - ["조수", "潮水"], - ["유기물", "有機物"], - ["정화", "淨化"], - ["조수", "潮水"], - ["분포", "分布"] - ], - "value": 10, - "points": 10, - "category": "Hanja", - "item": "① 조수(潮水), ② 유기물(有機物), ③ 정화(淨化), ④ 조수(潮水), ⑤ 분포(分布)" - }, - "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'급이원활')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…산소공급은 원활하고…)>'은' → '이' 글자바꿈" - }, - "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면이바다')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈" - }, - "33": { - "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/① 글씨체 (굴림)" - }, - "34": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "1100", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/② 크기 (1100)" - }, - "35": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/③ 진하게" - }, - "36": { - "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)" - }, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "154,235,85", - "points": 2, - "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:154,235,85)" - }, - "38": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", - "value": "BOLD", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", - "value": "DoubleSlim", - "points": 2, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", - "value": "0.5mm", - "points": 2, - "category": "TableAnswer", - "item": "제목 셀 아래선/② 0.5mm" - }, - "41": { - "path": "//TABLE//TEXT/@CharShape", - "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "궁서", - "points": 1, - "category": "TableFontName", - "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (궁서)", - "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" - }, - "42": { - "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", - "value": "1000", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/② 크기 (1000)" - }, - "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", - "value": "Center", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/③ 정렬 (가운데 정렬)" - }, - "44": { - "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": "Boolean", - "item": "블록 계산식/합계", - "desc": "option값에 합계는 SUM / 평균은 AVG" - }, - "45": { - "chart_xpath": "", - "chart_type": "원뿔형 누적 가로 막대형", - "value": true, - "points": 2, - "category": "ChartType", - "item": "① 종류 (원뿔형 누적 가로 막대형)", - "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" - }, - "46": { - "chart_xpath": "//c:valAx/c:majorTickMark/@val", - "value": "out", - "points": 2, - "category": "ChartOneAnswer", - "item": "② 값 축 주 눈금선", - "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" - }, - "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "③ 크기-너비 (80 mm)" - }, - "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "90", - "points": 2, - "category": "mmSize", - "item": "④ 크기-높이 (90 mm)" - }, - "49": { - "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", - "value": true, - "points": 2, - "category": "Boolean", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", - "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" - }, - "50": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "지역별 갯벌 면적", - "value": "궁서체", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/① 글씨체 (궁서체)" - }, - "51": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "지역별 갯벌 면적", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)" - }, - "52": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", - "option": "i", - "searchValue": "지역별 갯벌 면적", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "53": { - "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/① 글꼴 (돋움)" - }, - "54": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/② 크기 (9pt)" - }, - "55": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "56": { - "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/① 글꼴 (돋움)" - }, - "57": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/② 크기 (9pt)" - }, - "58": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "59": { - "chart_xpath": "//c:legend//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "OneAnswer", - "item": "범례/① 글꼴 (돋움)" - }, - "60": { - "chart_xpath": "//c:legend//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "범례/② 크기 (9pt)" - }, - "61": { - "chart_xpath": "//c:legend//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "범례/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - } - } -} diff --git a/회차별채점자료/2512_4/DIW_2512_4A.hwpx b/회차별채점자료/2512_4/DIW_2512_4A.hwpx deleted file mode 100644 index 9021e33..0000000 Binary files a/회차별채점자료/2512_4/DIW_2512_4A.hwpx and /dev/null differ diff --git a/회차별채점자료/2512_4/DIW_2512_4A.json b/회차별채점자료/2512_4/DIW_2512_4A.json deleted file mode 100644 index fa44a90..0000000 --- a/회차별채점자료/2512_4/DIW_2512_4A.json +++ /dev/null @@ -1,841 +0,0 @@ -{ - "0": { - "0": { - "path": "", - "path2": "", - "points": 0, - "category": "파일저장", - "item": "파일명 (수검번호.hwp/hwpx)" - }, - "1": { - "path": "//PAGEMARGIN", - "value": { - "Top": 20, - "Bottom": 20, - "Left": 20, - "Right": 20, - "Header": 10, - "Footer": 10, - "Gutter": 0 - }, - "tolerance": 1, - "points": 4, - "category": "PageSetting", - "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" - }, - "2": { - "path": "", - "value": { - "FontName": "바탕", - "FontSize": "1000", - "Alignment": "Justify", - "LineSpacing": "160" - }, - "points": 4, - "category": "BasicSetting", - "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" - }, - "3": { - "path": "", - "value": null, - "points": 40, - "category": "오타감점", - "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" - } - }, - "1": { - "1": { - "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "한산해안갯벌체험교실", - "value": "견고딕", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)" - }, - "2": { - "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "한산해안갯벌체험교실", - "value": "51,69,153", - "points": 2, - "category": "Color", - "item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)" - }, - "3": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "한산해안갯벌체험교실", - "value": "110", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)" - }, - "4": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "한산해안갯벌체험교실", - "value": "20", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)" - }, - "5": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "한산해안갯벌체험교실", - "value": "true", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)" - }, - "6": { - "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "한산해안갯벌체험교실", - "value": "Center", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)" - }, - "7": { - "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "한산해안갯벌체험교실", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)" - }, - "8": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "갯", - "value": { - "Height": 2800, - "Width": 2800 - }, - "tolerance": 200, - "points": 1, - "category": "TwoLineSize", - "item": "어/① 모양 (2줄)" - }, - "9": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "갯", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "어/② 글씨체 (굴림)" - }, - "10": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "갯", - "value": "219,207,102", - "points": 2, - "category": "Color", - "item": "어/③ 면색 : 색상(RGB:219,207,102)" - }, - "11": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "갯", - "value": "3.0", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "어/④ 본문과의 간격 : 3.0mm" - }, - "12": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "한산해안 갯벌체험 교실", - "value": "BOLD", - "points": 2, - "category": "FontAttribute", - "item": "문구 (한산해안 갯벌체험 교실)/① BOLD" - }, - "13": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "한산해안 갯벌체험 교실", - "value": "ITALIC", - "points": 2, - "category": "FontAttribute", - "item": "문구 (한산해안 갯벌체험 교실)/② ITALIC" - }, - "14": { - "path": "//CHAR[contains(string(.),'{char1}')]/text()", - "path2": "//CHAR[contains(string(.),'{char2}')]/text()", - "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "≪", - "char2": "≫", - "char3": "※", - "value": 3, - "points": 3, - "category": "SpecialChar", - "item": "① ≪, ② ≫, ③ ※" - }, - "15": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "행사안내", - "value": "돋움", - "points": 1, - "category": "FontName", - "item": "문구 (≪ 행사안내 ≫)/① 글씨체 (돋움)" - }, - "16": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "행사안내", - "value": "Center", - "points": 1, - "category": "Align", - "item": "문구 (≪ 행사안내 ≫)/② 정렬 (가운데 정렬)" - }, - "17": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/① BOLD" - }, - "18": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/② UNDERLINE" - }, - "19": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", - "searchValue": "신청안내", - "value": { - "Left": 10, - "Indent": 12 - }, - "points": 2, - "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)", - "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" - }, - "20": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 12. 11.", - "value": "1400", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 11.)/① 크기 (1400)", - "desc": "1pt당 100" - }, - "21": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 12. 11.", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "한산시청해양자원육성과", - "value": "견고딕", - "points": 1, - "category": "FontName", - "item": "문구 (한산시청해양자원육성과)/① 글씨체 (견고딕)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "한산시청해양자원육성과", - "value": "2200", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산시청해양자원육성과)/② 크기 (2200)" - }, - "24": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "한산시청해양자원육성과", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산시청해양자원육성과)/③ 정렬 (가운데 정렬)" - }, - "25": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "DIAT", - "value": "돋움체", - "points": 1, - "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (돋움체)" - }, - "26": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "DIAT", - "value": "900", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/② 크기 (9pt)" - }, - "27": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "searchValue": "DIAT", - "value": "Right", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" - }, - "28": { - "path": "//PAGENUM/@FormatType", - "value": "DecagonCircle", - "points": 2, - "category": "PageNumber", - "item": "① 쪽 번호 매기기 (A,B,C 순으로)", - "desc1": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - }, - "desc2": "1, 2페이지 모두 정답이어야 점수 부여" - }, - "29": { - "path": "//PAGENUM/@Pos", - "value": "BottomCenter", - "points": 2, - "category": "PageNumber", - "item": "가운데 아래", - "desc": "1, 2페이지 모두 정답이어야 점수 부여", - "desc2": { - "가운데 아래": "BottomCenter", - "오른쪽 아래": "BottomRight", - "왼쪽 아래": "BottomLeft" - } - }, - "30": { - "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "200", - "first_word": "갯", - "points": 2, - "category": "LineSpacing", - "item": "문제 1 줄간격 200% 설정", - "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." - } - }, - "2": { - "1": { - "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": "PageBorder", - "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" - }, - "2": { - "path": "count(//SECTION)>1", - "value": true, - "points": 3, - "category": "Boolean", - "item": "① 구역나누기", - "desc": "섹션이 1개 이상이면 점수부여" - }, - "3": { - "path": "./TEXT/COLDEF/@Count", - "value": "2", - "points": 3, - "category": "TwoColumn", - "item": "② 다단 2단" - }, - "4": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "60", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (살아있는 갯벌)/① 크기-너비 (60 mm)" - }, - "5": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "value": "12", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (살아있는 갯벌)/② 크기-높이 (12 mm)" - }, - "6": { - "path": "//RECTANGLE//LINESHAPE", - "value": { - "Style": "DoubleSlim", - "Width": "283" - }, - "points": 2, - "category": "Rectangle.LineShape", - "item": "문구 (살아있는 갯벌)/③ 테두리 : 이중 실선(1.00mm)", - "desc": "1mm = 283pt value['Width']에 pt값 입력" - }, - "7": { - "path": "//RECTANGLE/@Ratio", - "value": "50", - "points": 2, - "category": "Rectangle.OneAnswer", - "item": "문구 (살아있는 갯벌)/④ 글상자 모서리 (반원)", - "desc": "모서리 비율 반원:50 / 둥근모양:20" - }, - "8": { - "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "249,173,168", - "points": 2, - "category": "Rectangle.Color", - "item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)" - }, - "9": { - "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "value": "true", - "points": 1, - "category": "Rectangle.OneAnswer", - "item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)" - }, - "10": { - "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)" - }, - "11": { - "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "굴림체", - "points": 1, - "category": "Rectangle.FontName", - "item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)" - }, - "12": { - "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "1700", - "points": 1, - "category": "Rectangle.FontSize", - "item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)", - "desc": "1pt당 100" - }, - "13": { - "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)" - }, - "14": { - "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", - "value": true, - "points": 2, - "category": "Boolean", - "item": "① 파일명 \"그림A.jpg\" 삽입", - "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" - }, - "15": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "② 크기-너비 (80 mm)" - }, - "16": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", - "value": "40", - "points": 2, - "category": "mmSize", - "item": "③ 크기-높이 (40 mm)" - }, - "17": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", - "value": "0", - "points": 2, - "category": "mmSize", - "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" - }, - "18": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "23", - "points": 2, - "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)" - }, - "19": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 갯벌의 가치", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)" - }, - "20": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 갯벌의 가치", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구① (1. 갯벌의 가치)/② 크기 (1200)" - }, - "21": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 갯벌의 가치", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구① (1. 갯벌의 가치)/③ 진하게" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 우리나라의 갯벌", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구② (2. 우리나라의 갯벌)/① 글씨체 (중고딕)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 우리나라의 갯벌", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구② (2. 우리나라의 갯벌)/② 크기 (1200)" - }, - "24": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 우리나라의 갯벌", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구② (2. 우리나라의 갯벌)/③ 진하게" - }, - "25": { - "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", - "item": "문구 (리아스식 해안)/① 각주 설정 및 문구 입력" - }, - "26": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "돋움체", - "points": 1, - "category": "FontName", - "item": "문구 (리아스식 해안)/② 글씨체 (돋움체)" - }, - "27": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "문구 (리아스식 해안)/③ 크기 (9pt)" - }, - "28": { - "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "CircledLatinSmall", - "points": 2, - "category": "OneAnswer", - "item": "문구 (전당)/④ 각주 번호모양", - "desc": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - } - }, - "29": { - "path": "boolean(//CHAR[contains(text(),'Microorganism')])", - "ignoreWord": "Microorganism", - "value": true, - "points": 3, - "category": "Boolean", - "item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점", - "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" - }, - "30": { - "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", - "word": [ - ["조수", "潮水"], - ["유기물", "有機物"], - ["정화", "淨化"], - ["조수", "潮水"], - ["분포", "分布"] - ], - "value": 10, - "points": 10, - "category": "Hanja", - "item": "① 조수(潮水), ② 유기물(有機物), ③ 정화(淨化), ④ 조수(潮水), ⑤ 분포(分布)" - }, - "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'급이원활')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…산소공급은 원활하고…)>'은' → '이' 글자바꿈" - }, - "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면이바다')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈" - }, - "33": { - "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/① 글씨체 (굴림)" - }, - "34": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "1100", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/② 크기 (1100)" - }, - "35": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/③ 진하게" - }, - "36": { - "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)" - }, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "154,235,85", - "points": 2, - "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:154,235,85)" - }, - "38": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", - "value": "BOLD", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", - "value": "DoubleSlim", - "points": 2, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", - "value": "0.5mm", - "points": 2, - "category": "TableAnswer", - "item": "제목 셀 아래선/② 0.5mm" - }, - "41": { - "path": "//TABLE//TEXT/@CharShape", - "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "궁서", - "points": 1, - "category": "TableFontName", - "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (궁서)", - "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" - }, - "42": { - "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", - "value": "1000", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/② 크기 (1000)" - }, - "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", - "value": "Center", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/③ 정렬 (가운데 정렬)" - }, - "44": { - "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": "Boolean", - "item": "블록 계산식/합계", - "desc": "option값에 합계는 SUM / 평균은 AVG" - }, - "45": { - "chart_xpath": "", - "chart_type": "원뿔형 누적 가로 막대형", - "value": true, - "points": 2, - "category": "ChartType", - "item": "① 종류 (원뿔형 누적 가로 막대형)", - "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" - }, - "46": { - "chart_xpath": "//c:valAx/c:majorTickMark/@val", - "value": "out", - "points": 2, - "category": "ChartOneAnswer", - "item": "② 값 축 주 눈금선", - "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" - }, - "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "③ 크기-너비 (80 mm)" - }, - "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "90", - "points": 2, - "category": "mmSize", - "item": "④ 크기-높이 (90 mm)" - }, - "49": { - "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", - "value": true, - "points": 2, - "category": "Boolean", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", - "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" - }, - "50": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "지역별 갯벌 면적", - "value": "궁서체", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/① 글씨체 (궁서체)" - }, - "51": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "지역별 갯벌 면적", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)" - }, - "52": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", - "option": "i", - "searchValue": "지역별 갯벌 면적", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "53": { - "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/① 글꼴 (돋움)" - }, - "54": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/② 크기 (9pt)" - }, - "55": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "56": { - "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/① 글꼴 (돋움)" - }, - "57": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/② 크기 (9pt)" - }, - "58": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "59": { - "chart_xpath": "//c:legend//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "OneAnswer", - "item": "범례/① 글꼴 (돋움)" - }, - "60": { - "chart_xpath": "//c:legend//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "범례/② 크기 (9pt)" - }, - "61": { - "chart_xpath": "//c:legend//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "범례/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - } - } -} diff --git a/회차별채점자료/2512_4/DIW_2512_4A_문제.hwpx b/회차별채점자료/2512_4/DIW_2512_4A_문제.hwpx deleted file mode 100644 index 5d0b1be..0000000 Binary files a/회차별채점자료/2512_4/DIW_2512_4A_문제.hwpx and /dev/null differ diff --git a/회차별채점자료/2512_4/DIW_2512_4A_채점기준표.xlsx b/회차별채점자료/2512_4/DIW_2512_4A_채점기준표.xlsx deleted file mode 100644 index 8665a2c..0000000 Binary files a/회차별채점자료/2512_4/DIW_2512_4A_채점기준표.xlsx and /dev/null differ diff --git a/회차별채점자료/2512_5/251215_DIW_2512_5A_채점결과.xlsx b/회차별채점자료/2512_5/251215_DIW_2512_5A_채점결과.xlsx deleted file mode 100644 index dac618d..0000000 Binary files a/회차별채점자료/2512_5/251215_DIW_2512_5A_채점결과.xlsx and /dev/null differ diff --git a/회차별채점자료/2512_5/251216_DIW_2512_5A_채점결과.xlsx b/회차별채점자료/2512_5/251216_DIW_2512_5A_채점결과.xlsx deleted file mode 100644 index 1549754..0000000 Binary files a/회차별채점자료/2512_5/251216_DIW_2512_5A_채점결과.xlsx and /dev/null differ diff --git a/회차별채점자료/2512_5/DIW_2512_5A.hwpx b/회차별채점자료/2512_5/DIW_2512_5A.hwpx deleted file mode 100644 index 9021e33..0000000 Binary files a/회차별채점자료/2512_5/DIW_2512_5A.hwpx and /dev/null differ diff --git a/회차별채점자료/2512_5/DIW_2512_5A.json b/회차별채점자료/2512_5/DIW_2512_5A.json deleted file mode 100644 index fa44a90..0000000 --- a/회차별채점자료/2512_5/DIW_2512_5A.json +++ /dev/null @@ -1,841 +0,0 @@ -{ - "0": { - "0": { - "path": "", - "path2": "", - "points": 0, - "category": "파일저장", - "item": "파일명 (수검번호.hwp/hwpx)" - }, - "1": { - "path": "//PAGEMARGIN", - "value": { - "Top": 20, - "Bottom": 20, - "Left": 20, - "Right": 20, - "Header": 10, - "Footer": 10, - "Gutter": 0 - }, - "tolerance": 1, - "points": 4, - "category": "PageSetting", - "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" - }, - "2": { - "path": "", - "value": { - "FontName": "바탕", - "FontSize": "1000", - "Alignment": "Justify", - "LineSpacing": "160" - }, - "points": 4, - "category": "BasicSetting", - "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" - }, - "3": { - "path": "", - "value": null, - "points": 40, - "category": "오타감점", - "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" - } - }, - "1": { - "1": { - "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "한산해안갯벌체험교실", - "value": "견고딕", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)" - }, - "2": { - "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "한산해안갯벌체험교실", - "value": "51,69,153", - "points": 2, - "category": "Color", - "item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)" - }, - "3": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "한산해안갯벌체험교실", - "value": "110", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)" - }, - "4": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "한산해안갯벌체험교실", - "value": "20", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)" - }, - "5": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "한산해안갯벌체험교실", - "value": "true", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)" - }, - "6": { - "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "한산해안갯벌체험교실", - "value": "Center", - "points": 2, - "category": "OneAnswer", - "item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)" - }, - "7": { - "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "한산해안갯벌체험교실", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)" - }, - "8": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "갯", - "value": { - "Height": 2800, - "Width": 2800 - }, - "tolerance": 200, - "points": 1, - "category": "TwoLineSize", - "item": "어/① 모양 (2줄)" - }, - "9": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "갯", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "어/② 글씨체 (굴림)" - }, - "10": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "갯", - "value": "219,207,102", - "points": 2, - "category": "Color", - "item": "어/③ 면색 : 색상(RGB:219,207,102)" - }, - "11": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "갯", - "value": "3.0", - "tolerance": 1, - "points": 2, - "category": "mmSize", - "item": "어/④ 본문과의 간격 : 3.0mm" - }, - "12": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "한산해안 갯벌체험 교실", - "value": "BOLD", - "points": 2, - "category": "FontAttribute", - "item": "문구 (한산해안 갯벌체험 교실)/① BOLD" - }, - "13": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "한산해안 갯벌체험 교실", - "value": "ITALIC", - "points": 2, - "category": "FontAttribute", - "item": "문구 (한산해안 갯벌체험 교실)/② ITALIC" - }, - "14": { - "path": "//CHAR[contains(string(.),'{char1}')]/text()", - "path2": "//CHAR[contains(string(.),'{char2}')]/text()", - "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "≪", - "char2": "≫", - "char3": "※", - "value": 3, - "points": 3, - "category": "SpecialChar", - "item": "① ≪, ② ≫, ③ ※" - }, - "15": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "행사안내", - "value": "돋움", - "points": 1, - "category": "FontName", - "item": "문구 (≪ 행사안내 ≫)/① 글씨체 (돋움)" - }, - "16": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "행사안내", - "value": "Center", - "points": 1, - "category": "Align", - "item": "문구 (≪ 행사안내 ≫)/② 정렬 (가운데 정렬)" - }, - "17": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/① BOLD" - }, - "18": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30", - "value": "UNDERLINE", - "points": 1, - "category": "FontAttribute", - "item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/② UNDERLINE" - }, - "19": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", - "searchValue": "신청안내", - "value": { - "Left": 10, - "Indent": 12 - }, - "points": 2, - "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)", - "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" - }, - "20": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 12. 11.", - "value": "1400", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 11.)/① 크기 (1400)", - "desc": "1pt당 100" - }, - "21": { - "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 12. 11.", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "한산시청해양자원육성과", - "value": "견고딕", - "points": 1, - "category": "FontName", - "item": "문구 (한산시청해양자원육성과)/① 글씨체 (견고딕)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "한산시청해양자원육성과", - "value": "2200", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산시청해양자원육성과)/② 크기 (2200)" - }, - "24": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "한산시청해양자원육성과", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "문구 (한산시청해양자원육성과)/③ 정렬 (가운데 정렬)" - }, - "25": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "DIAT", - "value": "돋움체", - "points": 1, - "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (돋움체)" - }, - "26": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "DIAT", - "value": "900", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/② 크기 (9pt)" - }, - "27": { - "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", - "searchValue": "DIAT", - "value": "Right", - "points": 1, - "category": "Header.OneAnswer", - "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" - }, - "28": { - "path": "//PAGENUM/@FormatType", - "value": "DecagonCircle", - "points": 2, - "category": "PageNumber", - "item": "① 쪽 번호 매기기 (A,B,C 순으로)", - "desc1": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - }, - "desc2": "1, 2페이지 모두 정답이어야 점수 부여" - }, - "29": { - "path": "//PAGENUM/@Pos", - "value": "BottomCenter", - "points": 2, - "category": "PageNumber", - "item": "가운데 아래", - "desc": "1, 2페이지 모두 정답이어야 점수 부여", - "desc2": { - "가운데 아래": "BottomCenter", - "오른쪽 아래": "BottomRight", - "왼쪽 아래": "BottomLeft" - } - }, - "30": { - "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "200", - "first_word": "갯", - "points": 2, - "category": "LineSpacing", - "item": "문제 1 줄간격 200% 설정", - "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." - } - }, - "2": { - "1": { - "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": "PageBorder", - "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" - }, - "2": { - "path": "count(//SECTION)>1", - "value": true, - "points": 3, - "category": "Boolean", - "item": "① 구역나누기", - "desc": "섹션이 1개 이상이면 점수부여" - }, - "3": { - "path": "./TEXT/COLDEF/@Count", - "value": "2", - "points": 3, - "category": "TwoColumn", - "item": "② 다단 2단" - }, - "4": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "60", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (살아있는 갯벌)/① 크기-너비 (60 mm)" - }, - "5": { - "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", - "value": "12", - "points": 2, - "category": "Rectangle.mmSize", - "item": "문구 (살아있는 갯벌)/② 크기-높이 (12 mm)" - }, - "6": { - "path": "//RECTANGLE//LINESHAPE", - "value": { - "Style": "DoubleSlim", - "Width": "283" - }, - "points": 2, - "category": "Rectangle.LineShape", - "item": "문구 (살아있는 갯벌)/③ 테두리 : 이중 실선(1.00mm)", - "desc": "1mm = 283pt value['Width']에 pt값 입력" - }, - "7": { - "path": "//RECTANGLE/@Ratio", - "value": "50", - "points": 2, - "category": "Rectangle.OneAnswer", - "item": "문구 (살아있는 갯벌)/④ 글상자 모서리 (반원)", - "desc": "모서리 비율 반원:50 / 둥근모양:20" - }, - "8": { - "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "249,173,168", - "points": 2, - "category": "Rectangle.Color", - "item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)" - }, - "9": { - "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", - "value": "true", - "points": 1, - "category": "Rectangle.OneAnswer", - "item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)" - }, - "10": { - "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)" - }, - "11": { - "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "굴림체", - "points": 1, - "category": "Rectangle.FontName", - "item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)" - }, - "12": { - "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "1700", - "points": 1, - "category": "Rectangle.FontSize", - "item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)", - "desc": "1pt당 100" - }, - "13": { - "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", - "value": "Center", - "points": 1, - "category": "Rectangle.TextBoxAlign", - "item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)" - }, - "14": { - "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", - "value": true, - "points": 2, - "category": "Boolean", - "item": "① 파일명 \"그림A.jpg\" 삽입", - "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" - }, - "15": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "② 크기-너비 (80 mm)" - }, - "16": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", - "value": "40", - "points": 2, - "category": "mmSize", - "item": "③ 크기-높이 (40 mm)" - }, - "17": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", - "value": "0", - "points": 2, - "category": "mmSize", - "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" - }, - "18": { - "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "23", - "points": 2, - "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)" - }, - "19": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 갯벌의 가치", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)" - }, - "20": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 갯벌의 가치", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구① (1. 갯벌의 가치)/② 크기 (1200)" - }, - "21": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 갯벌의 가치", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구① (1. 갯벌의 가치)/③ 진하게" - }, - "22": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 우리나라의 갯벌", - "value": "중고딕", - "points": 1, - "category": "FontName", - "item": "문구② (2. 우리나라의 갯벌)/① 글씨체 (중고딕)" - }, - "23": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 우리나라의 갯벌", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "문구② (2. 우리나라의 갯벌)/② 크기 (1200)" - }, - "24": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 우리나라의 갯벌", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "문구② (2. 우리나라의 갯벌)/③ 진하게" - }, - "25": { - "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", - "item": "문구 (리아스식 해안)/① 각주 설정 및 문구 입력" - }, - "26": { - "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "돋움체", - "points": 1, - "category": "FontName", - "item": "문구 (리아스식 해안)/② 글씨체 (돋움체)" - }, - "27": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "문구 (리아스식 해안)/③ 크기 (9pt)" - }, - "28": { - "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안", - "value": "CircledLatinSmall", - "points": 2, - "category": "OneAnswer", - "item": "문구 (전당)/④ 각주 번호모양", - "desc": { - "가,나,다": "HangulSyllable", - "1,2,3": "Digit", - "일,이,삼": "HangulPhonetic", - "갑,을,병": "DecagonCircle", - "A,B,C": "LatinCapital", - "a,b,c": "LatinSmall", - "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", - "①,②,③": "CircledDigit", - "一,二,三": "Ideograph", - "㉠,㉡,㉢": "CircledHangulJamo", - "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", - "㊀,㊁,㊂": "CircledIdeograph", - "i,ii,iii": "RomanSmall", - "I,II,III": "RomanCapital", - "甲,乙,丙": "DecagonCircleHanja", - "+,++,+++": "UserChar", - "*,**,***": "UserChar", - "정답에 맞는 값 value에 입력": "" - } - }, - "29": { - "path": "boolean(//CHAR[contains(text(),'Microorganism')])", - "ignoreWord": "Microorganism", - "value": true, - "points": 3, - "category": "Boolean", - "item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점", - "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" - }, - "30": { - "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", - "word": [ - ["조수", "潮水"], - ["유기물", "有機物"], - ["정화", "淨化"], - ["조수", "潮水"], - ["분포", "分布"] - ], - "value": 10, - "points": 10, - "category": "Hanja", - "item": "① 조수(潮水), ② 유기물(有機物), ③ 정화(淨化), ④ 조수(潮水), ⑤ 분포(分布)" - }, - "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'급이원활')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…산소공급은 원활하고…)>'은' → '이' 글자바꿈" - }, - "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면이바다')])", - "value": true, - "points": 3, - "category": "Boolean", - "item": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈" - }, - "33": { - "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "굴림", - "points": 1, - "category": "FontName", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/① 글씨체 (굴림)" - }, - "34": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "1100", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/② 크기 (1100)" - }, - "35": { - "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "BOLD", - "points": 1, - "category": "FontAttribute", - "item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/③ 진하게" - }, - "36": { - "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)", - "value": "Center", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)" - }, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "154,235,85", - "points": 2, - "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:154,235,85)" - }, - "38": { - "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", - "value": "BOLD", - "points": 1, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", - "value": "DoubleSlim", - "points": 2, - "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", - "value": "0.5mm", - "points": 2, - "category": "TableAnswer", - "item": "제목 셀 아래선/② 0.5mm" - }, - "41": { - "path": "//TABLE//TEXT/@CharShape", - "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "궁서", - "points": 1, - "category": "TableFontName", - "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (궁서)", - "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" - }, - "42": { - "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", - "value": "1000", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/② 크기 (1000)" - }, - "43": { - "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", - "value": "Center", - "points": 1, - "category": "TableAnswer", - "item": "글자모양/③ 정렬 (가운데 정렬)" - }, - "44": { - "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": "Boolean", - "item": "블록 계산식/합계", - "desc": "option값에 합계는 SUM / 평균은 AVG" - }, - "45": { - "chart_xpath": "", - "chart_type": "원뿔형 누적 가로 막대형", - "value": true, - "points": 2, - "category": "ChartType", - "item": "① 종류 (원뿔형 누적 가로 막대형)", - "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" - }, - "46": { - "chart_xpath": "//c:valAx/c:majorTickMark/@val", - "value": "out", - "points": 2, - "category": "ChartOneAnswer", - "item": "② 값 축 주 눈금선", - "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" - }, - "47": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", - "value": "80", - "points": 2, - "category": "mmSize", - "item": "③ 크기-너비 (80 mm)" - }, - "48": { - "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "90", - "points": 2, - "category": "mmSize", - "item": "④ 크기-높이 (90 mm)" - }, - "49": { - "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", - "value": true, - "points": 2, - "category": "Boolean", - "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", - "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" - }, - "50": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "지역별 갯벌 면적", - "value": "궁서체", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/① 글씨체 (궁서체)" - }, - "51": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "지역별 갯벌 면적", - "value": "1200", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)" - }, - "52": { - "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", - "option": "i", - "searchValue": "지역별 갯벌 면적", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "제목 문구 (지역별 갯벌 면적)/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "53": { - "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/① 글꼴 (돋움)" - }, - "54": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/② 크기 (9pt)" - }, - "55": { - "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "X축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "56": { - "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/① 글꼴 (돋움)" - }, - "57": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/② 크기 (9pt)" - }, - "58": { - "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "ChartOneAnswer", - "item": "Y축/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - }, - "59": { - "chart_xpath": "//c:legend//a:ea/@typeface", - "value": "돋움", - "points": 1, - "category": "OneAnswer", - "item": "범례/① 글꼴 (돋움)" - }, - "60": { - "chart_xpath": "//c:legend//a:defRPr/@sz", - "value": "900", - "points": 1, - "category": "OneAnswer", - "item": "범례/② 크기 (9pt)" - }, - "61": { - "chart_xpath": "//c:legend//a:defRPr/@{option}", - "option": "b", - "value": "1", - "points": 1, - "category": "OneAnswer", - "item": "범례/③ 기울임", - "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" - } - } -} diff --git a/회차별채점자료/2512_5/DIW_2512_5A_문제.hwpx b/회차별채점자료/2512_5/DIW_2512_5A_문제.hwpx deleted file mode 100644 index 5d0b1be..0000000 Binary files a/회차별채점자료/2512_5/DIW_2512_5A_문제.hwpx and /dev/null differ diff --git a/회차별채점자료/2512_5/DIW_2512_5A_채점기준표.xlsx b/회차별채점자료/2512_5/DIW_2512_5A_채점기준표.xlsx deleted file mode 100644 index 8665a2c..0000000 Binary files a/회차별채점자료/2512_5/DIW_2512_5A_채점기준표.xlsx and /dev/null differ diff --git a/회차별채점자료/2601_2/260122_DIW_2601_2A_채점결과.xlsx b/회차별채점자료/2601_2/260122_DIW_2601_2A_채점결과.xlsx new file mode 100644 index 0000000..9b0d140 Binary files /dev/null and b/회차별채점자료/2601_2/260122_DIW_2601_2A_채점결과.xlsx differ diff --git a/회차별채점자료/2601_2/260123_DIW_2601_2A_TEST.xlsx b/회차별채점자료/2601_2/260123_DIW_2601_2A_TEST.xlsx new file mode 100644 index 0000000..6418080 Binary files /dev/null and b/회차별채점자료/2601_2/260123_DIW_2601_2A_TEST.xlsx differ diff --git a/회차별채점자료/2601_2/DIW_2601_2A.hwp b/회차별채점자료/2601_2/DIW_2601_2A.hwp new file mode 100644 index 0000000..5758a27 Binary files /dev/null and b/회차별채점자료/2601_2/DIW_2601_2A.hwp differ diff --git a/회차별채점자료/2511/DIW_2511D.json b/회차별채점자료/2601_2/DIW_2601_2A.json similarity index 76% rename from 회차별채점자료/2511/DIW_2511D.json rename to 회차별채점자료/2601_2/DIW_2601_2A.json index d55042e..8511211 100644 --- a/회차별채점자료/2511/DIW_2511D.json +++ b/회차별채점자료/2601_2/DIW_2601_2A.json @@ -46,65 +46,65 @@ "1": { "1": { "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "전통된장만들기체험교실", - "value": "맑은 고딕", + "searchValue": "재활용의 날 행사", + "value": "맑은고딕", "points": 1, "category": "OneAnswer", - "item": "문구 (전통된장만들기체험교실)/① 글씨체 (맑은 고딕)" + "item": "문구 (재활용의 날 행사)/① 글씨체 (맑은고딕)" }, "2": { "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "전통된장만들기체험교실", - "value": "153,51,102", + "searchValue": "재활용의 날 행사", + "value": "49,95,151", "points": 2, "category": "Color", - "item": "문구 (전통된장만들기체험교실)/② 채우기 : 색상(RGB:153,51,102)" + "item": "문구 (재활용의 날 행사)/② 채우기 : 색상(RGB:49,95,151)" }, "3": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "전통된장만들기체험교실", - "value": "120", + "searchValue": "재활용의 날 행사", + "value": "100", "tolerance": 1, "points": 2, "category": "mmSize", - "item": "문구 (전통된장만들기체험교실)/③ 크기-너비 (120 mm)" + "item": "문구 (재활용의 날 행사)/③ 크기-너비 (100 mm)" }, "4": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "전통된장만들기체험교실", + "searchValue": "재활용의 날 행사", "value": "20", "tolerance": 1, "points": 2, "category": "mmSize", - "item": "문구 (전통된장만들기체험교실)/④ 크기-높이 (20 mm)" + "item": "문구 (재활용의 날 행사)/④ 크기-높이 (20 mm)" }, "5": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "전통된장만들기체험교실", + "searchValue": "재활용의 날 행사", "value": "true", "points": 2, "category": "OneAnswer", - "item": "문구 (전통된장만들기체험교실)/⑤ 위치 (글자처럼 취급)" + "item": "문구 (재활용의 날 행사)/⑤ 위치 (글자처럼 취급)" }, "6": { "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "전통된장만들기체험교실", + "searchValue": "재활용의 날 행사", "value": "Center", "points": 2, "category": "OneAnswer", - "item": "문구 (전통된장만들기체험교실)/⑥ 정렬 (가운데 정렬)" + "item": "문구 (재활용의 날 행사)/⑥ 정렬 (가운데 정렬)" }, "7": { "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "전통된장만들기체험교실", + "searchValue": "재활용의 날 행사", "value": true, "points": 2, "category": "Boolean", - "item": "문구 (전통된장만들기체험교실)/⑦ 글맵시모양 (육안확인)" + "item": "문구 (재활용의 날 행사)/⑦ 글맵시모양 (육안확인)" }, "8": { "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "전", + "searchValue": "한", "value": { "Height": 2800, "Width": 2800 @@ -116,7 +116,7 @@ }, "9": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "전", + "searchValue": "한", "value": "돋움체", "points": 1, "category": "FontName", @@ -124,15 +124,15 @@ }, "10": { "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "전", - "value": "83,246,225", + "searchValue": "한", + "value": "210,154,216", "points": 2, "category": "Color", - "item": "어/③ 면색 : 색상(RGB:83,246,225)" + "item": "어/③ 면색 : 색상(RGB:210,154,216)" }, "11": { "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "전", + "searchValue": "한", "value": "3.0", "tolerance": 1, "points": 2, @@ -141,126 +141,126 @@ }, "12": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "전통된장 만들기 체험교실", + "searchValue": "자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "문구 (전통된장 만들기 체험교실)/① BOLD" + "item": "문구 (자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정)/① BOLD" }, "13": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "전통된장 만들기 체험교실", - "value": "ITALIC", + "searchValue": "자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정", + "value": "UNDERLINE", "points": 1, "category": "FontAttribute", - "item": "문구 (전통된장 만들기 체험교실)/② ITALIC" + "item": "문구 (자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정)/② UNDERLINE" }, "14": { "path": "//CHAR[contains(string(.),'{char1}')]/text()", "path2": "//CHAR[contains(string(.),'{char2}')]/text()", "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "★", - "char2": "★", + "char1": "▣", + "char2": "▣", "char3": "※", "value": 3, "points": 3, "category": "SpecialChar", - "item": "① ★, ② ★, ③ ※" + "item": "① ▣ , ② ▣ , ③ ※" }, "15": { "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "체험안내", - "value": "굴림체", + "searchValue": "행사안내", + "value": "돋움", "points": 1, "category": "FontName", - "item": "문구 (★ 체험안내 ★)/① 글씨체 (굴림체)" + "item": "문구 (▣ 행사안내 ▣)/① 글씨체 (돋움)" }, "16": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "체험안내", + "match_str": "행사안내", "value": "Center", "points": 1, "category": "Align", - "item": "문구 (★ 체험안내 ★)/② 정렬 (가운데 정렬)" + "item": "문구 (▣ 행사안내 ▣)/② 정렬 (가운데 정렬)" }, "17": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능", - "value": "ITALIC", + "searchValue": "부산시청 앞 광장, 부산시 쓰레기 매립장 등", + "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "문구 (초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능)/① ITALIC" + "item": "문구 (부산시청 앞 광장, 부산시 쓰레기 매립장 등)/① BOLD" }, "18": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능", - "value": "UNDERLINE", + "searchValue": "부산시청 앞 광장, 부산시 쓰레기 매립장 등", + "value": "ITALIC", "points": 1, "category": "FontAttribute", - "item": "문구 (초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능)/② UNDERLINE" + "item": "문구 (부산시청 앞 광장, 부산시 쓰레기 매립장 등)/② ITALIC" }, "19": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", "searchValue": "기타사항", "value": { - "Left": 15, + "Left": 12, "Indent": 12 }, "points": 2, "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (12)", "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" }, "20": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2025. 11. 22.", - "value": "1400", + "searchValue": "2026. 1. 21.", + "value": "1200", "points": 1, "category": "OneAnswer", - "item": "문구 (2025. 11. 22.)/① 크기 (1400)", + "item": "문구 (2026. 1. 21.)/① 크기 (1200)", "desc": "1pt당 100" }, "21": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2025. 11. 22.", + "searchValue": "2026. 1. 21.", "value": "Center", "points": 1, "category": "OneAnswer", - "item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)" + "item": "문구 (2026. 1. 21.)/② 정렬 (가운데 정렬)" }, "22": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "전통음식관광협회", - "value": "견고딕", + "searchValue": "한국환경보전단체", + "value": "궁서", "points": 1, "category": "FontName", - "item": "문구 (전통음식관광협회)/① 글씨체 (견고딕)" + "item": "문구 (한국환경보전단체)/① 글씨체 (궁서)" }, "23": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "전통음식관광협회", + "searchValue": "한국환경보전단체", "value": "2400", "points": 1, "category": "OneAnswer", - "item": "문구 (전통음식관광협회)/② 크기 (2400)" + "item": "문구 (한국환경보전단체)/② 크기 (2400)" }, "24": { "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "전통음식관광협회", + "searchValue": "한국환경보전단체", "value": "Center", "points": 1, "category": "OneAnswer", - "item": "문구 (전통음식관광협회)/③ 정렬 (가운데 정렬)" + "item": "문구 (한국환경보전단체)/③ 정렬 (가운데 정렬)" }, "25": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "DIAT", - "value": "중고딕", + "value": "돋움", "points": 1, "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (중고딕)" + "item": "문구 (DIAT)/① 글꼴 (돋움)" }, "26": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", @@ -280,7 +280,7 @@ }, "28": { "path": "//PAGENUM/@FormatType", - "value": "LatinCapital", + "value": "HangulSyllable", "points": 2, "category": "PageNumber", "item": "① 쪽 번호 매기기 (가,나,다 순으로)", @@ -308,10 +308,10 @@ }, "29": { "path": "//PAGENUM/@Pos", - "value": "BottomLeft", + "value": "BottomCenter", "points": 2, "category": "PageNumber", - "item": "왼쪽 아래", + "item": "가운데 아래", "desc": "1, 2페이지 모두 정답이어야 점수 부여", "desc2": { "가운데 아래": "BottomCenter", @@ -330,11 +330,11 @@ }, "31": { "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", - "value": "180", - "first_word": "전", + "value": "190", + "first_word": "한", "points": 2, "category": "LineSpacing", - "item": "문제 1 줄간격 180% 설정", + "item": "문제 1 줄간격 190% 설정", "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." } }, @@ -367,17 +367,17 @@ }, "4": { "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "60", + "value": "50", "points": 2, "category": "Rectangle.mmSize", - "item": "문구 (된장의 역사와 종류)/① 크기-너비 (60 mm)" + "item": "문구 (재활용 방법)/① 크기-너비 (50 mm)" }, "5": { "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", "value": "12", "points": 2, "category": "Rectangle.mmSize", - "item": "문구 (된장의 역사와 종류)/② 크기-높이 (12 mm)" + "item": "문구 (재활용 방법)/② 크기-높이 (12 mm)" }, "6": { "path": "//RECTANGLE//LINESHAPE", @@ -387,51 +387,51 @@ }, "points": 2, "category": "Rectangle.LineShape", - "item": "문구 (된장의 역사와 종류)/③ 테두리 : 이중 실선(1.00mm)", + "item": "문구 (재활용 방법)/③ 테두리 : 이중 실선(1.00mm)", "desc": "1mm = 283pt value['Width']에 pt값 입력" }, "7": { "path": "//RECTANGLE/@Ratio", - "value": "50", + "value": "20", "points": 2, "category": "Rectangle.OneAnswer", - "item": "문구 (된장의 역사와 종류)/④ 글상자 모서리 (반원)", + "item": "문구 (재활용 방법)/④ 글상자 모서리 (둥근모양)", "desc": "모서리 비율 반원:50 / 둥근모양:20" }, "8": { "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "247,227,169", + "value": "227,220,193", "points": 2, "category": "Rectangle.Color", - "item": "문구 (된장의 역사와 종류)/⑤ 채우기 : 색상(RGB:247,227,169)" + "item": "문구 (재활용 방법)/⑤ 채우기 : 색상(RGB:227,220,193)" }, "9": { "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", "value": "true", "points": 1, "category": "Rectangle.OneAnswer", - "item": "문구 (된장의 역사와 종류)/⑥ 글상자 위치 (글자처럼 취급)" + "item": "문구 (재활용 방법)/⑥ 글상자 위치 (글자처럼 취급)" }, "10": { "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", "value": "Center", "points": 1, "category": "Rectangle.TextBoxAlign", - "item": "문구 (된장의 역사와 종류)/⑦ 글상자 정렬 (가운데 정렬)" + "item": "문구 (재활용 방법)/⑦ 글상자 정렬 (가운데 정렬)" }, "11": { "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "궁서체", + "value": "굴림체", "points": 1, "category": "Rectangle.FontName", - "item": "문구 (된장의 역사와 종류)/⑧ 글씨체 (궁서체)" + "item": "문구 (재활용 방법)/⑧ 글씨체 (굴림체)" }, "12": { "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "1700", + "value": "1800", "points": 1, "category": "Rectangle.FontSize", - "item": "문구 (된장의 역사와 종류)/⑨ 글씨크기 (1700)", + "item": "문구 (재활용 방법)/⑨ 글씨크기 (1800)", "desc": "1pt당 100" }, "13": { @@ -439,14 +439,14 @@ "value": "Center", "points": 1, "category": "Rectangle.TextBoxAlign", - "item": "문구 (된장의 역사와 종류)/⑩ 정렬 (가운데 정렬)" + "item": "문구 (재활용 방법)/⑩ 정렬 (가운데 정렬)" }, "14": { "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", "value": true, "points": 2, "category": "Boolean", - "item": "① 파일명 \"그림D.jpg\" 삽입", + "item": "① 파일명 \"그림A.jpg\" 삽입", "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" }, "15": { @@ -472,88 +472,88 @@ }, "18": { "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "23", + "value": "22", "points": 2, "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)" + "item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)" }, "19": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 된장의 역사", - "value": "굴림", + "searchValue": "1. 재활용이란?", + "value": "돋움체", "points": 1, "category": "FontName", - "item": "문구① (1. 된장의 역사)/① 글씨체 (굴림)" + "item": "문구① (1. 재활용이란?)/① 글씨체 (돋움체)" }, "20": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 된장의 역사", + "searchValue": "1. 재활용이란?", "value": "1200", "points": 1, "category": "OneAnswer", - "item": "문구① (1. 된장의 역사)/② 크기 (1200)" + "item": "문구① (1. 재활용이란?)/② 크기 (1200)" }, "21": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 된장의 역사", + "searchValue": "1. 재활용이란?", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "문구① (1. 된장의 역사)/③ 진하게" + "item": "문구① (1. 재활용이란?)/③ 진하게" }, "22": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 된장의 종류", - "value": "굴림", + "searchValue": "2. 식재료 재활용 방법", + "value": "돋움체", "points": 1, "category": "FontName", - "item": "문구② (2. 된장의 종류)/① 글씨체 (굴림)" + "item": "문구② (2. 식재료 재활용 방법)/① 글씨체 (돋움체)" }, "23": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 된장의 종류", + "searchValue": "2. 식재료 재활용 방법", "value": "1200", "points": 1, "category": "OneAnswer", - "item": "문구② (2. 된장의 종류)/② 크기 (1200)" + "item": "문구② (2. 식재료 재활용 방법)/② 크기 (1200)" }, "24": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 된장의 종류", + "searchValue": "2. 식재료 재활용 방법", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "문구② (2. 된장의 종류)/③ 진하게" + "item": "문구② (2. 식재료 재활용 방법)/③ 진하게" }, "25": { "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": "절구", + "option": "얼룩", "value": true, "points": 2, "category": "Boolean", - "item": "문구 (절구)/① 각주 설정 및 문구 입력" + "item": "문구 (얼룩)/① 각주 설정 및 문구 입력" }, "26": { "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구", + "searchValue": "본바탕에 다른 빛깔의 점이나 줄 따위가 뚜렷하게 섞인 자국", "value": "돋움", "points": 1, "category": "FontName", - "item": "문구 (절구)/② 글씨체 (돋움)" + "item": "문구 (얼룩)/② 글씨체 (돋움)" }, "27": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구", + "searchValue": "본바탕에 다른 빛깔의 점이나 줄 따위가 뚜렷하게 섞인 자국", "value": "900", "points": 1, "category": "OneAnswer", - "item": "문구 (절구)/③ 크기 (9pt)" + "item": "문구 (얼룩)/③ 크기 (9pt)" }, "28": { "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구", - "value": "CircledDigit", + "searchValue": "본바탕에 다른 빛깔의 점이나 줄 따위가 뚜렷하게 섞인 자국", + "value": "LatinSmall", "points": 2, "category": "OneAnswer", "item": "문구 (전당)/④ 각주 번호모양", @@ -579,81 +579,81 @@ } }, "29": { - "path": "boolean(//CHAR[contains(text(),'Fermentation')])", - "ignoreWord": "Fermentation", + "path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])", + "ignoreWord": "Refrigerator", "value": true, "points": 3, "category": "Boolean", - "item": "Fermentation/영단어 미입력, 대소문자/오타 시 전체 감점", + "item": "Refrigerator/영단어 미입력, 대소문자/오타 시 전체 감점", "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" }, "30": { "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", "word": [ - ["기록", "記錄"], - ["추정", "推定"], - ["속성", "速成"], - ["단점", "短點"], - ["숙성", "熟成"] + ["적자", "赤字"], + ["가치", "價値"], + ["제거", "除去"], + ["청소", "淸掃"], + ["광택", "光澤"] ], "value": 10, "points": 10, "category": "Hanja", - "item": "① 기록(記錄), ② 추정(推定), ③ 속성(速成), ④ 단점(短點), ⑤ 숙성(熟成)" + "item": "① 적자(赤字), ② 가치(價値), ③ 제거(除去), ④ 청소(淸掃), ⑤ 광택(光澤)" }, "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'장의제조')])", + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'용은주로')])", "value": true, "points": 3, "category": "Boolean", - "item": "문구 (…된장에 제조를…)>'에 → 의' 글자바꿈" + "item": "문구 (…재활용이 주로 정치적…)>'이'→'은' 글자바꿈" }, "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'크게다르')])", + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'량만재활')])", "value": true, "points": 3, "category": "Boolean", - "item": "문구 (…메주와 다르며 크게…)>'다르며 / 크게' 순서바꿈" + "item": "문구 (상징적으로 재활용 소량만 하는 경우도)>'재활용 / 소량만' 순서바꿈" }, "33": { "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "전통된장 총매출(단위 : 억원)", - "value": "바탕체", + "searchValue": "재활용 주민 참여율(%)", + "value": "궁서", "points": 1, "category": "FontName", - "item": "제목 문구 (전통된장 총매출(단위 : 억원))/① 글씨체 (바탕체)" + "item": "제목 문구 (재활용 주민 참여율(%))/① 글씨체 (궁서)" }, "34": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "전통된장 총매출(단위 : 억원)", - "value": "1100", + "searchValue": "재활용 주민 참여율(%)", + "value": "1200", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (전통된장 총매출(단위 : 억원))/② 크기 (1100)" + "item": "제목 문구 (재활용 주민 참여율(%))/② 크기 (1200)" }, "35": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "전통된장 총매출(단위 : 억원)", + "searchValue": "재활용 주민 참여율(%)", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "제목 문구 (전통된장 총매출(단위 : 억원))/③ 진하게" + "item": "제목 문구 (재활용 주민 참여율(%))/③ 진하게" }, "36": { "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "전통된장 총매출(단위 : 억원)", + "searchValue": "재활용 주민 참여율(%)", "value": "Center", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (전통된장 총매출(단위 : 억원))/④ 정렬 (가운데 정렬)" + "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=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "212,131,154", + "value": "33,174,201", "points": 2, "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:212,131,154)" + "item": "위쪽 제목 셀/① 색상(RGB:33,174,201)" }, "38": { "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", @@ -682,11 +682,11 @@ "41": { "path": "//TABLE//TEXT/@CharShape", "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "돋움체", + "value": "굴림", "points": 1, "category": "TableFontName", "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (돋움체)", + "item": "글자모양/① 글씨체 (굴림)", "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" }, "42": { @@ -705,7 +705,7 @@ }, "44": { "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", + "option": "AVG", "value": true, "points": 4, "category": "Boolean", @@ -738,10 +738,10 @@ }, "48": { "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "90", + "value": "80", "points": 2, "category": "mmSize", - "item": "④ 크기-높이 (90 mm)" + "item": "④ 크기-높이 (80 mm)" }, "49": { "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", @@ -753,28 +753,28 @@ }, "50": { "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "전통된장 총매출", - "value": "궁서", + "searchValue": "재활용 주민 참여율", + "value": "돋움", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (전통된장 총매출)/① 글씨체 (궁서)" + "item": "제목 문구 (재활용 주민 참여율)/① 글씨체 (돋움)" }, "51": { "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "전통된장 총매출", + "searchValue": "재활용 주민 참여율", "value": "1300", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (전통된장 총매출)/② 크기 (1300)" + "item": "제목 문구 (재활용 주민 참여율)/② 크기 (1300)" }, "52": { "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", "option": "b", - "searchValue": "전통된장 총매출", + "searchValue": "재활용 주민 참여율", "value": "1", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (전통된장 총매출)/③ 기울임", + "item": "제목 문구 (재활용 주민 참여율)/③ 기울임", "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "53": { diff --git a/회차별채점자료/2601_2/DIW_2601_2A_문제.hwp b/회차별채점자료/2601_2/DIW_2601_2A_문제.hwp new file mode 100644 index 0000000..6a9ea51 Binary files /dev/null and b/회차별채점자료/2601_2/DIW_2601_2A_문제.hwp differ diff --git a/회차별채점자료/2601_2/DIW_2601_2A_채점기준표.xlsx b/회차별채점자료/2601_2/DIW_2601_2A_채점기준표.xlsx new file mode 100644 index 0000000..2797ec8 Binary files /dev/null and b/회차별채점자료/2601_2/DIW_2601_2A_채점기준표.xlsx differ diff --git a/회차별채점자료/DIW_2512_5A_문제.hwpx b/회차별채점자료/DIW_2512_5A_문제.hwpx deleted file mode 100644 index 5d0b1be..0000000 Binary files a/회차별채점자료/DIW_2512_5A_문제.hwpx and /dev/null differ