2510회 수시 채점자료 업데이트

This commit is contained in:
2025-10-21 17:12:38 +09:00
parent 4daf3da58d
commit d97502ff5c
56 changed files with 15366 additions and 18513 deletions

View File

@@ -1,66 +0,0 @@
import win32com.client as win32
import os
constants = win32.constants
hwp = None
try:
hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")
hwp.RegisterModule("FilePathCheckDLL", "SecurityModule")
hwp.XHwpWindows.Item(0).Visible = False
file_path = "D:\\SynologyDrive\\develop\\py\\hwp\\sample\\sample.hwpx"
output_file_path = "D:\\SynologyDrive\\develop\\py\\hwp\\sample\\sample.xml"
if not os.path.exists(file_path):
print(f"❌ 오류: 원본 파일 '{file_path}'이 존재하지 않습니다.")
exit()
print(f"'{file_path}' 파일을 엽니다...")
hwp.Open(file_path)
total_pages = hwp.PageCount
current = 1
hwp.HAction.Run("MoveDocBegin")
while( current <= total_pages):
# 북마크 삽입 (현재 커서 위치에 "Page_쪽_start","Page_쪽_end" 이름으로)
hwp.HAction.GetDefault("Bookmark", hwp.HParameterSet.HBookMark.HSet)
hwp.HParameterSet.HBookMark.name = "Page_" + str(current) + "_start"
hwp.HParameterSet.HBookMark.type = 0
hwp.HParameterSet.HBookMark.Command = 0
hwp.HAction.Execute("Bookmark", hwp.HParameterSet.HBookMark.HSet)
if current < total_pages:
hwp.HAction.Run("MovePageDown")
hwp.HAction.Run("MoveLeft")
else:
hwp.HAction.Run("MoveDocEnd")
hwp.HAction.GetDefault("Bookmark", hwp.HParameterSet.HBookMark.HSet)
hwp.HParameterSet.HBookMark.name = "Page_" + str(current) + "_end"
hwp.HParameterSet.HBookMark.type = 0
hwp.HParameterSet.HBookMark.Command = 0
hwp.HAction.Execute("Bookmark", hwp.HParameterSet.HBookMark.HSet)
hwp.HAction.Run("MoveRight")
current += 1
# --- 저장 ---
output_dir = os.path.dirname(output_file_path)
if output_dir and not os.path.exists(output_dir):
os.makedirs(output_dir)
hwp.SaveAs(output_file_path, "HWPML2X", "")
print(f"'{output_file_path}'에 저장 완료.")
except Exception as e:
print(f"❌ 오류 발생: {e}")
print("여전히 문제가 발생합니다. 한글 프로그램 재설치 또는 환경 문제일 가능성이 큽니다.")
finally:
if hwp:
try:
hwp.Quit(saveoption=0)
print("✅ 한글 프로그램 종료.")
except Exception as e:
print(f"⚠️ 한글 프로그램 종료 중 오류 발생: {e}")
print("✅ 최종 작업 시도 완료!")

View File

@@ -75,8 +75,8 @@ def copy_exam_files(exam_round, exam_codes, source_dir):
# 사용 예시
if __name__ == "__main__":
exam_round = "2522"
exam_round = "2510"
exam_codes = ["DIW"]
source_dir = r"D:\project\data\제2522회 특별\(추가)과목별_답안파일"
source_dir = r"D:\project\data\제2510회 수시4(순천)\채점의뢰\시험지 및 채점기준표(합격자발표-2025.11.5.(수))"
copy_exam_files(exam_round, exam_codes, source_dir)

View File

@@ -166,14 +166,14 @@ if __name__ == "__main__":
setup_logging()
exam_rounds = [
"2522",
"2510",
# "2507"
]
# 변환할 폴더 경로 설정
# 배열 동시에 변환하면 에러발생 -> 하나씩 변환 -> time.sleep(0.5) 추가
for exam_round in exam_rounds:
folders1 = [
folders = [
(f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\A\\DIW",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\A\\DIW"),
(f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\B\\DIW",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\B\\DIW"),
(f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\C\\DIW",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\C\\DIW"),
@@ -181,8 +181,8 @@ if __name__ == "__main__":
(f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\E\\DIW",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\E\\DIW"),
]
folders = [
(f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\C\\TEST",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\C\\TEST")]
# folders = [
# (f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\C\\TEST",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\C\\TEST")]
# 변환 실행
for input, output in folders:

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
251020_DIW_2510A_TEST.xlsx Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -46,65 +46,65 @@
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "기능경진대회참가안내",
"value": "돋움체",
"searchValue": "한방바이오박람회",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "문구 (기능경진대회참가안내)/① 글씨체 (돋움체)"
"item": "문구 (한방바이오박람회)/① 글씨체 (굴림체)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "기능경진대회참가안내",
"value": "84,139,241",
"searchValue": "한방바이오박람회",
"value": "252,67,144",
"points": 2,
"category": "Color",
"item": "문구 (기능경진대회참가안내)/② 채우기 : 색상(RGB:84,139,241)"
"item": "문구 (한방바이오박람회)/② 채우기 : 색상(RGB:252,67,144)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "기능경진대회참가안내",
"searchValue": "한방바이오박람회",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (기능경진대회참가안내)/③ 크기-너비 (120 mm)"
"item": "문구 (한방바이오박람회)/③ 크기-너비 (120 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "기능경진대회참가안내",
"searchValue": "한방바이오박람회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (기능경진대회참가안내)/④ 크기-높이 (20 mm)"
"item": "문구 (한방바이오박람회)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "기능경진대회참가안내",
"searchValue": "한방바이오박람회",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (기능경진대회참가안내)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (한방바이오박람회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "기능경진대회참가안내",
"searchValue": "한방바이오박람회",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (기능경진대회참가안내)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (한방바이오박람회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "기능경진대회참가안내",
"searchValue": "한방바이오박람회",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (기능경진대회참가안내)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (한방바이오박람회)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "2",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -112,155 +112,155 @@
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "2/① 모양 (2줄)"
"item": "/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2",
"value": "맑은 고딕",
"searchValue": "",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "2/② 글씨체 (맑은 고딕)"
"item": "/② 글씨체 (궁서)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "2",
"value": "240,223,102",
"searchValue": "",
"value": "115,139,236",
"points": 2,
"category": "Color",
"item": "2/③ 면색 : 색상(RGB:240,223,102)"
"item": "/③ 면색 : 색상(RGB:115,139,236)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "2",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "2/④ 본문과의 간격 : 3.0mm"
"item": "/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "지역사회의 기능 수준 향상과 기술 및 기능 개발 촉진",
"searchValue": "한방바이오 박람회",
"value": "BOLD",
"points": 2,
"points": 1,
"category": "FontAttribute",
"item": "문구 (지역사회의 기능 수준 향상과 기술 및 기능 개발 촉진)/① BOLD"
"item": "문구 (한방바이오 박람회)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "지역사회의 기능 수준 향상과 기술 및 기능 개발 촉진",
"value": "UNDERLINE",
"points": 2,
"searchValue": "한방바이오 박람회",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (지역사회의 기능 수준 향상과 기술 및 기능 개발 촉진)/② UNDERLINE"
"item": "문구 (한방바이오 박람회)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "접수안내",
"value": "굴림",
"searchValue": "행사안내",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "문구 (▶ 접수안내 )/① 글씨체 (굴림)"
"item": "문구 (♠ 행사안내 )/① 글씨체 (바탕체)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
"match_str": "접수안내",
"match_str": "행사안내",
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 (▶ 접수안내 )/② 정렬 (가운데 정렬)"
"item": "문구 (♠ 행사안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "누구나 참가 가능",
"value": "BOLD",
"searchValue": "제천시청 홈페이지(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (누구나 참가 가능)/① BOLD"
"item": "문구 (제천시청 홈페이지(http://www.ihd.or.kr))/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "누구나 참가 가능",
"value": "ITALIC",
"searchValue": "제천시청 홈페이지(http://www.ihd.or.kr)",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (누구나 참가 가능)/② ITALIC"
"item": "문구 (제천시청 홈페이지(http://www.ihd.or.kr))/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Indent": 12
"Left": 12,
"Indent": 10
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (10)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 08. 23.",
"value": "1300",
"searchValue": "2025. 09. 27.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 23.)/① 크기 (1300)",
"item": "문구 (2025. 09. 27.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 08. 23.",
"searchValue": "2025. 09. 27.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 23.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 09. 27.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "기능경진대회운영위원회",
"value": "궁서",
"searchValue": "한방발전추진협회",
"value": "견고딕",
"points": 1,
"category": "FontName",
"item": "문구 (기능경진대회운영위원회)/① 글씨체 (궁서)"
"item": "문구 (한방발전추진협회)/① 글씨체 (견고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "기능경진대회운영위원회",
"value": "2400",
"searchValue": "한방발전추진협회",
"value": "2600",
"points": 1,
"category": "OneAnswer",
"item": "문구 (기능경진대회운영위원회)/② 크기 (2400)"
"item": "문구 (한방발전추진협회)/② 크기 (2600)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "기능경진대회운영위원회",
"searchValue": "한방발전추진협회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (기능경진대회운영위원회)/③ 정렬 (가운데 정렬)"
"item": "문구 (한방발전추진협회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "굴림",
"value": "돋움",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (굴림)"
"item": "문구 (DIAT)/① 글꼴 (돋움)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -280,7 +280,7 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "HangulSyllable",
"value": "RomanCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
@@ -302,20 +302,30 @@
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"value": "BottomLeft",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"item": "왼쪽 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
"path": "//CHAR[contains(text(),'{searchValue}')]",
"searchValue": "http://www.ihd.or.kr",
"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": "2",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 190% 설정",
@@ -351,17 +361,17 @@
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "60",
"value": "65",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (기능경진대회)/① 크기-너비 (60 mm)"
"item": "문구 (한약의 정의와 효과)/① 크기-너비 (65 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (기능경진대회)/② 크기-높이 (12 mm)"
"item": "문구 (한약의 정의와 효과)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -371,7 +381,7 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (기능경진대회)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (한약의 정의와 효과)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
@@ -379,43 +389,43 @@
"value": "50",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (기능경진대회)/④ 글상자 모서리 (반원)",
"item": "문구 (한약의 정의와 효과)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "202,86,167",
"value": "62,187,204",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (기능경진대회)/⑤ 채우기 : 색상(RGB:202,86,167)"
"item": "문구 (한약의 정의와 효과)/⑤ 채우기 : 색상(RGB:62,187,204)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (기능경진대회)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (한약의 정의와 효과)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (기능경진대회)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (한약의 정의와 효과)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "고딕",
"value": "맑은 고딕",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (기능경진대회)/⑧ 글씨체 (고딕)"
"item": "문구 (한약의 정의와 효과)/⑧ 글씨체 (맑은 고딕)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "2200",
"value": "1700",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (기능경진대회)/⑨ 글씨크기 (2200)",
"item": "문구 (한약의 정의와 효과)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
@@ -423,22 +433,22 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (기능경진대회)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (한약의 정의와 효과)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림B.jpg\" 삽입",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 mm)"
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
@@ -456,88 +466,88 @@
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "22",
"value": "23",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 대회목적",
"value": "돋움",
"searchValue": "1. 한약이란?",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구① (1. 대회목적)/① 글씨체 (돋움)"
"item": "문구① (1. 한약이란?)/① 글씨체 (굴림)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 대회목적",
"searchValue": "1. 한약이란?",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 대회목적)/② 크기 (12pt)"
"item": "문구① (1. 한약이란?)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 대회목적",
"searchValue": "1. 한약이란?",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 대회목적)/③ 진하게"
"item": "문구① (1. 한약이란?)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 기능경진대회 종목",
"value": "돋움",
"searchValue": "2. 한약의 효과",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구② (2. 기능경진대회 종목)/① 글씨체 (돋움)"
"item": "문구② (2. 한약의 효과)/① 글씨체 (굴림)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 기능경진대회 종목",
"searchValue": "2. 한약의 효과",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 기능경진대회 종목)/② 크기 (1200)"
"item": "문구② (2. 한약의 효과)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 기능경진대회 종목",
"searchValue": "2. 한약의 효과",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 기능경진대회 종목)/③ 진하게"
"item": "문구② (2. 한약의 효과)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "벽체",
"option": "미신",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (벽체)/① 각주 설정 및 문구 입력"
"item": "문구 (미신)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "건물의 벽을 이루는 구조 부분",
"value": "돋움",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (벽체)/② 글씨체 (돋움)"
"item": "문구 (미신)/② 글씨체 (돋움)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "건물의 벽을 이루는 구조 부분",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (벽체)/③ 크기 (9pt)"
"item": "문구 (미신)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "건물의 벽을 이루는 구조 부분",
"value": "CircledLatinCapital",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "UserChar",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
@@ -547,10 +557,10 @@
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
@@ -560,81 +570,81 @@
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Interior')])",
"ignoreWord": "Interior",
"path": "boolean(//CHAR[contains(text(),'Organism')])",
"ignoreWord": "Organism",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Interior/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Organism/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["우대", "優待"],
["저변", "底邊"],
["분야", "分野"],
["조리", "調理"],
["역할", "役割"]
["한약", "韓藥"],
["배합", "配合"],
["채취", "採取"],
["보약", "補藥"],
["치료", "治療"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 우대(優待), ② 저변(底邊), ③ 분야(分野), 조리(調理), 역할(役割)"
"item": "① 한약(韓藥), ② 배합(配合), ③ 채취(採取), ④ 보약(補藥), ⑤ 치료(治療)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'적인실력')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'병을퇴치')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…기술에 대한 실력을 전문적인 평가하는 대회이다.…)>'실력을 / 전문적인' 순서바꿈"
"item": "문구 (…사람의 질병은 퇴치할 수 있다고…)>'은 → 을' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'준의상향')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'부터한약')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…기술 수준의 하향평준화를 도모하고.…)>'하' → '상' 글자바꿈"
"item": "문구 (…우리 민족은 한약만으로 예로부터 병을 치료해왔고…)>'한약만으로 / 예로부터' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "지역별 대회 참가자 현황",
"value": "굴림체",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "제목 문구 (지역별 대회 참가자 현황)/① 글씨체 (굴림체)"
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/① 글씨체 (바탕체)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "지역별 대회 참가자 현황",
"value": "1200",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 대회 참가자 현황)/② 크기 (1200)"
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/② 크기 (1100)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "지역별 대회 참가자 현황",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (지역별 대회 참가자 현황)/③ 진하게"
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "지역별 대회 참가자 현황",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 대회 참가자 현황)/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "144,210,67",
"value": "157,229,141",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:144,210,67)"
"item": "위쪽 제목 셀/① 색상(RGB:157,229,141)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -695,11 +705,11 @@
},
"45": {
"chart_xpath": "",
"chart_type": "꺾은선형",
"chart_type": "누적 세로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (꺾은선형)",
"item": "① 종류 (누적 세로 막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
@@ -734,36 +744,36 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "지역별 대회 참가자 현황",
"searchValue": "한약에 쓰이는 약초 재배량",
"value": "궁서체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 대회 참가자 현황)/① 글씨체 (궁서체)"
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/① 글씨체 (궁서체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "지역별 대회 참가자 현황",
"searchValue": "한약에 쓰이는 약초 재배량",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 대회 참가자 현황)/② 크기 (1300)"
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/② 크기 (1300)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "지역별 대회 참가자 현황",
"searchValue": "한약에 쓰이는 약초 재배량",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 대회 참가자 현황)/③ 기울임",
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "돋움체",
"value": "굴림체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움체)"
"item": "X축/① 글꼴 (굴림체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -783,10 +793,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움체",
"value": "굴림체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움체)"
"item": "Y축/① 글꼴 (굴림체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -806,10 +816,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움체",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움체)"
"item": "범례/① 글꼴 (굴림체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

View File

@@ -46,65 +46,65 @@
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "강원도지역문화체험안내",
"value": "맑은고딕",
"searchValue": "즐거운컬러푸드영양교실",
"value": "궁서체",
"points": 1,
"category": "OneAnswer",
"item": "문구 (강원도지역문화체험안내)/① 글씨체 (맑은고딕)"
"item": "문구 (즐거운컬러푸드영양교실)/① 글씨체 (궁서체)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "강원도지역문화체험안내",
"value": "230,47,199",
"searchValue": "즐거운컬러푸드영양교실",
"value": "51,63,153",
"points": 2,
"category": "Color",
"item": "문구 (강원도지역문화체험안내)/② 채우기 : 색상(RGB:230,47,199)"
"item": "문구 (즐거운컬러푸드영양교실)/② 채우기 : 색상(RGB:51,63,153)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "강원도지역문화체험안내",
"value": "125",
"searchValue": "즐거운컬러푸드영양교실",
"value": "130",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (강원도지역문화체험안내)/③ 크기-너비 (125 mm)"
"item": "문구 (즐거운컬러푸드영양교실)/③ 크기-너비 (130 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "강원도지역문화체험안내",
"searchValue": "즐거운컬러푸드영양교실",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (강원도지역문화체험안내)/④ 크기-높이 (20 mm)"
"item": "문구 (즐거운컬러푸드영양교실)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "강원도지역문화체험안내",
"searchValue": "즐거운컬러푸드영양교실",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (강원도지역문화체험안내)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (즐거운컬러푸드영양교실)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "강원도지역문화체험안내",
"searchValue": "즐거운컬러푸드영양교실",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (강원도지역문화체험안내)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (즐거운컬러푸드영양교실)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "강원도지역문화체험안내",
"searchValue": "즐거운컬러푸드영양교실",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (강원도지역문화체험안내)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (즐거운컬러푸드영양교실)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -112,68 +112,68 @@
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "/① 모양 (2줄)"
"item": "/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "돋움",
"searchValue": "",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "/② 글씨체 (돋움)"
"item": "/② 글씨체 (맑은 고딕)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "231,215,17",
"searchValue": "",
"value": "105,231,82",
"points": 2,
"category": "Color",
"item": "/③ 면색 : 색상(RGB:231,215,17)"
"item": "/③ 면색 : 색상(RGB:105,231,82)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "/④ 본문과의 간격 : 3.0mm"
"item": "/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "독특한 문화를 경험하실 수 있도록",
"searchValue": "즐거운 컬러푸드 영양교실",
"value": "BOLD",
"points": 2,
"points": 1,
"category": "FontAttribute",
"item": "문구 (독특한 문화를 경험하실 수 있도록)/① BOLD"
"item": "문구 (즐거운 컬러푸드 영양교실)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "독특한 문화를 경험하실 수 있도록",
"searchValue": "즐거운 컬러푸드 영양교실",
"value": "ITALIC",
"points": 2,
"points": 1,
"category": "FontAttribute",
"item": "문구 (독특한 문화를 경험하실 수 있도록)/② ITALIC"
"item": "문구 (즐거운 컬러푸드 영양교실)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "궁서",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 ( 행사안내 )/① 글씨체 (궁서)"
"item": "문구 ( 행사안내 )/① 글씨체 (굴림체)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
@@ -181,86 +181,86 @@
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "강원도 춘천시 중앙문화지역센터 및 인근 공원",
"searchValue": "홈페이지(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (강원도 춘천시 중앙문화지역센터 및 인근 공원)/① ITALIC"
"item": "문구 (홈페이지(http://www.ihd.or.kr))/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "강원도 춘천시 중앙문화지역센터 및 인근 공원",
"searchValue": "홈페이지(http://www.ihd.or.kr)",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (강원도 춘천시 중앙문화지역센터 및 인근 공원)/② UNDERLINE"
"item": "문구 (홈페이지(http://www.ihd.or.kr))/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Left": 18,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (18), 내어쓰기 (12)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 8. 23.",
"searchValue": "2025. 10. 16.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 8. 23.)/① 크기 (1400)",
"item": "문구 (2025. 10. 16.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 8. 23.",
"searchValue": "2025. 10. 16.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 8. 23.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 10. 16.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "중앙문화지역센터",
"value": "궁서체",
"searchValue": "용일동보건소",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구 (중앙문화지역센터)/① 글씨체 (궁서체)"
"item": "문구 (용일동보건소)/① 글씨체 (중고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "중앙문화지역센터",
"value": "2500",
"searchValue": "용일동보건소",
"value": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (중앙문화지역센터)/② 크기 (2500)"
"item": "문구 (용일동보건소)/② 크기 (2200)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "중앙문화지역센터",
"searchValue": "용일동보건소",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (중앙문화지역센터)/③ 정렬 (가운데 정렬)"
"item": "문구 (용일동보건소)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "궁서",
"value": "돋움체",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (궁서)"
"item": "문구 (DIAT)/① 글꼴 (돋움체)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -280,7 +280,7 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "Digit",
"value": "LatinCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
@@ -309,16 +309,26 @@
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
"path": "//CHAR[contains(text(),'{searchValue}')]",
"searchValue": "http://www.ihd.or.kr",
"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": "",
"value": "180",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
"item": "문제 1 줄간격 180% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
@@ -351,17 +361,17 @@
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "68",
"value": "55",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (매력적인 강원도)/① 크기-너비 (68 mm)"
"item": "문구 (다양한 컬러푸드)/① 크기-너비 (55 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (매력적인 강원도)/② 크기-높이 (12 mm)"
"item": "문구 (다양한 컬러푸드)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -371,51 +381,51 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (매력적인 강원도)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (다양한 컬러푸드)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE/@Ratio",
"value": "50",
"value": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (매력적인 강원도)/④ 글상자 모서리 (반원)",
"item": "문구 (다양한 컬러푸드)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "130,159,32",
"value": "194,133,195",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (매력적인 강원도)/⑤ 채우기 : 색상(RGB:130,159,32)"
"item": "문구 (다양한 컬러푸드)/⑤ 채우기 : 색상(RGB:194,133,195)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (매력적인 강원도)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (다양한 컬러푸드)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (매력적인 강원도)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (다양한 컬러푸드)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "굴림체",
"value": "견고딕",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (매력적인 강원도)/⑧ 글씨체 (굴림체)"
"item": "문구 (다양한 컬러푸드)/⑧ 글씨체 (견고딕)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "2300",
"value": "1600",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (매력적인 강원도)/⑨ 글씨크기 (2300)",
"item": "문구 (다양한 컬러푸드)/⑨ 글씨크기 (1600)",
"desc": "1pt당 100"
},
"13": {
@@ -423,22 +433,22 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (매력적인 강원도)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (다양한 컬러푸드)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림D.jpg\" 삽입",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 mm)"
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
@@ -449,105 +459,105 @@
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"value": "2",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 2mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "22",
"value": "23",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 지역적 특성",
"value": "맑은 고딕",
"searchValue": "1. 컬러푸드란?",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구① (1. 지역적 특성)/① 글씨체 (맑은 고딕)"
"item": "문구① (1. 컬러푸드란?)/① 글씨체 (굴림)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 지역적 특성",
"value": "1200",
"searchValue": "1. 컬러푸드란?",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 지역적 특성)/② 크기 (12pt)"
"item": "문구① (1. 컬러푸드란?)/② 크기 (1100)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 지역적 특성",
"searchValue": "1. 컬러푸드란?",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 지역적 특성)/③ 진하게"
"item": "문구① (1. 컬러푸드란?)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 문화유산과 전통",
"value": "맑은 고딕",
"searchValue": "2. 컬러푸드의 효능",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구② (2. 문화유산과 전통)/① 글씨체 (맑은 고딕)"
"item": "문구② (2. 컬러푸드의 효능)/① 글씨체 (굴림)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 문화유산과 전통",
"value": "1200",
"searchValue": "2. 컬러푸드의 효능",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 문화유산과 전통)/② 크기 (1200)"
"item": "문구② (2. 컬러푸드의 효능)/② 크기 (1100)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 문화유산과 전통",
"searchValue": "2. 컬러푸드의 효능",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 문화유산과 전통)/③ 진하게"
"item": "문구② (2. 컬러푸드의 효능)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "목축업",
"option": "항산화 작용",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (목축업)/① 각주 설정 및 문구 입력"
"item": "문구 (항산화 작용)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "소나 말, 양 따위의 가축을 기르는 일을 경영함.",
"value": "중고딕",
"searchValue": "산화를 억제하는 작용",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (목축업)/② 글씨체 (중고딕)"
"item": "문구 (항산화 작용)/② 글씨체 (굴림)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "소나 말, 양 따위의 가축을 기르는 일을 경영함.",
"searchValue": "산화를 억제하는 작용",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (목축업)/③ 크기 (9pt)"
"item": "문구 (항산화 작용)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "소나 말, 양 따위의 가축을 기르는 일을 경영함.",
"value": "Digit",
"searchValue": "산화를 억제하는 작용",
"value": "UserChar",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"1),2),3)": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
@@ -556,85 +566,86 @@
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Tourism')])",
"ignoreWord": "Tourism",
"path": "boolean(//CHAR[contains(text(),'Phytochemical')])",
"ignoreWord": "Phytochemical",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Tourism/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Phytochemical/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["해변", "海邊"],
["특산물", "特産物"],
["조화", "調和"],
["기여", "寄與"],
["전통", "傳統"]
["미생물", "微生物"],
["해충", "害蟲"],
["재생", "再生"],
["노화", "老化"],
["성분", "成分"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 해변(海邊), ② 특산물(特産物), ③ 조화(調和), ④ 기여(寄與), ⑤ 전통(傳統)"
"item": "① 미생물(微生物), ② 해충(害蟲), ③ 재생(再生), ④ 노화(老化), ⑤ 성분(成分)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'다양한나')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'신의몸을')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…청정 자연에서 자생하는 다상한 나물도…)>'' → '' 글자바꿈"
"item": "문구 (…해충 등으로부터 자신과 몸을 보호하는…)>'' → '' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'답게만들')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'관을튼튼')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…강원도의 자연경관을 더욱 만들고, 아름답게 해안 지역은…)>'만들고, / 아름답게' 순서바꿈"
"item": "문구 (…튼튼하게 혈관을 하고…)>'튼튼하게' / '혈관을' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "강원도 지역별 면적(단위:%)",
"value": "돋움체",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "제목 문구 (강원도 지역별 면적(단위:%))/① 글씨체 (돋움체)"
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/① 글씨체 (굴림체)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "강원도 지역별 면적(단위:%)",
"value": "1200",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (강원도 지역별 면적(단위:%))/② 크기 (1200)"
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/② 크기 (1100)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "강원도 지역별 면적(단위:%)",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (강원도 지역별 면적(단위:%))/③ 진하게"
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "강원도 지역별 면적(단위:%)",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (강원도 지역별 면적(단위:%))/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "87,215,182",
"value": "253,164,95",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:87,215,182)"
"item": "위쪽 제목 셀/① 색상(RGB:253,164,95)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -663,11 +674,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "굴림",
"value": "궁서",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (굴림)",
"item": "글자모양/① 글씨체 (궁서)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -690,7 +701,7 @@
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/AVG",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
@@ -734,28 +745,28 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "강원도 지역별 면적",
"value": "바탕체",
"searchValue": "과일야채 섭취량 비교",
"value": "돋움체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (강원도 지역별 면적)/① 글씨체 (바탕체)"
"item": "제목 문구 (과일야채 섭취량 비교)/① 글씨체 (돋움체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "강원도 지역별 면적",
"value": "1300",
"searchValue": "과일야채 섭취량 비교",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (강원도 지역별 면적)/② 크기 (1300)"
"item": "제목 문구 (과일야채 섭취량 비교)/② 크기 (1400)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "강원도 지역별 면적",
"searchValue": "과일야채 섭취량 비교",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (강원도 지역별 면적)/③ 기울임",
"item": "제목 문구 (과일야채 섭취량 비교)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {

View File

@@ -1,840 +0,0 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "공주맛밤수확체험행사",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (공주맛밤수확체험행사)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "공주맛밤수확체험행사",
"value": "51,69,153",
"points": 2,
"category": "Color",
"item": "문구 (공주맛밤수확체험행사)/② 채우기 : 색상(RGB:51,69,153)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "공주맛밤수확체험행사",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (공주맛밤수확체험행사)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "공주맛밤수확체험행사",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (공주맛밤수확체험행사)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "공주맛밤수확체험행사",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (공주맛밤수확체험행사)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "공주맛밤수확체험행사",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (공주맛밤수확체험행사)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "공주맛밤수확체험행사",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (공주맛밤수확체험행사)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "공",
"value": {
"Height": 2800,
"Width": 2800
},
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "공/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "공",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "공/② 글씨체 (굴림)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "공",
"value": "219,207,102",
"points": 2,
"category": "Color",
"item": "공/③ 면색 : 색상(RGB:219,207,102)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "공",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "공/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "전국적으로 사랑받는 지역 특산물",
"value": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (전국적으로 사랑받는 지역 특산물)/① UNDERLINE"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "전국적으로 사랑받는 지역 특산물",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (전국적으로 사랑받는 지역 특산물)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "■",
"char2": "■",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① ■, ② ■, ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (■ 행사안내 ■)/① 글씨체 (돋움)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
"match_str": "행사안내",
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 (■ 행사안내 ■)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025년 09월 20일(토) 13:30 ~ 17:30",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025년 09월 20일(토) 13:30 ~ 17:30)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025년 09월 20일(토) 13:30 ~ 17:30",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025년 09월 20일(토) 13:30 ~ 17:30)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "신청안내",
"value": {
"Left": 10,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 신청안내… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 08. 27.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 27.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 08. 27.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 27.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "공주시청농촌활력과",
"value": "견고딕",
"points": 1,
"category": "FontName",
"item": "문구 (공주시청농촌활력과)/① 글씨체 (견고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "공주시청농촌활력과",
"value": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (공주시청농촌활력과)/② 크기 (2200)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "공주시청농촌활력과",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (공주시청농촌활력과)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움체)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "HangulSyllable",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
}
},
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "200",
"first_word": "공",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
"1": {
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
"value": {
"header_inside": true,
"all_double_slim": true
},
"points": 4,
"category": "PageBorder",
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
},
"2": {
"path": "count(//SECTION)>1",
"value": true,
"points": 3,
"category": "Boolean",
"item": "① 구역나누기",
"desc": "섹션이 1개 이상이면 점수부여"
},
"3": {
"path": "TEXT/COLDEF/@Count",
"value": "2",
"points": 3,
"category": "TwoColumn",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "아름다운 계절, 가을",
"value": "65",
"points": 2,
"category": "mmSize",
"item": "문구 (아름다운 계절, 가을)/① 크기-너비 (65 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "아름다운 계절, 가을",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (아름다운 계절, 가을)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "아름다운 계절, 가을",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "LineShape",
"item": "문구 (아름다운 계절, 가을)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "아름다운 계절, 가을",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "아름다운 계절, 가을",
"value": "249,173,168",
"points": 2,
"category": "Color",
"item": "문구 (아름다운 계절, 가을)/⑤ 채우기 : 색상(RGB:249,173,168)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "아름다운 계절, 가을",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "아름다운 계절, 가을",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "아름다운 계절, 가을",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 (아름다운 계절, 가을)/⑧ 글씨체 (굴림체)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "아름다운 계절, 가을",
"value": "1700",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "아름다운 계절, 가을",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@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. 가을이란?)/② 크기 (12pt)"
},
"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": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Economy')])",
"ignoreWord": "Economy",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Economy/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["제례", "祭禮"],
["저장", "貯藏"],
["성숙", "成熟"],
["관광", "觀光"],
["과수", "果樹"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 제례(祭禮), ② 저장(貯藏), ③ 성숙(成熟), ④ 관광(觀光), ⑤ 과수(果樹)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'색의단풍')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…여러 색이 단풍으로…)>'이' → '의' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'을은대체')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…대한민국의 대체로 가을은…)>'대체로' / '가을은' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/① 글씨체 (굴림)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/② 크기 (1100)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "154,235,85",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:154,235,85)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "위쪽 제목 셀/② 진하게",
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
},
"39": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
"value": "DoubleSlim",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선"
},
"40": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
"value": "0.5mm",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "궁서",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (궁서)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "SUM",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "묶은세로막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (묶은세로막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "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": "i",
"searchValue": "가을 명산 입장객 수",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (가을 명산 입장객 수)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "b",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "b",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "b",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

