2604회 정시 채점자료 업데이트

This commit is contained in:
2026-04-27 17:01:47 +09:00
parent 4e4a582c70
commit d1e94037d5
48 changed files with 5352 additions and 8 deletions

View File

@@ -3,7 +3,7 @@ import shutil
import glob import glob
# ── 설정 ──────────────────────────────────────────────────────────────── # ── 설정 ────────────────────────────────────────────────────────────────
exam_round = "2603" # 회차명 exam_round = "2604" # 회차명
exam_code = "DIW" # 코드명 exam_code = "DIW" # 코드명
source_dir = rf"D:\project\HWP\HWP-Scoring\회차별채점자료\{exam_round}" source_dir = rf"D:\project\HWP\HWP-Scoring\회차별채점자료\{exam_round}"
@@ -13,7 +13,7 @@ types = ["A", "B", "C", "D", "E"]
# ── 복사 실행 ──────────────────────────────────────────────────────────── # ── 복사 실행 ────────────────────────────────────────────────────────────
for type in types: for type in types:
pattern = os.path.join(source_dir, f"*{type}") pattern = os.path.join(source_dir, f"*{type}*")
matched = [d for d in glob.glob(pattern) if os.path.isdir(d)] matched = [d for d in glob.glob(pattern) if os.path.isdir(d)]
if not matched: if not matched:

View File

@@ -43,10 +43,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교시'.") print(f"Skipping {dir_name} under {parent_dir}, as it doesn't match '2교시' or '3교시'.")
# 사용법 # 사용법
exam_round = "2601" exam_round = "2604_5"
# exam_round = "2510_4" # exam_round = "2510_4"
# source_directory = r"D:\project\data\제2510회 수시2(제주)\답안파일\제2510회 수시2 제주지부_답안파일" # source_directory = r"D:\project\data\제2510회 수시2(제주)\답안파일\제2510회 수시2 제주지부_답안파일"
source_directory = r"D:\project\data\제2601정기\2601정기\과목별답안파일" source_directory = r"D:\project\data\제2604수시5(읍내)\답안파일\2604수시5_읍내정보통신학교"
target_directory_a = f".\\input\\{exam_round}\\A" # '1교시'의 타겟 경로 target_directory_a = f".\\input\\{exam_round}\\A" # '1교시'의 타겟 경로

View File

@@ -78,8 +78,8 @@ def copy_exam_files(exam_round, exam_codes, source_dir):
# 사용 예시 # 사용 예시
if __name__ == "__main__": if __name__ == "__main__":
# [source_dir경로\DIW] 디렉토리 안에 A형, B형... 폴더가 존재해야 함 # [source_dir경로\DIW] 디렉토리 안에 A형, B형... 폴더가 존재해야 함
exam_round = "2603" exam_round = "2604_2"
exam_codes = ["DIW"] exam_codes = ["DIW"]
source_dir = r"D:\project\data\제2603정기\답안파일\과목별답안파일" source_dir = r"D:\project\data\제2604수시2(수원)\답안파일"
copy_exam_files(exam_round, exam_codes, source_dir) copy_exam_files(exam_round, exam_codes, source_dir)

View File

@@ -166,7 +166,7 @@ if __name__ == "__main__":
setup_logging() setup_logging()
exam_rounds = [ exam_rounds = [
"2603", "2604",
] ]
# 변환할 폴더 경로 설정 # 변환할 폴더 경로 설정

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

850
JSON/2604/DIW_2604A.json Normal file
View File

@@ -0,0 +1,850 @@
{
"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": "202,86,167",
"points": 2,
"category": "Color",
"item": "문구 (디지털노마드창업자모집)/② 채우기 : 색상(RGB:202,86,167)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "디지털노마드창업자모집",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (디지털노마드창업자모집)/③ 크기-너비 (120 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": "238,219,98",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:238,219,98)"
},
"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": "서면심사 및 대면심사",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (서면심사 및 대면심사)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "서면심사 및 대면심사",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (서면심사 및 대면심사)/② 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": "2026. 04. 25.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 25.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2026. 04. 25.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 25.)/② 정렬 (가운데 정렬)"
},
"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": "2500",
"points": 1,
"category": "OneAnswer",
"item": "문구 (디지털노마드센터)/② 크기 (2500)"
},
"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": "50",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (디지털노마드)/④ 글상자 모서리 (둥근모양)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "192,205,239",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (디지털노마드)/⑤ 채우기 : 색상(RGB:192,205,239)"
},
"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": "1900",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (디지털노마드)/⑨ 글씨크기 (1900)",
"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": "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": "UserChar",
"points": 2,
"category": "PageNumber",
"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(),'{ignoreWord}')])",
"ignoreWord": "Digital",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Digital/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": ""
},
"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": "175,232,239",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:175,232,239)"
},
"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}')]) or 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 | //c:catAx/c:txPr//a:latin/@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 | //c:valAx/c:txPr//a:latin/@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 | //c:legend//a:latin/@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"
}
}
}

850
JSON/2604/DIW_2604B.json Normal file
View File