View File

@@ -1,841 +0,0 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "소셜네트워킹전략컨퍼런스",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜네트워킹전략컨퍼런스)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "소셜네트워킹전략컨퍼런스",
"value": "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/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "최",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "2/② 글씨체 (궁서)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "최",
"value": "218,202,48",
"points": 2,
"category": "Color",
"item": "2/③ 면색 : 색상(RGB:218,202,48)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "최",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "2/④ 본문과의 간격 : 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": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 08. 30.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 08. 30.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/② 정렬 (가운데 정렬)"
},
"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": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "Digit",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
}
},
"30": {
"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//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "소셜 네트워킹 서비스",
"value": "70",
"points": 2,
"category": "mmSize",
"item": "문구 (소셜 네트워킹 서비스)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "소셜 네트워킹 서비스",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (소셜 네트워킹 서비스)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "소셜 네트워킹 서비스",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "LineShape",
"item": "문구 (소셜 네트워킹 서비스)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "소셜 네트워킹 서비스",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "소셜 네트워킹 서비스",
"value": "90,233,53",
"points": 2,
"category": "Color",
"item": "문구 (소셜 네트워킹 서비스)/⑤ 채우기 : 색상(RGB:90,233,53)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "소셜 네트워킹 서비스",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "소셜 네트워킹 서비스",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "소셜 네트워킹 서비스",
"value": "궁서체",
"points": 1,
"category": "FontName",
"item": "문구 (소셜 네트워킹 서비스)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "소셜 네트워킹 서비스",
"value": "1800",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/⑨ 글씨크기 (1800)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "소셜 네트워킹 서비스",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"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": "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": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.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. 소셜 네트워킹 서비스)/② 크기 (12pt)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 소셜 네트워킹 서비스",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 소셜 네트워킹 서비스)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 소셜 네트워킹 서비스 활용",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/① 글씨체 (굴림체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 소셜 네트워킹 서비스 활용",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 소셜 네트워킹 서비스 활용",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "마이크로블로깅",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (마이크로블로깅)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (마이크로블로깅)/② 글씨체 (돋움)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (마이크로블로깅)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
"value": "CircledLatinCapital",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Marketing')])",
"ignoreWord": "Marketing",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Marketing/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["방식", "方式"],
["활성화", "活性化"],
["획득", "獲得"],
["교류", "交流"],
["절감", "節減"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 방식(方式), ② 활성화(活性化), ③ 획득(獲得), ④ 교류(交流), ⑤ 절감(節減)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'적인매체')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…대표적의 매체로…)→'의' → '인' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'인이필요')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…필요한 개인이 정보를…)→'필요한' / '개인이' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/① 글씨체 (중고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "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}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "AVG",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "꺾은선형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (꺾은선형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "스마트폰 가입자 수",
"value": "궁서체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (스마트폰 가입자 수)/① 글씨체 (궁서체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "스마트폰 가입자 수",
"value": "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",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

View File

@@ -1,842 +0,0 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "2025청소년요리경연대회",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025청소년요리경연대회)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "2025청소년요리경연대회",
"value": "246,149,102",
"points": 2,
"category": "Color",
"item": "문구 (2025청소년요리경연대회)/② 채우기 : 색상(RGB:246,149,102)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "2025청소년요리경연대회",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (2025청소년요리경연대회)/③ 크기-너비 (120 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "2025청소년요리경연대회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (2025청소년요리경연대회)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "2025청소년요리경연대회",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (2025청소년요리경연대회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "2025청소년요리경연대회",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (2025청소년요리경연대회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "2025청소년요리경연대회",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (2025청소년요리경연대회)/⑦ 글맵시모양 (육안확인)"
},
"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": "224,217,93",
"points": 2,
"category": "Color",
"item": "청/③ 면색 : 색상(RGB:224,217,93)"
},
"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": "청소년 문화 축제 홈페이지(http://www.ihd.or.kr",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (청소년 문화 축제 홈페이지(http://www.ihd.or.kr)/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "청소년 문화 축제 홈페이지(http://www.ihd.or.kr",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (청소년 문화 축제 홈페이지(http://www.ihd.or.kr)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 08. 30.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 08. 30.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "청소년문화축제추진위원회",
"value": "궁서체",
"points": 1,
"category": "FontName",
"item": "문구 (청소년문화축제추진위원회)/① 글씨체 (궁서체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "청소년문화축제추진위원회",
"value": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (청소년문화축제추진위원회)/② 크기 (2200)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "청소년문화축제추진위원회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (청소년문화축제추진위원회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (궁서)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "DecagonCircle",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomRight",
"points": 2,
"category": "PageNumber",
"item": "오른쪽 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
}
},
"30": {
"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//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "요리의 세계",
"value": "50",
"points": 2,
"category": "mmSize",
"item": "문구 (요리의 세계)/① 크기-너비 (50 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "요리의 세계",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (요리의 세계)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "요리의 세계",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "LineShape",
"item": "문구 (요리의 세계)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "요리의 세계",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "요리의 세계",
"value": "95,206,218",
"points": 2,
"category": "Color",
"item": "문구 (요리의 세계)/⑤ 채우기 : 색상(RGB:95,206,218)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "요리의 세계",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "요리의 세계",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "요리의 세계",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "문구 (요리의 세계)/⑧ 글씨체 (맑은 고딕)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "요리의 세계",
"value": "1700",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "요리의 세계",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림C.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@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. 한국 요리)/② 크기 (12pt)"
},
"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": "CircledHangulSyllable",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"㉮,㉯,㉰": "CircledHangulSyllable",
"1,2,3": "Digit",
"1),2),3)": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Culture')])",
"ignoreWord": "Culture",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Culture/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["풍토", "風土"],
["발효", "醱酵"],
["재배", "栽培"],
["계절", "季節"],
["역할", "役割"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 풍토(風土), ② 발효(醱酵), ③ 재배(栽培), ④ 계절(季節), ⑤ 역할(役割)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'쌈,')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…생채, 찜, 나물…)→'찜 → 쌈' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'란과치즈')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…반죽에 치즈를 계란과 넣어…)→'치즈를 / 계란과' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "부문별 참가자 현황",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "제목 문구 (부문별 참가자 현황)/① 글씨체 (바탕체)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "부문별 참가자 현황",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "부문별 참가자 현황",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (부문별 참가자 현황)/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "부문별 참가자 현황",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "231,93,64",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:231,93,64)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "위쪽 제목 셀/② 진하게",
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
},
"39": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
"value": "DoubleSlim",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선"
},
"40": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
"value": "0.5mm",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "돋움체",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (돋움체)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "SUM",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/평균",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "묶은 세로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (묶은 세로 막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "부문별 참가자 현황",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/① 글씨체 (굴림체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "부문별 참가자 현황",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/② 크기 (1400)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "부문별 참가자 현황",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (궁서)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (궁서)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (궁서)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

View File

@@ -40,8 +40,8 @@ def copy_dic_subdirs(source_root, target_root_a, target_root_b, target_root_c, t
# 사용법
# exam_round = "2504_2"
exam_round = "2508_2"
source_directory = r"D:\project\data\제2508회 수시2(제주)\답안파일\2508회 디지털정보활용능력 수시2 답안파일"
exam_round = "2509"
source_directory = r"D:\project\HWP\HWP-Scoring\회차별채점자료\2509"
target_directory_a = f".\\input\\{exam_round}\\A" # '1교시'의 타겟 경로
target_directory_b = f".\\input\\{exam_round}\\B" # '2교시'의 타겟 경로

View File

@@ -1065,6 +1065,39 @@ class XMLScorer:
# xpath를 사용하여 차트 요소가 있는지 확인
user_answer = bool(chart_tree.xpath(chart_xpath, namespaces=namespaces))
self.evaluate_answer(scoring, user_answer, right_answer, points)
# 하이퍼링크 채점 [1-30] 문항
elif "hyperlink" in (category or ""):
# XPath에서 searchValue가 들어간 CHAR 태그 추출
url_tags = root.xpath(xpath) if xpath else []
print("hyperlink url_tags:", url_tags)
has_hyperlink = False # FIELDBEGIN/FIELDEND 둘 다 존재하는 경우만 True
for url_tag in url_tags:
if not isinstance(url_tag, etree._Element):
continue
char_text = (url_tag.text or "").strip()
# 가장 가까운 조상 P태그 찾기
p_parent = url_tag.xpath("ancestor::P[1]")
if not p_parent:
continue
p = p_parent[0]
# 같은 P 안에 FIELDBEGIN과 FIELDEND 존재 여부 확인
has_fieldbegin = bool(p.xpath(".//FIELDBEGIN"))
has_fieldend = bool(p.xpath(".//FIELDEND"))
if has_fieldbegin and has_fieldend:
has_hyperlink = True
break
# 점수 처리 (하이퍼링크가 하나라도 설정되어 있으면 오답)
if not has_hyperlink:
self.evaluate_answer(scoring, True, right_answer, points)
else:
self.evaluate_answer(scoring, False, right_answer, 0)
finally:
# 문항 채점 결과를 리스트에 입력
@@ -1418,14 +1451,14 @@ class XMLScorer:
def main():
# 시험회차 및 유형
exam_round = '2508'
exam_round = '2510'
# exam_round = '2522'
# 채점하고자 하는 유형은 주석 해제
exam_types = [
# 'A',
# 'B',
'C',
'A',
'B',
# 'C',
# 'D',
]

View File

@@ -21531,3 +21531,961 @@
2025-09-10 15:36:25,811 - INFO - 변환 성공: 워드(한글)-002245-박채은 copy.hwp -> 워드(한글)-002245-박채은 copy.hml
2025-09-10 15:36:26,328 - INFO - 변환 성공: 워드(한글)-002245-박채은.hwp -> 워드(한글)-002245-박채은.hml
2025-09-10 15:36:26,520 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2522\C\TEST -> D:\project\HWP\HWP-Scoring\output\2522\C\TEST
2025-09-30 15:40:27,613 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\A\DIW -> D:\project\HWP\HWP-Scoring\output\2509\A\DIW
2025-09-30 15:40:35,876 - INFO - 변환 성공: DIW_2507A.hwpx -> DIW_2507A.hml
2025-09-30 15:40:36,286 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\A\DIW -> D:\project\HWP\HWP-Scoring\output\2509\A\DIW
2025-09-30 15:40:36,787 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\B\DIW -> D:\project\HWP\HWP-Scoring\output\2509\B\DIW
2025-09-30 15:40:38,008 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\B\DIW -> D:\project\HWP\HWP-Scoring\output\2509\B\DIW
2025-09-30 15:40:38,510 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\C\DIW -> D:\project\HWP\HWP-Scoring\output\2509\C\DIW
2025-09-30 15:40:39,707 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\C\DIW -> D:\project\HWP\HWP-Scoring\output\2509\C\DIW
2025-09-30 15:40:40,208 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\D\DIW -> D:\project\HWP\HWP-Scoring\output\2509\D\DIW
2025-09-30 15:40:41,431 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\D\DIW -> D:\project\HWP\HWP-Scoring\output\2509\D\DIW
2025-09-30 15:40:41,932 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\E\DIW -> D:\project\HWP\HWP-Scoring\output\2509\E\DIW
2025-09-30 15:40:43,118 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\E\DIW -> D:\project\HWP\HWP-Scoring\output\2509\E\DIW
2025-09-30 15:50:41,300 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\A\DIW -> D:\project\HWP\HWP-Scoring\output\2509\A\DIW
2025-09-30 15:50:43,014 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\A\DIW -> D:\project\HWP\HWP-Scoring\output\2509\A\DIW
2025-09-30 15:50:43,515 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\B\DIW -> D:\project\HWP\HWP-Scoring\output\2509\B\DIW
2025-09-30 15:50:44,691 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\B\DIW -> D:\project\HWP\HWP-Scoring\output\2509\B\DIW
2025-09-30 15:50:45,192 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\C\DIW -> D:\project\HWP\HWP-Scoring\output\2509\C\DIW
2025-09-30 15:50:46,367 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\C\DIW -> D:\project\HWP\HWP-Scoring\output\2509\C\DIW
2025-09-30 15:50:46,868 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\D\DIW -> D:\project\HWP\HWP-Scoring\output\2509\D\DIW
2025-09-30 15:50:48,050 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\D\DIW -> D:\project\HWP\HWP-Scoring\output\2509\D\DIW
2025-09-30 15:50:48,551 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\E\DIW -> D:\project\HWP\HWP-Scoring\output\2509\E\DIW
2025-09-30 15:50:49,740 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\E\DIW -> D:\project\HWP\HWP-Scoring\output\2509\E\DIW
2025-09-30 15:51:55,403 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\A\DIW -> D:\project\HWP\HWP-Scoring\output\2509\A\DIW
2025-09-30 15:51:58,314 - INFO - 변환 성공: DIW_2509A.hwpx -> DIW_2509A.hml
2025-09-30 15:51:58,710 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\A\DIW -> D:\project\HWP\HWP-Scoring\output\2509\A\DIW
2025-09-30 15:51:59,212 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\B\DIW -> D:\project\HWP\HWP-Scoring\output\2509\B\DIW
2025-09-30 15:52:01,365 - INFO - 변환 성공: DIW_2509B.hwpx -> DIW_2509B.hml
2025-09-30 15:52:01,727 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\B\DIW -> D:\project\HWP\HWP-Scoring\output\2509\B\DIW
2025-09-30 15:52:02,227 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\C\DIW -> D:\project\HWP\HWP-Scoring\output\2509\C\DIW
2025-09-30 15:52:04,311 - INFO - 변환 성공: DIW_2509C.hwpx -> DIW_2509C.hml
2025-09-30 15:52:04,701 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\C\DIW -> D:\project\HWP\HWP-Scoring\output\2509\C\DIW
2025-09-30 15:52:05,202 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\D\DIW -> D:\project\HWP\HWP-Scoring\output\2509\D\DIW
2025-09-30 15:52:06,428 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\D\DIW -> D:\project\HWP\HWP-Scoring\output\2509\D\DIW
2025-09-30 15:52:06,929 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\E\DIW -> D:\project\HWP\HWP-Scoring\output\2509\E\DIW
2025-09-30 15:52:08,129 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\E\DIW -> D:\project\HWP\HWP-Scoring\output\2509\E\DIW
2025-10-02 15:32:36,253 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\A\DIW -> D:\project\HWP\HWP-Scoring\output\2509\A\DIW
2025-10-02 15:32:43,771 - INFO - 변환 성공: 워드(한글)-000105-마연지.hwp -> 워드(한글)-000105-마연지.hml
2025-10-02 15:32:44,766 - INFO - 변환 성공: 워드(한글)-000106-김민지.hwp -> 워드(한글)-000106-김민지.hml
2025-10-02 15:32:45,244 - INFO - 변환 성공: 워드(한글)-000167-박수빈.hwp -> 워드(한글)-000167-박수빈.hml
2025-10-02 15:32:45,734 - INFO - 변환 성공: 워드(한글)-000168-이정우.hwp -> 워드(한글)-000168-이정우.hml
2025-10-02 15:32:46,102 - INFO - 변환 성공: 워드(한글)-000260-나지안.hwp -> 워드(한글)-000260-나지안.hml
2025-10-02 15:32:46,458 - INFO - 변환 성공: 워드(한글)-000748-박은설.hwp -> 워드(한글)-000748-박은설.hml
2025-10-02 15:32:47,132 - INFO - 변환 성공: 워드(한글)-000749-강우진.hwp -> 워드(한글)-000749-강우진.hml
2025-10-02 15:32:47,702 - INFO - 변환 성공: 워드(한글)-000923-김태형.hwp -> 워드(한글)-000923-김태형.hml
2025-10-02 15:32:48,297 - INFO - 변환 성공: 워드(한글)-000924-최현우.hwp -> 워드(한글)-000924-최현우.hml
2025-10-02 15:32:48,899 - INFO - 변환 성공: 워드(한글)-000925-김하윤.hwp -> 워드(한글)-000925-김하윤.hml
2025-10-02 15:32:49,416 - INFO - 변환 성공: 워드(한글)-000926-전지아.hwp -> 워드(한글)-000926-전지아.hml
2025-10-02 15:32:49,784 - INFO - 변환 성공: 워드(한글)-000927-강현준.hwp -> 워드(한글)-000927-강현준.hml
2025-10-02 15:32:50,198 - INFO - 변환 성공: 워드(한글)-000928-임지우.hwp -> 워드(한글)-000928-임지우.hml
2025-10-02 15:32:50,696 - INFO - 변환 성공: 워드(한글)-000929-장하연.hwp -> 워드(한글)-000929-장하연.hml
2025-10-02 15:32:51,191 - INFO - 변환 성공: 워드(한글)-000930-전다윤.hwp -> 워드(한글)-000930-전다윤.hml
2025-10-02 15:32:51,739 - INFO - 변환 성공: 워드(한글)-000931-김민제.hwp -> 워드(한글)-000931-김민제.hml
2025-10-02 15:32:52,261 - INFO - 변환 성공: 워드(한글)-000932-김민채.hwp -> 워드(한글)-000932-김민채.hml
2025-10-02 15:32:52,723 - INFO - 변환 성공: 워드(한글)-000933-장은준.hwp -> 워드(한글)-000933-장은준.hml
2025-10-02 15:32:53,205 - INFO - 변환 성공: 워드(한글)-000934-안세준.hwp -> 워드(한글)-000934-안세준.hml
2025-10-02 15:32:53,664 - INFO - 변환 성공: 워드(한글)-000935-허시환.hwp -> 워드(한글)-000935-허시환.hml
2025-10-02 15:32:54,252 - INFO - 변환 성공: 워드(한글)-000936-이예슬.hwp -> 워드(한글)-000936-이예슬.hml
2025-10-02 15:32:54,755 - INFO - 변환 성공: 워드(한글)-000937-유정무.hwp -> 워드(한글)-000937-유정무.hml
2025-10-02 15:32:55,158 - INFO - 변환 성공: 워드(한글)-000938-김석호.hwp -> 워드(한글)-000938-김석호.hml
2025-10-02 15:32:55,567 - INFO - 변환 성공: 워드(한글)-000939-박서온.hwp -> 워드(한글)-000939-박서온.hml
2025-10-02 15:32:56,082 - INFO - 변환 성공: 워드(한글)-001043-문하준.hwp -> 워드(한글)-001043-문하준.hml
2025-10-02 15:32:56,624 - INFO - 변환 성공: 워드(한글)-001074-김도율.hwp -> 워드(한글)-001074-김도율.hml
2025-10-02 15:32:57,164 - INFO - 변환 성공: 워드(한글)-001272-김서준.hwp -> 워드(한글)-001272-김서준.hml
2025-10-02 15:32:57,727 - INFO - 변환 성공: 워드(한글)-001550-이경민.hwp -> 워드(한글)-001550-이경민.hml
2025-10-02 15:32:58,218 - INFO - 변환 성공: 워드(한글)-003285-권유진.hwp -> 워드(한글)-003285-권유진.hml
2025-10-02 15:32:58,701 - INFO - 변환 성공: 워드(한글)-003416-임민영.hwp -> 워드(한글)-003416-임민영.hml
2025-10-02 15:32:59,309 - INFO - 변환 성공: 워드(한글)-003926-권율.hwp -> 워드(한글)-003926-권율.hml
2025-10-02 15:32:59,752 - INFO - 변환 성공: 워드(한글)-003927-박수아.hwp -> 워드(한글)-003927-박수아.hml
2025-10-02 15:33:00,214 - INFO - 변환 성공: 워드(한글)-003929-김리아.hwp -> 워드(한글)-003929-김리아.hml
2025-10-02 15:33:00,737 - INFO - 변환 성공: 워드(한글)-003930-김시윤.hwp -> 워드(한글)-003930-김시윤.hml
2025-10-02 15:33:01,145 - INFO - 변환 성공: 워드(한글)-003931-강지윤.hwp -> 워드(한글)-003931-강지윤.hml
2025-10-02 15:33:01,493 - INFO - 변환 성공: 워드(한글)-003932-김태희.hwp -> 워드(한글)-003932-김태희.hml
2025-10-02 15:33:02,080 - INFO - 변환 성공: 워드(한글)-003933-권예주.hwp -> 워드(한글)-003933-권예주.hml
2025-10-02 15:33:02,559 - INFO - 변환 성공: 워드(한글)-003937-이서아.hwp -> 워드(한글)-003937-이서아.hml
2025-10-02 15:33:03,185 - INFO - 변환 성공: 워드(한글)-003938-최지온.hwp -> 워드(한글)-003938-최지온.hml
2025-10-02 15:33:03,702 - INFO - 변환 성공: 워드(한글)-004374-이은채.hwp -> 워드(한글)-004374-이은채.hml
2025-10-02 15:33:04,103 - INFO - 변환 성공: 워드(한글)-004671-강지훈.hwp -> 워드(한글)-004671-강지훈.hml
2025-10-02 15:33:04,462 - INFO - 변환 성공: 워드(한글)-004742-이예진.hwp -> 워드(한글)-004742-이예진.hml
2025-10-02 15:33:04,970 - INFO - 변환 성공: 워드(한글)-004743-우지우.hwp -> 워드(한글)-004743-우지우.hml
2025-10-02 15:33:05,661 - INFO - 변환 성공: 워드(한글)-004786-한주원.hwp -> 워드(한글)-004786-한주원.hml
2025-10-02 15:33:06,192 - INFO - 변환 성공: 워드(한글)-004787-송은환.hwp -> 워드(한글)-004787-송은환.hml
2025-10-02 15:33:07,067 - INFO - 변환 성공: 워드(한글)-004788-김서하.hwp -> 워드(한글)-004788-김서하.hml
2025-10-02 15:33:07,768 - INFO - 변환 성공: 워드(한글)-005240-노연서.hwp -> 워드(한글)-005240-노연서.hml
2025-10-02 15:33:08,415 - INFO - 변환 성공: DIW_2509A.hwpx -> DIW_2509A.hml
2025-10-02 15:33:09,052 - INFO - 변환 성공: 워드(한글)-000038-김애경.hwpx -> 워드(한글)-000038-김애경.hml
2025-10-02 15:33:09,552 - INFO - 변환 성공: 워드(한글)-000040-전인성.hwpx -> 워드(한글)-000040-전인성.hml
2025-10-02 15:33:10,193 - INFO - 변환 성공: 워드(한글)-000041-김동현.hwpx -> 워드(한글)-000041-김동현.hml
2025-10-02 15:33:10,872 - INFO - 변환 성공: 워드(한글)-000130-오재진.hwpx -> 워드(한글)-000130-오재진.hml
2025-10-02 15:33:11,519 - INFO - 변환 성공: 워드(한글)-000131-김산호.hwpx -> 워드(한글)-000131-김산호.hml
2025-10-02 15:33:12,176 - INFO - 변환 성공: 워드(한글)-000132-박시준.hwpx -> 워드(한글)-000132-박시준.hml
2025-10-02 15:33:12,809 - INFO - 변환 성공: 워드(한글)-000149-서예준.hwpx -> 워드(한글)-000149-서예준.hml
2025-10-02 15:33:13,528 - INFO - 변환 성공: 워드(한글)-000154-최연후.hwpx -> 워드(한글)-000154-최연후.hml
2025-10-02 15:33:14,192 - INFO - 변환 성공: 워드(한글)-000314-이상원.hwpx -> 워드(한글)-000314-이상원.hml
2025-10-02 15:33:14,837 - INFO - 변환 성공: 워드(한글)-000428-윤여진.hwpx -> 워드(한글)-000428-윤여진.hml
2025-10-02 15:33:15,536 - INFO - 변환 성공: 워드(한글)-000429-장현석.hwpx -> 워드(한글)-000429-장현석.hml
2025-10-02 15:33:16,201 - INFO - 변환 성공: 워드(한글)-000430-권오현.hwpx -> 워드(한글)-000430-권오현.hml
2025-10-02 15:33:16,857 - INFO - 변환 성공: 워드(한글)-000431-김서윤.hwpx -> 워드(한글)-000431-김서윤.hml
2025-10-02 15:33:17,488 - INFO - 변환 성공: 워드(한글)-000433-공봄.hwpx -> 워드(한글)-000433-공봄.hml
2025-10-02 15:33:18,068 - INFO - 변환 성공: 워드(한글)-000434-손효주.hwpx -> 워드(한글)-000434-손효주.hml
2025-10-02 15:33:18,665 - INFO - 변환 성공: 워드(한글)-000435-장하윤.hwpx -> 워드(한글)-000435-장하윤.hml
2025-10-02 15:33:19,231 - INFO - 변환 성공: 워드(한글)-000436-이유담.hwpx -> 워드(한글)-000436-이유담.hml
2025-10-02 15:33:19,840 - INFO - 변환 성공: 워드(한글)-000437-양수현.hwpx -> 워드(한글)-000437-양수현.hml
2025-10-02 15:33:20,419 - INFO - 변환 성공: 워드(한글)-000438-김유나.hwpx -> 워드(한글)-000438-김유나.hml
2025-10-02 15:33:21,049 - INFO - 변환 성공: 워드(한글)-000439-김주현.hwpx -> 워드(한글)-000439-김주현.hml
2025-10-02 15:33:21,675 - INFO - 변환 성공: 워드(한글)-000440-박소진.hwpx -> 워드(한글)-000440-박소진.hml
2025-10-02 15:33:22,247 - INFO - 변환 성공: 워드(한글)-000441-최서하.hwpx -> 워드(한글)-000441-최서하.hml
2025-10-02 15:33:22,824 - INFO - 변환 성공: 워드(한글)-000442-이수현.hwpx -> 워드(한글)-000442-이수현.hml
2025-10-02 15:33:23,387 - INFO - 변환 성공: 워드(한글)-000443-김예성.hwpx -> 워드(한글)-000443-김예성.hml
2025-10-02 15:33:23,949 - INFO - 변환 성공: 워드(한글)-000444-김예린.hwpx -> 워드(한글)-000444-김예린.hml
2025-10-02 15:33:24,503 - INFO - 변환 성공: 워드(한글)-000445-김희성.hwpx -> 워드(한글)-000445-김희성.hml
2025-10-02 15:33:25,160 - INFO - 변환 성공: 워드(한글)-000446-손무근.hwpx -> 워드(한글)-000446-손무근.hml
2025-10-02 15:33:25,764 - INFO - 변환 성공: 워드(한글)-000447-양하원.hwpx -> 워드(한글)-000447-양하원.hml
2025-10-02 15:33:26,525 - INFO - 변환 성공: 워드(한글)-000535-고현준.hwpx -> 워드(한글)-000535-고현준.hml
2025-10-02 15:33:27,172 - INFO - 변환 성공: 워드(한글)-000550-오윤서.hwpx -> 워드(한글)-000550-오윤서.hml
2025-10-02 15:33:27,995 - INFO - 변환 성공: 워드(한글)-000592-김민주.hwpx -> 워드(한글)-000592-김민주.hml
2025-10-02 15:33:28,586 - INFO - 변환 성공: 워드(한글)-000630-이태율.hwpx -> 워드(한글)-000630-이태율.hml
2025-10-02 15:33:29,033 - INFO - 변환 성공: 워드(한글)-000631-오태양.hwpx -> 워드(한글)-000631-오태양.hml
2025-10-02 15:33:29,527 - INFO - 변환 성공: 워드(한글)-000732-권시아.hwpx -> 워드(한글)-000732-권시아.hml
2025-10-02 15:33:30,029 - INFO - 변환 성공: 워드(한글)-000737-김주언.hwpx -> 워드(한글)-000737-김주언.hml
2025-10-02 15:33:30,512 - INFO - 변환 성공: 워드(한글)-000739-천지은.hwpx -> 워드(한글)-000739-천지은.hml
2025-10-02 15:33:31,106 - INFO - 변환 성공: 워드(한글)-000740-김서현.hwpx -> 워드(한글)-000740-김서현.hml
2025-10-02 15:33:31,691 - INFO - 변환 성공: 워드(한글)-000760-김채희.hwpx -> 워드(한글)-000760-김채희.hml
2025-10-02 15:33:32,276 - INFO - 변환 성공: 워드(한글)-000764-최원미.hwpx -> 워드(한글)-000764-최원미.hml
2025-10-02 15:33:32,889 - INFO - 변환 성공: 워드(한글)-000922-이나윤.hwpx -> 워드(한글)-000922-이나윤.hml
2025-10-02 15:33:33,524 - INFO - 변환 성공: 워드(한글)-001222-남재준.hwpx -> 워드(한글)-001222-남재준.hml
2025-10-02 15:33:34,173 - INFO - 변환 성공: 워드(한글)-001250-박수현.hwpx -> 워드(한글)-001250-박수현.hml
2025-10-02 15:33:34,772 - INFO - 변환 성공: 워드(한글)-001251-강다원.hwpx -> 워드(한글)-001251-강다원.hml
2025-10-02 15:33:35,379 - INFO - 변환 성공: 워드(한글)-001337-김지윤.hwpx -> 워드(한글)-001337-김지윤.hml
2025-10-02 15:33:35,960 - INFO - 변환 성공: 워드(한글)-001403-윤예원.hwpx -> 워드(한글)-001403-윤예원.hml
2025-10-02 15:33:36,634 - INFO - 변환 성공: 워드(한글)-001607-장우진.hwpx -> 워드(한글)-001607-장우진.hml
2025-10-02 15:33:37,261 - INFO - 변환 성공: 워드(한글)-001608-이다온.hwpx -> 워드(한글)-001608-이다온.hml
2025-10-02 15:33:37,777 - INFO - 변환 성공: 워드(한글)-001610-김지호.hwpx -> 워드(한글)-001610-김지호.hml
2025-10-02 15:33:38,243 - INFO - 변환 성공: 워드(한글)-001644-김도연.hwpx -> 워드(한글)-001644-김도연.hml
2025-10-02 15:33:38,880 - INFO - 변환 성공: 워드(한글)-001689-조세윤.hwpx -> 워드(한글)-001689-조세윤.hml
2025-10-02 15:33:39,494 - INFO - 변환 성공: 워드(한글)-001690-경태준.hwpx -> 워드(한글)-001690-경태준.hml
2025-10-02 15:33:40,141 - INFO - 변환 성공: 워드(한글)-001747-정지후.hwpx -> 워드(한글)-001747-정지후.hml
2025-10-02 15:33:40,695 - INFO - 변환 성공: 워드(한글)-001748-문기현.hwpx -> 워드(한글)-001748-문기현.hml
2025-10-02 15:33:41,198 - INFO - 변환 성공: 워드(한글)-001753-서동현.hwpx -> 워드(한글)-001753-서동현.hml
2025-10-02 15:33:41,803 - INFO - 변환 성공: 워드(한글)-001795-정아름.hwpx -> 워드(한글)-001795-정아름.hml
2025-10-02 15:33:42,478 - INFO - 변환 성공: 워드(한글)-001796-문상현.hwpx -> 워드(한글)-001796-문상현.hml
2025-10-02 15:33:43,064 - INFO - 변환 성공: 워드(한글)-001797-강동빈.hwpx -> 워드(한글)-001797-강동빈.hml
2025-10-02 15:33:43,695 - INFO - 변환 성공: 워드(한글)-001826-이도형.hwpx -> 워드(한글)-001826-이도형.hml
2025-10-02 15:33:44,313 - INFO - 변환 성공: 워드(한글)-001869-김지운.hwpx -> 워드(한글)-001869-김지운.hml
2025-10-02 15:33:44,982 - INFO - 변환 성공: 워드(한글)-001905-이지윤.hwpx -> 워드(한글)-001905-이지윤.hml
2025-10-02 15:33:45,643 - INFO - 변환 성공: 워드(한글)-001938-이영훈.hwpx -> 워드(한글)-001938-이영훈.hml
2025-10-02 15:33:46,272 - INFO - 변환 성공: 워드(한글)-001985-김민서.hwpx -> 워드(한글)-001985-김민서.hml
2025-10-02 15:33:46,931 - INFO - 변환 성공: 워드(한글)-001990-김채원.hwpx -> 워드(한글)-001990-김채원.hml
2025-10-02 15:33:47,420 - INFO - 변환 성공: 워드(한글)-001994-김효민.hwpx -> 워드(한글)-001994-김효민.hml
2025-10-02 15:33:47,895 - INFO - 변환 성공: 워드(한글)-002008-배민서.hwpx -> 워드(한글)-002008-배민서.hml
2025-10-02 15:33:48,522 - INFO - 변환 성공: 워드(한글)-002150-박건영.hwpx -> 워드(한글)-002150-박건영.hml
2025-10-02 15:33:49,158 - INFO - 변환 성공: 워드(한글)-002151-고해온.hwpx -> 워드(한글)-002151-고해온.hml
2025-10-02 15:33:49,662 - INFO - 변환 성공: 워드(한글)-002160-송채연.hwpx -> 워드(한글)-002160-송채연.hml
2025-10-02 15:33:50,063 - INFO - 변환 성공: 워드(한글)-002225-유도현.hwpx -> 워드(한글)-002225-유도현.hml
2025-10-02 15:33:50,588 - INFO - 변환 성공: 워드(한글)-002250-유은수.hwpx -> 워드(한글)-002250-유은수.hml
2025-10-02 15:33:51,221 - INFO - 변환 성공: 워드(한글)-002258-오선우.hwpx -> 워드(한글)-002258-오선우.hml
2025-10-02 15:33:51,830 - INFO - 변환 성공: 워드(한글)-002262-채성원.hwpx -> 워드(한글)-002262-채성원.hml
2025-10-02 15:33:52,324 - INFO - 변환 성공: 워드(한글)-002299-황선유.hwpx -> 워드(한글)-002299-황선유.hml
2025-10-02 15:33:52,759 - INFO - 변환 성공: 워드(한글)-002300-장한.hwpx -> 워드(한글)-002300-장한.hml
2025-10-02 15:33:53,371 - INFO - 변환 성공: 워드(한글)-002318-신지훈.hwpx -> 워드(한글)-002318-신지훈.hml
2025-10-02 15:33:53,989 - INFO - 변환 성공: 워드(한글)-002373-이현서.hwpx -> 워드(한글)-002373-이현서.hml
2025-10-02 15:33:54,547 - INFO - 변환 성공: 워드(한글)-002374-김채원.hwpx -> 워드(한글)-002374-김채원.hml
2025-10-02 15:33:55,168 - INFO - 변환 성공: 워드(한글)-002375-서이현.hwpx -> 워드(한글)-002375-서이현.hml
2025-10-02 15:33:55,806 - INFO - 변환 성공: 워드(한글)-002493-백주원.hwpx -> 워드(한글)-002493-백주원.hml
2025-10-02 15:33:56,319 - INFO - 변환 성공: 워드(한글)-002511-박지환.hwpx -> 워드(한글)-002511-박지환.hml
2025-10-02 15:33:56,792 - INFO - 변환 성공: 워드(한글)-002512-고명성.hwpx -> 워드(한글)-002512-고명성.hml
2025-10-02 15:33:57,419 - INFO - 변환 성공: 워드(한글)-002513-왕예나.hwpx -> 워드(한글)-002513-왕예나.hml
2025-10-02 15:33:58,069 - INFO - 변환 성공: 워드(한글)-002530-강이찬.hwpx -> 워드(한글)-002530-강이찬.hml
2025-10-02 15:33:58,667 - INFO - 변환 성공: 워드(한글)-002531-김준희.hwpx -> 워드(한글)-002531-김준희.hml
2025-10-02 15:33:59,294 - INFO - 변환 성공: 워드(한글)-002626-강하은.hwpx -> 워드(한글)-002626-강하은.hml
2025-10-02 15:33:59,890 - INFO - 변환 성공: 워드(한글)-002672-송찬휘.hwpx -> 워드(한글)-002672-송찬휘.hml
2025-10-02 15:34:00,465 - INFO - 변환 성공: 워드(한글)-002676-김연우.hwpx -> 워드(한글)-002676-김연우.hml
2025-10-02 15:34:01,027 - INFO - 변환 성공: 워드(한글)-002677-황소현.hwpx -> 워드(한글)-002677-황소현.hml
2025-10-02 15:34:01,643 - INFO - 변환 성공: 워드(한글)-002678-노봄.hwpx -> 워드(한글)-002678-노봄.hml
2025-10-02 15:34:02,226 - INFO - 변환 성공: 워드(한글)-002729-조현규.hwpx -> 워드(한글)-002729-조현규.hml
2025-10-02 15:34:02,874 - INFO - 변환 성공: 워드(한글)-002736-서정우.hwpx -> 워드(한글)-002736-서정우.hml
2025-10-02 15:34:03,485 - INFO - 변환 성공: 워드(한글)-002792-정우성.hwpx -> 워드(한글)-002792-정우성.hml
2025-10-02 15:34:04,052 - INFO - 변환 성공: 워드(한글)-002793-박재용.hwpx -> 워드(한글)-002793-박재용.hml
2025-10-02 15:34:04,680 - INFO - 변환 성공: 워드(한글)-002794-최지이.hwpx -> 워드(한글)-002794-최지이.hml
2025-10-02 15:34:05,238 - INFO - 변환 성공: 워드(한글)-002795-최지아.hwpx -> 워드(한글)-002795-최지아.hml
2025-10-02 15:34:05,850 - INFO - 변환 성공: 워드(한글)-002816-허정원.hwpx -> 워드(한글)-002816-허정원.hml
2025-10-02 15:34:06,433 - INFO - 변환 성공: 워드(한글)-002863-최도은.hwpx -> 워드(한글)-002863-최도은.hml
2025-10-02 15:34:06,947 - INFO - 변환 성공: 워드(한글)-002864-엄윤희.hwpx -> 워드(한글)-002864-엄윤희.hml
2025-10-02 15:34:07,527 - INFO - 변환 성공: 워드(한글)-002866-jinchengxuan.hwpx -> 워드(한글)-002866-jinchengxuan.hml
2025-10-02 15:34:08,155 - INFO - 변환 성공: 워드(한글)-002867-zhengtaimin.hwpx -> 워드(한글)-002867-zhengtaimin.hml
2025-10-02 15:34:08,754 - INFO - 변환 성공: 워드(한글)-002893-유태준.hwpx -> 워드(한글)-002893-유태준.hml
2025-10-02 15:34:09,318 - INFO - 변환 성공: 워드(한글)-002981-박수빈.hwpx -> 워드(한글)-002981-박수빈.hml
2025-10-02 15:34:09,744 - INFO - 변환 성공: 워드(한글)-003003-김도원.hwpx -> 워드(한글)-003003-김도원.hml
2025-10-02 15:34:10,282 - INFO - 변환 성공: 워드(한글)-003008-박지혁.hwpx -> 워드(한글)-003008-박지혁.hml
2025-10-02 15:34:10,908 - INFO - 변환 성공: 워드(한글)-003033-김지원.hwpx -> 워드(한글)-003033-김지원.hml
2025-10-02 15:34:11,717 - INFO - 변환 성공: 워드(한글)-003095-이도원.hwpx -> 워드(한글)-003095-이도원.hml
2025-10-02 15:34:12,366 - INFO - 변환 성공: 워드(한글)-003096-이승훈.hwpx -> 워드(한글)-003096-이승훈.hml
2025-10-02 15:34:12,980 - INFO - 변환 성공: 워드(한글)-003110-조재희.hwpx -> 워드(한글)-003110-조재희.hml
2025-10-02 15:34:13,595 - INFO - 변환 성공: 워드(한글)-003111-박소민.hwpx -> 워드(한글)-003111-박소민.hml
2025-10-02 15:34:14,230 - INFO - 변환 성공: 워드(한글)-003125-박지원.hwpx -> 워드(한글)-003125-박지원.hml
2025-10-02 15:34:14,874 - INFO - 변환 성공: 워드(한글)-003131-배지환.hwpx -> 워드(한글)-003131-배지환.hml
2025-10-02 15:34:15,569 - INFO - 변환 성공: 워드(한글)-003157-선승민.hwpx -> 워드(한글)-003157-선승민.hml
2025-10-02 15:34:16,405 - INFO - 변환 성공: 워드(한글)-003158-이예나.hwpx -> 워드(한글)-003158-이예나.hml
2025-10-02 15:34:17,244 - INFO - 변환 성공: 워드(한글)-003161-문준서.hwpx -> 워드(한글)-003161-문준서.hml
2025-10-02 15:34:18,111 - INFO - 변환 성공: 워드(한글)-003175-정하율.hwpx -> 워드(한글)-003175-정하율.hml
2025-10-02 15:34:18,944 - INFO - 변환 성공: 워드(한글)-003189-구보미.hwpx -> 워드(한글)-003189-구보미.hml
2025-10-02 15:34:19,757 - INFO - 변환 성공: 워드(한글)-003227-김지후.hwpx -> 워드(한글)-003227-김지후.hml
2025-10-02 15:34:20,485 - INFO - 변환 성공: 워드(한글)-003244-김단영.hwpx -> 워드(한글)-003244-김단영.hml
2025-10-02 15:34:21,305 - INFO - 변환 성공: 워드(한글)-003311-정태성.hwpx -> 워드(한글)-003311-정태성.hml
2025-10-02 15:34:22,095 - INFO - 변환 성공: 워드(한글)-003336-정선우.hwpx -> 워드(한글)-003336-정선우.hml
2025-10-02 15:34:22,845 - INFO - 변환 성공: 워드(한글)-003413-qian xiangxu.hwpx -> 워드(한글)-003413-qian xiangxu.hml
2025-10-02 15:34:23,492 - INFO - 변환 성공: 워드(한글)-003423-김지성.hwpx -> 워드(한글)-003423-김지성.hml
2025-10-02 15:34:24,083 - INFO - 변환 성공: 워드(한글)-003477-심현아.hwpx -> 워드(한글)-003477-심현아.hml
2025-10-02 15:34:24,714 - INFO - 변환 성공: 워드(한글)-003478-김민지.hwpx -> 워드(한글)-003478-김민지.hml
2025-10-02 15:34:25,263 - INFO - 변환 성공: 워드(한글)-003479-임지우.hwpx -> 워드(한글)-003479-임지우.hml
2025-10-02 15:34:25,860 - INFO - 변환 성공: 워드(한글)-003480-김남욱.hwpx -> 워드(한글)-003480-김남욱.hml
2025-10-02 15:34:26,439 - INFO - 변환 성공: 워드(한글)-003483-황석희.hwpx -> 워드(한글)-003483-황석희.hml
2025-10-02 15:34:26,995 - INFO - 변환 성공: 워드(한글)-003509-이해담.hwpx -> 워드(한글)-003509-이해담.hml
2025-10-02 15:34:27,566 - INFO - 변환 성공: 워드(한글)-003510-강수림.hwpx -> 워드(한글)-003510-강수림.hml
2025-10-02 15:34:28,137 - INFO - 변환 성공: 워드(한글)-003511-김재희.hwpx -> 워드(한글)-003511-김재희.hml
2025-10-02 15:34:28,792 - INFO - 변환 성공: 워드(한글)-003559-김지후.hwpx -> 워드(한글)-003559-김지후.hml
2025-10-02 15:34:29,365 - INFO - 변환 성공: 워드(한글)-003560-성시영.hwpx -> 워드(한글)-003560-성시영.hml
2025-10-02 15:34:29,942 - INFO - 변환 성공: 워드(한글)-003561-원주연.hwpx -> 워드(한글)-003561-원주연.hml
2025-10-02 15:34:30,513 - INFO - 변환 성공: 워드(한글)-003598-고우현.hwpx -> 워드(한글)-003598-고우현.hml
2025-10-02 15:34:31,106 - INFO - 변환 성공: 워드(한글)-003599-김시윤.hwpx -> 워드(한글)-003599-김시윤.hml
2025-10-02 15:34:31,717 - INFO - 변환 성공: 워드(한글)-003601-김윤하.hwpx -> 워드(한글)-003601-김윤하.hml
2025-10-02 15:34:32,207 - INFO - 변환 성공: 워드(한글)-003602-박정민.hwpx -> 워드(한글)-003602-박정민.hml
2025-10-02 15:34:32,714 - INFO - 변환 성공: 워드(한글)-003603-유동욱.hwpx -> 워드(한글)-003603-유동욱.hml
2025-10-02 15:34:33,322 - INFO - 변환 성공: 워드(한글)-003726-안우현.hwpx -> 워드(한글)-003726-안우현.hml
2025-10-02 15:34:33,946 - INFO - 변환 성공: 워드(한글)-003727-최산.hwpx -> 워드(한글)-003727-최산.hml
2025-10-02 15:34:34,568 - INFO - 변환 성공: 워드(한글)-003754-김하준.hwpx -> 워드(한글)-003754-김하준.hml
2025-10-02 15:34:35,126 - INFO - 변환 성공: 워드(한글)-003799-정재선.hwpx -> 워드(한글)-003799-정재선.hml
2025-10-02 15:34:35,715 - INFO - 변환 성공: 워드(한글)-003914-김나림.hwpx -> 워드(한글)-003914-김나림.hml
2025-10-02 15:34:36,321 - INFO - 변환 성공: 워드(한글)-003968-양다민.hwpx -> 워드(한글)-003968-양다민.hml
2025-10-02 15:34:36,914 - INFO - 변환 성공: 워드(한글)-003991-성승준.hwpx -> 워드(한글)-003991-성승준.hml
2025-10-02 15:34:37,521 - INFO - 변환 성공: 워드(한글)-004029-노세연.hwpx -> 워드(한글)-004029-노세연.hml
2025-10-02 15:34:38,123 - INFO - 변환 성공: 워드(한글)-004101-김레오.hwpx -> 워드(한글)-004101-김레오.hml
2025-10-02 15:34:38,721 - INFO - 변환 성공: 워드(한글)-004102-채재원.hwpx -> 워드(한글)-004102-채재원.hml
2025-10-02 15:34:39,284 - INFO - 변환 성공: 워드(한글)-004103-김보민.hwpx -> 워드(한글)-004103-김보민.hml
2025-10-02 15:34:39,915 - INFO - 변환 성공: 워드(한글)-004118-조민경.hwpx -> 워드(한글)-004118-조민경.hml
2025-10-02 15:34:40,534 - INFO - 변환 성공: 워드(한글)-004167-김서윤.hwpx -> 워드(한글)-004167-김서윤.hml
2025-10-02 15:34:41,121 - INFO - 변환 성공: 워드(한글)-004170-김재준.hwpx -> 워드(한글)-004170-김재준.hml
2025-10-02 15:34:41,730 - INFO - 변환 성공: 워드(한글)-004171-김재하.hwpx -> 워드(한글)-004171-김재하.hml
2025-10-02 15:34:42,355 - INFO - 변환 성공: 워드(한글)-004172-조서율.hwpx -> 워드(한글)-004172-조서율.hml
2025-10-02 15:34:42,987 - INFO - 변환 성공: 워드(한글)-004174-오아린.hwpx -> 워드(한글)-004174-오아린.hml
2025-10-02 15:34:43,628 - INFO - 변환 성공: 워드(한글)-004175-박상규.hwpx -> 워드(한글)-004175-박상규.hml
2025-10-02 15:34:44,168 - INFO - 변환 성공: 워드(한글)-004176-남의호.hwpx -> 워드(한글)-004176-남의호.hml
2025-10-02 15:34:44,579 - INFO - 변환 성공: 워드(한글)-004188-신채윤.hwpx -> 워드(한글)-004188-신채윤.hml
2025-10-02 15:34:45,080 - INFO - 변환 성공: 워드(한글)-004192-최은진.hwpx -> 워드(한글)-004192-최은진.hml
2025-10-02 15:34:45,680 - INFO - 변환 성공: 워드(한글)-004204-김서연.hwpx -> 워드(한글)-004204-김서연.hml
2025-10-02 15:34:46,248 - INFO - 변환 성공: 워드(한글)-004251-원지유.hwpx -> 워드(한글)-004251-원지유.hml
2025-10-02 15:34:46,860 - INFO - 변환 성공: 워드(한글)-004256-김서연.hwpx -> 워드(한글)-004256-김서연.hml
2025-10-02 15:34:47,463 - INFO - 변환 성공: 워드(한글)-004257-김은재.hwpx -> 워드(한글)-004257-김은재.hml
2025-10-02 15:34:48,041 - INFO - 변환 성공: 워드(한글)-004261-이서하.hwpx -> 워드(한글)-004261-이서하.hml
2025-10-02 15:34:48,528 - INFO - 변환 성공: 워드(한글)-004262-김우진.hwpx -> 워드(한글)-004262-김우진.hml
2025-10-02 15:34:49,005 - INFO - 변환 성공: 워드(한글)-004263-이강현.hwpx -> 워드(한글)-004263-이강현.hml
2025-10-02 15:34:49,505 - INFO - 변환 성공: 워드(한글)-004268-박서정.hwpx -> 워드(한글)-004268-박서정.hml
2025-10-02 15:34:49,974 - INFO - 변환 성공: 워드(한글)-004269-정다인.hwpx -> 워드(한글)-004269-정다인.hml
2025-10-02 15:34:50,454 - INFO - 변환 성공: 워드(한글)-004286-유준서.hwpx -> 워드(한글)-004286-유준서.hml
2025-10-02 15:34:50,920 - INFO - 변환 성공: 워드(한글)-004290-노서아.hwpx -> 워드(한글)-004290-노서아.hml
2025-10-02 15:34:51,516 - INFO - 변환 성공: 워드(한글)-004305-이세하.hwpx -> 워드(한글)-004305-이세하.hml
2025-10-02 15:34:52,113 - INFO - 변환 성공: 워드(한글)-004316-김단아.hwpx -> 워드(한글)-004316-김단아.hml
2025-10-02 15:34:52,710 - INFO - 변환 성공: 워드(한글)-004383-송예솔.hwpx -> 워드(한글)-004383-송예솔.hml
2025-10-02 15:34:53,289 - INFO - 변환 성공: 워드(한글)-004417-박승유.hwpx -> 워드(한글)-004417-박승유.hml
2025-10-02 15:34:53,894 - INFO - 변환 성공: 워드(한글)-004426-서재혁.hwpx -> 워드(한글)-004426-서재혁.hml
2025-10-02 15:34:54,475 - INFO - 변환 성공: 워드(한글)-004439-이하린.hwpx -> 워드(한글)-004439-이하린.hml
2025-10-02 15:34:55,062 - INFO - 변환 성공: 워드(한글)-004440-임채민.hwpx -> 워드(한글)-004440-임채민.hml
2025-10-02 15:34:55,641 - INFO - 변환 성공: 워드(한글)-004442-정예현.hwpx -> 워드(한글)-004442-정예현.hml
2025-10-02 15:34:56,121 - INFO - 변환 성공: 워드(한글)-004460-이시헌.hwpx -> 워드(한글)-004460-이시헌.hml
2025-10-02 15:34:56,601 - INFO - 변환 성공: 워드(한글)-004461-곽리원.hwpx -> 워드(한글)-004461-곽리원.hml
2025-10-02 15:34:57,221 - INFO - 변환 성공: 워드(한글)-004474-윤시은.hwpx -> 워드(한글)-004474-윤시은.hml
2025-10-02 15:34:57,789 - INFO - 변환 성공: 워드(한글)-004493-정성윤.hwpx -> 워드(한글)-004493-정성윤.hml
2025-10-02 15:34:58,433 - INFO - 변환 성공: 워드(한글)-004501-이지율.hwpx -> 워드(한글)-004501-이지율.hml
2025-10-02 15:34:58,999 - INFO - 변환 성공: 워드(한글)-004502-강리우.hwpx -> 워드(한글)-004502-강리우.hml
2025-10-02 15:34:59,485 - INFO - 변환 성공: 워드(한글)-004621-손우진.hwpx -> 워드(한글)-004621-손우진.hml
2025-10-02 15:34:59,929 - INFO - 변환 성공: 워드(한글)-004624-임하연.hwpx -> 워드(한글)-004624-임하연.hml
2025-10-02 15:35:00,505 - INFO - 변환 성공: 워드(한글)-004626-신지환.hwpx -> 워드(한글)-004626-신지환.hml
2025-10-02 15:35:01,118 - INFO - 변환 성공: 워드(한글)-004628-김서율.hwpx -> 워드(한글)-004628-김서율.hml
2025-10-02 15:35:01,717 - INFO - 변환 성공: 워드(한글)-004630-윤태양.hwpx -> 워드(한글)-004630-윤태양.hml
2025-10-02 15:35:02,329 - INFO - 변환 성공: 워드(한글)-004633-정지민.hwpx -> 워드(한글)-004633-정지민.hml
2025-10-02 15:35:02,931 - INFO - 변환 성공: 워드(한글)-004634-박시온.hwpx -> 워드(한글)-004634-박시온.hml
2025-10-02 15:35:03,540 - INFO - 변환 성공: 워드(한글)-004635-유강우.hwpx -> 워드(한글)-004635-유강우.hml
2025-10-02 15:35:04,146 - INFO - 변환 성공: 워드(한글)-004636-서준호.hwpx -> 워드(한글)-004636-서준호.hml
2025-10-02 15:35:04,644 - INFO - 변환 성공: 워드(한글)-004637-나윤채.hwpx -> 워드(한글)-004637-나윤채.hml
2025-10-02 15:35:05,262 - INFO - 변환 성공: 워드(한글)-004638-황연수.hwpx -> 워드(한글)-004638-황연수.hml
2025-10-02 15:35:05,896 - INFO - 변환 성공: 워드(한글)-004639-박주완.hwpx -> 워드(한글)-004639-박주완.hml
2025-10-02 15:35:06,472 - INFO - 변환 성공: 워드(한글)-004640-박상우.hwpx -> 워드(한글)-004640-박상우.hml
2025-10-02 15:35:07,078 - INFO - 변환 성공: 워드(한글)-004641-윤지완.hwpx -> 워드(한글)-004641-윤지완.hml
2025-10-02 15:35:07,651 - INFO - 변환 성공: 워드(한글)-004642-한재윤.hwpx -> 워드(한글)-004642-한재윤.hml
2025-10-02 15:35:08,256 - INFO - 변환 성공: 워드(한글)-004643-이석원.hwpx -> 워드(한글)-004643-이석원.hml
2025-10-02 15:35:08,893 - INFO - 변환 성공: 워드(한글)-004644-권보리.hwpx -> 워드(한글)-004644-권보리.hml
2025-10-02 15:35:09,526 - INFO - 변환 성공: 워드(한글)-004645-유라율.hwpx -> 워드(한글)-004645-유라율.hml
2025-10-02 15:35:10,153 - INFO - 변환 성공: 워드(한글)-004646-백소은.hwpx -> 워드(한글)-004646-백소은.hml
2025-10-02 15:35:10,748 - INFO - 변환 성공: 워드(한글)-004655-박단후.hwpx -> 워드(한글)-004655-박단후.hml
2025-10-02 15:35:11,322 - INFO - 변환 성공: 워드(한글)-004661-김지현.hwpx -> 워드(한글)-004661-김지현.hml
2025-10-02 15:35:11,895 - INFO - 변환 성공: 워드(한글)-004663-김민석.hwpx -> 워드(한글)-004663-김민석.hml
2025-10-02 15:35:12,462 - INFO - 변환 성공: 워드(한글)-004664-전시현.hwpx -> 워드(한글)-004664-전시현.hml
2025-10-02 15:35:13,057 - INFO - 변환 성공: 워드(한글)-004665-최하은.hwpx -> 워드(한글)-004665-최하은.hml
2025-10-02 15:35:13,619 - INFO - 변환 성공: 워드(한글)-004666-함선우.hwpx -> 워드(한글)-004666-함선우.hml
2025-10-02 15:35:14,091 - INFO - 변환 성공: 워드(한글)-004731-강예준.hwpx -> 워드(한글)-004731-강예준.hml
2025-10-02 15:35:14,473 - INFO - 변환 성공: 워드(한글)-004841-문윤서.hwpx -> 워드(한글)-004841-문윤서.hml
2025-10-02 15:35:14,962 - INFO - 변환 성공: 워드(한글)-004861-김은채.hwpx -> 워드(한글)-004861-김은채.hml
2025-10-02 15:35:15,565 - INFO - 변환 성공: 워드(한글)-005158-임서준.hwpx -> 워드(한글)-005158-임서준.hml
2025-10-02 15:35:16,156 - INFO - 변환 성공: 워드(한글)-005168-조은우.hwpx -> 워드(한글)-005168-조은우.hml
2025-10-02 15:35:16,633 - INFO - 변환 성공: 워드(한글)-005170-박창진.hwpx -> 워드(한글)-005170-박창진.hml
2025-10-02 15:35:17,118 - INFO - 변환 성공: 워드(한글)-005202-이은솔.hwpx -> 워드(한글)-005202-이은솔.hml
2025-10-02 15:35:17,697 - INFO - 변환 성공: 워드(한글)-005203-이윤진.hwpx -> 워드(한글)-005203-이윤진.hml
2025-10-02 15:35:18,269 - INFO - 변환 성공: 워드(한글)-005227-김준경.hwpx -> 워드(한글)-005227-김준경.hml
2025-10-02 15:35:18,771 - INFO - 변환 성공: 워드(한글)-005269-박주완.hwpx -> 워드(한글)-005269-박주완.hml
2025-10-02 15:35:19,243 - INFO - 변환 성공: 워드(한글)-005308-최우진.hwpx -> 워드(한글)-005308-최우진.hml
2025-10-02 15:35:19,873 - INFO - 변환 성공: 워드(한글)-005349-이나진.hwpx -> 워드(한글)-005349-이나진.hml
2025-10-02 15:35:20,468 - INFO - 변환 성공: 워드(한글)-005377-김지후.hwpx -> 워드(한글)-005377-김지후.hml
2025-10-02 15:35:21,099 - INFO - 변환 성공: 워드(한글)-005378-석도담.hwpx -> 워드(한글)-005378-석도담.hml
2025-10-02 15:35:21,716 - INFO - 변환 성공: 워드프로세서-003730-조아현.hwpx -> 워드프로세서-003730-조아현.hml
2025-10-02 15:35:22,292 - INFO - 변환 성공: 워드프로세서-003731-이예슬.hwpx -> 워드프로세서-003731-이예슬.hml
2025-10-02 15:35:44,731 - INFO - 변환 성공: 워드프로세스-002195-권창현.hwpx -> 워드프로세스-002195-권창현.hml
2025-10-02 15:35:45,057 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\A\DIW -> D:\project\HWP\HWP-Scoring\output\2509\A\DIW
2025-10-02 15:35:45,558 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\B\DIW -> D:\project\HWP\HWP-Scoring\output\2509\B\DIW
2025-10-02 15:35:50,793 - INFO - 변환 성공: 워드(한글)-000113-양예준.hwp -> 워드(한글)-000113-양예준.hml
2025-10-02 15:35:51,332 - INFO - 변환 성공: 워드(한글)-000120-최서현.hwp -> 워드(한글)-000120-최서현.hml
2025-10-02 15:35:51,798 - INFO - 변환 성공: 워드(한글)-000148-최유권.hwp -> 워드(한글)-000148-최유권.hml
2025-10-02 15:35:52,499 - INFO - 변환 성공: 워드(한글)-000188-서연호.hwp -> 워드(한글)-000188-서연호.hml
2025-10-02 15:35:52,851 - INFO - 변환 성공: 워드(한글)-000325-김동욱.hwp -> 워드(한글)-000325-김동욱.hml
2025-10-02 15:35:53,246 - INFO - 변환 성공: 워드(한글)-000465-박상은.hwp -> 워드(한글)-000465-박상은.hml
2025-10-02 15:35:53,654 - INFO - 변환 성공: 워드(한글)-000505-백승규.hwp -> 워드(한글)-000505-백승규.hml
2025-10-02 15:35:54,021 - INFO - 변환 성공: 워드(한글)-000506-안휘목.hwp -> 워드(한글)-000506-안휘목.hml
2025-10-02 15:35:54,459 - INFO - 변환 성공: 워드(한글)-000752-김도연.hwp -> 워드(한글)-000752-김도연.hml
2025-10-02 15:35:54,837 - INFO - 변환 성공: 워드(한글)-001016-박다율.hwp -> 워드(한글)-001016-박다율.hml
2025-10-02 15:35:55,188 - INFO - 변환 성공: 워드(한글)-001077-정승빈.hwp -> 워드(한글)-001077-정승빈.hml
2025-10-02 15:35:55,646 - INFO - 변환 성공: 워드(한글)-001790-조예서.hwp -> 워드(한글)-001790-조예서.hml
2025-10-02 15:35:56,102 - INFO - 변환 성공: 워드(한글)-001792-백이은.hwp -> 워드(한글)-001792-백이은.hml
2025-10-02 15:35:56,477 - INFO - 변환 성공: 워드(한글)-002479-최승윤.hwp -> 워드(한글)-002479-최승윤.hml
2025-10-02 15:35:56,824 - INFO - 변환 성공: 워드(한글)-002638-황현서.hwp -> 워드(한글)-002638-황현서.hml
2025-10-02 15:35:57,274 - INFO - 변환 성공: 워드(한글)-002639-강시형.hwp -> 워드(한글)-002639-강시형.hml
2025-10-02 15:35:57,748 - INFO - 변환 성공: 워드(한글)-002756-송수현.hwp -> 워드(한글)-002756-송수현.hml
2025-10-02 15:35:58,210 - INFO - 변환 성공: 워드(한글)-002831-오민서.hwp -> 워드(한글)-002831-오민서.hml
2025-10-02 15:35:58,670 - INFO - 변환 성공: 워드(한글)-002870-손건우.hwp -> 워드(한글)-002870-손건우.hml
2025-10-02 15:35:59,139 - INFO - 변환 성공: 워드(한글)-002935-이예준.hwp -> 워드(한글)-002935-이예준.hml
2025-10-02 15:35:59,590 - INFO - 변환 성공: 워드(한글)-002944-김가온.hwp -> 워드(한글)-002944-김가온.hml
2025-10-02 15:36:00,090 - INFO - 변환 성공: 워드(한글)-002945-김찬휘.hwp -> 워드(한글)-002945-김찬휘.hml
2025-10-02 15:36:00,567 - INFO - 변환 성공: 워드(한글)-003347-김리원.hwp -> 워드(한글)-003347-김리원.hml
2025-10-02 15:36:00,951 - INFO - 변환 성공: 워드(한글)-003348-김태원.hwp -> 워드(한글)-003348-김태원.hml
2025-10-02 15:36:01,303 - INFO - 변환 성공: 워드(한글)-003349-강시은.hwp -> 워드(한글)-003349-강시은.hml
2025-10-02 15:36:01,830 - INFO - 변환 성공: 워드(한글)-003894-김준희.hwp -> 워드(한글)-003894-김준희.hml
2025-10-02 15:36:02,304 - INFO - 변환 성공: 워드(한글)-003895-정온유.hwp -> 워드(한글)-003895-정온유.hml
2025-10-02 15:36:02,778 - INFO - 변환 성공: 워드(한글)-004747-김지율.hwp -> 워드(한글)-004747-김지율.hml
2025-10-02 15:36:03,242 - INFO - 변환 성공: 워드(한글)-004748-김봄.hwp -> 워드(한글)-004748-김봄.hml
2025-10-02 15:36:03,751 - INFO - 변환 성공: 워드(한글)-004749-정설지.hwp -> 워드(한글)-004749-정설지.hml
2025-10-02 15:36:04,209 - INFO - 변환 성공: 워드(한글)-004750-문재호.hwp -> 워드(한글)-004750-문재호.hml
2025-10-02 15:36:04,674 - INFO - 변환 성공: 워드(한글)-004751-김수아.hwp -> 워드(한글)-004751-김수아.hml
2025-10-02 15:36:05,081 - INFO - 변환 성공: 워드(한글)-005171-탁대인.hwp -> 워드(한글)-005171-탁대인.hml
2025-10-02 15:36:05,420 - INFO - 변환 성공: 워드(한글)-005232-봉성현.hwp -> 워드(한글)-005232-봉성현.hml
2025-10-02 15:36:05,811 - INFO - 변환 성공: 워드(한글)-005233-봉수현.hwp -> 워드(한글)-005233-봉수현.hml
2025-10-02 15:36:06,172 - INFO - 변환 성공: DIW_2509B.hwpx -> DIW_2509B.hml
2025-10-02 15:36:06,670 - INFO - 변환 성공: 워드(한글)-000005-이재혁.hwpx -> 워드(한글)-000005-이재혁.hml
2025-10-02 15:36:07,112 - INFO - 변환 성공: 워드(한글)-000017-송은찬.hwpx -> 워드(한글)-000017-송은찬.hml
2025-10-02 15:36:07,572 - INFO - 변환 성공: 워드(한글)-000032-박민수.hwpx -> 워드(한글)-000032-박민수.hml
2025-10-02 15:36:07,911 - INFO - 변환 성공: 워드(한글)-000042-황우빈.hwpx -> 워드(한글)-000042-황우빈.hml
2025-10-02 15:36:08,379 - INFO - 변환 성공: 워드(한글)-000043-백선율.hwpx -> 워드(한글)-000043-백선율.hml
2025-10-02 15:36:08,923 - INFO - 변환 성공: 워드(한글)-000044-진찬우.hwpx -> 워드(한글)-000044-진찬우.hml
2025-10-02 15:36:09,489 - INFO - 변환 성공: 워드(한글)-000045-맹지연.hwpx -> 워드(한글)-000045-맹지연.hml
2025-10-02 15:36:09,994 - INFO - 변환 성공: 워드(한글)-000046-신지아.hwpx -> 워드(한글)-000046-신지아.hml
2025-10-02 15:36:10,448 - INFO - 변환 성공: 워드(한글)-000054-임채은.hwpx -> 워드(한글)-000054-임채은.hml
2025-10-02 15:36:11,019 - INFO - 변환 성공: 워드(한글)-000055-남미혜.hwpx -> 워드(한글)-000055-남미혜.hml
2025-10-02 15:36:11,674 - INFO - 변환 성공: 워드(한글)-000141-문동빈.hwpx -> 워드(한글)-000141-문동빈.hml
2025-10-02 15:36:12,212 - INFO - 변환 성공: 워드(한글)-000142-김시현.hwpx -> 워드(한글)-000142-김시현.hml
2025-10-02 15:36:12,780 - INFO - 변환 성공: 워드(한글)-000193-김다안.hwpx -> 워드(한글)-000193-김다안.hml
2025-10-02 15:36:13,339 - INFO - 변환 성공: 워드(한글)-000203-조연우.hwpx -> 워드(한글)-000203-조연우.hml
2025-10-02 15:36:13,915 - INFO - 변환 성공: 워드(한글)-000206-전보건.hwpx -> 워드(한글)-000206-전보건.hml
2025-10-02 15:36:14,455 - INFO - 변환 성공: 워드(한글)-000211-이은수.hwpx -> 워드(한글)-000211-이은수.hml
2025-10-02 15:36:14,995 - INFO - 변환 성공: 워드(한글)-000238-서준원.hwpx -> 워드(한글)-000238-서준원.hml
2025-10-02 15:36:15,546 - INFO - 변환 성공: 워드(한글)-000294-이규나.hwpx -> 워드(한글)-000294-이규나.hml
2025-10-02 15:36:16,103 - INFO - 변환 성공: 워드(한글)-000298-최효린.hwpx -> 워드(한글)-000298-최효린.hml
2025-10-02 15:36:16,663 - INFO - 변환 성공: 워드(한글)-000392-김지호.hwpx -> 워드(한글)-000392-김지호.hml
2025-10-02 15:36:17,222 - INFO - 변환 성공: 워드(한글)-000525-김남우.hwpx -> 워드(한글)-000525-김남우.hml
2025-10-02 15:36:17,814 - INFO - 변환 성공: 워드(한글)-000545-박서진.hwpx -> 워드(한글)-000545-박서진.hml
2025-10-02 15:36:18,370 - INFO - 변환 성공: 워드(한글)-000546-강단우.hwpx -> 워드(한글)-000546-강단우.hml
2025-10-02 15:36:18,860 - INFO - 변환 성공: 워드(한글)-000556-이우진.hwpx -> 워드(한글)-000556-이우진.hml
2025-10-02 15:36:19,309 - INFO - 변환 성공: 워드(한글)-000618-정준용.hwpx -> 워드(한글)-000618-정준용.hml
2025-10-02 15:36:19,874 - INFO - 변환 성공: 워드(한글)-000625-최우영.hwpx -> 워드(한글)-000625-최우영.hml
2025-10-02 15:36:20,425 - INFO - 변환 성공: 워드(한글)-000626-신승우.hwpx -> 워드(한글)-000626-신승우.hml
2025-10-02 15:36:20,971 - INFO - 변환 성공: 워드(한글)-000646-마예준.hwpx -> 워드(한글)-000646-마예준.hml
2025-10-02 15:36:21,586 - INFO - 변환 성공: 워드(한글)-000689-박찬이.hwpx -> 워드(한글)-000689-박찬이.hml
2025-10-02 15:36:22,166 - INFO - 변환 성공: 워드(한글)-000690-전서린.hwpx -> 워드(한글)-000690-전서린.hml
2025-10-02 15:36:22,734 - INFO - 변환 성공: 워드(한글)-000694-김가빈.hwpx -> 워드(한글)-000694-김가빈.hml
2025-10-02 15:36:23,203 - INFO - 변환 성공: 워드(한글)-000747-이지민.hwpx -> 워드(한글)-000747-이지민.hml
2025-10-02 15:36:23,673 - INFO - 변환 성공: 워드(한글)-000781-정영호.hwpx -> 워드(한글)-000781-정영호.hml
2025-10-02 15:36:24,248 - INFO - 변환 성공: 워드(한글)-000782-최민서.hwpx -> 워드(한글)-000782-최민서.hml
2025-10-02 15:36:24,815 - INFO - 변환 성공: 워드(한글)-000783-정민욱.hwpx -> 워드(한글)-000783-정민욱.hml
2025-10-02 15:36:25,416 - INFO - 변환 성공: 워드(한글)-000784-정강욱.hwpx -> 워드(한글)-000784-정강욱.hml
2025-10-02 15:36:25,965 - INFO - 변환 성공: 워드(한글)-000788-표시형.hwpx -> 워드(한글)-000788-표시형.hml
2025-10-02 15:36:26,533 - INFO - 변환 성공: 워드(한글)-000793-김민서.hwpx -> 워드(한글)-000793-김민서.hml
2025-10-02 15:36:27,065 - INFO - 변환 성공: 워드(한글)-000794-백진서.hwpx -> 워드(한글)-000794-백진서.hml
2025-10-02 15:36:27,541 - INFO - 변환 성공: 워드(한글)-000795-김기찬.hwpx -> 워드(한글)-000795-김기찬.hml
2025-10-02 15:36:27,997 - INFO - 변환 성공: 워드(한글)-000827-김유현.hwpx -> 워드(한글)-000827-김유현.hml
2025-10-02 15:36:28,549 - INFO - 변환 성공: 워드(한글)-000829-박한울.hwpx -> 워드(한글)-000829-박한울.hml
2025-10-02 15:36:29,134 - INFO - 변환 성공: 워드(한글)-000831-송예림.hwpx -> 워드(한글)-000831-송예림.hml
2025-10-02 15:36:29,726 - INFO - 변환 성공: 워드(한글)-000865-오화랑.hwpx -> 워드(한글)-000865-오화랑.hml
2025-10-02 15:36:30,343 - INFO - 변환 성공: 워드(한글)-000866-박윤서.hwpx -> 워드(한글)-000866-박윤서.hml
2025-10-02 15:36:30,909 - INFO - 변환 성공: 워드(한글)-000875-김현서.hwpx -> 워드(한글)-000875-김현서.hml
2025-10-02 15:36:31,523 - INFO - 변환 성공: 워드(한글)-000889-윤서윤.hwpx -> 워드(한글)-000889-윤서윤.hml
2025-10-02 15:36:32,082 - INFO - 변환 성공: 워드(한글)-000942-함우성.hwpx -> 워드(한글)-000942-함우성.hml
2025-10-02 15:36:32,652 - INFO - 변환 성공: 워드(한글)-000994-강정환.hwpx -> 워드(한글)-000994-강정환.hml
2025-10-02 15:36:33,186 - INFO - 변환 성공: 워드(한글)-001064-김도현.hwpx -> 워드(한글)-001064-김도현.hml
2025-10-02 15:36:33,757 - INFO - 변환 성공: 워드(한글)-001065-유하라.hwpx -> 워드(한글)-001065-유하라.hml
2025-10-02 15:36:34,304 - INFO - 변환 성공: 워드(한글)-001169-김은성.hwpx -> 워드(한글)-001169-김은성.hml
2025-10-02 15:36:34,902 - INFO - 변환 성공: 워드(한글)-001170-나송주.hwpx -> 워드(한글)-001170-나송주.hml
2025-10-02 15:36:35,491 - INFO - 변환 성공: 워드(한글)-001245-장예나.hwpx -> 워드(한글)-001245-장예나.hml
2025-10-02 15:36:36,037 - INFO - 변환 성공: 워드(한글)-001246-강동하.hwpx -> 워드(한글)-001246-강동하.hml
2025-10-02 15:36:36,622 - INFO - 변환 성공: 워드(한글)-001248 엄하은.hwpx -> 워드(한글)-001248 엄하은.hml
2025-10-02 15:36:37,194 - INFO - 변환 성공: 워드(한글)-001301-임주원.hwpx -> 워드(한글)-001301-임주원.hml
2025-10-02 15:36:37,743 - INFO - 변환 성공: 워드(한글)-001322-정세민.hwpx -> 워드(한글)-001322-정세민.hml
2025-10-02 15:36:38,296 - INFO - 변환 성공: 워드(한글)-001323-조승아.hwpx -> 워드(한글)-001323-조승아.hml
2025-10-02 15:36:38,888 - INFO - 변환 성공: 워드(한글)-001324-이루리.hwpx -> 워드(한글)-001324-이루리.hml
2025-10-02 15:36:39,410 - INFO - 변환 성공: 워드(한글)-001325-이슬아.hwpx -> 워드(한글)-001325-이슬아.hml
2025-10-02 15:36:39,969 - INFO - 변환 성공: 워드(한글)-001326-진소윤.hwpx -> 워드(한글)-001326-진소윤.hml
2025-10-02 15:36:40,450 - INFO - 변환 성공: 워드(한글)-001332-김진성.hwpx -> 워드(한글)-001332-김진성.hml
2025-10-02 15:36:40,945 - INFO - 변환 성공: 워드(한글)-001333-박규현.hwpx -> 워드(한글)-001333-박규현.hml
2025-10-02 15:36:41,522 - INFO - 변환 성공: 워드(한글)-001346-오준영.hwpx -> 워드(한글)-001346-오준영.hml
2025-10-02 15:36:42,178 - INFO - 변환 성공: 워드(한글)-001352-이윤서.hwpx -> 워드(한글)-001352-이윤서.hml
2025-10-02 15:36:42,739 - INFO - 변환 성공: 워드(한글)-001356-전수혁.hwpx -> 워드(한글)-001356-전수혁.hml
2025-10-02 15:36:43,298 - INFO - 변환 성공: 워드(한글)-001368-문세림.hwpx -> 워드(한글)-001368-문세림.hml
2025-10-02 15:36:43,895 - INFO - 변환 성공: 워드(한글)-001391-이보현.hwpx -> 워드(한글)-001391-이보현.hml
2025-10-02 15:36:44,474 - INFO - 변환 성공: 워드(한글)-001400-박찬유.hwpx -> 워드(한글)-001400-박찬유.hml
2025-10-02 15:36:45,094 - INFO - 변환 성공: 워드(한글)-001457-김강우.hwpx -> 워드(한글)-001457-김강우.hml
2025-10-02 15:36:45,709 - INFO - 변환 성공: 워드(한글)-001459-원호연.hwpx -> 워드(한글)-001459-원호연.hml
2025-10-02 15:36:46,288 - INFO - 변환 성공: 워드(한글)-001460-노채완.hwpx -> 워드(한글)-001460-노채완.hml
2025-10-02 15:36:46,884 - INFO - 변환 성공: 워드(한글)-001463-김동하.hwpx -> 워드(한글)-001463-김동하.hml
2025-10-02 15:36:47,492 - INFO - 변환 성공: 워드(한글)-001464-서다엘.hwpx -> 워드(한글)-001464-서다엘.hml
2025-10-02 15:36:48,065 - INFO - 변환 성공: 워드(한글)-001465-이원민.hwpx -> 워드(한글)-001465-이원민.hml
2025-10-02 15:36:48,652 - INFO - 변환 성공: 워드(한글)-001468-한신재.hwpx -> 워드(한글)-001468-한신재.hml
2025-10-02 15:36:49,264 - INFO - 변환 성공: 워드(한글)-001469-안준혁.hwpx -> 워드(한글)-001469-안준혁.hml
2025-10-02 15:36:49,853 - INFO - 변환 성공: 워드(한글)-001507-최민아.hwpx -> 워드(한글)-001507-최민아.hml
2025-10-02 15:36:50,427 - INFO - 변환 성공: 워드(한글)-001572-정소미.hwpx -> 워드(한글)-001572-정소미.hml
2025-10-02 15:36:51,136 - INFO - 변환 성공: 워드(한글)-001618-송준서.hwpx -> 워드(한글)-001618-송준서.hml
2025-10-02 15:36:51,780 - INFO - 변환 성공: 워드(한글)-001675-이채은.hwpx -> 워드(한글)-001675-이채은.hml
2025-10-02 15:36:52,356 - INFO - 변환 성공: 워드(한글)-001676-심지욱.hwpx -> 워드(한글)-001676-심지욱.hml
2025-10-02 15:36:52,903 - INFO - 변환 성공: 워드(한글)-001677-김예은.hwpx -> 워드(한글)-001677-김예은.hml
2025-10-02 15:36:53,398 - INFO - 변환 성공: 워드(한글)-001678-전사랑.hwpx -> 워드(한글)-001678-전사랑.hml
2025-10-02 15:36:53,868 - INFO - 변환 성공: 워드(한글)-001679-양지윤.hwpx -> 워드(한글)-001679-양지윤.hml
2025-10-02 15:36:54,419 - INFO - 변환 성공: 워드(한글)-001791-김하음.hwpx -> 워드(한글)-001791-김하음.hml
2025-10-02 15:36:54,957 - INFO - 변환 성공: 워드(한글)-001816-이승준.hwpx -> 워드(한글)-001816-이승준.hml
2025-10-02 15:36:55,504 - INFO - 변환 성공: 워드(한글)-001817-이소윤.hwpx -> 워드(한글)-001817-이소윤.hml
2025-10-02 15:36:56,026 - INFO - 변환 성공: 워드(한글)-001870-전서흔.hwpx -> 워드(한글)-001870-전서흔.hml
2025-10-02 15:36:56,639 - INFO - 변환 성공: 워드(한글)-001872-오혜린.hwpx -> 워드(한글)-001872-오혜린.hml
2025-10-02 15:36:57,203 - INFO - 변환 성공: 워드(한글)-001907-황지유.hwpx -> 워드(한글)-001907-황지유.hml
2025-10-02 15:36:57,727 - INFO - 변환 성공: 워드(한글)-001931-주하율.hwpx -> 워드(한글)-001931-주하율.hml
2025-10-02 15:36:58,267 - INFO - 변환 성공: 워드(한글)-001954-이나윤.hwpx -> 워드(한글)-001954-이나윤.hml
2025-10-02 15:36:58,819 - INFO - 변환 성공: 워드(한글)-001959-윤세아.hwpx -> 워드(한글)-001959-윤세아.hml
2025-10-02 15:36:59,362 - INFO - 변환 성공: 워드(한글)-002018-박윤채.hwpx -> 워드(한글)-002018-박윤채.hml
2025-10-02 15:36:59,922 - INFO - 변환 성공: 워드(한글)-002019-손민서.hwpx -> 워드(한글)-002019-손민서.hml
2025-10-02 15:37:00,553 - INFO - 변환 성공: 워드(한글)-002020-지윤후.hwpx -> 워드(한글)-002020-지윤후.hml
2025-10-02 15:37:01,131 - INFO - 변환 성공: 워드(한글)-002021-황도훈.hwpx -> 워드(한글)-002021-황도훈.hml
2025-10-02 15:37:01,765 - INFO - 변환 성공: 워드(한글)-002025-박채희.hwpx -> 워드(한글)-002025-박채희.hml
2025-10-02 15:37:02,340 - INFO - 변환 성공: 워드(한글)-002040-강민주.hwpx -> 워드(한글)-002040-강민주.hml
2025-10-02 15:37:02,927 - INFO - 변환 성공: 워드(한글)-002041-이서연.hwpx -> 워드(한글)-002041-이서연.hml
2025-10-02 15:37:03,408 - INFO - 변환 성공: 워드(한글)-002113-이현리.hwpx -> 워드(한글)-002113-이현리.hml
2025-10-02 15:37:03,876 - INFO - 변환 성공: 워드(한글)-002167-백운승.hwpx -> 워드(한글)-002167-백운승.hml
2025-10-02 15:37:04,450 - INFO - 변환 성공: 워드(한글)-002183-주시은.hwpx -> 워드(한글)-002183-주시은.hml
2025-10-02 15:37:05,022 - INFO - 변환 성공: 워드(한글)-002194-박수용.hwpx -> 워드(한글)-002194-박수용.hml
2025-10-02 15:37:05,567 - INFO - 변환 성공: 워드(한글)-002235-이예진.hwpx -> 워드(한글)-002235-이예진.hml
2025-10-02 15:37:06,156 - INFO - 변환 성공: 워드(한글)-002241-권여원.hwpx -> 워드(한글)-002241-권여원.hml
2025-10-02 15:37:06,748 - INFO - 변환 성공: 워드(한글)-002242-진주희.hwpx -> 워드(한글)-002242-진주희.hml
2025-10-02 15:37:07,331 - INFO - 변환 성공: 워드(한글)-002291-방성원.hwpx -> 워드(한글)-002291-방성원.hml
2025-10-02 15:37:07,918 - INFO - 변환 성공: 워드(한글)-002294-신채민.hwpx -> 워드(한글)-002294-신채민.hml
2025-10-02 15:37:08,497 - INFO - 변환 성공: 워드(한글)-002315-김나은.hwpx -> 워드(한글)-002315-김나은.hml
2025-10-02 15:37:09,047 - INFO - 변환 성공: 워드(한글)-002322-박지호.hwpx -> 워드(한글)-002322-박지호.hml
2025-10-02 15:37:09,548 - INFO - 변환 성공: 워드(한글)-002338-박성원.hwpx -> 워드(한글)-002338-박성원.hml
2025-10-02 15:37:10,020 - INFO - 변환 성공: 워드(한글)-002359-최성원.hwpx -> 워드(한글)-002359-최성원.hml
2025-10-02 15:37:10,591 - INFO - 변환 성공: 워드(한글)-002360-윤수연.hwpx -> 워드(한글)-002360-윤수연.hml
2025-10-02 15:37:11,070 - INFO - 변환 성공: 워드(한글)-002381-강유준.hwpx -> 워드(한글)-002381-강유준.hml
2025-10-02 15:37:11,528 - INFO - 변환 성공: 워드(한글)-002382-이주현.hwpx -> 워드(한글)-002382-이주현.hml
2025-10-02 15:37:12,145 - INFO - 변환 성공: 워드(한글)-002383-장준영.hwpx -> 워드(한글)-002383-장준영.hml
2025-10-02 15:37:12,696 - INFO - 변환 성공: 워드(한글)-002416-배수현.hwpx -> 워드(한글)-002416-배수현.hml
2025-10-02 15:37:13,263 - INFO - 변환 성공: 워드(한글)-002417-김효린.hwpx -> 워드(한글)-002417-김효린.hml
2025-10-02 15:37:13,838 - INFO - 변환 성공: 워드(한글)-002444-박현준.hwpx -> 워드(한글)-002444-박현준.hml
2025-10-02 15:37:14,420 - INFO - 변환 성공: 워드(한글)-002457-정하은.hwpx -> 워드(한글)-002457-정하은.hml
2025-10-02 15:37:14,984 - INFO - 변환 성공: 워드(한글)-002468-송채은.hwpx -> 워드(한글)-002468-송채은.hml
2025-10-02 15:37:15,549 - INFO - 변환 성공: 워드(한글)-002490-맹지민.hwpx -> 워드(한글)-002490-맹지민.hml
2025-10-02 15:37:16,086 - INFO - 변환 성공: 워드(한글)-002503-김소원.hwpx -> 워드(한글)-002503-김소원.hml
2025-10-02 15:37:16,671 - INFO - 변환 성공: 워드(한글)-002504-지수혁.hwpx -> 워드(한글)-002504-지수혁.hml
2025-10-02 15:37:17,273 - INFO - 변환 성공: 워드(한글)-002571-배수린.hwpx -> 워드(한글)-002571-배수린.hml
2025-10-02 15:37:17,854 - INFO - 변환 성공: 워드(한글)-002577-이준영.hwpx -> 워드(한글)-002577-이준영.hml
2025-10-02 15:37:18,431 - INFO - 변환 성공: 워드(한글)-002589-최수혁.hwpx -> 워드(한글)-002589-최수혁.hml
2025-10-02 15:37:18,981 - INFO - 변환 성공: 워드(한글)-002590-김상우.hwpx -> 워드(한글)-002590-김상우.hml
2025-10-02 15:37:19,535 - INFO - 변환 성공: 워드(한글)-002595-유우정.hwpx -> 워드(한글)-002595-유우정.hml
2025-10-02 15:37:20,102 - INFO - 변환 성공: 워드(한글)-002596-심서진.hwpx -> 워드(한글)-002596-심서진.hml
2025-10-02 15:37:20,570 - INFO - 변환 성공: 워드(한글)-002618-문국.hwpx -> 워드(한글)-002618-문국.hml
2025-10-02 15:37:21,002 - INFO - 변환 성공: 워드(한글)-002619-진하윤.hwpx -> 워드(한글)-002619-진하윤.hml
2025-10-02 15:37:21,451 - INFO - 변환 성공: 워드(한글)-002620-한예준.hwpx -> 워드(한글)-002620-한예준.hml
2025-10-02 15:37:21,962 - INFO - 변환 성공: 워드(한글)-002625-윤시원.hwpx -> 워드(한글)-002625-윤시원.hml
2025-10-02 15:37:22,521 - INFO - 변환 성공: 워드(한글)-002627-전화림.hwpx -> 워드(한글)-002627-전화림.hml
2025-10-02 15:37:23,055 - INFO - 변환 성공: 워드(한글)-002628-황동규.hwpx -> 워드(한글)-002628-황동규.hml
2025-10-02 15:37:23,609 - INFO - 변환 성공: 워드(한글)-002664-주은성.hwpx -> 워드(한글)-002664-주은성.hml
2025-10-02 15:37:24,184 - INFO - 변환 성공: 워드(한글)-002681-임수민.hwpx -> 워드(한글)-002681-임수민.hml
2025-10-02 15:37:24,569 - INFO - 변환 성공: 워드(한글)-002802-강승빈.hwpx -> 워드(한글)-002802-강승빈.hml
2025-10-02 15:37:25,047 - INFO - 변환 성공: 워드(한글)-002841-양서윤.hwpx -> 워드(한글)-002841-양서윤.hml
2025-10-02 15:37:25,633 - INFO - 변환 성공: 워드(한글)-002951-안수범.hwpx -> 워드(한글)-002951-안수범.hml
2025-10-02 15:37:26,118 - INFO - 변환 성공: 워드(한글)-002989-손나연.hwpx -> 워드(한글)-002989-손나연.hml
2025-10-02 15:37:26,598 - INFO - 변환 성공: 워드(한글)-002996-정예빈.hwpx -> 워드(한글)-002996-정예빈.hml
2025-10-02 15:37:27,194 - INFO - 변환 성공: 워드(한글)-002998-박근태.hwpx -> 워드(한글)-002998-박근태.hml
2025-10-02 15:37:27,674 - INFO - 변환 성공: 워드(한글)-002999-신태윤.hwpx -> 워드(한글)-002999-신태윤.hml
2025-10-02 15:37:28,128 - INFO - 변환 성공: 워드(한글)-003000-손용득.hwpx -> 워드(한글)-003000-손용득.hml
2025-10-02 15:37:28,704 - INFO - 변환 성공: 워드(한글)-003001-고준서.hwpx -> 워드(한글)-003001-고준서.hml
2025-10-02 15:37:29,249 - INFO - 변환 성공: 워드(한글)-003025-김동훈.hwpx -> 워드(한글)-003025-김동훈.hml
2025-10-02 15:37:29,808 - INFO - 변환 성공: 워드(한글)-003026-채송이.hwpx -> 워드(한글)-003026-채송이.hml
2025-10-02 15:37:30,420 - INFO - 변환 성공: 워드(한글)-003027-장다미.hwpx -> 워드(한글)-003027-장다미.hml
2025-10-02 15:37:30,945 - INFO - 변환 성공: 워드(한글)-003028-이재민.hwpx -> 워드(한글)-003028-이재민.hml
2025-10-02 15:37:31,533 - INFO - 변환 성공: 워드(한글)-003029-김재민.hwpx -> 워드(한글)-003029-김재민.hml
2025-10-02 15:37:32,125 - INFO - 변환 성공: 워드(한글)-003153-정서준.hwpx -> 워드(한글)-003153-정서준.hml
2025-10-02 15:37:32,692 - INFO - 변환 성공: 워드(한글)-003155-정이레.hwpx -> 워드(한글)-003155-정이레.hml
2025-10-02 15:37:33,383 - INFO - 변환 성공: 워드(한글)-003191-정현영.hwpx -> 워드(한글)-003191-정현영.hml
2025-10-02 15:37:33,966 - INFO - 변환 성공: 워드(한글)-003192-김도준.hwpx -> 워드(한글)-003192-김도준.hml
2025-10-02 15:37:34,598 - INFO - 변환 성공: 워드(한글)-003193-유태희.hwpx -> 워드(한글)-003193-유태희.hml
2025-10-02 15:37:35,170 - INFO - 변환 성공: 워드(한글)-003194-김세훈.hwpx -> 워드(한글)-003194-김세훈.hml
2025-10-02 15:37:35,743 - INFO - 변환 성공: 워드(한글)-003196-이상혁.hwpx -> 워드(한글)-003196-이상혁.hml
2025-10-02 15:37:36,288 - INFO - 변환 성공: 워드(한글)-003197-김태희.hwpx -> 워드(한글)-003197-김태희.hml
2025-10-02 15:37:36,880 - INFO - 변환 성공: 워드(한글)-003198-이시영.hwpx -> 워드(한글)-003198-이시영.hml
2025-10-02 15:37:37,459 - INFO - 변환 성공: 워드(한글)-003199-전지희.hwpx -> 워드(한글)-003199-전지희.hml
2025-10-02 15:37:38,013 - INFO - 변환 성공: 워드(한글)-003200-안서윤.hwpx -> 워드(한글)-003200-안서윤.hml
2025-10-02 15:37:38,590 - INFO - 변환 성공: 워드(한글)-003201-박준우.hwpx -> 워드(한글)-003201-박준우.hml
2025-10-02 15:37:39,054 - INFO - 변환 성공: 워드(한글)-003202-이윤.hwpx -> 워드(한글)-003202-이윤.hml
2025-10-02 15:37:39,432 - INFO - 변환 성공: 워드(한글)-003203-엄지호.hwpx -> 워드(한글)-003203-엄지호.hml
2025-10-02 15:37:39,885 - INFO - 변환 성공: 워드(한글)-003204-이현.hwpx -> 워드(한글)-003204-이현.hml
2025-10-02 15:37:40,390 - INFO - 변환 성공: 워드(한글)-003205-이유주.hwpx -> 워드(한글)-003205-이유주.hml
2025-10-02 15:37:40,842 - INFO - 변환 성공: 워드(한글)-003207-박소율.hwpx -> 워드(한글)-003207-박소율.hml
2025-10-02 15:37:41,458 - INFO - 변환 성공: 워드(한글)-003208-설준형.hwpx -> 워드(한글)-003208-설준형.hml
2025-10-02 15:37:42,041 - INFO - 변환 성공: 워드(한글)-003209-김소율.hwpx -> 워드(한글)-003209-김소율.hml
2025-10-02 15:37:42,601 - INFO - 변환 성공: 워드(한글)-003210-민은채.hwpx -> 워드(한글)-003210-민은채.hml
2025-10-02 15:37:43,084 - INFO - 변환 성공: 워드(한글)-003211-김민준.hwpx -> 워드(한글)-003211-김민준.hml
2025-10-02 15:37:43,566 - INFO - 변환 성공: 워드(한글)-003230-박지민.hwpx -> 워드(한글)-003230-박지민.hml
2025-10-02 15:37:44,139 - INFO - 변환 성공: 워드(한글)-003240-백지운.hwpx -> 워드(한글)-003240-백지운.hml
2025-10-02 15:37:44,590 - INFO - 변환 성공: 워드(한글)-003243-김민준.hwpx -> 워드(한글)-003243-김민준.hml
2025-10-02 15:37:45,050 - INFO - 변환 성공: 워드(한글)-003306-박민준.hwpx -> 워드(한글)-003306-박민준.hml
2025-10-02 15:37:45,619 - INFO - 변환 성공: 워드(한글)-003320-피유성.hwpx -> 워드(한글)-003320-피유성.hml
2025-10-02 15:37:46,200 - INFO - 변환 성공: 워드(한글)-003326-조아영.hwpx -> 워드(한글)-003326-조아영.hml
2025-10-02 15:37:46,785 - INFO - 변환 성공: 워드(한글)-003333-박준필.hwpx -> 워드(한글)-003333-박준필.hml
2025-10-02 15:37:47,272 - INFO - 변환 성공: 워드(한글)-003339-장세연.hwpx -> 워드(한글)-003339-장세연.hml
2025-10-02 15:37:47,755 - INFO - 변환 성공: 워드(한글)-003401-하선우.hwpx -> 워드(한글)-003401-하선우.hml
2025-10-02 15:37:48,293 - INFO - 변환 성공: 워드(한글)-003490-김주원.hwpx -> 워드(한글)-003490-김주원.hml
2025-10-02 15:37:48,838 - INFO - 변환 성공: 워드(한글)-003491-이예나.hwpx -> 워드(한글)-003491-이예나.hml
2025-10-02 15:37:49,459 - INFO - 변환 성공: 워드(한글)-003492-김하윤.hwpx -> 워드(한글)-003492-김하윤.hml
2025-10-02 15:37:49,965 - INFO - 변환 성공: 워드(한글)-003624-이정준.hwpx -> 워드(한글)-003624-이정준.hml
2025-10-02 15:37:50,522 - INFO - 변환 성공: 워드(한글)-003625-마지우.hwpx -> 워드(한글)-003625-마지우.hml
2025-10-02 15:37:51,175 - INFO - 변환 성공: 워드(한글)-003671-이은호.hwpx -> 워드(한글)-003671-이은호.hml
2025-10-02 15:37:51,838 - INFO - 변환 성공: 워드(한글)-003683-한은지.hwpx -> 워드(한글)-003683-한은지.hml
2025-10-02 15:37:52,401 - INFO - 변환 성공: 워드(한글)-003693-김도윤.hwpx -> 워드(한글)-003693-김도윤.hml
2025-10-02 15:37:52,880 - INFO - 변환 성공: 워드(한글)-003773-한윤길.hwpx -> 워드(한글)-003773-한윤길.hml
2025-10-02 15:37:53,499 - INFO - 변환 성공: 워드(한글)-003791-김지율.hwpx -> 워드(한글)-003791-김지율.hml
2025-10-02 15:37:54,079 - INFO - 변환 성공: 워드(한글)-003797-정채윤.hwpx -> 워드(한글)-003797-정채윤.hml
2025-10-02 15:37:54,680 - INFO - 변환 성공: 워드(한글)-003837-최수인.hwpx -> 워드(한글)-003837-최수인.hml
2025-10-02 15:37:55,267 - INFO - 변환 성공: 워드(한글)-003886-김이주.hwpx -> 워드(한글)-003886-김이주.hml
2025-10-02 15:37:55,850 - INFO - 변환 성공: 워드(한글)-003887-강동연.hwpx -> 워드(한글)-003887-강동연.hml
2025-10-02 15:37:56,427 - INFO - 변환 성공: 워드(한글)-003888-주범준.hwpx -> 워드(한글)-003888-주범준.hml
2025-10-02 15:37:56,977 - INFO - 변환 성공: 워드(한글)-003889-김보건.hwpx -> 워드(한글)-003889-김보건.hml
2025-10-02 15:37:57,556 - INFO - 변환 성공: 워드(한글)-003890-한가예.hwpx -> 워드(한글)-003890-한가예.hml
2025-10-02 15:37:58,123 - INFO - 변환 성공: 워드(한글)-003891-송라훈.hwpx -> 워드(한글)-003891-송라훈.hml
2025-10-02 15:37:58,679 - INFO - 변환 성공: 워드(한글)-003917-장서준.hwpx -> 워드(한글)-003917-장서준.hml
2025-10-02 15:37:59,331 - INFO - 변환 성공: 워드(한글)-003923-이서희.hwpx -> 워드(한글)-003923-이서희.hml
2025-10-02 15:37:59,963 - INFO - 변환 성공: 워드(한글)-003924-유아인.hwpx -> 워드(한글)-003924-유아인.hml
2025-10-02 15:38:00,612 - INFO - 변환 성공: 워드(한글)-003925-이윤아.hwpx -> 워드(한글)-003925-이윤아.hml
2025-10-02 15:38:01,187 - INFO - 변환 성공: 워드(한글)-003995-이호연.hwpx -> 워드(한글)-003995-이호연.hml
2025-10-02 15:38:01,734 - INFO - 변환 성공: 워드(한글)-003996-정유진.hwpx -> 워드(한글)-003996-정유진.hml
2025-10-02 15:38:02,312 - INFO - 변환 성공: 워드(한글)-003997-조세훈.hwpx -> 워드(한글)-003997-조세훈.hml
2025-10-02 15:38:02,887 - INFO - 변환 성공: 워드(한글)-004000-박준후.hwpx -> 워드(한글)-004000-박준후.hml
2025-10-02 15:38:03,367 - INFO - 변환 성공: 워드(한글)-004045-김담영.hwpx -> 워드(한글)-004045-김담영.hml
2025-10-02 15:38:03,818 - INFO - 변환 성공: 워드(한글)-004064-안가령.hwpx -> 워드(한글)-004064-안가령.hml
2025-10-02 15:38:04,296 - INFO - 변환 성공: 워드(한글)-004081-박시은.hwpx -> 워드(한글)-004081-박시은.hml
2025-10-02 15:38:04,762 - INFO - 변환 성공: 워드(한글)-004092-김유준.hwpx -> 워드(한글)-004092-김유준.hml
2025-10-02 15:38:05,250 - INFO - 변환 성공: 워드(한글)-004095-강태율.hwpx -> 워드(한글)-004095-강태율.hml
2025-10-02 15:38:05,715 - INFO - 변환 성공: 워드(한글)-004121-정성훈.hwpx -> 워드(한글)-004121-정성훈.hml
2025-10-02 15:38:06,275 - INFO - 변환 성공: 워드(한글)-004122-방선우.hwpx -> 워드(한글)-004122-방선우.hml
2025-10-02 15:38:06,820 - INFO - 변환 성공: 워드(한글)-004123-김현수.hwpx -> 워드(한글)-004123-김현수.hml
2025-10-02 15:38:07,289 - INFO - 변환 성공: 워드(한글)-004152-최우주.hwpx -> 워드(한글)-004152-최우주.hml
2025-10-02 15:38:07,768 - INFO - 변환 성공: 워드(한글)-004169-임연서.hwpx -> 워드(한글)-004169-임연서.hml
2025-10-02 15:38:08,314 - INFO - 변환 성공: 워드(한글)-004189-도수현.hwpx -> 워드(한글)-004189-도수현.hml
2025-10-02 15:38:08,887 - INFO - 변환 성공: 워드(한글)-004190-양세은.hwpx -> 워드(한글)-004190-양세은.hml
2025-10-02 15:38:09,457 - INFO - 변환 성공: 워드(한글)-004218-김민정.hwpx -> 워드(한글)-004218-김민정.hml
2025-10-02 15:38:09,944 - INFO - 변환 성공: 워드(한글)-004221-강윤재.hwpx -> 워드(한글)-004221-강윤재.hml
2025-10-02 15:38:10,424 - INFO - 변환 성공: 워드(한글)-004337-박경리.hwpx -> 워드(한글)-004337-박경리.hml
2025-10-02 15:38:10,922 - INFO - 변환 성공: 워드(한글)-004345-이동준.hwpx -> 워드(한글)-004345-이동준.hml
2025-10-02 15:38:11,400 - INFO - 변환 성공: 워드(한글)-004346-채예진.hwpx -> 워드(한글)-004346-채예진.hml
2025-10-02 15:38:12,077 - INFO - 변환 성공: 워드(한글)-004350-이서진.hwpx -> 워드(한글)-004350-이서진.hml
2025-10-02 15:38:12,712 - INFO - 변환 성공: 워드(한글)-004352-김도윤.hwpx -> 워드(한글)-004352-김도윤.hml
2025-10-02 15:38:13,288 - INFO - 변환 성공: 워드(한글)-004353-안서윤.hwpx -> 워드(한글)-004353-안서윤.hml
2025-10-02 15:38:13,852 - INFO - 변환 성공: 워드(한글)-004402-김민성.hwpx -> 워드(한글)-004402-김민성.hml
2025-10-02 15:38:14,414 - INFO - 변환 성공: 워드(한글)-004407-김아영.hwpx -> 워드(한글)-004407-김아영.hml
2025-10-02 15:38:14,894 - INFO - 변환 성공: 워드(한글)-004411-황동하.hwpx -> 워드(한글)-004411-황동하.hml
2025-10-02 15:38:15,291 - INFO - 변환 성공: 워드(한글)-004420-김하진.hwpx -> 워드(한글)-004420-김하진.hml
2025-10-02 15:38:15,765 - INFO - 변환 성공: 워드(한글)-004429-황윤하.hwpx -> 워드(한글)-004429-황윤하.hml
2025-10-02 15:38:16,273 - INFO - 변환 성공: 워드(한글)-004583-백시우.hwpx -> 워드(한글)-004583-백시우.hml
2025-10-02 15:38:16,757 - INFO - 변환 성공: 워드(한글)-004687-추정현.hwpx -> 워드(한글)-004687-추정현.hml
2025-10-02 15:38:17,353 - INFO - 변환 성공: 워드(한글)-004689-유시현.hwpx -> 워드(한글)-004689-유시현.hml
2025-10-02 15:38:17,916 - INFO - 변환 성공: 워드(한글)-004693-정하영.hwpx -> 워드(한글)-004693-정하영.hml
2025-10-02 15:38:18,396 - INFO - 변환 성공: 워드(한글)-004778-박지영.hwpx -> 워드(한글)-004778-박지영.hml
2025-10-02 15:38:19,004 - INFO - 변환 성공: 워드(한글)-004834-조원영.hwpx -> 워드(한글)-004834-조원영.hml
2025-10-02 15:38:19,497 - INFO - 변환 성공: 워드(한글)-004836-임서연.hwpx -> 워드(한글)-004836-임서연.hml
2025-10-02 15:38:19,969 - INFO - 변환 성공: 워드(한글)-004837-김연우.hwpx -> 워드(한글)-004837-김연우.hml
2025-10-02 15:38:20,421 - INFO - 변환 성공: 워드(한글)-005163-조광희.hwpx -> 워드(한글)-005163-조광희.hml
2025-10-02 15:38:20,907 - INFO - 변환 성공: 워드(한글)-005176-공라희.hwpx -> 워드(한글)-005176-공라희.hml
2025-10-02 15:38:21,404 - INFO - 변환 성공: 워드(한글)-005189-양지훈.hwpx -> 워드(한글)-005189-양지훈.hml
2025-10-02 15:38:21,876 - INFO - 변환 성공: 워드(한글)-005193-김하민.hwpx -> 워드(한글)-005193-김하민.hml
2025-10-02 15:38:22,454 - INFO - 변환 성공: 워드(한글)-005212-최아인.hwpx -> 워드(한글)-005212-최아인.hml
2025-10-02 15:38:23,031 - INFO - 변환 성공: 워드(한글)-005215-안상진.hwpx -> 워드(한글)-005215-안상진.hml
2025-10-02 15:38:23,600 - INFO - 변환 성공: 워드(한글)-005239-고채원.hwpx -> 워드(한글)-005239-고채원.hml
2025-10-02 15:38:24,184 - INFO - 변환 성공: 워드(한글)-005287-김단결.hwpx -> 워드(한글)-005287-김단결.hml
2025-10-02 15:38:24,812 - INFO - 변환 성공: 워드(한글)-005292-장지원.hwpx -> 워드(한글)-005292-장지원.hml
2025-10-02 15:38:25,430 - INFO - 변환 성공: 워드(한글)-005293-최준성.hwpx -> 워드(한글)-005293-최준성.hml
2025-10-02 15:38:25,993 - INFO - 변환 성공: 워드(한글)-005294-이솔비.hwpx -> 워드(한글)-005294-이솔비.hml
2025-10-02 15:38:26,578 - INFO - 변환 성공: 워드(한글)-005320-최아인.hwpx -> 워드(한글)-005320-최아인.hml
2025-10-02 15:38:27,118 - INFO - 변환 성공: 워드(한글)-005321-정승민.hwpx -> 워드(한글)-005321-정승민.hml
2025-10-02 15:38:27,621 - INFO - 변환 성공: 워드(한글)-005347-박주하.hwpx -> 워드(한글)-005347-박주하.hml
2025-10-02 15:38:28,205 - INFO - 변환 성공: 워드(한글)-005361-김태희.hwpx -> 워드(한글)-005361-김태희.hml
2025-10-02 15:38:28,693 - INFO - 변환 성공: 워드(한글)-005370-최윤서.hwpx -> 워드(한글)-005370-최윤서.hml
2025-10-02 15:38:28,861 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\B\DIW -> D:\project\HWP\HWP-Scoring\output\2509\B\DIW
2025-10-02 15:38:29,362 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\C\DIW -> D:\project\HWP\HWP-Scoring\output\2509\C\DIW
2025-10-02 15:38:32,762 - INFO - 변환 성공: 워드(한글)-000462-신소율.hwp -> 워드(한글)-000462-신소율.hml
2025-10-02 15:38:33,418 - INFO - 변환 성공: 워드(한글)-000642-박성준.hwp -> 워드(한글)-000642-박성준.hml
2025-10-02 15:38:34,042 - INFO - 변환 성공: 워드(한글)-000996-이서안.hwp -> 워드(한글)-000996-이서안.hml
2025-10-02 15:38:34,627 - INFO - 변환 성공: 워드(한글)-000997-윤주현.hwp -> 워드(한글)-000997-윤주현.hml
2025-10-02 15:38:35,238 - INFO - 변환 성공: 워드(한글)-001264-우다은.hwp -> 워드(한글)-001264-우다은.hml
2025-10-02 15:38:35,828 - INFO - 변환 성공: 워드(한글)-001340-최준혁.hwp -> 워드(한글)-001340-최준혁.hml
2025-10-02 15:38:36,332 - INFO - 변환 성공: 워드(한글)-001535-조윤아.hwp -> 워드(한글)-001535-조윤아.hml
2025-10-02 15:38:36,800 - INFO - 변환 성공: 워드(한글)-001558-이하은.hwp -> 워드(한글)-001558-이하은.hml
2025-10-02 15:38:37,080 - INFO - 변환 성공: 워드(한글)-001559-이정우.hwp -> 워드(한글)-001559-이정우.hml
2025-10-02 15:38:37,425 - INFO - 변환 성공: 워드(한글)-001561-윤진서.hwp -> 워드(한글)-001561-윤진서.hml
2025-10-02 15:38:37,854 - INFO - 변환 성공: 워드(한글)-001562-이지혁.hwp -> 워드(한글)-001562-이지혁.hml
2025-10-02 15:38:38,201 - INFO - 변환 성공: 워드(한글)-001563-김예준.hwp -> 워드(한글)-001563-김예준.hml
2025-10-02 15:38:38,461 - INFO - 변환 성공: 워드(한글)-001564-이지호.hwp -> 워드(한글)-001564-이지호.hml
2025-10-02 15:38:38,923 - INFO - 변환 성공: 워드(한글)-001733-윤준민.hwp -> 워드(한글)-001733-윤준민.hml
2025-10-02 15:38:39,419 - INFO - 변환 성공: 워드(한글)-001734-김건우.hwp -> 워드(한글)-001734-김건우.hml
2025-10-02 15:38:39,807 - INFO - 변환 성공: 워드(한글)-001899-강나연.hwp -> 워드(한글)-001899-강나연.hml
2025-10-02 15:38:40,343 - INFO - 변환 성공: 워드(한글)-001900-박서윤.hwp -> 워드(한글)-001900-박서윤.hml
2025-10-02 15:38:40,916 - INFO - 변환 성공: 워드(한글)-001901-박지윤.hwp -> 워드(한글)-001901-박지윤.hml
2025-10-02 15:38:41,509 - INFO - 변환 성공: 워드(한글)-001932-김성민.hwp -> 워드(한글)-001932-김성민.hml
2025-10-02 15:38:42,124 - INFO - 변환 성공: 워드(한글)-001934-신주완.hwp -> 워드(한글)-001934-신주완.hml
2025-10-02 15:38:42,639 - INFO - 변환 성공: 워드(한글)-002758-이서연.hwp -> 워드(한글)-002758-이서연.hml
2025-10-02 15:38:43,143 - INFO - 변환 성공: 워드(한글)-003284-양주하.hwp -> 워드(한글)-003284-양주하.hml
2025-10-02 15:38:43,680 - INFO - 변환 성공: 워드(한글)-003286-배진원.hwp -> 워드(한글)-003286-배진원.hml
2025-10-02 15:38:44,220 - INFO - 변환 성공: 워드(한글)-003287-박슬예.hwp -> 워드(한글)-003287-박슬예.hml
2025-10-02 15:38:44,754 - INFO - 변환 성공: 워드(한글)-003346-김환.hwp -> 워드(한글)-003346-김환.hml
2025-10-02 15:38:45,259 - INFO - 변환 성공: 워드(한글)-003368-이지민.hwp -> 워드(한글)-003368-이지민.hml
2025-10-02 15:38:45,815 - INFO - 변환 성공: 워드(한글)-003936-조유건.hwp -> 워드(한글)-003936-조유건.hml
2025-10-02 15:38:46,332 - INFO - 변환 성공: 워드(한글)-004085-이윤진.hwp -> 워드(한글)-004085-이윤진.hml
2025-10-02 15:38:46,883 - INFO - 변환 성공: 워드(한글)-004086-박은진.hwp -> 워드(한글)-004086-박은진.hml
2025-10-02 15:38:47,436 - INFO - 변환 성공: 워드(한글)-004246-김서준.hwp -> 워드(한글)-004246-김서준.hml
2025-10-02 15:38:48,010 - INFO - 변환 성공: 워드(한글)-004572-한수진.hwp -> 워드(한글)-004572-한수진.hml
2025-10-02 15:38:48,602 - INFO - 변환 성공: 워드(한글)-004819 박서호.hwp -> 워드(한글)-004819 박서호.hml
2025-10-02 15:38:49,119 - INFO - 변환 성공: 워드(한글)-004820-김태윤 .hwp -> 워드(한글)-004820-김태윤 .hml
2025-10-02 15:38:49,667 - INFO - 변환 성공: 워드(한글)-005376-홍예은.hwp -> 워드(한글)-005376-홍예은.hml
2025-10-02 15:38:50,293 - INFO - 변환 성공: DIW_2509C.hwpx -> DIW_2509C.hml
2025-10-02 15:38:50,932 - INFO - 변환 성공: 워드(한글)-000034-김가윤.hwpx -> 워드(한글)-000034-김가윤.hml
2025-10-02 15:38:51,486 - INFO - 변환 성공: 워드(한글)-000035-황수아.hwpx -> 워드(한글)-000035-황수아.hml
2025-10-02 15:38:52,026 - INFO - 변환 성공: 워드(한글)-000036-박서준.hwpx -> 워드(한글)-000036-박서준.hml
2025-10-02 15:38:52,639 - INFO - 변환 성공: 워드(한글)-000089-박가온.hwpx -> 워드(한글)-000089-박가온.hml
2025-10-02 15:38:53,220 - INFO - 변환 성공: 워드(한글)-000093-김민채.hwpx -> 워드(한글)-000093-김민채.hml
2025-10-02 15:38:53,821 - INFO - 변환 성공: 워드(한글)-000094-송예림.hwpx -> 워드(한글)-000094-송예림.hml
2025-10-02 15:38:54,479 - INFO - 변환 성공: 워드(한글)-000115-구준영.hwpx -> 워드(한글)-000115-구준영.hml
2025-10-02 15:38:55,027 - INFO - 변환 성공: 워드(한글)-000133-김서율.hwpx -> 워드(한글)-000133-김서율.hml
2025-10-02 15:38:55,634 - INFO - 변환 성공: 워드(한글)-000138-유준혁.hwpx -> 워드(한글)-000138-유준혁.hml
2025-10-02 15:38:56,236 - INFO - 변환 성공: 워드(한글)-000156-이슬아.hwpx -> 워드(한글)-000156-이슬아.hml
2025-10-02 15:38:56,797 - INFO - 변환 성공: 워드(한글)-000182-강장군.hwpx -> 워드(한글)-000182-강장군.hml
2025-10-02 15:38:57,398 - INFO - 변환 성공: 워드(한글)-000213-최윤호.hwpx -> 워드(한글)-000213-최윤호.hml
2025-10-02 15:38:58,011 - INFO - 변환 성공: 워드(한글)-000216-김주원.hwpx -> 워드(한글)-000216-김주원.hml
2025-10-02 15:38:58,648 - INFO - 변환 성공: 워드(한글)-000218-김하원.hwpx -> 워드(한글)-000218-김하원.hml
2025-10-02 15:38:59,231 - INFO - 변환 성공: 워드(한글)-000333-김성로.hwpx -> 워드(한글)-000333-김성로.hml
2025-10-02 15:38:59,864 - INFO - 변환 성공: 워드(한글)-000341-이아현.hwpx -> 워드(한글)-000341-이아현.hml
2025-10-02 15:39:00,478 - INFO - 변환 성공: 워드(한글)-000342-김지안.hwpx -> 워드(한글)-000342-김지안.hml
2025-10-02 15:39:01,082 - INFO - 변환 성공: 워드(한글)-000346-백은찬.hwpx -> 워드(한글)-000346-백은찬.hml
2025-10-02 15:39:01,679 - INFO - 변환 성공: 워드(한글)-000347-황유이.hwpx -> 워드(한글)-000347-황유이.hml
2025-10-02 15:39:02,298 - INFO - 변환 성공: 워드(한글)-000348-류채민.hwpx -> 워드(한글)-000348-류채민.hml
2025-10-02 15:39:02,859 - INFO - 변환 성공: 워드(한글)-000350-손원호.hwpx -> 워드(한글)-000350-손원호.hml
2025-10-02 15:39:03,302 - INFO - 변환 성공: 워드(한글)-000359-조용규.hwpx -> 워드(한글)-000359-조용규.hml
2025-10-02 15:39:03,743 - INFO - 변환 성공: 워드(한글)-000398-김서하.hwpx -> 워드(한글)-000398-김서하.hml
2025-10-02 15:39:04,341 - INFO - 변환 성공: 워드(한글)-000399-양나윤.hwpx -> 워드(한글)-000399-양나윤.hml
2025-10-02 15:39:05,024 - INFO - 변환 성공: 워드(한글)-000511-이소연.hwpx -> 워드(한글)-000511-이소연.hml
2025-10-02 15:39:05,677 - INFO - 변환 성공: 워드(한글)-000512-장우성.hwpx -> 워드(한글)-000512-장우성.hml
2025-10-02 15:39:06,283 - INFO - 변환 성공: 워드(한글)-000513-홍현준.hwpx -> 워드(한글)-000513-홍현준.hml
2025-10-02 15:39:06,896 - INFO - 변환 성공: 워드(한글)-000514-박지윤.hwpx -> 워드(한글)-000514-박지윤.hml
2025-10-02 15:39:07,522 - INFO - 변환 성공: 워드(한글)-000519-김채울.hwpx -> 워드(한글)-000519-김채울.hml
2025-10-02 15:39:08,081 - INFO - 변환 성공: 워드(한글)-000521-박서현.hwpx -> 워드(한글)-000521-박서현.hml
2025-10-02 15:39:08,649 - INFO - 변환 성공: 워드(한글)-000560-차시우.hwpx -> 워드(한글)-000560-차시우.hml
2025-10-02 15:39:09,180 - INFO - 변환 성공: 워드(한글)-000561-조혜윤.hwpx -> 워드(한글)-000561-조혜윤.hml
2025-10-02 15:39:09,753 - INFO - 변환 성공: 워드(한글)-000562-김다인.hwpx -> 워드(한글)-000562-김다인.hml
2025-10-02 15:39:10,372 - INFO - 변환 성공: 워드(한글)-000563-박예준.hwpx -> 워드(한글)-000563-박예준.hml
2025-10-02 15:39:10,980 - INFO - 변환 성공: 워드(한글)-000564-이재현.hwpx -> 워드(한글)-000564-이재현.hml
2025-10-02 15:39:11,577 - INFO - 변환 성공: 워드(한글)-000565-김성재.hwpx -> 워드(한글)-000565-김성재.hml
2025-10-02 15:39:12,110 - INFO - 변환 성공: 워드(한글)-000566-김서은.hwpx -> 워드(한글)-000566-김서은.hml
2025-10-02 15:39:12,685 - INFO - 변환 성공: 워드(한글)-000567-김하희.hwpx -> 워드(한글)-000567-김하희.hml
2025-10-02 15:39:13,250 - INFO - 변환 성공: 워드(한글)-000568-김지아.hwpx -> 워드(한글)-000568-김지아.hml
2025-10-02 15:39:13,816 - INFO - 변환 성공: 워드(한글)-000588-최하은.hwpx -> 워드(한글)-000588-최하은.hml
2025-10-02 15:39:14,371 - INFO - 변환 성공: 워드(한글)-000604-김유찬.hwpx -> 워드(한글)-000604-김유찬.hml
2025-10-02 15:39:14,974 - INFO - 변환 성공: 워드(한글)-000633-최한.hwpx -> 워드(한글)-000633-최한.hml
2025-10-02 15:39:15,601 - INFO - 변환 성공: 워드(한글)-000634-박태호.hwpx -> 워드(한글)-000634-박태호.hml
2025-10-02 15:39:16,062 - INFO - 변환 성공: 워드(한글)-000635-박준호.hwpx -> 워드(한글)-000635-박준호.hml
2025-10-02 15:39:16,694 - INFO - 변환 성공: 워드(한글)-000663-최우진.hwpx -> 워드(한글)-000663-최우진.hml
2025-10-02 15:39:17,315 - INFO - 변환 성공: 워드(한글)-000688-전종윤.hwpx -> 워드(한글)-000688-전종윤.hml
2025-10-02 15:39:17,964 - INFO - 변환 성공: 워드(한글)-000693-왕민이.hwpx -> 워드(한글)-000693-왕민이.hml
2025-10-02 15:39:18,559 - INFO - 변환 성공: 워드(한글)-000729-송은아.hwpx -> 워드(한글)-000729-송은아.hml
2025-10-02 15:39:19,225 - INFO - 변환 성공: 워드(한글)-000730-임다정.hwpx -> 워드(한글)-000730-임다정.hml
2025-10-02 15:39:19,843 - INFO - 변환 성공: 워드(한글)-000755-고승유.hwpx -> 워드(한글)-000755-고승유.hml
2025-10-02 15:39:20,452 - INFO - 변환 성공: 워드(한글)-000852-원재윤.hwpx -> 워드(한글)-000852-원재윤.hml
2025-10-02 15:39:20,911 - INFO - 변환 성공: 워드(한글)-000948-박민준.hwpx -> 워드(한글)-000948-박민준.hml
2025-10-02 15:39:21,408 - INFO - 변환 성공: 워드(한글)-000973-서지우.hwpx -> 워드(한글)-000973-서지우.hml
2025-10-02 15:39:22,055 - INFO - 변환 성공: 워드(한글)-000993-임경준.hwpx -> 워드(한글)-000993-임경준.hml
2025-10-02 15:39:22,663 - INFO - 변환 성공: 워드(한글)-000995-이승건.hwpx -> 워드(한글)-000995-이승건.hml
2025-10-02 15:39:23,291 - INFO - 변환 성공: 워드(한글)-001022-강준원.hwpx -> 워드(한글)-001022-강준원.hml
2025-10-02 15:39:23,888 - INFO - 변환 성공: 워드(한글)-001023-김호준.hwpx -> 워드(한글)-001023-김호준.hml
2025-10-02 15:39:24,471 - INFO - 변환 성공: 워드(한글)-001032-박휘연.hwpx -> 워드(한글)-001032-박휘연.hml
2025-10-02 15:39:25,064 - INFO - 변환 성공: 워드(한글)-001040-박예다.hwpx -> 워드(한글)-001040-박예다.hml
2025-10-02 15:39:25,677 - INFO - 변환 성공: 워드(한글)-001041-김건희.hwpx -> 워드(한글)-001041-김건희.hml
2025-10-02 15:39:26,299 - INFO - 변환 성공: 워드(한글)-001050-최서아.hwpx -> 워드(한글)-001050-최서아.hml
2025-10-02 15:39:26,815 - INFO - 변환 성공: 워드(한글)-001180-권세영.hwpx -> 워드(한글)-001180-권세영.hml
2025-10-02 15:39:27,188 - INFO - 변환 성공: 워드(한글)-001232-위제연.hwpx -> 워드(한글)-001232-위제연.hml
2025-10-02 15:39:27,873 - INFO - 변환 성공: 워드(한글)-001241-변서연.hwpx -> 워드(한글)-001241-변서연.hml
2025-10-02 15:39:28,486 - INFO - 변환 성공: 워드(한글)-001296-조세승.hwpx -> 워드(한글)-001296-조세승.hml
2025-10-02 15:39:29,025 - INFO - 변환 성공: 워드(한글)-001302-서성민.hwpx -> 워드(한글)-001302-서성민.hml
2025-10-02 15:39:29,649 - INFO - 변환 성공: 워드(한글)-001303-장서윤.hwpx -> 워드(한글)-001303-장서윤.hml
2025-10-02 15:39:30,244 - INFO - 변환 성공: 워드(한글)-001334 이서호.hwpx -> 워드(한글)-001334 이서호.hml
2025-10-02 15:39:30,839 - INFO - 변환 성공: 워드(한글)-001345-김민성.hwpx -> 워드(한글)-001345-김민성.hml
2025-10-02 15:39:31,477 - INFO - 변환 성공: 워드(한글)-001378-김관우.hwpx -> 워드(한글)-001378-김관우.hml
2025-10-02 15:39:31,992 - INFO - 변환 성공: 워드(한글)-001390-이지민.hwpx -> 워드(한글)-001390-이지민.hml
2025-10-02 15:39:32,457 - INFO - 변환 성공: 워드(한글)-001436-고윤우.hwpx -> 워드(한글)-001436-고윤우.hml
2025-10-02 15:39:33,037 - INFO - 변환 성공: 워드(한글)-001445-이승찬.hwpx -> 워드(한글)-001445-이승찬.hml
2025-10-02 15:39:33,651 - INFO - 변환 성공: 워드(한글)-001635-박성진.hwpx -> 워드(한글)-001635-박성진.hml
2025-10-02 15:39:34,285 - INFO - 변환 성공: 워드(한글)-001649-이효준.hwpx -> 워드(한글)-001649-이효준.hml
2025-10-02 15:39:34,774 - INFO - 변환 성공: 워드(한글)-001673-배승민.hwpx -> 워드(한글)-001673-배승민.hml
2025-10-02 15:39:35,249 - INFO - 변환 성공: 워드(한글)-001688-박우주.hwpx -> 워드(한글)-001688-박우주.hml
2025-10-02 15:39:35,877 - INFO - 변환 성공: 워드(한글)-001703-이시우.hwpx -> 워드(한글)-001703-이시우.hml
2025-10-02 15:39:36,507 - INFO - 변환 성공: 워드(한글)-001730-김상욱.hwpx -> 워드(한글)-001730-김상욱.hml
2025-10-02 15:39:37,064 - INFO - 변환 성공: 워드(한글)-001803-강나리.hwpx -> 워드(한글)-001803-강나리.hml
2025-10-02 15:39:37,744 - INFO - 변환 성공: 워드(한글)-001804-하윤지.hwpx -> 워드(한글)-001804-하윤지.hml
2025-10-02 15:39:38,453 - INFO - 변환 성공: 워드(한글)-001805-허다온.hwpx -> 워드(한글)-001805-허다온.hml
2025-10-02 15:39:39,352 - INFO - 변환 성공: 워드(한글)-001806-김가윤.hwpx -> 워드(한글)-001806-김가윤.hml
2025-10-02 15:39:40,200 - INFO - 변환 성공: 워드(한글)-001832-김민지.hwpx -> 워드(한글)-001832-김민지.hml
2025-10-02 15:39:41,107 - INFO - 변환 성공: 워드(한글)-001833-양래혁.hwpx -> 워드(한글)-001833-양래혁.hml
2025-10-02 15:39:41,798 - INFO - 변환 성공: 워드(한글)-001844-김지민.hwpx -> 워드(한글)-001844-김지민.hml
2025-10-02 15:39:42,166 - INFO - 변환 성공: 워드(한글)-001853-조문경.hwpx -> 워드(한글)-001853-조문경.hml
2025-10-02 15:39:42,829 - INFO - 변환 성공: 워드(한글)-001874-이승주.hwpx -> 워드(한글)-001874-이승주.hml
2025-10-02 15:39:43,555 - INFO - 변환 성공: 워드(한글)-001875-윤가인.hwpx -> 워드(한글)-001875-윤가인.hml
2025-10-02 15:39:44,155 - INFO - 변환 성공: 워드(한글)-001889-남지우.hwpx -> 워드(한글)-001889-남지우.hml
2025-10-02 15:39:44,878 - INFO - 변환 성공: 워드(한글)-001890-이재빈.hwpx -> 워드(한글)-001890-이재빈.hml
2025-10-02 15:39:45,486 - INFO - 변환 성공: 워드(한글)-001891-이주현.hwpx -> 워드(한글)-001891-이주현.hml
2025-10-02 15:39:46,083 - INFO - 변환 성공: 워드(한글)-001892-강준구.hwpx -> 워드(한글)-001892-강준구.hml
2025-10-02 15:39:46,862 - INFO - 변환 성공: 워드(한글)-001947-장현근.hwpx -> 워드(한글)-001947-장현근.hml
2025-10-02 15:39:47,683 - INFO - 변환 성공: 워드(한글)-001948-구모헌.hwpx -> 워드(한글)-001948-구모헌.hml
2025-10-02 15:39:48,434 - INFO - 변환 성공: 워드(한글)-001950-김선영.hwpx -> 워드(한글)-001950-김선영.hml
2025-10-02 15:39:49,247 - INFO - 변환 성공: 워드(한글)-001951-문지향.hwpx -> 워드(한글)-001951-문지향.hml
2025-10-02 15:39:49,960 - INFO - 변환 성공: 워드(한글)-001952-안승아.hwpx -> 워드(한글)-001952-안승아.hml
2025-10-02 15:39:50,759 - INFO - 변환 성공: 워드(한글)-002007-김서윤.hwpx -> 워드(한글)-002007-김서윤.hml
2025-10-02 15:39:51,560 - INFO - 변환 성공: 워드(한글)-002009-이다영.hwpx -> 워드(한글)-002009-이다영.hml
2025-10-02 15:39:52,168 - INFO - 변환 성공: 워드(한글)-002010-박나혜.hwpx -> 워드(한글)-002010-박나혜.hml
2025-10-02 15:39:52,754 - INFO - 변환 성공: 워드(한글)-002011-김재빈.hwpx -> 워드(한글)-002011-김재빈.hml
2025-10-02 15:39:53,484 - INFO - 변환 성공: 워드(한글)-002012-이서연.hwpx -> 워드(한글)-002012-이서연.hml
2025-10-02 15:39:54,249 - INFO - 변환 성공: 워드(한글)-002022-박시은.hwpx -> 워드(한글)-002022-박시은.hml
2025-10-02 15:39:55,041 - INFO - 변환 성공: 워드(한글)-002057-신승환.hwpx -> 워드(한글)-002057-신승환.hml
2025-10-02 15:39:55,691 - INFO - 변환 성공: 워드(한글)-002074-문지석.hwpx -> 워드(한글)-002074-문지석.hml
2025-10-02 15:39:56,233 - INFO - 변환 성공: 워드(한글)-002078-전지아.hwpx -> 워드(한글)-002078-전지아.hml
2025-10-02 15:39:56,913 - INFO - 변환 성공: 워드(한글)-002079-이소연.hwpx -> 워드(한글)-002079-이소연.hml
2025-10-02 15:39:57,527 - INFO - 변환 성공: 워드(한글)-002090-조세연.hwpx -> 워드(한글)-002090-조세연.hml
2025-10-02 15:39:58,344 - INFO - 변환 성공: 워드(한글)-002101-김하정.hwpx -> 워드(한글)-002101-김하정.hml
2025-10-02 15:39:59,077 - INFO - 변환 성공: 워드(한글)-002123-이도연.hwpx -> 워드(한글)-002123-이도연.hml
2025-10-02 15:39:59,590 - INFO - 변환 성공: 워드(한글)-002139-성이든.hwpx -> 워드(한글)-002139-성이든.hml
2025-10-02 15:40:00,093 - INFO - 변환 성공: 워드(한글)-002163-김해영.hwpx -> 워드(한글)-002163-김해영.hml
2025-10-02 15:40:00,764 - INFO - 변환 성공: 워드(한글)-002164-김수민.hwpx -> 워드(한글)-002164-김수민.hml
2025-10-02 15:40:01,334 - INFO - 변환 성공: 워드(한글)-002168-방진성.hwpx -> 워드(한글)-002168-방진성.hml
2025-10-02 15:40:02,026 - INFO - 변환 성공: 워드(한글)-002169-권민재.hwpx -> 워드(한글)-002169-권민재.hml
2025-10-02 15:40:02,715 - INFO - 변환 성공: 워드(한글)-002170-정임혜.hwpx -> 워드(한글)-002170-정임혜.hml
2025-10-02 15:40:03,363 - INFO - 변환 성공: 워드(한글)-002171-김민건.hwpx -> 워드(한글)-002171-김민건.hml
2025-10-02 15:40:04,208 - INFO - 변환 성공: 워드(한글)-002172-고윤우.hwpx -> 워드(한글)-002172-고윤우.hml
2025-10-02 15:40:05,030 - INFO - 변환 성공: 워드(한글)-002173-정시현.hwpx -> 워드(한글)-002173-정시현.hml
2025-10-02 15:40:05,915 - INFO - 변환 성공: 워드(한글)-002174-박윤솔.hwpx -> 워드(한글)-002174-박윤솔.hml
2025-10-02 15:40:06,609 - INFO - 변환 성공: 워드(한글)-002175-이상호.hwpx -> 워드(한글)-002175-이상호.hml
2025-10-02 15:40:07,389 - INFO - 변환 성공: 워드(한글)-002176-방채윤.hwpx -> 워드(한글)-002176-방채윤.hml
2025-10-02 15:40:08,194 - INFO - 변환 성공: 워드(한글)-002177-송현지.hwpx -> 워드(한글)-002177-송현지.hml
2025-10-02 15:40:08,971 - INFO - 변환 성공: 워드(한글)-002178-조이안.hwpx -> 워드(한글)-002178-조이안.hml
2025-10-02 15:40:09,772 - INFO - 변환 성공: 워드(한글)-002179-강다현.hwpx -> 워드(한글)-002179-강다현.hml
2025-10-02 15:40:10,543 - INFO - 변환 성공: 워드(한글)-002180-임서형.hwpx -> 워드(한글)-002180-임서형.hml
2025-10-02 15:40:11,259 - INFO - 변환 성공: 워드(한글)-002198-김지호.hwpx -> 워드(한글)-002198-김지호.hml
2025-10-02 15:40:11,838 - INFO - 변환 성공: 워드(한글)-002232-조윤재.hwpx -> 워드(한글)-002232-조윤재.hml
2025-10-02 15:40:12,558 - INFO - 변환 성공: 워드(한글)-002263-최윤정.hwpx -> 워드(한글)-002263-최윤정.hml
2025-10-02 15:40:13,445 - INFO - 변환 성공: 워드(한글)-002266-허서윤.hwpx -> 워드(한글)-002266-허서윤.hml
2025-10-02 15:40:14,089 - INFO - 변환 성공: 워드(한글)-002267-최아인.hwpx -> 워드(한글)-002267-최아인.hml
2025-10-02 15:40:14,734 - INFO - 변환 성공: 워드(한글)-002328-지운우.hwpx -> 워드(한글)-002328-지운우.hml
2025-10-02 15:40:15,345 - INFO - 변환 성공: 워드(한글)-002332-전승우.hwpx -> 워드(한글)-002332-전승우.hml
2025-10-02 15:40:15,943 - INFO - 변환 성공: 워드(한글)-002354-박주하.hwpx -> 워드(한글)-002354-박주하.hml
2025-10-02 15:40:16,655 - INFO - 변환 성공: 워드(한글)-002356-송윤지.hwpx -> 워드(한글)-002356-송윤지.hml
2025-10-02 15:40:17,302 - INFO - 변환 성공: 워드(한글)-002366-박유진.hwpx -> 워드(한글)-002366-박유진.hml
2025-10-02 15:40:18,020 - INFO - 변환 성공: 워드(한글)-002415-조아랑.hwpx -> 워드(한글)-002415-조아랑.hml
2025-10-02 15:40:18,769 - INFO - 변환 성공: 워드(한글)-002424-최순덕.hwpx -> 워드(한글)-002424-최순덕.hml
2025-10-02 15:40:19,298 - INFO - 변환 성공: 워드(한글)-002425-손영숙.hwpx -> 워드(한글)-002425-손영숙.hml
2025-10-02 15:40:19,809 - INFO - 변환 성공: 워드(한글)-002426-추기순.hwpx -> 워드(한글)-002426-추기순.hml
2025-10-02 15:40:20,297 - INFO - 변환 성공: 워드(한글)-002427-진화자.hwpx -> 워드(한글)-002427-진화자.hml
2025-10-02 15:40:20,934 - INFO - 변환 성공: 워드(한글)-002428-김춘희.hwpx -> 워드(한글)-002428-김춘희.hml
2025-10-02 15:40:21,553 - INFO - 변환 성공: 워드(한글)-002429-정흥자.hwpx -> 워드(한글)-002429-정흥자.hml
2025-10-02 15:40:22,136 - INFO - 변환 성공: 워드(한글)-002430-임선희.hwpx -> 워드(한글)-002430-임선희.hml
2025-10-02 15:40:22,783 - INFO - 변환 성공: 워드(한글)-002431-유경순.hwpx -> 워드(한글)-002431-유경순.hml
2025-10-02 15:40:23,405 - INFO - 변환 성공: 워드(한글)-002432-표선덕.hwpx -> 워드(한글)-002432-표선덕.hml
2025-10-02 15:40:23,970 - INFO - 변환 성공: 워드(한글)-002461-박수현.hwpx -> 워드(한글)-002461-박수현.hml
2025-10-02 15:40:24,603 - INFO - 변환 성공: 워드(한글)-002462-박수빈.hwpx -> 워드(한글)-002462-박수빈.hml
2025-10-02 15:40:25,253 - INFO - 변환 성공: 워드(한글)-002463-황서원.hwpx -> 워드(한글)-002463-황서원.hml
2025-10-02 15:40:25,909 - INFO - 변환 성공: 워드(한글)-002464-김도후.hwpx -> 워드(한글)-002464-김도후.hml
2025-10-02 15:40:26,509 - INFO - 변환 성공: 워드(한글)-002465-김민찬.hwpx -> 워드(한글)-002465-김민찬.hml
2025-10-02 15:40:27,102 - INFO - 변환 성공: 워드(한글)-002466-김서은.hwpx -> 워드(한글)-002466-김서은.hml
2025-10-02 15:40:27,633 - INFO - 변환 성공: 워드(한글)-002523-이서율.hwpx -> 워드(한글)-002523-이서율.hml
2025-10-02 15:40:28,086 - INFO - 변환 성공: 워드(한글)-002542-이다연.hwpx -> 워드(한글)-002542-이다연.hml
2025-10-02 15:40:28,711 - INFO - 변환 성공: 워드(한글)-002634-김준.hwpx -> 워드(한글)-002634-김준.hml
2025-10-02 15:40:29,347 - INFO - 변환 성공: 워드(한글)-002649-이시하.hwpx -> 워드(한글)-002649-이시하.hml
2025-10-02 15:40:30,019 - INFO - 변환 성공: 워드(한글)-002657-홍진우.hwpx -> 워드(한글)-002657-홍진우.hml
2025-10-02 15:40:30,605 - INFO - 변환 성공: 워드(한글)-002658-홍준희.hwpx -> 워드(한글)-002658-홍준희.hml
2025-10-02 15:40:31,094 - INFO - 변환 성공: 워드(한글)-002668-김하영.hwpx -> 워드(한글)-002668-김하영.hml
2025-10-02 15:40:31,607 - INFO - 변환 성공: 워드(한글)-002764-권정하.hwpx -> 워드(한글)-002764-권정하.hml
2025-10-02 15:40:32,273 - INFO - 변환 성공: 워드(한글)-002765-윤이수.hwpx -> 워드(한글)-002765-윤이수.hml
2025-10-02 15:40:32,902 - INFO - 변환 성공: 워드(한글)-002821-윤지수.hwpx -> 워드(한글)-002821-윤지수.hml
2025-10-02 15:40:33,476 - INFO - 변환 성공: 워드(한글)-002871-허다정.hwpx -> 워드(한글)-002871-허다정.hml
2025-10-02 15:40:34,079 - INFO - 변환 성공: 워드(한글)-002959-이의채.hwpx -> 워드(한글)-002959-이의채.hml
2025-10-02 15:40:34,643 - INFO - 변환 성공: 워드(한글)-002982-임세한.hwpx -> 워드(한글)-002982-임세한.hml
2025-10-02 15:40:35,193 - INFO - 변환 성공: 워드(한글)-003017-김지성.hwpx -> 워드(한글)-003017-김지성.hml
2025-10-02 15:40:35,822 - INFO - 변환 성공: 워드(한글)-003018-한우주.hwpx -> 워드(한글)-003018-한우주.hml
2025-10-02 15:40:36,441 - INFO - 변환 성공: 워드(한글)-003020-유승지.hwpx -> 워드(한글)-003020-유승지.hml
2025-10-02 15:40:37,040 - INFO - 변환 성공: 워드(한글)-003034-박채은.hwpx -> 워드(한글)-003034-박채은.hml
2025-10-02 15:40:37,645 - INFO - 변환 성공: 워드(한글)-003040-이지언.hwpx -> 워드(한글)-003040-이지언.hml
2025-10-02 15:40:38,263 - INFO - 변환 성공: 워드(한글)-003041-김가온.hwpx -> 워드(한글)-003041-김가온.hml
2025-10-02 15:40:38,712 - INFO - 변환 성공: 워드(한글)-003055-김민결.hwpx -> 워드(한글)-003055-김민결.hml
2025-10-02 15:40:39,192 - INFO - 변환 성공: 워드(한글)-003056-모제민.hwpx -> 워드(한글)-003056-모제민.hml
2025-10-02 15:40:39,786 - INFO - 변환 성공: 워드(한글)-003057-주다빈.hwpx -> 워드(한글)-003057-주다빈.hml
2025-10-02 15:40:40,382 - INFO - 변환 성공: 워드(한글)-003071-정지훈.hwpx -> 워드(한글)-003071-정지훈.hml
2025-10-02 15:40:40,942 - INFO - 변환 성공: 워드(한글)-003072-이루현.hwpx -> 워드(한글)-003072-이루현.hml
2025-10-02 15:40:41,518 - INFO - 변환 성공: 워드(한글)-003093-이재희.hwpx -> 워드(한글)-003093-이재희.hml
2025-10-02 15:40:42,011 - INFO - 변환 성공: 워드(한글)-003167-백아윤.hwpx -> 워드(한글)-003167-백아윤.hml
2025-10-02 15:40:42,498 - INFO - 변환 성공: 워드(한글)-003223-김지완.hwpx -> 워드(한글)-003223-김지완.hml
2025-10-02 15:40:43,151 - INFO - 변환 성공: 워드(한글)-003224-손효은.hwpx -> 워드(한글)-003224-손효은.hml
2025-10-02 15:40:43,778 - INFO - 변환 성공: 워드(한글)-003233-서연우.hwpx -> 워드(한글)-003233-서연우.hml
2025-10-02 15:40:44,355 - INFO - 변환 성공: 워드(한글)-003234-이제희.hwpx -> 워드(한글)-003234-이제희.hml
2025-10-02 15:40:44,958 - INFO - 변환 성공: 워드(한글)-003235-김태우.hwpx -> 워드(한글)-003235-김태우.hml
2025-10-02 15:40:45,539 - INFO - 변환 성공: 워드(한글)-003241-최하람.hwpx -> 워드(한글)-003241-최하람.hml
2025-10-02 15:40:46,108 - INFO - 변환 성공: 워드(한글)-003249-김형진.hwpx -> 워드(한글)-003249-김형진.hml
2025-10-02 15:40:46,683 - INFO - 변환 성공: 워드(한글)-003251-김민정.hwpx -> 워드(한글)-003251-김민정.hml
2025-10-02 15:40:47,279 - INFO - 변환 성공: 워드(한글)-003293-최민찬.hwpx -> 워드(한글)-003293-최민찬.hml
2025-10-02 15:40:47,965 - INFO - 변환 성공: 워드(한글)-003294-권나온.hwpx -> 워드(한글)-003294-권나온.hml
2025-10-02 15:40:48,607 - INFO - 변환 성공: 워드(한글)-003295-김윤지.hwpx -> 워드(한글)-003295-김윤지.hml
2025-10-02 15:40:49,221 - INFO - 변환 성공: 워드(한글)-003322-김시훈.hwpx -> 워드(한글)-003322-김시훈.hml
2025-10-02 15:40:49,835 - INFO - 변환 성공: 워드(한글)-003382-안태은.hwpx -> 워드(한글)-003382-안태은.hml
2025-10-02 15:40:50,483 - INFO - 변환 성공: 워드(한글)-003402-김하온.hwpx -> 워드(한글)-003402-김하온.hml
2025-10-02 15:40:51,086 - INFO - 변환 성공: 워드(한글)-003407-황정후.hwpx -> 워드(한글)-003407-황정후.hml
2025-10-02 15:40:51,472 - INFO - 변환 성공: 워드(한글)-003408-최승아.hwpx -> 워드(한글)-003408-최승아.hml
2025-10-02 15:40:51,953 - INFO - 변환 성공: 워드(한글)-003426-김하은.hwpx -> 워드(한글)-003426-김하은.hml
2025-10-02 15:40:52,568 - INFO - 변환 성공: 워드(한글)-003427-정지우.hwpx -> 워드(한글)-003427-정지우.hml
2025-10-02 15:40:53,212 - INFO - 변환 성공: 워드(한글)-003493-김가원.hwpx -> 워드(한글)-003493-김가원.hml
2025-10-02 15:40:53,838 - INFO - 변환 성공: 워드(한글)-003497-주한결.hwpx -> 워드(한글)-003497-주한결.hml
2025-10-02 15:40:54,460 - INFO - 변환 성공: 워드(한글)-003500-이승훈.hwpx -> 워드(한글)-003500-이승훈.hml
2025-10-02 15:40:55,110 - INFO - 변환 성공: 워드(한글)-003516-김건우.hwpx -> 워드(한글)-003516-김건우.hml
2025-10-02 15:40:55,754 - INFO - 변환 성공: 워드(한글)-003517-이금지.hwpx -> 워드(한글)-003517-이금지.hml
2025-10-02 15:40:56,391 - INFO - 변환 성공: 워드(한글)-003535-강래원.hwpx -> 워드(한글)-003535-강래원.hml
2025-10-02 15:40:56,962 - INFO - 변환 성공: 워드(한글)-003536-김은휼.hwpx -> 워드(한글)-003536-김은휼.hml
2025-10-02 15:40:57,571 - INFO - 변환 성공: 워드(한글)-003537-성채윤.hwpx -> 워드(한글)-003537-성채윤.hml
2025-10-02 15:40:58,182 - INFO - 변환 성공: 워드(한글)-003538-오지훈.hwpx -> 워드(한글)-003538-오지훈.hml
2025-10-02 15:40:58,880 - INFO - 변환 성공: 워드(한글)-003620-이동혁.hwpx -> 워드(한글)-003620-이동혁.hml
2025-10-02 15:40:59,473 - INFO - 변환 성공: 워드(한글)-003698-이람.hwpx -> 워드(한글)-003698-이람.hml
2025-10-02 15:41:00,079 - INFO - 변환 성공: 워드(한글)-003700-이은채.hwpx -> 워드(한글)-003700-이은채.hml
2025-10-02 15:41:00,707 - INFO - 변환 성공: 워드(한글)-003701-제하윤.hwpx -> 워드(한글)-003701-제하윤.hml
2025-10-02 15:41:01,304 - INFO - 변환 성공: 워드(한글)-003702-김예원.hwpx -> 워드(한글)-003702-김예원.hml
2025-10-02 15:41:01,886 - INFO - 변환 성공: 워드(한글)-003738-손정우.hwpx -> 워드(한글)-003738-손정우.hml
2025-10-02 15:41:02,552 - INFO - 변환 성공: 워드(한글)-003739-손정서.hwpx -> 워드(한글)-003739-손정서.hml
2025-10-02 15:41:03,121 - INFO - 변환 성공: 워드(한글)-003740-염주은.hwpx -> 워드(한글)-003740-염주은.hml
2025-10-02 15:41:03,609 - INFO - 변환 성공: 워드(한글)-003751-최지완.hwpx -> 워드(한글)-003751-최지완.hml
2025-10-02 15:41:04,198 - INFO - 변환 성공: 워드(한글)-003776-박경은.hwpx -> 워드(한글)-003776-박경은.hml
2025-10-02 15:41:04,780 - INFO - 변환 성공: 워드(한글)-003777-김지영.hwpx -> 워드(한글)-003777-김지영.hml
2025-10-02 15:41:05,423 - INFO - 변환 성공: 워드(한글)-003779-황채미.hwpx -> 워드(한글)-003779-황채미.hml
2025-10-02 15:41:06,016 - INFO - 변환 성공: 워드(한글)-003813-임광민.hwpx -> 워드(한글)-003813-임광민.hml
2025-10-02 15:41:06,608 - INFO - 변환 성공: 워드(한글)-003822-임준서.hwpx -> 워드(한글)-003822-임준서.hml
2025-10-02 15:41:07,233 - INFO - 변환 성공: 워드(한글)-003870-정우림.hwpx -> 워드(한글)-003870-정우림.hml
2025-10-02 15:41:07,887 - INFO - 변환 성공: 워드(한글)-003900-김예준.hwpx -> 워드(한글)-003900-김예준.hml
2025-10-02 15:41:08,480 - INFO - 변환 성공: 워드(한글)-003949-최해림.hwpx -> 워드(한글)-003949-최해림.hml
2025-10-02 15:41:09,068 - INFO - 변환 성공: 워드(한글)-003961-오현서.hwpx -> 워드(한글)-003961-오현서.hml
2025-10-02 15:41:09,720 - INFO - 변환 성공: 워드(한글)-003970-정서진.hwpx -> 워드(한글)-003970-정서진.hml
2025-10-02 15:41:10,332 - INFO - 변환 성공: 워드(한글)-004056-최재윤.hwpx -> 워드(한글)-004056-최재윤.hml
2025-10-02 15:41:10,936 - INFO - 변환 성공: 워드(한글)-004075-김건호.hwpx -> 워드(한글)-004075-김건호.hml
2025-10-02 15:41:11,508 - INFO - 변환 성공: 워드(한글)-004129-김준영.hwpx -> 워드(한글)-004129-김준영.hml
2025-10-02 15:41:12,129 - INFO - 변환 성공: 워드(한글)-004143-허율.hwpx -> 워드(한글)-004143-허율.hml
2025-10-02 15:41:12,747 - INFO - 변환 성공: 워드(한글)-004144-이용민.hwpx -> 워드(한글)-004144-이용민.hml
2025-10-02 15:41:13,306 - INFO - 변환 성공: 워드(한글)-004173-이소은.hwpx -> 워드(한글)-004173-이소은.hml
2025-10-02 15:41:13,922 - INFO - 변환 성공: 워드(한글)-004179-윤사랑.hwpx -> 워드(한글)-004179-윤사랑.hml
2025-10-02 15:41:14,559 - INFO - 변환 성공: 워드(한글)-004214-배동호.hwpx -> 워드(한글)-004214-배동호.hml
2025-10-02 15:41:15,042 - INFO - 변환 성공: 워드(한글)-004215-박민준.hwpx -> 워드(한글)-004215-박민준.hml
2025-10-02 15:41:15,493 - INFO - 변환 성공: 워드(한글)-004216-이유승.hwpx -> 워드(한글)-004216-이유승.hml
2025-10-02 15:41:15,980 - INFO - 변환 성공: 워드(한글)-004217-유용준.hwpx -> 워드(한글)-004217-유용준.hml
2025-10-02 15:41:16,460 - INFO - 변환 성공: 워드(한글)-004219-박제하.hwpx -> 워드(한글)-004219-박제하.hml
2025-10-02 15:41:17,079 - INFO - 변환 성공: 워드(한글)-004220-신주하.hwpx -> 워드(한글)-004220-신주하.hml
2025-10-02 15:41:17,704 - INFO - 변환 성공: 워드(한글)-004239-민선우.hwpx -> 워드(한글)-004239-민선우.hml
2025-10-02 15:41:18,208 - INFO - 변환 성공: 워드(한글)-004272-조유화.hwpx -> 워드(한글)-004272-조유화.hml
2025-10-02 15:41:18,749 - INFO - 변환 성공: 워드(한글)-004274-조하엘.hwpx -> 워드(한글)-004274-조하엘.hml
2025-10-02 15:41:19,402 - INFO - 변환 성공: 워드(한글)-004279-전시욱.hwpx -> 워드(한글)-004279-전시욱.hml
2025-10-02 15:41:19,988 - INFO - 변환 성공: 워드(한글)-004280-이다혜.hwpx -> 워드(한글)-004280-이다혜.hml
2025-10-02 15:41:20,655 - INFO - 변환 성공: 워드(한글)-004310-곽유진.hwpx -> 워드(한글)-004310-곽유진.hml
2025-10-02 15:41:21,287 - INFO - 변환 성공: 워드(한글)-004311-신성윤.hwpx -> 워드(한글)-004311-신성윤.hml
2025-10-02 15:41:21,945 - INFO - 변환 성공: 워드(한글)-004314-진민성.hwpx -> 워드(한글)-004314-진민성.hml
2025-10-02 15:41:22,452 - INFO - 변환 성공: 워드(한글)-004317-이태은.hwpx -> 워드(한글)-004317-이태은.hml
2025-10-02 15:41:22,895 - INFO - 변환 성공: 워드(한글)-004318-구도윤.hwpx -> 워드(한글)-004318-구도윤.hml
2025-10-02 15:41:23,377 - INFO - 변환 성공: 워드(한글)-004321-안상길.hwpx -> 워드(한글)-004321-안상길.hml
2025-10-02 15:41:23,851 - INFO - 변환 성공: 워드(한글)-004327-최세인.hwpx -> 워드(한글)-004327-최세인.hml
2025-10-02 15:41:24,514 - INFO - 변환 성공: 워드(한글)-004328-최지윤.hwpx -> 워드(한글)-004328-최지윤.hml
2025-10-02 15:41:25,109 - INFO - 변환 성공: 워드(한글)-004389-엄정원.hwpx -> 워드(한글)-004389-엄정원.hml
2025-10-02 15:41:25,720 - INFO - 변환 성공: 워드(한글)-004390-김도현.hwpx -> 워드(한글)-004390-김도현.hml
2025-10-02 15:41:26,390 - INFO - 변환 성공: 워드(한글)-004415-배신희.hwpx -> 워드(한글)-004415-배신희.hml
2025-10-02 15:41:27,048 - INFO - 변환 성공: 워드(한글)-004436-전수현.hwpx -> 워드(한글)-004436-전수현.hml
2025-10-02 15:41:27,674 - INFO - 변환 성공: 워드(한글)-004451-이유주.hwpx -> 워드(한글)-004451-이유주.hml
2025-10-02 15:41:28,321 - INFO - 변환 성공: 워드(한글)-004478-이지아.hwpx -> 워드(한글)-004478-이지아.hml
2025-10-02 15:41:29,008 - INFO - 변환 성공: 워드(한글)-004509-김다경.hwpx -> 워드(한글)-004509-김다경.hml
2025-10-02 15:41:29,691 - INFO - 변환 성공: 워드(한글)-004517-황예헌.hwpx -> 워드(한글)-004517-황예헌.hml
2025-10-02 15:41:30,267 - INFO - 변환 성공: 워드(한글)-004542-장유정.hwpx -> 워드(한글)-004542-장유정.hml
2025-10-02 15:41:30,852 - INFO - 변환 성공: 워드(한글)-004557-이유준.hwpx -> 워드(한글)-004557-이유준.hml
2025-10-02 15:41:31,428 - INFO - 변환 성공: 워드(한글)-004558-권율.hwpx -> 워드(한글)-004558-권율.hml
2025-10-02 15:41:32,098 - INFO - 변환 성공: 워드(한글)-004587-김예은.hwpx -> 워드(한글)-004587-김예은.hml
2025-10-02 15:41:32,712 - INFO - 변환 성공: 워드(한글)-004588-정다은.hwpx -> 워드(한글)-004588-정다은.hml
2025-10-02 15:41:33,255 - INFO - 변환 성공: 워드(한글)-004591-김길후.hwpx -> 워드(한글)-004591-김길후.hml
2025-10-02 15:41:33,801 - INFO - 변환 성공: 워드(한글)-004594-장윤슬.hwpx -> 워드(한글)-004594-장윤슬.hml
2025-10-02 15:41:34,398 - INFO - 변환 성공: 워드(한글)-004598-구민채.hwpx -> 워드(한글)-004598-구민채.hml
2025-10-02 15:41:34,965 - INFO - 변환 성공: 워드(한글)-004649-이태검.hwpx -> 워드(한글)-004649-이태검.hml
2025-10-02 15:41:35,650 - INFO - 변환 성공: 워드(한글)-004657-진하준.hwpx -> 워드(한글)-004657-진하준.hml
2025-10-02 15:41:36,248 - INFO - 변환 성공: 워드(한글)-004699-강유림.hwpx -> 워드(한글)-004699-강유림.hml
2025-10-02 15:41:36,913 - INFO - 변환 성공: 워드(한글)-004717-장주원.hwpx -> 워드(한글)-004717-장주원.hml
2025-10-02 15:41:37,558 - INFO - 변환 성공: 워드(한글)-004718-오시은.hwpx -> 워드(한글)-004718-오시은.hml
2025-10-02 15:41:38,058 - INFO - 변환 성공: 워드(한글)-004719-허준영.hwpx -> 워드(한글)-004719-허준영.hml
2025-10-02 15:41:38,534 - INFO - 변환 성공: 워드(한글)-004720-박성준.hwpx -> 워드(한글)-004720-박성준.hml
2025-10-02 15:41:39,082 - INFO - 변환 성공: 워드(한글)-004721-고려예.hwpx -> 워드(한글)-004721-고려예.hml
2025-10-02 15:41:39,604 - INFO - 변환 성공: 워드(한글)-004722-김은요.hwpx -> 워드(한글)-004722-김은요.hml
2025-10-02 15:41:40,228 - INFO - 변환 성공: 워드(한글)-004723-이하나.hwpx -> 워드(한글)-004723-이하나.hml
2025-10-02 15:41:40,864 - INFO - 변환 성공: 워드(한글)-004752-김정희.hwpx -> 워드(한글)-004752-김정희.hml
2025-10-02 15:41:41,487 - INFO - 변환 성공: 워드(한글)-004767-엄은찬.hwpx -> 워드(한글)-004767-엄은찬.hml
2025-10-02 15:41:42,066 - INFO - 변환 성공: 워드(한글)-004806-김세린.hwpx -> 워드(한글)-004806-김세린.hml
2025-10-02 15:41:42,751 - INFO - 변환 성공: 워드(한글)-004830-최도율.hwpx -> 워드(한글)-004830-최도율.hml
2025-10-02 15:41:43,291 - INFO - 변환 성공: 워드(한글)-004838-이용규.hwpx -> 워드(한글)-004838-이용규.hml
2025-10-02 15:41:43,841 - INFO - 변환 성공: 워드(한글)-004864-조진후.hwpx -> 워드(한글)-004864-조진후.hml
2025-10-02 15:41:44,432 - INFO - 변환 성공: 워드(한글)-005157-김준기.hwpx -> 워드(한글)-005157-김준기.hml
2025-10-02 15:41:45,054 - INFO - 변환 성공: 워드(한글)-005195-윤도현.hwpx -> 워드(한글)-005195-윤도현.hml
2025-10-02 15:41:45,700 - INFO - 변환 성공: 워드(한글)-005198-김민재.hwpx -> 워드(한글)-005198-김민재.hml
2025-10-02 15:41:46,320 - INFO - 변환 성공: 워드(한글)-005237-나민하.hwpx -> 워드(한글)-005237-나민하.hml
2025-10-02 15:41:47,016 - INFO - 변환 성공: 워드(한글)-005248-석지원.hwpx -> 워드(한글)-005248-석지원.hml
2025-10-02 15:41:47,634 - INFO - 변환 성공: 워드(한글)-005262-강민재.hwpx -> 워드(한글)-005262-강민재.hml
2025-10-02 15:41:48,260 - INFO - 변환 성공: 워드(한글)-005309-전도윤.hwpx -> 워드(한글)-005309-전도윤.hml
2025-10-02 15:41:48,929 - INFO - 변환 성공: 워드(한글)-005310-구본서.hwpx -> 워드(한글)-005310-구본서.hml
2025-10-02 15:41:49,431 - INFO - 변환 성공: 워드(한글)-005324-이호성.hwpx -> 워드(한글)-005324-이호성.hml
2025-10-02 15:41:49,821 - INFO - 변환 성공: 워드(한글)-005325-곽준우.hwpx -> 워드(한글)-005325-곽준우.hml
2025-10-02 15:41:50,343 - INFO - 변환 성공: 워드(한글)-005332-우예준.hwpx -> 워드(한글)-005332-우예준.hml
2025-10-02 15:41:50,949 - INFO - 변환 성공: 워드(한글)-005342-박지유.hwpx -> 워드(한글)-005342-박지유.hml
2025-10-02 15:41:51,613 - INFO - 변환 성공: 워드(한글)-005362-박준호.hwpx -> 워드(한글)-005362-박준호.hml
2025-10-02 15:41:52,109 - INFO - 변환 성공: 워드(한글)-005368-이다겸.hwpx -> 워드(한글)-005368-이다겸.hml
2025-10-02 15:41:52,274 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\C\DIW -> D:\project\HWP\HWP-Scoring\output\2509\C\DIW
2025-10-02 15:41:52,775 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\D\DIW -> D:\project\HWP\HWP-Scoring\output\2509\D\DIW
2025-10-02 15:41:54,094 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\D\DIW -> D:\project\HWP\HWP-Scoring\output\2509\D\DIW
2025-10-02 15:41:54,596 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2509\E\DIW -> D:\project\HWP\HWP-Scoring\output\2509\E\DIW
2025-10-02 15:41:55,839 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2509\E\DIW -> D:\project\HWP\HWP-Scoring\output\2509\E\DIW
2025-10-20 15:44:38,358 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2510\A\DIW -> D:\project\HWP\HWP-Scoring\output\2510\A\DIW
2025-10-20 15:44:42,166 - INFO - 변환 성공: DIW_2510A.hwpx -> DIW_2510A.hml
2025-10-20 15:44:42,563 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2510\A\DIW -> D:\project\HWP\HWP-Scoring\output\2510\A\DIW
2025-10-20 15:44:43,064 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2510\B\DIW -> D:\project\HWP\HWP-Scoring\output\2510\B\DIW
2025-10-20 15:44:45,742 - INFO - 변환 성공: DIW_2510B.hwpx -> DIW_2510B.hml
2025-10-20 15:44:46,100 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2510\B\DIW -> D:\project\HWP\HWP-Scoring\output\2510\B\DIW
2025-10-20 15:44:46,601 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2510\C\DIW -> D:\project\HWP\HWP-Scoring\output\2510\C\DIW
2025-10-20 15:44:47,852 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2510\C\DIW -> D:\project\HWP\HWP-Scoring\output\2510\C\DIW
2025-10-20 15:44:48,353 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2510\D\DIW -> D:\project\HWP\HWP-Scoring\output\2510\D\DIW
2025-10-20 15:44:49,569 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2510\D\DIW -> D:\project\HWP\HWP-Scoring\output\2510\D\DIW
2025-10-20 15:44:50,069 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2510\E\DIW -> D:\project\HWP\HWP-Scoring\output\2510\E\DIW
2025-10-20 15:44:51,277 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2510\E\DIW -> D:\project\HWP\HWP-Scoring\output\2510\E\DIW

View File

@@ -1 +1 @@
[{"kind":2,"language":"xpath","value":"//a:t[text()='클라우드 보안투자']/ancestor::a:r//a:ea/@typeface"},{"kind":2,"language":"xpath","value":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕'"},{"kind":2,"language":"xpath","value":"//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']"},{"kind":2,"language":"xpath","value":".//RECTANGLE//TEXT/@CharShape"},{"kind":2,"language":"xpath","value":"//RECTANGLE/SHAPEOBJECT/SIZE/@Width"},{"kind":2,"language":"xpath","value":"//HEADER//P"},{"kind":2,"language":"xpath","value":"//P[.//FIELDBEGIN[@Type='Hyperlink'] and .//CHAR[contains(., 'http')]]"},{"kind":2,"language":"xpath","value":"//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true')]/@HorzOffset"},{"kind":2,"language":"xpath","value":"//CHAR[contains(string(.), '※')]/descendant-or-self::text()"},{"kind":2,"language":"xpath","value":"//P[@ParaShape=\"17\"]/TEXT[@CharShape='7']//CHAR[string(.)]"},{"kind":2,"language":"xpath","value":"//CHAR[contains(string(.), '기타')]/text()"}]
[{"kind":2,"language":"xpath","value":"//a:t[text()='클라우드 보안투자']/ancestor::a:r//a:ea/@typeface"},{"kind":2,"language":"xpath","value":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕'"},{"kind":2,"language":"xpath","value":"//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']"},{"kind":2,"language":"xpath","value":".//RECTANGLE//TEXT/@CharShape"},{"kind":2,"language":"xpath","value":"//TEXT[CHAR[text()='http://www.ihd.or.kr']]"},{"kind":2,"language":"xpath","value":"//HEADER//P"},{"kind":2,"language":"xpath","value":"//P[.//FIELDBEGIN[@Type='Hyperlink'] and .//CHAR[contains(., 'http')]]"},{"kind":2,"language":"xpath","value":"//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true')]/@HorzOffset"},{"kind":2,"language":"xpath","value":"//CHAR[contains(string(.), '※')]/descendant-or-self::text()"},{"kind":2,"language":"xpath","value":"//P[@ParaShape=\"17\"]/TEXT[@CharShape='7']//CHAR[string(.)]"},{"kind":2,"language":"xpath","value":"//CHAR[contains(string(.), '기타')]/text()"}]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -46,65 +46,65 @@
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "치아건강특별강연회",
"value": "굴림",
"searchValue": "한방바이오박람회",
"value": "굴림",
"points": 1,
"category": "OneAnswer",
"item": "문구 (치아건강특별강연회)/① 글씨체 (굴림)"
"item": "문구 (한방바이오박람회)/① 글씨체 (굴림)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "치아건강특별강연회",
"value": "183,29,167",
"searchValue": "한방바이오박람회",
"value": "252,67,144",
"points": 2,
"category": "Color",
"item": "문구 (치아건강특별강연회)/② 채우기 : 색상(RGB:183,29,167)"
"item": "문구 (한방바이오박람회)/② 채우기 : 색상(RGB:252,67,144)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "치아건강특별강연회",
"value": "125",
"searchValue": "한방바이오박람회",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (치아건강특별강연회)/③ 크기-너비 (125 mm)"
"item": "문구 (한방바이오박람회)/③ 크기-너비 (120 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "치아건강특별강연회",
"searchValue": "한방바이오박람회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (치아건강특별강연회)/④ 크기-높이 (20 mm)"
"item": "문구 (한방바이오박람회)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "치아건강특별강연회",
"searchValue": "한방바이오박람회",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (치아건강특별강연회)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (한방바이오박람회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "치아건강특별강연회",
"searchValue": "한방바이오박람회",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (치아건강특별강연회)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (한방바이오박람회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "치아건강특별강연회",
"searchValue": "한방바이오박람회",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (치아건강특별강연회)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (한방바이오박람회)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -112,68 +112,68 @@
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "/① 모양 (2줄)"
"item": "/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "돋움체",
"searchValue": "",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "/② 글씨체 (돋움체)"
"item": "/② 글씨체 (궁서)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "149,180,174",
"searchValue": "",
"value": "115,139,236",
"points": 2,
"category": "Color",
"item": "/③ 면색 : 색상(RGB:149,180,174)"
"item": "/③ 면색 : 색상(RGB:115,139,236)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "/④ 본문과의 간격 : 3.0mm"
"item": "/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "평생 건강한 치아를 유지하기",
"searchValue": "한방바이오 박람회",
"value": "BOLD",
"points": 2,
"points": 1,
"category": "FontAttribute",
"item": "문구 (평생 건강한 치아를 유지하기)/① BOLD"
"item": "문구 (한방바이오 박람회)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "평생 건강한 치아를 유지하기",
"searchValue": "한방바이오 박람회",
"value": "ITALIC",
"points": 2,
"points": 1,
"category": "FontAttribute",
"item": "문구 (평생 건강한 치아를 유지하기)/② ITALIC"
"item": "문구 (한방바이오 박람회)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "굴림체",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "문구 ( 행사안내 )/① 글씨체 (굴림체)"
"item": "문구 ( 행사안내 )/① 글씨체 (바탕체)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
@@ -181,86 +181,86 @@
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "경복궁역 8번 출구 도보 5분",
"searchValue": "제천시청 홈페이지(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (경복궁역 8번 출구 도보 5분)/① ITALIC"
"item": "문구 (제천시청 홈페이지(http://www.ihd.or.kr))/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "경복궁역 8번 출구 도보 5분",
"searchValue": "제천시청 홈페이지(http://www.ihd.or.kr)",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (경복궁역 8번 출구 도보 5분)/② UNDERLINE"
"item": "문구 (제천시청 홈페이지(http://www.ihd.or.kr))/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Indent": 12
"Left": 12,
"Indent": 10
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (10)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 8. 23.",
"searchValue": "2025. 09. 27.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 8. 23.)/① 크기 (1400)",
"item": "문구 (2025. 09. 27.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 8. 23.",
"searchValue": "2025. 09. 27.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 8. 23.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 09. 27.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "밝은미소구강센터",
"searchValue": "한방발전추진협회",
"value": "견고딕",
"points": 1,
"category": "FontName",
"item": "문구 (밝은미소구강센터)/① 글씨체 (견고딕)"
"item": "문구 (한방발전추진협회)/① 글씨체 (견고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "밝은미소구강센터",
"value": "2400",
"searchValue": "한방발전추진협회",
"value": "2600",
"points": 1,
"category": "OneAnswer",
"item": "문구 (밝은미소구강센터)/② 크기 (2400)"
"item": "문구 (한방발전추진협회)/② 크기 (2600)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "밝은미소구강센터",
"searchValue": "한방발전추진협회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (밝은미소구강센터)/③ 정렬 (가운데 정렬)"
"item": "문구 (한방발전추진협회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "궁서",
"value": "돋움",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (궁서)"
"item": "문구 (DIAT)/① 글꼴 (돋움)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -280,7 +280,7 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "HangulSyllable",
"value": "RomanCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
@@ -302,23 +302,33 @@
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomRight",
"value": "BottomLeft",
"points": 2,
"category": "PageNumber",
"item": "오른쪽 아래",
"item": "쪽 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
"path": "//CHAR[contains(text(),'{searchValue}')]",
"searchValue": "http://www.ihd.or.kr",
"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": "",
"value": "190",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
"item": "문제 1 줄간격 190% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
@@ -351,17 +361,17 @@
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "60",
"value": "65",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (구강건강관리)/① 크기-너비 (60 mm)"
"item": "문구 (한약의 정의와 효과)/① 크기-너비 (65 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (구강건강관리)/② 크기-높이 (12 mm)"
"item": "문구 (한약의 정의와 효과)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -371,51 +381,51 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (구강건강관리)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (한약의 정의와 효과)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE/@Ratio",
"value": "20",
"value": "50",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (구강건강관리)/④ 글상자 모서리 (반원)",
"item": "문구 (한약의 정의와 효과)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "187,140,209",
"value": "62,187,204",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (구강건강관리)/⑤ 채우기 : 색상(RGB:187,140,209)"
"item": "문구 (한약의 정의와 효과)/⑤ 채우기 : 색상(RGB:62,187,204)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (구강건강관리)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (한약의 정의와 효과)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (구강건강관리)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (한약의 정의와 효과)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "맑은 고딕",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (구강건강관리)/⑧ 글씨체 (맑은 고딕)"
"item": "문구 (한약의 정의와 효과)/⑧ 글씨체 (맑은 고딕)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "2300",
"value": "1700",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (구강건강관리)/⑨ 글씨크기 (2300)",
"item": "문구 (한약의 정의와 효과)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
@@ -423,14 +433,14 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (구강건강관리)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (한약의 정의와 효과)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림C.jpg\" 삽입",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
@@ -456,88 +466,88 @@
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "22",
"value": "23",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 구강건강관리",
"value": "돋움체",
"searchValue": "1. 한약이란?",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구① (1. 구강건강관리)/① 글씨체 (돋움체)"
"item": "문구① (1. 한약이란?)/① 글씨체 (굴림)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 구강건강관리",
"searchValue": "1. 한약이란?",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 구강건강관리)/② 크기 (12pt)"
"item": "문구① (1. 한약이란?)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 구강건강관리",
"searchValue": "1. 한약이란?",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 구강건강관리)/③ 진하게"
"item": "문구① (1. 한약이란?)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 관련 연구",
"value": "돋움체",
"searchValue": "2. 한약의 효과",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구② (2. 관련 연구)/① 글씨체 (돋움체)"
"item": "문구② (2. 한약의 효과)/① 글씨체 (굴림)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 관련 연구",
"searchValue": "2. 한약의 효과",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 관련 연구)/② 크기 (1200)"
"item": "문구② (2. 한약의 효과)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 관련 연구",
"searchValue": "2. 한약의 효과",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 관련 연구)/③ 진하게"
"item": "문구② (2. 한약의 효과)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "구강미생물",
"option": "미신",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (구강미생물)/① 각주 설정 및 문구 입력"
"item": "문구 (미신)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "구강 내 존재하는 미생물(세균)들을 의미함",
"value": "굴림체",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 (구강미생물)/② 글씨체 (굴림체)"
"item": "문구 (미신)/② 글씨체 (돋움체)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "구강 내 존재하는 미생물(세균)들을 의미함",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (구강미생물)/③ 크기 (9pt)"
"item": "문구 (미신)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "구강 내 존재하는 미생물(세균)들을 의미함",
"value": "DecagonCircle",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "UserChar",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
@@ -547,6 +557,7 @@
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
@@ -559,81 +570,81 @@
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Fluoride')])",
"ignoreWord": "Fluoride",
"path": "boolean(//CHAR[contains(text(),'Organism')])",
"ignoreWord": "Organism",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Fluoride/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Organism/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["각도", "角度"],
["활용", "活用"],
["청결", "淸潔"],
["예방", "豫防"],
["융합", "融合"]
["한약", "韓藥"],
["배합", "配合"],
["채취", "採取"],
["보약", "補藥"],
["치료", "治療"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 각도(角度), ② 활용(活用), ③ 청결(淸潔), ④ 예방(豫防), ⑤ 융합(融合)"
"item": "① 한약(韓藥), ② 배합(配合), ③ 채취(採取), ④ 보약(補藥), ⑤ 치료(治療)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'질은치아')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'병을퇴치')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…칫솔질은 창아와 잇몸 경계에 45도…)>'창''치' 글자바꿈"
"item": "문구 (…사람의 질병은 퇴치할 수 있다고…)>'' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'구강건조')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'부터한약')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…건조증 구강 예방에 특별한 주의가 필요하다.…)>'건조증 / 구강' 순서바꿈"
"item": "문구 (…우리 민족은 한약만으로 예로부터 병을 치료해왔고…)>'한약만으로 / 예로부터' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "치주질환 통계표(단위:명",
"value": "중고딕",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "제목 문구 (치주질환 통계표(단위:명)/① 글씨체 (중고딕)"
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/① 글씨체 (바탕체)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "치주질환 통계표(단위:명",
"value": "1200",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (치주질환 통계표(단위:명)/② 크기 (1200)"
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/② 크기 (1100)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "치주질환 통계표(단위:명",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (치주질환 통계표(단위:명)/③ 진하게"
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "치주질환 통계표(단위:명",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (치주질환 통계표(단위:명)/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "210,191,27",
"value": "157,229,141",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:210,191,27)"
"item": "위쪽 제목 셀/① 색상(RGB:157,229,141)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -662,11 +673,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "바탕체",
"value": "중고딕",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (바탕체)",
"item": "글자모양/① 글씨체 (중고딕)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -685,20 +696,20 @@
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "AVG",
"option": "SUM",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/평균",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "꺾은선형",
"chart_type": "누적 세로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (꺾은선형)",
"item": "① 종류 (누적 세로 막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
@@ -733,36 +744,36 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "치주질환 통계표",
"searchValue": "한약에 쓰이는 약초 재배량",
"value": "궁서체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (치주질환 통계표)/① 글씨체 (궁서체)"
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/① 글씨체 (궁서체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "치주질환 통계표",
"searchValue": "한약에 쓰이는 약초 재배량",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (치주질환 통계표)/② 크기 (1300)"
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/② 크기 (1300)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "치주질환 통계표",
"searchValue": "한약에 쓰이는 약초 재배량",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (치주질환 통계표)/③ 기울임",
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"value": "굴림체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (궁서)"
"item": "X축/① 글꼴 (굴림체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -782,10 +793,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"value": "굴림체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (궁서)"
"item": "Y축/① 글꼴 (굴림체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -805,10 +816,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "궁서",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (궁서)"
"item": "범례/① 글꼴 (굴림체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -46,65 +46,65 @@
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "노인일자리참여자모집",
"value": "휴먼옛체",
"searchValue": "즐거운컬러푸드영양교실",
"value": "궁서체",
"points": 1,
"category": "OneAnswer",
"item": "문구 (노인일자리참여자모집)/① 글씨체 (휴먼옛체)"
"item": "문구 (즐거운컬러푸드영양교실)/① 글씨체 (궁서체)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "노인일자리참여자모집",
"value": "199,58,82",
"searchValue": "즐거운컬러푸드영양교실",
"value": "51,63,153",
"points": 2,
"category": "Color",
"item": "문구 (노인일자리참여자모집)/② 채우기 : 색상(RGB:199,58,82)"
"item": "문구 (즐거운컬러푸드영양교실)/② 채우기 : 색상(RGB:51,63,153)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "노인일자리참여자모집",
"value": "120",
"searchValue": "즐거운컬러푸드영양교실",
"value": "130",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (노인일자리참여자모집)/③ 크기-너비 (120 mm)"
"item": "문구 (즐거운컬러푸드영양교실)/③ 크기-너비 (130 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "노인일자리참여자모집",
"searchValue": "즐거운컬러푸드영양교실",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (노인일자리참여자모집)/④ 크기-높이 (20 mm)"
"item": "문구 (즐거운컬러푸드영양교실)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "노인일자리참여자모집",
"searchValue": "즐거운컬러푸드영양교실",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (노인일자리참여자모집)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (즐거운컬러푸드영양교실)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "노인일자리참여자모집",
"searchValue": "즐거운컬러푸드영양교실",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (노인일자리참여자모집)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (즐거운컬러푸드영양교실)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "노인일자리참여자모집",
"searchValue": "즐거운컬러푸드영양교실",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (노인일자리참여자모집)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (즐거운컬러푸드영양교실)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -116,23 +116,23 @@
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "고딕",
"searchValue": "",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "어/② 글씨체 (고딕)"
"item": "어/② 글씨체 (맑은 고딕)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "137,221,202",
"searchValue": "",
"value": "105,231,82",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:137,221,202)"
"item": "어/③ 면색 : 색상(RGB:105,231,82)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
@@ -141,126 +141,126 @@
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "어르신들에게 다양한 일자리와 봉사활동 기회",
"searchValue": "즐거운 컬러푸드 영양교실",
"value": "BOLD",
"points": 2,
"points": 1,
"category": "FontAttribute",
"item": "문구 (어르신들에게 다양한 일자리와 봉사활동 기회)/① BOLD"
"item": "문구 (즐거운 컬러푸드 영양교실)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "어르신들에게 다양한 일자리와 봉사활동 기회",
"value": "UNDERLINE",
"points": 2,
"searchValue": "즐거운 컬러푸드 영양교실",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (어르신들에게 다양한 일자리와 봉사활동 기회)/② UNDERLINE"
"item": "문구 (즐거운 컬러푸드 영양교실)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "모집안내",
"value": "궁서체",
"searchValue": "행사안내",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 (▶ 모집안내 )/① 글씨체 (궁서체)"
"item": "문구 (♤ 행사안내 )/① 글씨체 (굴림체)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
"match_str": "모집안내",
"match_str": "행사안내",
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 (▶ 모집안내 )/② 정렬 (가운데 정렬)"
"item": "문구 (♤ 행사안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "공익활동형, 사회서비스형, 공동체사업단",
"value": "BOLD",
"searchValue": "홈페이지(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (공익활동형, 사회서비스형, 공동체사업단)/① BOLD"
"item": "문구 (홈페이지(http://www.ihd.or.kr))/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "공익활동형, 사회서비스형, 공동체사업단",
"value": "ITALIC",
"searchValue": "홈페이지(http://www.ihd.or.kr)",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (공익활동형, 사회서비스형, 공동체사업단)/② ITALIC"
"item": "문구 (홈페이지(http://www.ihd.or.kr))/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Left": 18,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (18), 내어쓰기 (12)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 08. 23",
"value": "1300",
"searchValue": "2025. 10. 16.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 23)/① 크기 (1300)",
"item": "문구 (2025. 10. 16.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 08. 23",
"searchValue": "2025. 10. 16.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 23)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 10. 16.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "시니어클럽",
"value": "궁서",
"searchValue": "용일동보건소",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구 (시니어클럽)/① 글씨체 (궁서)"
"item": "문구 (용일동보건소)/① 글씨체 (중고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "시니어클럽",
"value": "2400",
"searchValue": "용일동보건소",
"value": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (시니어클럽)/② 크기 (2400)"
"item": "문구 (용일동보건소)/② 크기 (2200)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "시니어클럽",
"searchValue": "용일동보건소",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (시니어클럽)/③ 정렬 (가운데 정렬)"
"item": "문구 (용일동보건소)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "굴림",
"value": "돋움체",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (굴림)"
"item": "문구 (DIAT)/① 글꼴 (돋움체)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -280,7 +280,7 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "HangulSyllable",
"value": "LatinCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
@@ -309,13 +309,23 @@
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
"path": "//CHAR[contains(text(),'{searchValue}')]",
"searchValue": "http://www.ihd.or.kr",
"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": "",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 180% 설정",
@@ -351,17 +361,17 @@
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "60",
"value": "55",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (노인일자리)/① 크기-너비 (60 mm)"
"item": "문구 (다양한 컬러푸드)/① 크기-너비 (55 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (노인일자리)/② 크기-높이 (12 mm)"
"item": "문구 (다양한 컬러푸드)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -371,51 +381,51 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (노인일자리)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (다양한 컬러푸드)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE/@Ratio",
"value": "50",
"value": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (노인일자리)/④ 글상자 모서리 (반원)",
"item": "문구 (다양한 컬러푸드)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "211,251,193",
"value": "194,133,195",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (노인일자리)/⑤ 채우기 : 색상(RGB:211,251,193)"
"item": "문구 (다양한 컬러푸드)/⑤ 채우기 : 색상(RGB:194,133,195)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (노인일자리)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (다양한 컬러푸드)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (노인일자리)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (다양한 컬러푸드)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "맑은 고딕",
"value": "고딕",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (노인일자리)/⑧ 글씨체 (맑은고딕)"
"item": "문구 (다양한 컬러푸드)/⑧ 글씨체 (고딕)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "2200",
"value": "1600",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (노인일자리)/⑨ 글씨크기 (2200)",
"item": "문구 (다양한 컬러푸드)/⑨ 글씨크기 (1600)",
"desc": "1pt당 100"
},
"13": {
@@ -423,7 +433,7 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (노인일자리)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (다양한 컬러푸드)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
@@ -435,10 +445,10 @@
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 mm)"
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
@@ -449,95 +459,95 @@
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"value": "2",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 2mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "22",
"value": "23",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 필요성",
"value": "돋움",
"searchValue": "1. 컬러푸드란?",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구① (1. 필요성)/① 글씨체 (돋움)"
"item": "문구① (1. 컬러푸드란?)/① 글씨체 (굴림)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 필요성",
"value": "1200",
"searchValue": "1. 컬러푸드란?",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 필요성)/② 크기 (1200)"
"item": "문구① (1. 컬러푸드란?)/② 크기 (1100)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 필요성",
"searchValue": "1. 컬러푸드란?",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 필요성)/③ 진하게"
"item": "문구① (1. 컬러푸드란?)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2.주요 노인일자리사업",
"value": "돋움",
"searchValue": "2. 컬러푸드의 효능",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구② (2.주요 노인일자리사업)/① 글씨체 (돋움)"
"item": "문구② (2. 컬러푸드의 효능)/① 글씨체 (굴림)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2.주요 노인일자리사업",
"value": "1200",
"searchValue": "2. 컬러푸드의 효능",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2.주요 노인일자리사업)/② 크기 (1200)"
"item": "문구② (2. 컬러푸드의 효능)/② 크기 (1100)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2.주요 노인일자리사업",
"searchValue": "2. 컬러푸드의 효능",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2.주요 노인일자리사업)/③ 진하게"
"item": "문구② (2. 컬러푸드의 효능)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "세계보건기구",
"option": "항산화 작용",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (세계보건기구)/① 각주 설정 및 문구 입력"
"item": "문구 (항산화 작용)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "국제 공중보건을 책임지는 유엔 전문 기구",
"value": "궁서",
"searchValue": "산화를 억제하는 작용",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (세계보건기구)/② 글씨체 (궁서)"
"item": "문구 (항산화 작용)/② 글씨체 (굴림)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "국제 공중보건을 책임지는 유엔 전문 기구",
"searchValue": "산화를 억제하는 작용",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (세계보건기구)/③ 크기 (9pt)"
"item": "문구 (항산화 작용)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "국제 공중보건을 책임지는 유엔 전문 기구",
"value": "CircledDigit",
"searchValue": "산화를 억제하는 작용",
"value": "UserChar",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
@@ -547,6 +557,7 @@
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
@@ -555,85 +566,86 @@
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Improvement')])",
"ignoreWord": "Improvement",
"path": "boolean(//CHAR[contains(text(),'Phytochemical')])",
"ignoreWord": "Phytochemical",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Improvement/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Phytochemical/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["영위", "營爲"],
["소득", "所得"],
["필수적", "必須的"],
["창출", "創出"],
["증진", "增進"]
["미생물", "微生物"],
["해충", "害蟲"],
["재생", "再生"],
["노화", "老化"],
["성분", "成分"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 영위(營爲), ② 소득(所得), ③ 필수적(必須的), ④ 창출(創出), ⑤ 증진(增進)"
"item": "① 미생물(微生物), ② 해충(害蟲), ③ 재생(再生), ④ 노화(老化), ⑤ 성분(成分)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'계를유지')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'신의몸을')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…사회적 고립을 예방하고 대인관계는 유지하며…)>'' → '' 글자바꿈"
"item": "문구 (…해충 등으로부터 자신과 몸을 보호하는…)>'' → '' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'존감회복')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'관을튼튼')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…어르신들의 회복과 자존감 행복한 노후생활을…)>'회복과 / 자존감' 순서바꿈"
"item": "문구 (…튼튼하게 혈관을 하고…)>'튼튼하게' / '혈관을' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "노인일자리 창출 현황(예산:십억원)",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "제목 문구 (노인일자리 창출 현황(예산:십억원))/① 글씨체 (굴림체)"
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/① 글씨체 (굴림체)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "노인일자리 창출 현황(예산:십억원)",
"value": "1200",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (노인일자리 창출 현황(예산:십억원))/② 크기 (1200)"
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/② 크기 (1100)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "노인일자리 창출 현황(예산:십억원)",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (노인일자리 창출 현황(예산:십억원))/③ 진하게"
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "노인일자리 창출 현황(예산:십억원)",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (노인일자리 창출 현황(예산:십억원))/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "233,215,77",
"value": "253,164,95",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:233,215,77)"
"item": "위쪽 제목 셀/① 색상(RGB:253,164,95)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -662,11 +674,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "맑은 고딕",
"value": "궁서",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (맑은 고딕)",
"item": "글자모양/① 글씨체 (궁서)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -685,7 +697,7 @@
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "SUM",
"option": "AVG",
"value": true,
"points": 4,
"category": "Boolean",
@@ -733,36 +745,36 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "노인 일자리 창출",
"value": "궁서체",
"searchValue": "과일야채 섭취량 비교",
"value": "돋움체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (노인 일자리 창출)/① 글씨체 (궁서체)"
"item": "제목 문구 (과일야채 섭취량 비교)/① 글씨체 (돋움체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "노인 일자리 창출",
"value": "1300",
"searchValue": "과일야채 섭취량 비교",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (노인 일자리 창출)/② 크기 (1300)"
"item": "제목 문구 (과일야채 섭취량 비교)/② 크기 (1400)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "노인 일자리 창출",
"searchValue": "과일야채 섭취량 비교",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (노인 일자리 창출)/③ 기울임",
"item": "제목 문구 (과일야채 섭취량 비교)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"value": "돋움",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (굴림)"
"item": "X축/① 글꼴 (돋움)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -782,10 +794,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"value": "돋움",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (굴림)"
"item": "Y축/① 글꼴 (돋움)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -805,10 +817,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "굴림",
"value": "돋움",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (굴림)"
"item": "범례/① 글꼴 (돋움)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -1,840 +0,0 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "공주맛밤수확체험행사",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (공주맛밤수확체험행사)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "공주맛밤수확체험행사",
"value": "51,69,153",
"points": 2,
"category": "Color",
"item": "문구 (공주맛밤수확체험행사)/② 채우기 : 색상(RGB:51,69,153)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "공주맛밤수확체험행사",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (공주맛밤수확체험행사)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "공주맛밤수확체험행사",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (공주맛밤수확체험행사)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "공주맛밤수확체험행사",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (공주맛밤수확체험행사)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "공주맛밤수확체험행사",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (공주맛밤수확체험행사)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "공주맛밤수확체험행사",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (공주맛밤수확체험행사)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "공",
"value": {
"Height": 2800,
"Width": 2800
},
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "공/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "공",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "공/② 글씨체 (굴림)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "공",
"value": "219,207,102",
"points": 2,
"category": "Color",
"item": "공/③ 면색 : 색상(RGB:219,207,102)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "공",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "공/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "전국적으로 사랑받는 지역 특산물",
"value": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (전국적으로 사랑받는 지역 특산물)/① UNDERLINE"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "전국적으로 사랑받는 지역 특산물",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (전국적으로 사랑받는 지역 특산물)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "■",
"char2": "■",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① ■, ② ■, ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (■ 행사안내 ■)/① 글씨체 (돋움)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
"match_str": "행사안내",
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 (■ 행사안내 ■)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025년 09월 20일(토) 13:30 ~ 17:30",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025년 09월 20일(토) 13:30 ~ 17:30)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025년 09월 20일(토) 13:30 ~ 17:30",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025년 09월 20일(토) 13:30 ~ 17:30)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "신청안내",
"value": {
"Left": 10,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 신청안내… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 08. 27.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 27.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 08. 27.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 27.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "공주시청농촌활력과",
"value": "견고딕",
"points": 1,
"category": "FontName",
"item": "문구 (공주시청농촌활력과)/① 글씨체 (견고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "공주시청농촌활력과",
"value": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (공주시청농촌활력과)/② 크기 (2200)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "공주시청농촌활력과",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (공주시청농촌활력과)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움체)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "HangulSyllable",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
}
},
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "200",
"first_word": "공",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
"1": {
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
"value": {
"header_inside": true,
"all_double_slim": true
},
"points": 4,
"category": "PageBorder",
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
},
"2": {
"path": "count(//SECTION)>1",
"value": true,
"points": 3,
"category": "Boolean",
"item": "① 구역나누기",
"desc": "섹션이 1개 이상이면 점수부여"
},
"3": {
"path": "TEXT/COLDEF/@Count",
"value": "2",
"points": 3,
"category": "TwoColumn",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "아름다운 계절, 가을",
"value": "65",
"points": 2,
"category": "mmSize",
"item": "문구 (아름다운 계절, 가을)/① 크기-너비 (65 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "아름다운 계절, 가을",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (아름다운 계절, 가을)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "아름다운 계절, 가을",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "LineShape",
"item": "문구 (아름다운 계절, 가을)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "아름다운 계절, 가을",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "아름다운 계절, 가을",
"value": "249,173,168",
"points": 2,
"category": "Color",
"item": "문구 (아름다운 계절, 가을)/⑤ 채우기 : 색상(RGB:249,173,168)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "아름다운 계절, 가을",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "아름다운 계절, 가을",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "아름다운 계절, 가을",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 (아름다운 계절, 가을)/⑧ 글씨체 (굴림체)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "아름다운 계절, 가을",
"value": "1700",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "아름다운 계절, 가을",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@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. 가을이란?)/② 크기 (12pt)"
},
"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": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Economy')])",
"ignoreWord": "Economy",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Economy/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["제례", "祭禮"],
["저장", "貯藏"],
["성숙", "成熟"],
["관광", "觀光"],
["과수", "果樹"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 제례(祭禮), ② 저장(貯藏), ③ 성숙(成熟), ④ 관광(觀光), ⑤ 과수(果樹)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'색의단풍')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…여러 색이 단풍으로…)>'이' → '의' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'을은대체')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…대한민국의 대체로 가을은…)>'대체로' / '가을은' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/① 글씨체 (굴림)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/② 크기 (1100)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "154,235,85",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:154,235,85)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "위쪽 제목 셀/② 진하게",
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
},
"39": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
"value": "DoubleSlim",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선"
},
"40": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
"value": "0.5mm",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "궁서",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (궁서)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "SUM",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "묶은세로막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (묶은세로막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "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": "i",
"searchValue": "가을 명산 입장객 수",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (가을 명산 입장객 수)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "b",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "b",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "b",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

View File

@@ -1,841 +0,0 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "소셜네트워킹전략컨퍼런스",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜네트워킹전략컨퍼런스)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "소셜네트워킹전략컨퍼런스",
"value": "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/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "최",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "2/② 글씨체 (궁서)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "최",
"value": "218,202,48",
"points": 2,
"category": "Color",
"item": "2/③ 면색 : 색상(RGB:218,202,48)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "최",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "2/④ 본문과의 간격 : 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": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 08. 30.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 08. 30.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/② 정렬 (가운데 정렬)"
},
"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": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "Digit",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
}
},
"30": {
"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//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "소셜 네트워킹 서비스",
"value": "70",
"points": 2,
"category": "mmSize",
"item": "문구 (소셜 네트워킹 서비스)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "소셜 네트워킹 서비스",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (소셜 네트워킹 서비스)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "소셜 네트워킹 서비스",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "LineShape",
"item": "문구 (소셜 네트워킹 서비스)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "소셜 네트워킹 서비스",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "소셜 네트워킹 서비스",
"value": "90,233,53",
"points": 2,
"category": "Color",
"item": "문구 (소셜 네트워킹 서비스)/⑤ 채우기 : 색상(RGB:90,233,53)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "소셜 네트워킹 서비스",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "소셜 네트워킹 서비스",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "소셜 네트워킹 서비스",
"value": "궁서체",
"points": 1,
"category": "FontName",
"item": "문구 (소셜 네트워킹 서비스)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "소셜 네트워킹 서비스",
"value": "1800",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/⑨ 글씨크기 (1800)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "소셜 네트워킹 서비스",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"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": "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": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.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. 소셜 네트워킹 서비스)/② 크기 (12pt)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 소셜 네트워킹 서비스",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 소셜 네트워킹 서비스)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 소셜 네트워킹 서비스 활용",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/① 글씨체 (굴림체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 소셜 네트워킹 서비스 활용",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 소셜 네트워킹 서비스 활용",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "마이크로블로깅",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (마이크로블로깅)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (마이크로블로깅)/② 글씨체 (돋움)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (마이크로블로깅)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
"value": "CircledLatinCapital",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Marketing')])",
"ignoreWord": "Marketing",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Marketing/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["방식", "方式"],
["활성화", "活性化"],
["획득", "獲得"],
["교류", "交流"],
["절감", "節減"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 방식(方式), ② 활성화(活性化), ③ 획득(獲得), ④ 교류(交流), ⑤ 절감(節減)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'적인매체')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…대표적의 매체로…)→'의' → '인' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'인이필요')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…필요한 개인이 정보를…)→'필요한' / '개인이' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/① 글씨체 (중고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "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}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "AVG",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "꺾은선형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (꺾은선형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "스마트폰 가입자 수",
"value": "궁서체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (스마트폰 가입자 수)/① 글씨체 (궁서체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "스마트폰 가입자 수",
"value": "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",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -1,842 +0,0 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "2025청소년요리경연대회",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025청소년요리경연대회)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "2025청소년요리경연대회",
"value": "246,149,102",
"points": 2,
"category": "Color",
"item": "문구 (2025청소년요리경연대회)/② 채우기 : 색상(RGB:246,149,102)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "2025청소년요리경연대회",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (2025청소년요리경연대회)/③ 크기-너비 (120 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "2025청소년요리경연대회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (2025청소년요리경연대회)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "2025청소년요리경연대회",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (2025청소년요리경연대회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "2025청소년요리경연대회",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (2025청소년요리경연대회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "2025청소년요리경연대회",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (2025청소년요리경연대회)/⑦ 글맵시모양 (육안확인)"
},
"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": "224,217,93",
"points": 2,
"category": "Color",
"item": "청/③ 면색 : 색상(RGB:224,217,93)"
},
"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": "청소년 문화 축제 홈페이지(http://www.ihd.or.kr",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (청소년 문화 축제 홈페이지(http://www.ihd.or.kr)/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "청소년 문화 축제 홈페이지(http://www.ihd.or.kr",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (청소년 문화 축제 홈페이지(http://www.ihd.or.kr)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 08. 30.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 08. 30.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "청소년문화축제추진위원회",
"value": "궁서체",
"points": 1,
"category": "FontName",
"item": "문구 (청소년문화축제추진위원회)/① 글씨체 (궁서체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "청소년문화축제추진위원회",
"value": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (청소년문화축제추진위원회)/② 크기 (2200)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "청소년문화축제추진위원회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (청소년문화축제추진위원회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (궁서)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "DecagonCircle",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomRight",
"points": 2,
"category": "PageNumber",
"item": "오른쪽 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
}
},
"30": {
"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//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "요리의 세계",
"value": "50",
"points": 2,
"category": "mmSize",
"item": "문구 (요리의 세계)/① 크기-너비 (50 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "요리의 세계",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (요리의 세계)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "요리의 세계",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "LineShape",
"item": "문구 (요리의 세계)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "요리의 세계",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "요리의 세계",
"value": "95,206,218",
"points": 2,
"category": "Color",
"item": "문구 (요리의 세계)/⑤ 채우기 : 색상(RGB:95,206,218)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "요리의 세계",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "요리의 세계",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "요리의 세계",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "문구 (요리의 세계)/⑧ 글씨체 (맑은 고딕)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "요리의 세계",
"value": "1700",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "요리의 세계",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림C.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@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. 한국 요리)/② 크기 (12pt)"
},
"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": "CircledHangulSyllable",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"㉮,㉯,㉰": "CircledHangulSyllable",
"1,2,3": "Digit",
"1),2),3)": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Culture')])",
"ignoreWord": "Culture",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Culture/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["풍토", "風土"],
["발효", "醱酵"],
["재배", "栽培"],
["계절", "季節"],
["역할", "役割"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 풍토(風土), ② 발효(醱酵), ③ 재배(栽培), ④ 계절(季節), ⑤ 역할(役割)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'쌈,')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…생채, 찜, 나물…)→'찜 → 쌈' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'란과치즈')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…반죽에 치즈를 계란과 넣어…)→'치즈를 / 계란과' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "부문별 참가자 현황",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "제목 문구 (부문별 참가자 현황)/① 글씨체 (바탕체)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "부문별 참가자 현황",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "부문별 참가자 현황",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (부문별 참가자 현황)/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "부문별 참가자 현황",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "231,93,64",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:231,93,64)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "위쪽 제목 셀/② 진하게",
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
},
"39": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
"value": "DoubleSlim",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선"
},
"40": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
"value": "0.5mm",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "돋움체",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (돋움체)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "SUM",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/평균",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "묶은 세로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (묶은 세로 막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "부문별 참가자 현황",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/① 글씨체 (굴림체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "부문별 참가자 현황",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/② 크기 (1400)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "부문별 참가자 현황",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (궁서)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (궁서)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (궁서)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

View File

@@ -1,840 +0,0 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "공주맛밤수확체험행사",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (공주맛밤수확체험행사)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "공주맛밤수확체험행사",
"value": "51,69,153",
"points": 2,
"category": "Color",
"item": "문구 (공주맛밤수확체험행사)/② 채우기 : 색상(RGB:51,69,153)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "공주맛밤수확체험행사",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (공주맛밤수확체험행사)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "공주맛밤수확체험행사",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (공주맛밤수확체험행사)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "공주맛밤수확체험행사",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (공주맛밤수확체험행사)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "공주맛밤수확체험행사",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (공주맛밤수확체험행사)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "공주맛밤수확체험행사",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (공주맛밤수확체험행사)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "공",
"value": {
"Height": 2800,
"Width": 2800
},
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "공/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "공",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "공/② 글씨체 (굴림)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "공",
"value": "219,207,102",
"points": 2,
"category": "Color",
"item": "공/③ 면색 : 색상(RGB:219,207,102)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "공",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "공/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "전국적으로 사랑받는 지역 특산물",
"value": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (전국적으로 사랑받는 지역 특산물)/① UNDERLINE"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "전국적으로 사랑받는 지역 특산물",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (전국적으로 사랑받는 지역 특산물)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "■",
"char2": "■",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① ■, ② ■, ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (■ 행사안내 ■)/① 글씨체 (돋움)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
"match_str": "행사안내",
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 (■ 행사안내 ■)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025년 09월 20일(토) 13:30 ~ 17:30",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025년 09월 20일(토) 13:30 ~ 17:30)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025년 09월 20일(토) 13:30 ~ 17:30",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025년 09월 20일(토) 13:30 ~ 17:30)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "신청안내",
"value": {
"Left": 10,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 신청안내… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 08. 27.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 27.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 08. 27.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 27.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "공주시청농촌활력과",
"value": "견고딕",
"points": 1,
"category": "FontName",
"item": "문구 (공주시청농촌활력과)/① 글씨체 (견고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "공주시청농촌활력과",
"value": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (공주시청농촌활력과)/② 크기 (2200)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "공주시청농촌활력과",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (공주시청농촌활력과)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움체)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "HangulSyllable",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
}
},
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "200",
"first_word": "공",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
"1": {
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
"value": {
"header_inside": true,
"all_double_slim": true
},
"points": 4,
"category": "PageBorder",
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
},
"2": {
"path": "count(//SECTION)>1",
"value": true,
"points": 3,
"category": "Boolean",
"item": "① 구역나누기",
"desc": "섹션이 1개 이상이면 점수부여"
},
"3": {
"path": "TEXT/COLDEF/@Count",
"value": "2",
"points": 3,
"category": "TwoColumn",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "아름다운 계절, 가을",
"value": "65",
"points": 2,
"category": "mmSize",
"item": "문구 (아름다운 계절, 가을)/① 크기-너비 (65 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "아름다운 계절, 가을",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (아름다운 계절, 가을)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "아름다운 계절, 가을",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "LineShape",
"item": "문구 (아름다운 계절, 가을)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "아름다운 계절, 가을",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "아름다운 계절, 가을",
"value": "249,173,168",
"points": 2,
"category": "Color",
"item": "문구 (아름다운 계절, 가을)/⑤ 채우기 : 색상(RGB:249,173,168)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "아름다운 계절, 가을",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "아름다운 계절, 가을",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "아름다운 계절, 가을",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 (아름다운 계절, 가을)/⑧ 글씨체 (굴림체)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "아름다운 계절, 가을",
"value": "1700",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "아름다운 계절, 가을",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (아름다운 계절, 가을)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@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. 가을이란?)/② 크기 (12pt)"
},
"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": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Economy')])",
"ignoreWord": "Economy",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Economy/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["제례", "祭禮"],
["저장", "貯藏"],
["성숙", "成熟"],
["관광", "觀光"],
["과수", "果樹"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 제례(祭禮), ② 저장(貯藏), ③ 성숙(成熟), ④ 관광(觀光), ⑤ 과수(果樹)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'색의단풍')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…여러 색이 단풍으로…)>'이' → '의' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'을은대체')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…대한민국의 대체로 가을은…)>'대체로' / '가을은' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/① 글씨체 (굴림)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/② 크기 (1100)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "가을 명산 입장객 수(기준: 명)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (가을 명산 입장객 수(기준: 명))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "154,235,85",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:154,235,85)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "위쪽 제목 셀/② 진하게",
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
},
"39": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
"value": "DoubleSlim",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선"
},
"40": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
"value": "0.5mm",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "궁서",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (궁서)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "SUM",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "묶은세로막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (묶은세로막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "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": "i",
"searchValue": "가을 명산 입장객 수",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (가을 명산 입장객 수)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "b",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "b",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "b",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