@@ -0,0 +1,850 @@
{
"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": "130",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (세계문화체험페스티벌)/③ 크기-너비 (130 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": "245,132,58",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:245,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": "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": "2026년 5월 1일(금) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2026년 5월 1일(금) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2026년 5월 1일(금) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2026년 5월 1일(금) 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": 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": "2026. 04. 25.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 25.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2026. 04. 25.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 25.)/② 정렬 (가운데 정렬)"
},
"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": "2500",
"points": 1,
"category": "OneAnswer",
"item": "문구 (세계도시문화축제협회)/② 크기 (2500)"
},
"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": "RomanSmall",
"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": "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": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (글로벌 문화 교류)/④ 글상자 모서리 (둥근모양)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "199,231,245",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (글로벌 문화 교류)/⑤ 채우기 : 색상(RGB:199,231,245)"
},
"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": "DecagonCircleHanja",
"points": 2,
"category": "PageNumber",
"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(),'{ignoreWord}')])",
"ignoreWord": "Pandemic",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Pandemic/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": ""
},
"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": "233,62,98",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:233,62,98)"
},
"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}')]) or 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 | //c:catAx/c:txPr//a:latin/@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 | //c:valAx/c:txPr//a:latin/@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 | //c:legend//a:latin/@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"
}
}
}

850
JSON/2604/DIW_2604C.json Normal file
View File

@@ -0,0 +1,850 @@
{
"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": "95,172,34",
"points": 2,
"category": "Color",
"item": "문구 (인상파예술특별기획전)/② 채우기 : 색상(RGB:95,172,34)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "인상파예술특별기획전",
"value": "130",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (인상파예술특별기획전)/③ 크기-너비 (130 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": "244,82,29",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:244,82,29)"
},
"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": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① ITALIC"
},
"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": "나만의 키링 만들기 체험",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (나만의 키링 만들기 체험)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "나만의 키링 만들기 체험",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (나만의 키링 만들기 체험)/② 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": "2026. 04. 25.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 25.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2026. 04. 25.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 25.)/② 정렬 (가운데 정렬)"
},
"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": "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": "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": "50",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (인상주의)/① 크기-너비 (50 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": "245,177,248",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (인상주의)/⑤ 채우기 : 색상(RGB:245,177,248)"
},
"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": "2200",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (인상주의)/⑨ 글씨크기 (2200)",
"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": "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": "CircledIdeograph",
"points": 2,
"category": "PageNumber",
"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(),'{ignoreWord}')])",
"ignoreWord": "Expression",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Expression/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": ""
},
"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": "84,207,228",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:84,207,228)"
},
"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}')]) or 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": "100% 기준 누적 세로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (100% 기준 누적 세로 막대형)",
"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": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (인상파 작품 소장 현황)/② 크기 (1200)"
},
"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 | //c:catAx/c:txPr//a:latin/@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 | //c:valAx/c:txPr//a:latin/@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 | //c:legend//a:latin/@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"
}
}
}

View File

@@ -0,0 +1,840 @@
{
"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": "201,102,248",
"points": 2,
"category": "Color",
"item": "문구 (소셜네트워킹전략컨퍼런스)/② 채우기 : 색상(RGB:201,102,248)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "소셜네트워킹전략컨퍼런스",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (소셜네트워킹전략컨퍼런스)/③ 크기-너비 (120 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": "218,202,48",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:218,202,48)"
},
"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": "서울 강남구 한국정보기술협력센터 3층 대회의장",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (서울 강남구 한국정보기술협력센터 3층 대회의장)/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "서울 강남구 한국정보기술협력센터 3층 대회의장",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (서울 강남구 한국정보기술협력센터 3층 대회의장)/② 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": "2026. 04. 07.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 07.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2026. 04. 07.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 07.)/② 정렬 (가운데 정렬)"
},
"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": "Digit",
"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": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "180",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 180% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점)"
}
},
"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": "70",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (소셜 네트워킹 서비스)/① 크기-너비 (70 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": "90,233,53",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (소셜 네트워킹 서비스)/⑤ 채우기 : 색상(RGB:90,233,53)"
},
"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": "① 파일명 \"그림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": "45",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (45 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": "CircledIdeograph",
"points": 2,
"category": "PageNumber",
"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(),'{ignoreWord}')])",
"ignoreWord": "Marketing",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Marketing/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": ""
},
"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": "248,203,169",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:248,203,169)"
},
"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}')]) or 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": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (스마트폰 가입자 수)/② 크기 (1200)"
},
"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 | //c:catAx/c:txPr//a:latin/@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 | //c:valAx/c:txPr//a:latin/@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 | //c:legend//a:latin/@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"
}
}
}

View File

@@ -0,0 +1,850 @@
{
"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": "53,135,145",
"points": 2,
"category": "Color",
"item": "문구 (대학교육정책포럼)/② 채우기 : 색상(RGB:53,135,145)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "대학교육정책포럼",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (대학교육정책포럼)/③ 크기-너비 (120 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": "192,204,239",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:192,204,239)"
},
"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": "2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2026. 05. 01.(금) 18:00까지 온라인 사전 등록(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": 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": "2026. 04. 22.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 22.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2026. 04. 22.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 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": "2500",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국대학교육협의회)/② 크기 (2500)"
},
"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": "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": "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": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (대학 구조조정)/④ 글상자 모서리 (둥근모양)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "227,220,193",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (대학 구조조정)/⑤ 채우기 : 색상(RGB:227,220,193)"
},
"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": "① 파일명 \"그림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": "35",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (35 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": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (학령인구)/② 글씨체 (돋움)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (학령인구)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "DecagonCircleHanja",
"points": 2,
"category": "PageNumber",
"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(),'{ignoreWord}')])",
"ignoreWord": "Management",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Management/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": ""
},
"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": "158,219,98",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:158,219,98)"
},
"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}')]) or 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 | //c:catAx/c:txPr//a:latin/@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 | //c:valAx/c:txPr//a:latin/@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 | //c:legend//a:latin/@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"
}
}
}