View File

@@ -1,841 +0,0 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "소셜네트워킹전략컨퍼런스",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜네트워킹전략컨퍼런스)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "소셜네트워킹전략컨퍼런스",
"value": "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/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "최",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "2/② 글씨체 (궁서)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "최",
"value": "218,202,48",
"points": 2,
"category": "Color",
"item": "2/③ 면색 : 색상(RGB:218,202,48)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "최",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "2/④ 본문과의 간격 : 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": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 08. 30.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 08. 30.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/② 정렬 (가운데 정렬)"
},
"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": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "Digit",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
}
},
"30": {
"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//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "소셜 네트워킹 서비스",
"value": "70",
"points": 2,
"category": "mmSize",
"item": "문구 (소셜 네트워킹 서비스)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "소셜 네트워킹 서비스",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (소셜 네트워킹 서비스)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "소셜 네트워킹 서비스",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "LineShape",
"item": "문구 (소셜 네트워킹 서비스)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "소셜 네트워킹 서비스",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "소셜 네트워킹 서비스",
"value": "90,233,53",
"points": 2,
"category": "Color",
"item": "문구 (소셜 네트워킹 서비스)/⑤ 채우기 : 색상(RGB:90,233,53)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "소셜 네트워킹 서비스",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "소셜 네트워킹 서비스",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "소셜 네트워킹 서비스",
"value": "궁서체",
"points": 1,
"category": "FontName",
"item": "문구 (소셜 네트워킹 서비스)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "소셜 네트워킹 서비스",
"value": "1800",
"points": 1,
"category": "OneAnswer",
"item": "문구 (소셜 네트워킹 서비스)/⑨ 글씨크기 (1800)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "소셜 네트워킹 서비스",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"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": "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": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.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. 소셜 네트워킹 서비스)/② 크기 (12pt)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 소셜 네트워킹 서비스",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 소셜 네트워킹 서비스)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 소셜 네트워킹 서비스 활용",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/① 글씨체 (굴림체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 소셜 네트워킹 서비스 활용",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 소셜 네트워킹 서비스 활용",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "마이크로블로깅",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (마이크로블로깅)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (마이크로블로깅)/② 글씨체 (돋움)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (마이크로블로깅)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
"value": "CircledLatinCapital",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Marketing')])",
"ignoreWord": "Marketing",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Marketing/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["방식", "方式"],
["활성화", "活性化"],
["획득", "獲得"],
["교류", "交流"],
["절감", "節減"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 방식(方式), ② 활성화(活性化), ③ 획득(獲得), ④ 교류(交流), ⑤ 절감(節減)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'적인매체')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…대표적의 매체로…)→'의' → '인' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'인이필요')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…필요한 개인이 정보를…)→'필요한' / '개인이' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/① 글씨체 (중고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "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}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "AVG",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "꺾은선형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (꺾은선형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "스마트폰 가입자 수",
"value": "궁서체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (스마트폰 가입자 수)/① 글씨체 (궁서체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "스마트폰 가입자 수",
"value": "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",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

View File

@@ -1,842 +0,0 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "2025청소년요리경연대회",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025청소년요리경연대회)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "2025청소년요리경연대회",
"value": "246,149,102",
"points": 2,
"category": "Color",
"item": "문구 (2025청소년요리경연대회)/② 채우기 : 색상(RGB:246,149,102)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "2025청소년요리경연대회",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (2025청소년요리경연대회)/③ 크기-너비 (120 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "2025청소년요리경연대회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (2025청소년요리경연대회)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "2025청소년요리경연대회",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (2025청소년요리경연대회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "2025청소년요리경연대회",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (2025청소년요리경연대회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "2025청소년요리경연대회",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (2025청소년요리경연대회)/⑦ 글맵시모양 (육안확인)"
},
"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": "224,217,93",
"points": 2,
"category": "Color",
"item": "청/③ 면색 : 색상(RGB:224,217,93)"
},
"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": "청소년 문화 축제 홈페이지(http://www.ihd.or.kr",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (청소년 문화 축제 홈페이지(http://www.ihd.or.kr)/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "청소년 문화 축제 홈페이지(http://www.ihd.or.kr",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (청소년 문화 축제 홈페이지(http://www.ihd.or.kr)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 08. 30.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 08. 30.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 08. 30.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "청소년문화축제추진위원회",
"value": "궁서체",
"points": 1,
"category": "FontName",
"item": "문구 (청소년문화축제추진위원회)/① 글씨체 (궁서체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "청소년문화축제추진위원회",
"value": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (청소년문화축제추진위원회)/② 크기 (2200)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "청소년문화축제추진위원회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (청소년문화축제추진위원회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (궁서)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "DecagonCircle",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomRight",
"points": 2,
"category": "PageNumber",
"item": "오른쪽 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
}
},
"30": {
"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//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "요리의 세계",
"value": "50",
"points": 2,
"category": "mmSize",
"item": "문구 (요리의 세계)/① 크기-너비 (50 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "요리의 세계",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (요리의 세계)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "요리의 세계",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "LineShape",
"item": "문구 (요리의 세계)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "요리의 세계",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "요리의 세계",
"value": "95,206,218",
"points": 2,
"category": "Color",
"item": "문구 (요리의 세계)/⑤ 채우기 : 색상(RGB:95,206,218)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "요리의 세계",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "요리의 세계",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "요리의 세계",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "문구 (요리의 세계)/⑧ 글씨체 (맑은 고딕)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "요리의 세계",
"value": "1700",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "요리의 세계",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (요리의 세계)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림C.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@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. 한국 요리)/② 크기 (12pt)"
},
"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": "CircledHangulSyllable",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"㉮,㉯,㉰": "CircledHangulSyllable",
"1,2,3": "Digit",
"1),2),3)": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Culture')])",
"ignoreWord": "Culture",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Culture/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["풍토", "風土"],
["발효", "醱酵"],
["재배", "栽培"],
["계절", "季節"],
["역할", "役割"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 풍토(風土), ② 발효(醱酵), ③ 재배(栽培), ④ 계절(季節), ⑤ 역할(役割)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'쌈,')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…생채, 찜, 나물…)→'찜 → 쌈' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'란과치즈')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…반죽에 치즈를 계란과 넣어…)→'치즈를 / 계란과' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "부문별 참가자 현황",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "제목 문구 (부문별 참가자 현황)/① 글씨체 (바탕체)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "부문별 참가자 현황",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "부문별 참가자 현황",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (부문별 참가자 현황)/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "부문별 참가자 현황",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "231,93,64",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:231,93,64)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "위쪽 제목 셀/② 진하게",
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
},
"39": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
"value": "DoubleSlim",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선"
},
"40": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
"value": "0.5mm",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "돋움체",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (돋움체)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "SUM",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/평균",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "묶은 세로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (묶은 세로 막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "부문별 참가자 현황",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/① 글씨체 (굴림체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "부문별 참가자 현황",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/② 크기 (1400)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "부문별 참가자 현황",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (부문별 참가자 현황)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (궁서)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (궁서)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (궁서)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}