View File

@@ -0,0 +1,850 @@
{
"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": "53,135,145",
"points": 2,
"category": "Color",
"item": "문구 (대학교육정책포럼)/② 채우기 : 색상(RGB:53,135,145)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "대학교육정책포럼",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (대학교육정책포럼)/③ 크기-너비 (120 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": "192,204,239",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:192,204,239)"
},
"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": "2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2026. 05. 01.(금) 18:00까지 온라인 사전 등록(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": 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": "2026. 04. 22.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 22.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2026. 04. 22.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2026. 04. 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": "2500",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국대학교육협의회)/② 크기 (2500)"
},
"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": "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": "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": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (대학 구조조정)/④ 글상자 모서리 (둥근모양)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "227,220,193",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (대학 구조조정)/⑤ 채우기 : 색상(RGB:227,220,193)"
},
"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": "① 파일명 \"그림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": "35",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (35 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": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (학령인구)/② 글씨체 (돋움)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (학령인구)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "DecagonCircleHanja",
"points": 2,
"category": "PageNumber",
"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(),'{ignoreWord}')])",
"ignoreWord": "Management",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Management/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": ""
},
"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": "158,219,98",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:158,219,98)"
},
"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}')]) or 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 | //c:catAx/c:txPr//a:latin/@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 | //c:valAx/c:txPr//a:latin/@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 | //c:legend//a:latin/@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"
}
}
}

View File

@@ -1076,6 +1076,7 @@ class XMLScorer:
'묶은세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]", '묶은세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]",
'누적세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='stacked']]", '누적세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='stacked']]",
'100%기준누적세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='percentStacked']]",
'원형': "//c:pieChart", '원형': "//c:pieChart",
'분산형': "//c:scatterChart", '분산형': "//c:scatterChart",
'표식만있는분산형': "//c:scatterChart[c:scatterStyle[@val='marker']]", '표식만있는분산형': "//c:scatterChart[c:scatterStyle[@val='marker']]",
@@ -1489,7 +1490,7 @@ class XMLScorer:
def main(): def main():
# 시험회차 및 유형 # 시험회차 및 유형
exam_round = '2603' exam_round = '2604'
# exam_round = '2522' # exam_round = '2522'
# 채점하고자 하는 유형은 주석 해제 # 채점하고자 하는 유형은 주석 해제

View File

@@ -34158,3 +34158,256 @@
2026-03-31 17:48:33,058 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2603\D\DIW -> D:\project\HWP\HWP-Scoring\output\2603\D\DIW 2026-03-31 17:48:33,058 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2603\D\DIW -> D:\project\HWP\HWP-Scoring\output\2603\D\DIW
2026-03-31 17:48:33,559 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2603\E\DIW -> D:\project\HWP\HWP-Scoring\output\2603\E\DIW 2026-03-31 17:48:33,559 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2603\E\DIW -> D:\project\HWP\HWP-Scoring\output\2603\E\DIW
2026-03-31 17:48:34,980 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2603\E\DIW -> D:\project\HWP\HWP-Scoring\output\2603\E\DIW 2026-03-31 17:48:34,980 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2603\E\DIW -> D:\project\HWP\HWP-Scoring\output\2603\E\DIW
2026-04-08 17:03:55,911 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604\A\DIW
2026-04-08 17:03:59,890 - INFO - 변환 성공: DIW_2604A.hwpx -> DIW_2604A.hml
2026-04-08 17:04:00,369 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604\A\DIW
2026-04-08 17:04:00,870 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604\B\DIW
2026-04-08 17:04:02,171 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604\B\DIW
2026-04-08 17:04:02,672 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604\C\DIW
2026-04-08 17:04:04,008 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604\C\DIW
2026-04-08 17:04:04,509 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604\D\DIW
2026-04-08 17:04:05,786 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604\D\DIW
2026-04-08 17:04:06,288 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604\E\DIW
2026-04-08 17:04:07,588 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604\E\DIW
2026-04-09 16:34:47,819 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604\A\DIW
2026-04-09 16:34:50,074 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604\A\DIW
2026-04-09 16:34:50,576 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604\B\DIW
2026-04-09 16:34:56,751 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604+2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604+2\A\DIW
2026-04-09 16:34:58,320 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604+2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604+2\A\DIW
2026-04-09 16:34:58,820 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604+2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604+2\B\DIW
2026-04-09 16:35:00,156 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604+2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604+2\B\DIW
2026-04-09 16:35:00,657 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604+2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604+2\C\DIW
2026-04-09 16:35:01,911 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604+2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604+2\C\DIW
2026-04-09 16:35:02,412 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604+2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604+2\D\DIW
2026-04-09 16:35:03,604 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604+2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604+2\D\DIW
2026-04-09 16:35:04,104 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604+2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604+2\E\DIW
2026-04-09 16:35:05,365 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604+2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604+2\E\DIW
2026-04-09 16:35:22,305 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_2\A\DIW
2026-04-09 16:35:25,613 - INFO - 변환 성공: DIW-001643-구민우.hwp -> DIW-001643-구민우.hml
2026-04-09 16:35:26,290 - INFO - 변환 성공: DIW-001644-김강민.hwp -> DIW-001644-김강민.hml
2026-04-09 16:35:26,776 - INFO - 변환 성공: DIW-001645-김민율.hwp -> DIW-001645-김민율.hml
2026-04-09 16:35:27,231 - INFO - 변환 성공: DIW-001646-김승현.hwp -> DIW-001646-김승현.hml
2026-04-09 16:35:27,801 - INFO - 변환 성공: DIW-001647-남윤서.hwp -> DIW-001647-남윤서.hml
2026-04-09 16:35:28,236 - INFO - 변환 성공: DIW-001648-노재환.hwp -> DIW-001648-노재환.hml
2026-04-09 16:35:28,665 - INFO - 변환 성공: DIW-001649-문성현.hwp -> DIW-001649-문성현.hml
2026-04-09 16:35:29,230 - INFO - 변환 성공: DIW-001650-박승수.hwp -> DIW-001650-박승수.hml
2026-04-09 16:35:29,728 - INFO - 변환 성공: DIW-001651-백건호.hwp -> DIW-001651-백건호.hml
2026-04-09 16:35:30,142 - INFO - 변환 성공: DIW-001652-백수환.hwp -> DIW-001652-백수환.hml
2026-04-09 16:35:30,761 - INFO - 변환 성공: DIW-001653-서민성.hwp -> DIW-001653-서민성.hml
2026-04-09 16:35:31,289 - INFO - 변환 성공: DIW-001654-성준우.hwp -> DIW-001654-성준우.hml
2026-04-09 16:35:31,833 - INFO - 변환 성공: DIW-001655-연서준.hwp -> DIW-001655-연서준.hml
2026-04-09 16:35:32,384 - INFO - 변환 성공: DIW-001656-유진욱.hwp -> DIW-001656-유진욱.hml
2026-04-09 16:35:33,029 - INFO - 변환 성공: DIW-001657-이민규.hwp -> DIW-001657-이민규.hml
2026-04-09 16:35:33,636 - INFO - 변환 성공: DIW-001658-이승현.hwp -> DIW-001658-이승현.hml
2026-04-09 16:35:34,262 - INFO - 변환 성공: DIW-001659-이주명.hwp -> DIW-001659-이주명.hml
2026-04-09 16:35:34,847 - INFO - 변환 성공: DIW-001660-최영우.hwp -> DIW-001660-최영우.hml
2026-04-09 16:35:35,414 - INFO - 변환 성공: DIW-001661-최재영.hwp -> DIW-001661-최재영.hml
2026-04-09 16:35:35,985 - INFO - 변환 성공: DIW-001662-최황빈.hwp -> DIW-001662-최황빈.hml
2026-04-09 16:35:36,526 - INFO - 변환 성공: DIW-001663-한은호.hwp -> DIW-001663-한은호.hml
2026-04-09 16:35:37,224 - INFO - 변환 성공: DIW-001664-홍준민.hwp -> DIW-001664-홍준민.hml
2026-04-09 16:35:37,800 - INFO - 변환 성공: DIW-001665-길태우.hwp -> DIW-001665-길태우.hml
2026-04-09 16:35:38,201 - INFO - 변환 성공: DIW-001666-김범수.hwp -> DIW-001666-김범수.hml
2026-04-09 16:35:38,763 - INFO - 변환 성공: DIW-001667-김유근.hwp -> DIW-001667-김유근.hml
2026-04-09 16:35:39,311 - INFO - 변환 성공: DIW-001668-김윤찬.hwp -> DIW-001668-김윤찬.hml
2026-04-09 16:35:39,855 - INFO - 변환 성공: DIW-001669-김율각.hwp -> DIW-001669-김율각.hml
2026-04-09 16:35:40,487 - INFO - 변환 성공: DIW-001670-김형민.hwp -> DIW-001670-김형민.hml
2026-04-09 16:35:41,030 - INFO - 변환 성공: DIW-001671-문서준.hwp -> DIW-001671-문서준.hml
2026-04-09 16:35:41,424 - INFO - 변환 성공: DIW-001672-문성원.hwp -> DIW-001672-문성원.hml
2026-04-09 16:35:42,055 - INFO - 변환 성공: DIW-001673-박성준.hwp -> DIW-001673-박성준.hml
2026-04-09 16:35:42,593 - INFO - 변환 성공: DIW-001674-신도윤.hwp -> DIW-001674-신도윤.hml
2026-04-09 16:35:43,138 - INFO - 변환 성공: DIW-001675-신우철.hwp -> DIW-001675-신우철.hml
2026-04-09 16:35:43,684 - INFO - 변환 성공: DIW-001676-신진혁.hwp -> DIW-001676-신진혁.hml
2026-04-09 16:35:44,306 - INFO - 변환 성공: DIW-001677-원우빈.hwp -> DIW-001677-원우빈.hml
2026-04-09 16:35:44,880 - INFO - 변환 성공: DIW-001678-윤지호.hwp -> DIW-001678-윤지호.hml
2026-04-09 16:35:45,444 - INFO - 변환 성공: DIW-001679-이만희.hwp -> DIW-001679-이만희.hml
2026-04-09 16:35:45,972 - INFO - 변환 성공: DIW-001680-이승현.hwp -> DIW-001680-이승현.hml
2026-04-09 16:35:46,507 - INFO - 변환 성공: DIW-001681-이우성.hwp -> DIW-001681-이우성.hml
2026-04-09 16:35:47,040 - INFO - 변환 성공: DIW-001682-조재호.hwp -> DIW-001682-조재호.hml
2026-04-09 16:35:47,758 - INFO - 변환 성공: DIW-001683-최성민.hwp -> DIW-001683-최성민.hml
2026-04-09 16:35:48,439 - INFO - 변환 성공: DIW-001684-최성준.hwp -> DIW-001684-최성준.hml
2026-04-09 16:35:49,083 - INFO - 변환 성공: DIW-001685-최하진.hwp -> DIW-001685-최하진.hml
2026-04-09 16:35:49,721 - INFO - 변환 성공: DIW-001686-최한결.hwp -> DIW-001686-최한결.hml
2026-04-09 16:35:50,348 - INFO - 변환 성공: DIW_2604_2A.hwpx -> DIW_2604_2A.hml
2026-04-09 16:35:50,762 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_2\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_2\A\DIW
2026-04-09 16:35:51,263 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_2\B\DIW
2026-04-09 16:35:55,292 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_2\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_2\B\DIW
2026-04-09 16:35:55,793 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_2\C\DIW
2026-04-09 16:35:57,284 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_2\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_2\C\DIW
2026-04-09 16:35:57,785 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_2\D\DIW
2026-04-09 16:35:59,082 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_2\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_2\D\DIW
2026-04-09 16:35:59,583 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_2\E\DIW
2026-04-09 16:36:00,764 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_2\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_2\E\DIW
2026-04-23 16:21:45,090 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\A\DIW
2026-04-23 16:22:05,026 - INFO - 변환 성공: DIW_2604_4A.hwpx -> DIW_2604_4A.hml
2026-04-23 16:22:05,061 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\A\DIW
2026-04-23 16:22:05,563 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\B\DIW
2026-04-23 16:22:06,871 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\B\DIW
2026-04-23 16:22:07,372 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\C\DIW
2026-04-23 16:22:08,688 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\C\DIW
2026-04-23 16:22:09,189 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\D\DIW
2026-04-23 16:22:10,558 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\D\DIW
2026-04-23 16:22:11,058 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\E\DIW
2026-04-23 16:22:12,452 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\E\DIW
2026-04-23 16:22:12,952 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_5\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\A\DIW
2026-04-23 16:22:15,947 - INFO - 변환 성공: DIW_2604_5A.hwpx -> DIW_2604_5A.hml
2026-04-23 16:22:15,985 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_5\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\A\DIW
2026-04-23 16:22:16,486 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_5\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\B\DIW
2026-04-23 16:22:17,886 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_5\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\B\DIW
2026-04-23 16:22:18,388 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_5\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\C\DIW
2026-04-23 16:22:19,774 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_5\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\C\DIW
2026-04-23 16:22:20,275 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_5\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\D\DIW
2026-04-23 16:22:21,602 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_5\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\D\DIW
2026-04-23 16:22:22,102 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_5\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\E\DIW
2026-04-23 16:22:23,426 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_5\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\E\DIW
2026-04-23 16:25:57,772 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\A\DIW
2026-04-23 16:26:01,103 - INFO - 변환 성공: DIW-002763-송소연.hwp -> DIW-002763-송소연.hml
2026-04-23 16:26:01,721 - INFO - 변환 성공: DIW-002764-오시원.hwp -> DIW-002764-오시원.hml
2026-04-23 16:26:02,229 - INFO - 변환 성공: DIW-002774-서로빈.hwp -> DIW-002774-서로빈.hml
2026-04-23 16:26:02,722 - INFO - 변환 성공: DIW-002775-이승원.hwp -> DIW-002775-이승원.hml
2026-04-23 16:26:03,239 - INFO - 변환 성공: DIW-002776-김지혜.hwp -> DIW-002776-김지혜.hml
2026-04-23 16:26:03,743 - INFO - 변환 성공: DIW-002777-권원.hwp -> DIW-002777-권원.hml
2026-04-23 16:26:04,264 - INFO - 변환 성공: DIW-002778-김지환.hwp -> DIW-002778-김지환.hml
2026-04-23 16:26:04,772 - INFO - 변환 성공: DIW-002781-강지안.hwp -> DIW-002781-강지안.hml
2026-04-23 16:26:05,512 - INFO - 변환 성공: DIW-002790-홍다현.hwp -> DIW-002790-홍다현.hml
2026-04-23 16:26:05,990 - INFO - 변환 성공: DIW-002791-남현준.hwp -> DIW-002791-남현준.hml
2026-04-23 16:26:06,427 - INFO - 변환 성공: DIW-002792-이선유.hwp -> DIW-002792-이선유.hml
2026-04-23 16:26:06,861 - INFO - 변환 성공: DIW-002793-한채윤.hwp -> DIW-002793-한채윤.hml
2026-04-23 16:26:07,208 - INFO - 변환 성공: DIW-002794-오연우.hwp -> DIW-002794-오연우.hml
2026-04-23 16:26:07,462 - INFO - 변환 성공: DIW-002795-오아림.hwp -> DIW-002795-오아림.hml
2026-04-23 16:26:07,818 - INFO - 변환 성공: DIW-002796-탁화연.hwp -> DIW-002796-탁화연.hml
2026-04-23 16:26:08,361 - INFO - 변환 성공: DIW-002797-유다율.hwp -> DIW-002797-유다율.hml
2026-04-23 16:26:08,741 - INFO - 변환 성공: DIW-002799-김준성.hwp -> DIW-002799-김준성.hml
2026-04-23 16:26:09,471 - INFO - 변환 성공: DIW-002800-김라훈.hwp -> DIW-002800-김라훈.hml
2026-04-23 16:26:10,014 - INFO - 변환 성공: DIW-002801-한서율.hwp -> DIW-002801-한서율.hml
2026-04-23 16:26:10,549 - INFO - 변환 성공: DIW-002802-윤가율.hwp -> DIW-002802-윤가율.hml
2026-04-23 16:26:11,173 - INFO - 변환 성공: DIW-002803-현지안.hwp -> DIW-002803-현지안.hml
2026-04-23 16:26:11,690 - INFO - 변환 성공: DIW-002804-조아람.hwp -> DIW-002804-조아람.hml
2026-04-23 16:26:12,155 - INFO - 변환 성공: DIW-002805-김가연.hwp -> DIW-002805-김가연.hml
2026-04-23 16:26:12,781 - INFO - 변환 성공: DIW-002812-강유재.hwp -> DIW-002812-강유재.hml
2026-04-23 16:26:13,370 - INFO - 변환 성공: DIW-002813-김가현.hwp -> DIW-002813-김가현.hml
2026-04-23 16:26:13,918 - INFO - 변환 성공: DIW-002814-변준혁.hwp -> DIW-002814-변준혁.hml
2026-04-23 16:26:14,687 - INFO - 변환 성공: DIW-002820-강혜원.hwp -> DIW-002820-강혜원.hml
2026-04-23 16:26:15,234 - INFO - 변환 성공: DIW-002821-백지우.hwp -> DIW-002821-백지우.hml
2026-04-23 16:26:15,746 - INFO - 변환 성공: DIW-002822-원서윤.hwp -> DIW-002822-원서윤.hml
2026-04-23 16:26:16,255 - INFO - 변환 성공: DIW-002823-이하준.hwp -> DIW-002823-이하준.hml
2026-04-23 16:26:16,745 - INFO - 변환 성공: DIW-002828-지단우.hwp -> DIW-002828-지단우.hml
2026-04-23 16:26:17,282 - INFO - 변환 성공: DIW-002829-우예지.hwp -> DIW-002829-우예지.hml
2026-04-23 16:26:17,778 - INFO - 변환 성공: DIW-002830-현우준.hwp -> DIW-002830-현우준.hml
2026-04-23 16:26:18,270 - INFO - 변환 성공: DIW-002831-허준영.hwp -> DIW-002831-허준영.hml
2026-04-23 16:26:18,763 - INFO - 변환 성공: DIW-002832-강도윤.hwp -> DIW-002832-강도윤.hml
2026-04-23 16:26:19,269 - INFO - 변환 성공: DIW-002833-고다윤.hwp -> DIW-002833-고다윤.hml
2026-04-23 16:26:19,954 - INFO - 변환 성공: DIW-002838-홍서준.hwp -> DIW-002838-홍서준.hml
2026-04-23 16:26:20,449 - INFO - 변환 성공: DIW-002839-임도현.hwp -> DIW-002839-임도현.hml
2026-04-23 16:26:20,927 - INFO - 변환 성공: DIW-002840-이다희.hwp -> DIW-002840-이다희.hml
2026-04-23 16:26:21,454 - INFO - 변환 성공: DIW_2604_4A.hwpx -> DIW_2604_4A.hml
2026-04-23 16:26:21,760 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\A\DIW
2026-04-23 16:26:22,260 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\B\DIW
2026-04-23 16:26:23,552 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\B\DIW
2026-04-23 16:26:24,054 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\C\DIW
2026-04-23 16:26:25,380 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\C\DIW
2026-04-23 16:26:25,881 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\D\DIW
2026-04-23 16:26:27,164 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\D\DIW
2026-04-23 16:26:27,665 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\E\DIW
2026-04-23 16:26:28,964 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\E\DIW
2026-04-23 16:26:29,465 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_5\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\A\DIW
2026-04-23 16:26:33,360 - INFO - 변환 성공: 워드(한글)-002423-윤세훈.hwp -> 워드(한글)-002423-윤세훈.hml
2026-04-23 16:26:33,833 - INFO - 변환 성공: 워드(한글)-002428-최민성.hwp -> 워드(한글)-002428-최민성.hml
2026-04-23 16:26:34,087 - INFO - 변환 성공: 워드(한글)-002432-권유진.hwp -> 워드(한글)-002432-권유진.hml
2026-04-23 16:26:34,425 - INFO - 변환 성공: 워드(한글)-002433-김경현.hwp -> 워드(한글)-002433-김경현.hml
2026-04-23 16:26:34,916 - INFO - 변환 성공: 워드(한글)-002434-김기현.hwp -> 워드(한글)-002434-김기현.hml
2026-04-23 16:26:35,281 - INFO - 변환 성공: 워드(한글)-002435-김민규.hwp -> 워드(한글)-002435-김민규.hml
2026-04-23 16:26:35,609 - INFO - 변환 성공: 워드(한글)-002436-김선우.hwp -> 워드(한글)-002436-김선우.hml
2026-04-23 16:26:36,104 - INFO - 변환 성공: 워드(한글)-002437-김성종.hwp -> 워드(한글)-002437-김성종.hml
2026-04-23 16:26:36,490 - INFO - 변환 성공: 워드(한글)-002440-김종현.hwp -> 워드(한글)-002440-김종현.hml
2026-04-23 16:26:36,820 - INFO - 변환 성공: 워드(한글)-002441-남건진.hwp -> 워드(한글)-002441-남건진.hml
2026-04-23 16:26:37,295 - INFO - 변환 성공: 워드(한글)-002442-남규완.hwp -> 워드(한글)-002442-남규완.hml
2026-04-23 16:26:37,685 - INFO - 변환 성공: 워드(한글)-002444-박보검.hwp -> 워드(한글)-002444-박보검.hml
2026-04-23 16:26:38,036 - INFO - 변환 성공: 워드(한글)-002447-신경준.hwp -> 워드(한글)-002447-신경준.hml
2026-04-23 16:26:38,350 - INFO - 변환 성공: 워드(한글)-002448-신승헌.hwp -> 워드(한글)-002448-신승헌.hml
2026-04-23 16:26:38,684 - INFO - 변환 성공: 워드(한글)-002449-여현동.hwp -> 워드(한글)-002449-여현동.hml
2026-04-23 16:26:39,070 - INFO - 변환 성공: 워드(한글)-002450-이동건.hwp -> 워드(한글)-002450-이동건.hml
2026-04-23 16:26:39,404 - INFO - 변환 성공: 워드(한글)-002451-이상훈.hwp -> 워드(한글)-002451-이상훈.hml
2026-04-23 16:26:39,881 - INFO - 변환 성공: 워드(한글)-002453-이재율.hwp -> 워드(한글)-002453-이재율.hml
2026-04-23 16:26:40,276 - INFO - 변환 성공: 워드(한글)-002455-임성훈.hwp -> 워드(한글)-002455-임성훈.hml
2026-04-23 16:26:40,524 - INFO - 변환 성공: 워드(한글)-002456-장민제.hwp -> 워드(한글)-002456-장민제.hml
2026-04-23 16:26:40,772 - INFO - 변환 성공: 워드(한글)-002458-정시율.hwp -> 워드(한글)-002458-정시율.hml
2026-04-23 16:26:41,131 - INFO - 변환 성공: 워드(한글)-002459-정우재.hwp -> 워드(한글)-002459-정우재.hml
2026-04-23 16:26:41,499 - INFO - 변환 성공: 워드(한글)-002461-최우식.hwp -> 워드(한글)-002461-최우식.hml
2026-04-23 16:26:41,673 - INFO - 변환 성공: 워드(한글)-002462-팽민성.hwp -> 워드(한글)-002462-팽민성.hml
2026-04-23 16:26:41,915 - INFO - 변환 성공: 워드(한글)-002464-홍서진.hwp -> 워드(한글)-002464-홍서진.hml
2026-04-23 16:26:42,252 - INFO - 변환 성공: 워드(한글)-002465-홍준.hwp -> 워드(한글)-002465-홍준.hml
2026-04-23 16:26:42,764 - INFO - 변환 성공: DIW_2604_5A.hwpx -> DIW_2604_5A.hml
2026-04-23 16:26:43,304 - INFO - 변환 성공: 워드(한글)-002446-손민성.hwpx -> 워드(한글)-002446-손민성.hml
2026-04-23 16:26:43,584 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_5\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\A\DIW
2026-04-23 16:26:44,086 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_5\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\B\DIW
2026-04-23 16:26:45,563 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_5\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\B\DIW
2026-04-23 16:26:46,064 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_5\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\C\DIW
2026-04-23 16:26:47,397 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_5\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\C\DIW
2026-04-23 16:26:47,897 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_5\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\D\DIW
2026-04-23 16:26:49,284 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_5\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\D\DIW
2026-04-23 16:26:49,785 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_5\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\E\DIW
2026-04-23 16:26:51,098 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_5\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\E\DIW
2026-04-23 16:43:17,710 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\A\DIW
2026-04-23 16:43:22,506 - INFO - 변환 성공: DIW-002763-송소연.hwp -> DIW-002763-송소연.hml
2026-04-23 16:43:22,591 - INFO - 변환 성공: DIW-002764-오시원.hwp -> DIW-002764-오시원.hml
2026-04-23 16:43:22,661 - INFO - 변환 성공: DIW-002774-서로빈.hwp -> DIW-002774-서로빈.hml
2026-04-23 16:43:22,731 - INFO - 변환 성공: DIW-002775-이승원.hwp -> DIW-002775-이승원.hml
2026-04-23 16:43:22,800 - INFO - 변환 성공: DIW-002776-김지혜.hwp -> DIW-002776-김지혜.hml
2026-04-23 16:43:22,869 - INFO - 변환 성공: DIW-002777-권원.hwp -> DIW-002777-권원.hml
2026-04-23 16:43:22,939 - INFO - 변환 성공: DIW-002778-김지환.hwp -> DIW-002778-김지환.hml
2026-04-23 16:43:23,011 - INFO - 변환 성공: DIW-002781-강지안.hwp -> DIW-002781-강지안.hml
2026-04-23 16:43:23,081 - INFO - 변환 성공: DIW-002790-홍다현.hwp -> DIW-002790-홍다현.hml
2026-04-23 16:43:23,155 - INFO - 변환 성공: DIW-002791-남현준.hwp -> DIW-002791-남현준.hml
2026-04-23 16:43:23,224 - INFO - 변환 성공: DIW-002792-이선유.hwp -> DIW-002792-이선유.hml
2026-04-23 16:43:23,293 - INFO - 변환 성공: DIW-002793-한채윤.hwp -> DIW-002793-한채윤.hml
2026-04-23 16:43:23,360 - INFO - 변환 성공: DIW-002794-오연우.hwp -> DIW-002794-오연우.hml
2026-04-23 16:43:23,429 - INFO - 변환 성공: DIW-002795-오아림.hwp -> DIW-002795-오아림.hml
2026-04-23 16:43:23,497 - INFO - 변환 성공: DIW-002796-탁화연.hwp -> DIW-002796-탁화연.hml
2026-04-23 16:43:23,565 - INFO - 변환 성공: DIW-002797-유다율.hwp -> DIW-002797-유다율.hml
2026-04-23 16:43:23,632 - INFO - 변환 성공: DIW-002799-김준성.hwp -> DIW-002799-김준성.hml
2026-04-23 16:43:23,701 - INFO - 변환 성공: DIW-002800-김라훈.hwp -> DIW-002800-김라훈.hml
2026-04-23 16:43:23,769 - INFO - 변환 성공: DIW-002801-한서율.hwp -> DIW-002801-한서율.hml
2026-04-23 16:43:23,837 - INFO - 변환 성공: DIW-002802-윤가율.hwp -> DIW-002802-윤가율.hml
2026-04-23 16:43:23,905 - INFO - 변환 성공: DIW-002803-현지안.hwp -> DIW-002803-현지안.hml
2026-04-23 16:43:23,973 - INFO - 변환 성공: DIW-002804-조아람.hwp -> DIW-002804-조아람.hml
2026-04-23 16:43:24,041 - INFO - 변환 성공: DIW-002805-김가연.hwp -> DIW-002805-김가연.hml
2026-04-23 16:43:24,110 - INFO - 변환 성공: DIW-002812-강유재.hwp -> DIW-002812-강유재.hml
2026-04-23 16:43:24,186 - INFO - 변환 성공: DIW-002813-김가현.hwp -> DIW-002813-김가현.hml
2026-04-23 16:43:24,253 - INFO - 변환 성공: DIW-002814-변준혁.hwp -> DIW-002814-변준혁.hml
2026-04-23 16:43:24,321 - INFO - 변환 성공: DIW-002820-강혜원.hwp -> DIW-002820-강혜원.hml
2026-04-23 16:43:24,388 - INFO - 변환 성공: DIW-002821-백지우.hwp -> DIW-002821-백지우.hml
2026-04-23 16:43:24,460 - INFO - 변환 성공: DIW-002822-원서윤.hwp -> DIW-002822-원서윤.hml
2026-04-23 16:43:24,529 - INFO - 변환 성공: DIW-002823-이하준.hwp -> DIW-002823-이하준.hml
2026-04-23 16:43:24,597 - INFO - 변환 성공: DIW-002828-지단우.hwp -> DIW-002828-지단우.hml
2026-04-23 16:43:24,665 - INFO - 변환 성공: DIW-002829-우예지.hwp -> DIW-002829-우예지.hml
2026-04-23 16:43:24,733 - INFO - 변환 성공: DIW-002830-현우준.hwp -> DIW-002830-현우준.hml
2026-04-23 16:43:24,803 - INFO - 변환 성공: DIW-002831-허준영.hwp -> DIW-002831-허준영.hml
2026-04-23 16:43:24,873 - INFO - 변환 성공: DIW-002832-강도윤.hwp -> DIW-002832-강도윤.hml
2026-04-23 16:43:24,940 - INFO - 변환 성공: DIW-002833-고다윤.hwp -> DIW-002833-고다윤.hml
2026-04-23 16:43:25,009 - INFO - 변환 성공: DIW-002838-홍서준.hwp -> DIW-002838-홍서준.hml
2026-04-23 16:43:25,078 - INFO - 변환 성공: DIW-002839-임도현.hwp -> DIW-002839-임도현.hml
2026-04-23 16:43:25,150 - INFO - 변환 성공: DIW-002840-이다희.hwp -> DIW-002840-이다희.hml
2026-04-23 16:43:25,221 - INFO - 변환 성공: DIW_2604_4A.hwpx -> DIW_2604_4A.hml
2026-04-23 16:43:25,246 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\A\DIW
2026-04-23 16:43:25,748 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\B\DIW
2026-04-23 16:43:26,997 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\B\DIW
2026-04-23 16:43:27,498 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\C\DIW
2026-04-23 16:43:28,733 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\C\DIW
2026-04-23 16:43:29,234 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\D\DIW
2026-04-23 16:43:30,505 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\D\DIW
2026-04-23 16:43:31,005 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_4\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\E\DIW
2026-04-23 16:43:32,355 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604_4\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604_4\E\DIW
2026-04-23 16:43:32,856 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604_5\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604_5\A\DIW
2026-04-27 16:49:59,296 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604\A\DIW
2026-04-27 16:50:05,627 - INFO - 변환 성공: DIW_2604A.hwpx -> DIW_2604A.hml
2026-04-27 16:50:06,086 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604\A\DIW -> D:\project\HWP\HWP-Scoring\output\2604\A\DIW
2026-04-27 16:50:06,587 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604\B\DIW
2026-04-27 16:50:08,759 - INFO - 변환 성공: DIW_2604B.hwpx -> DIW_2604B.hml
2026-04-27 16:50:09,185 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604\B\DIW -> D:\project\HWP\HWP-Scoring\output\2604\B\DIW
2026-04-27 16:50:09,686 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604\C\DIW
2026-04-27 16:50:11,826 - INFO - 변환 성공: DIW_2604C.hwpx -> DIW_2604C.hml
2026-04-27 16:50:12,265 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604\C\DIW -> D:\project\HWP\HWP-Scoring\output\2604\C\DIW
2026-04-27 16:50:12,766 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604\D\DIW
2026-04-27 16:50:14,023 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604\D\DIW -> D:\project\HWP\HWP-Scoring\output\2604\D\DIW
2026-04-27 16:50:14,524 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2604\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604\E\DIW
2026-04-27 16:50:15,755 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2604\E\DIW -> D:\project\HWP\HWP-Scoring\output\2604\E\DIW

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 679 KiB