[2506회-수시5] 채점완료 / [2506회정기] 채점기준표 작성중

This commit is contained in:
2025-07-01 17:49:13 +09:00
parent 61daad42bd
commit a0de6cf10b
54 changed files with 64484 additions and 758 deletions

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 = "2506_3"
source_directory = r"C:\Users\dra\project\data\2506회 수시3(제주)\답안파일"
exam_round = "2506"
source_directory = r"C:\Users\dra\project\HWP\HWP-Scoring\회차별채점자료\2506\hwp_정답"
target_directory_a = f".\\input\\{exam_round}\\A" # '1교시'의 타겟 경로
target_directory_b = f".\\input\\{exam_round}\\B" # '2교시'의 타겟 경로

View File

@@ -162,7 +162,7 @@ if __name__ == "__main__":
exam_rounds = [
# "2506_3",
"2505"
"2506"
]
delete_gen_py()
@@ -175,10 +175,10 @@ if __name__ == "__main__":
for exam_round in exam_rounds:
folders = [
(f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\A\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\A\\DIW"),
# (f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\B\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\B\\DIW"),
# (f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\C\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\C\\DIW"),
# (f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\D\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\D\\DIW"),
# (f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\E\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\E\\DIW"),
(f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\B\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\B\\DIW"),
(f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\C\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\C\\DIW"),
(f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\D\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\D\\DIW"),
(f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\E\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\E\\DIW"),
]
# 변환 실행

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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": "49,95,151",
"searchValue": "생활가전수거캠페인",
"value": "209,114,108",
"points": 2,
"category": "Color",
"item": "문구 (여름방학특집해양스포츠체험교실)/② 채우기 : 색상(RGB:49,95,151)"
"item": "문구 (생활가전수거캠페인)/② 채우기 : 색상(RGB:209,114,108)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "여름방학특집해양스포츠체험교실",
"value": "120",
"searchValue": "생활가전수거캠페인",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (여름방학특집해양스포츠체험교실)/③ 크기-너비 (120 mm)"
"item": "문구 (생활가전수거캠페인)/③ 크기-너비 (110 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,100 +112,100 @@
"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": "144,231,51",
"searchValue": "",
"value": "230,209,48",
"points": 2,
"category": "Color",
"item": "/③ 면색 : 색상(RGB:144,231,51)"
"item": "/③ 면색 : 색상(RGB:230,209,48)"
},
"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": "2025년 7월부터 생활가전수거 캠페인을 시행",
"value": "BOLD",
"points": 2,
"category": "FontAttribute",
"item": "문구 (시원한 바다와 함께하는 해양 스포츠 체험 교실)/① 진하게"
"item": "문구 (2025년 7월부터 생활가전수거 캠페인을 시행)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "시원한 바다와 함께하는 해양 스포츠 체험 교실",
"searchValue": "2025년 7월부터 생활가전수거 캠페인을 시행",
"value": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (시원한 바다와 함께하는 해양 스포츠 체험 교실)/② 밑줄"
"item": "문구 (2025년 7월부터 생활가전수거 캠페인을 시행)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "참가안내",
"searchValue": "홍보안내",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (◐ 참가안내 )/① 글씨체 (돋움)"
"item": "문구 (● 홍보안내 )/① 글씨체 (돋움)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "참가안내",
"searchValue": "홍보안내",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (◐ 참가안내 )/② 정렬 (가운데 정렬)"
"item": "문구 (● 홍보안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "해양소년단 연맹 홈페이지(http://www.ihd.or.kr)",
"value": "ITALIC",
"searchValue": "서울시 25개 자치구 및 인근 지역",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (해양소년단 연맹 홈페이지(http://www.ihd.or.kr))/① 기울임"
"item": "문구 (서울시 25개 자치구 및 인근 지역)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "해양소년단 연맹 홈페이지(http://www.ihd.or.kr)",
"value": "UNDERLINE",
"searchValue": "서울시 25개 자치구 및 인근 지역",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (해양소년단 연맹 홈페이지(http://www.ihd.or.kr))/② 밑줄"
"item": "문구 (서울시 25개 자치구 및 인근 지역)/② ITALIC"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 10,
"Left": 15,
"Indent": 12
},
"points": 2,
@@ -215,47 +215,47 @@
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 05. 24.",
"value": "1400",
"searchValue": "2025. 06. 28.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 05. 24.)/① 크기 (14pt)",
"item": "문구 (2025. 06. 28.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 05. 24.",
"searchValue": "2025. 06. 28.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 05. 24.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 06. 28.)/② 정렬 (가운데 정렬)"
},
"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": "2600",
"searchValue": "한국자원순환센터",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (해양스포츠홍보위원회)/② 크기 (26pt)"
"item": "문구 (한국자원순환센터)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "해양스포츠홍보위원회",
"searchValue": "한국자원순환센터",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (해양스포츠홍보위원회)/③ 정렬 (가운데 정렬)"
"item": "문구 (한국자원순환센터)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "굴림",
"points": 1,
@@ -280,32 +280,32 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "CircledDigit",
"value": "HangulSyllable",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"1,2,3":"Digit",
"①,②,③":"CircledDigit",
"가,나,다": "HangulSyllable",
"㉮,㉯,㉰":"CircledHangulSyllable",
"A,B,C":"LatinCapital",
"Ⓐ,Ⓑ,Ⓒ":"CircledLatinCapital",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"정답에 맞는 값 value에 입력":""
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomRight",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"item": "오른쪽 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
@@ -313,13 +313,13 @@
}
},
"30": {
"path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='{option}'])",
"option": "180",
"value": true,
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "180",
"first_word": "지",
"points": 2,
"category": "Boolean",
"category": "LineSpacing",
"item": "문제 1 줄간격 180% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점)"
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
@@ -343,95 +343,95 @@
"desc": "섹션이 1개 이상이면 점수부여"
},
"3": {
"path": "//COLDEF/@Count",
"path": "TEXT/COLDEF/@Count",
"value": "2",
"points": 3,
"category": "OneAnswer",
"category": "TwoColumn",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "해양 스포츠의 세계",
"searchValue": "자원순환",
"value": "60",
"points": 2,
"category": "mmSize",
"item": "문구 (해양 스포츠의 세계)/① 크기-너비 (60 mm)"
"item": "문구 (자원순환)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "해양 스포츠의 세계",
"searchValue": "자원순환",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (해양 스포츠의 세계)/② 크기-높이 (12mm)"
"item": "문구 (자원순환)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "해양 스포츠의 세계",
"searchValue": "자원순환",
"value": ["DoubleSlim", "283"],
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (해양 스포츠의 세계)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt"
"item": "문구 (자원순환)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt로 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "해양 스포츠의 세계",
"value": "20",
"searchValue": "자원순환",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (해양 스포츠의 세계)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 50이면 반원 / 20이면 둥근모양"
"item": "문구 (자원순환)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "해양 스포츠의 세계",
"value": "248,231,130",
"searchValue": "자원순환",
"value": "131,194,68",
"points": 2,
"category": "Color",
"item": "문구 (해양 스포츠의 세계)/⑤ 채우기 : 색상(RGB:248,231,130)"
"item": "문구 (자원순환)/⑤ 채우기 : 색상(RGB:131,194,68)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "해양 스포츠의 세계",
"searchValue": "자원순환",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (해양 스포츠의 세계)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (자원순환)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "해양 스포츠의 세계",
"searchValue": "자원순환",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (해양 스포츠의 세계)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (자원순환)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "해양 스포츠의 세계",
"value": "궁서",
"searchValue": "자원순환",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "문구 (해양 스포츠의 세계)/⑧ 글씨체 (궁서)"
"item": "문구 (자원순환)/⑧ 글씨체 (궁서)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "해양 스포츠의 세계",
"value": "1800",
"searchValue": "자원순환",
"value": "2000",
"points": 1,
"category": "OneAnswer",
"item": "문구 (해양 스포츠의 세계)/⑨ 글씨크기 (18pt)",
"item": "문구 (자원순환)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "해양 스포츠의 세계",
"searchValue": "자원순환",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (해양 스포츠의 세계)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (자원순환)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
@@ -439,14 +439,14 @@
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림D.jpg\" 삽입"
"item": "① 파일명 \"그림A.jpg\" 삽입"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"value": "85",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
"item": "② 크기-너비 (85 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
@@ -456,195 +456,190 @@
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION/@HorzOffset",
"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/@VertOffset",
"value": "24",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "22",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 국립해양박물관",
"value": "돋움",
"searchValue": "1. 자원순환의 필요성",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구① (1. 국립해양박물관)/① 글씨체 (돋움)"
"item": "문구① (1. 자원순환의 필요성)/① 글씨체 (돋움)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 국립해양박물관",
"searchValue": "1. 자원순환의 필요성",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 국립해양박물관)/② 크기 (12pt)"
"item": "문구① (1. 자원순환의 필요성)/② 크기 (12pt)"
},
"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. 윈드 서핑)/② 크기 (12pt)"
"item": "문구② (2. 자원순환 실천 방법)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 윈드 서핑",
"searchValue": "2. 자원순환 실천 방법",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 윈드 서핑)/③ 진하게"
"item": "문구② (2. 자원순환 실천 방법)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "마스트",
"option": "온실가스",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (마스트)/① 각주 설정 및 문구 입력"
"item": "문구 (온실가스)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "선체의 갑판 위에 세워진",
"searchValue": "땅으로 복사되는 에너지를 흡수하여 온실효과를 내는",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "문구 (마스트)/② 글씨체 (바탕체)"
"item": "문구 (온실가스)/② 글씨체 (바탕체)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "선체의 갑판 위에 세워진",
"searchValue": "땅으로 복사되는 에너지를 흡수하여 온실효과를 내는",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (마스트)/③ 크기 (9pt)"
"item": "문구 (온실가스)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "선체의 갑판 위에 세워진",
"searchValue": "땅으로 복사되는 에너지를 흡수하여 온실효과를 내는",
"value": "CircledDigit",
"points": 2,
"category": "OneAnswer",
"item": "문구 (마스트)/④ 각주 번호모양",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"1,2,3":"Digit",
"①,②,③":"CircledDigit",
"가,나,다": "HangulSyllable",
"㉮,㉯,㉰":"CircledHangulSyllable",
"A,B,C":"LatinCapital",
"Ⓐ,Ⓑ,Ⓒ":"CircledLatinCapital",
"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",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Display')])",
"ignoreWord": "Display",
"path": "boolean(//CHAR[contains(text(),'Platform')])",
"ignoreWord": "Platform",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Display/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Platform/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["유물", "遺物"],
["상설", "常設"],
["체험", "體驗"],
["해양", "海洋"],
["기교", "技巧"]
["이익", "利益"],
["환경", "環境"],
["실천", "實踐"],
["낭비", "浪費"],
["촉진", "促進"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 유물(遺物), ② 상설(常設), ③ 체험(體驗), ④ 해양(海洋), ⑤ 기교(技巧)"
"item": "① 이익(利益), ② 환경(環境), ③ 실천(實踐), ④ 낭비(浪費), ⑤ 촉진(促進)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'을헤치는')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'경을보호')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…물살을 헤치은…)/ 은 → 는 글자바꿈"
"item": "문구 (…또한 보호하는 환경을 지속 가능한 발전을…) > 보호하는 / 환경을 순서바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'연의바람')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'건의수명')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…바람을 자연의 이용하여…)/바람을 / 자연의 순서바꿈"
"item": "문구 (…낭비(浪費)하지 않고 물건이 수명을 연장하는 데…) > 이 → 의 글자바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "종목별 해양 스포츠 참가자 수",
"value": "중고딕",
"searchValue": "연도별 자원순환율 추이(%)",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "제목 문구 (종목별 해양 스포츠 참가자 수)/① 글씨체 (중고딕)"
"item": "제목 문구 (연도별 자원순환율 추이(%))/① 글씨체 (굴림체)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "종목별 해양 스포츠 참가자 수",
"searchValue": "연도별 자원순환율 추이(%)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (종목별 해양 스포츠 참가자 수)/② 크기 (12pt)"
"item": "제목 문구 (연도별 자원순환율 추이(%))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "종목별 해양 스포츠 참가자 수",
"searchValue": "연도별 자원순환율 추이(%)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (종목별 해양 스포츠 참가자 수)/③ 진하게"
"item": "제목 문구 (연도별 자원순환율 추이(%))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "종목별 해양 스포츠 참가자 수",
"searchValue": "연도별 자원순환율 추이(%)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (종목별 해양 스포츠 참가자 수)/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (연도별 자원순환율 추이(%))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "233,162,149",
"value": "235,179,218",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:233,162,149)"
"item": "위쪽 제목 셀/① 색상(RGB:235,179,218)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -673,11 +668,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 +680,7 @@
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (10pt)"
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
@@ -696,7 +691,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",
@@ -744,42 +739,42 @@
},
"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": "제목 문구 (종목별 해양 스포츠 참가자 수)/② 크기 (13pt)"
"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": "OneAnswer",
"item": "X축/① 글꼴 (맑은 고딕)"
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
@@ -787,22 +782,22 @@
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "맑은 고딕",
"value": "돋움체",
"points": 1,
"category": "OneAnswer",
"item": "Y축/① 글꼴 (맑은 고딕)"
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
@@ -810,16 +805,16 @@
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "맑은고딕",
"value": "돋움체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (맑은고딕)"
"item": "범례/① 글꼴 (돋움체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

837
DIW_2506B.json Normal file
View File

@@ -0,0 +1,837 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "동물등록제시행안내",
"value": "맑은고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (동물등록제시행안내)/① 글씨체 (맑은고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "동물등록제시행안내",
"value": "233,174,43",
"points": 2,
"category": "Color",
"item": "문구 (동물등록제시행안내)/② 채우기 : 색상(RGB:233,174,43)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "동물등록제시행안내",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (동물등록제시행안내)/③ 크기-너비 (110mm)"
},
"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": "144,210,66",
"points": 2,
"category": "Color",
"item": "반/③ 면색 : 색상(RGB:144,210,66)"
},
"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": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (동물병원이나 펫샵, 동물등록대행업체에서)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"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(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "★ 사업안내 ★",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (★ 사업안내 ★)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "1마리당 3만원, 세대당 최대 1회 지원",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (1마리당 3만원, 세대당 최대 1회 지원)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "1마리당 3만원, 세대당 최대 1회 지원",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (1마리당 3만원, 세대당 최대 1회 지원)/② ITALIC"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 06. 28.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 28.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 06. 28.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 28.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "세종시반려동물과",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "문구 (세종시반려동물과)/① 글씨체 (궁서)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "세종시반려동물과",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (세종시반려동물과)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "세종시반려동물과",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (세종시반려동물과)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//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": "60",
"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/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "동물등록제",
"value": ["DoubleSlim", "283"],
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (동물등록제)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt로 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "동물등록제",
"value": "20",
"points": 2,
"category": "OneAnswer",
"item": "문구 (동물등록제)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "동물등록제",
"value": "244,86,167",
"points": 2,
"category": "Color",
"item": "문구 (동물등록제)/⑤ 채우기 : 색상(RGB:244,86,167)"
},
"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": "2000",
"points": 1,
"category": "OneAnswer",
"item": "문구 (동물등록제)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "동물등록제",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (동물등록제)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
"searchValue": "원본 그림의 이름: 그림",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림B.jpg\" 삽입"
},
"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",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Petshop')])",
"ignoreWord": "Petshop",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Petshop/영단어 미입력, 대소문자/오타 시 전체 감점",
"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(), ' ', ''),'생후2개')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…생후 1개월 이상의 반려견을…)>'1' → '2' 글자바꿈"
},
"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": "221,162,248",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:221,162,248)"
},
"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": "OneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "동물등록현황",
"value": "궁서체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (동물등록현황)/① 글씨체 (궁서체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "동물등록현황",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (동물등록현황)/② 크기 (1300)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "동물등록현황",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (동물등록현황)/③ 진하게",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (굴림)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (굴림)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "굴림",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (굴림)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

838
DIW_2506C.json Normal file
View File

@@ -0,0 +1,838 @@
{
"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": "58,118,152",
"points": 2,
"category": "Color",
"item": "문구 (인공지능융합일자리박람회)/② 채우기 : 색상(RGB:58,118,152)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "인공지능융합일자리박람회",
"value": "130",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (인공지능융합일자리박람회)/③ 크기-너비 (130 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "인공지능융합일자리박람회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (인공지능융합일자리박람회)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "인공지능융합일자리박람회",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (인공지능융합일자리박람회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "인공지능융합일자리박람회",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (인공지능융합일자리박람회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "인공지능융합일자리박람회",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (인공지능융합일자리박람회)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "작",
"value": {
"Height": 2800,
"Width": 2800
},
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "작/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "작",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "작/② 글씨체 (굴림체)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "작",
"value": "17,227,206",
"points": 2,
"category": "Color",
"item": "작/③ 면색 : 색상(RGB:17,227,206)"
},
"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(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"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(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "행사안내",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"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": 15,
"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. 06. 28.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 28.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 06. 28.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 28.)/② 정렬 (가운데 정렬)"
},
"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": "2300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (차세대융합일자리협회)/② 크기 (2300)"
},
"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": "RomanSmall",
"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",
"甲,乙,丙": "DecagonCircleHanja",
"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": "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/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "인공지능의 영향",
"value": ["DoubleSlim", "283"],
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (인공지능의 영향)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt로 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "인공지능의 영향",
"value": "0",
"points": 2,
"category": "OneAnswer",
"item": "문구 (인공지능의 영향)/④ 글상자 모서리 (직각)",
"desc": "모서리 비율 반원:50 / 둥근모양:20 / 직각:0"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "인공지능의 영향",
"value": "239,238,20",
"points": 2,
"category": "Color",
"item": "문구 (인공지능의 영향)/⑤ 채우기 : 색상(RGB:239,238,20)"
},
"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": "2300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (인공지능의 영향)/⑨ 글씨크기 (2300)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "인공지능의 영향",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (인공지능의 영향)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
"searchValue": "원본 그림의 이름: 그림",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림C.jpg\" 삽입"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 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": "Digit",
"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",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Cooperation')])",
"ignoreWord": "Cooperation",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Cooperation/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "문구 (…경제활동 연장되면서 기간이 60세…)>'연장되면서 / 기간이' 순서바꿈"
},
"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": "229,183,242",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:229,183,242)"
},
"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": "OneAnswer",
"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

@@ -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": "28,61,98",
"searchValue": "한국골프박람회",
"value": "49,95,151",
"points": 2,
"category": "Color",
"item": "문구 (천혜의비경철쭉)/② 채우기 : 색상(RGB:28,61,98)"
"item": "문구 (한국골프박람회)/② 채우기 : 색상(RGB:49,95,151)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "천혜의비경철쭉",
"value": "110",
"searchValue": "한국골프박람회",
"value": "100",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (천혜의비경철쭉)/③ 크기-너비 (110mm)"
"item": "문구 (한국골프박람회)/③ 크기-너비 (110mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "천혜의비경철쭉",
"searchValue": "한국골프박람회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (천혜의비경철쭉)/④ 크기-높이 (20mm)"
"item": "문구 (한국골프박람회)/④ 크기-높이 (20mm)"
},
"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,155 +112,155 @@
"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": "255,132,58",
"searchValue": "",
"value": "236,162,142",
"points": 2,
"category": "Color",
"item": "/③ 면색 : 색상(RGB:255,132,58)"
"item": "/③ 면색 : 색상(RGB:236,162,142)"
},
"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": "바래봉 해발 약 500m에서 시작해 점점 정상으로",
"value": "BOLD",
"points": 2,
"category": "FontAttribute",
"item": "문구 (바래봉 해발 약 500m에서 시작해 점점 정상으로)/① 진하게"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "바래봉 해발 약 500m에서 시작해 점점 정상으로",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (바래봉 해발 약 500m에서 시작해 점점 정상으로)/② 기울임"
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/① ITALIC"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "참여안내",
"searchValue": "행사안내",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "문구 (● 참여안내 )/① 글씨체 (궁서)"
"item": "문구 (▷ 행사안내 )/① 글씨체 (궁서)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "참여안내",
"searchValue": "행사안내",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (● 참여안내 )/② 정렬 (가운데 정렬)"
"item": "문구 (▷ 행사안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "홈페이지(http://www.ihd.or.kr) 참조",
"value": "ITALIC",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (홈페이지(http://www.ihd.or.kr) 참조)/① 기울임"
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "홈페이지(http://www.ihd.or.kr) 참조",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (홈페이지(http://www.ihd.or.kr) 참조)/② 밑줄"
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Left": 10,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 05. 24.",
"searchValue": "2025. 06. 30.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 05. 24.)/① 크기 (14pt)",
"item": "문구 (2025. 06. 30.)/① 크기 (14pt)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 05. 24.",
"searchValue": "2025. 06. 30.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 05. 24.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 06. 30.)/② 정렬 (가운데 정렬)"
},
"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": "2600",
"searchValue": "한국골프연맹",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (운봉바래봉철쭉제)/② 크기 (26pt)"
"item": "문구 (한국골프연맹)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "운봉바래봉철쭉제",
"searchValue": "한국골프연맹",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (운봉바래봉철쭉제)/③ 정렬 (가운데 정렬)"
"item": "문구 (한국골프연맹)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "궁서",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (궁서)"
"item": "문구 (DIAT)/① 글꼴 (돋움)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -280,7 +280,7 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "LatinCapital",
"value": "RomanCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
@@ -302,7 +302,7 @@
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomRight",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "오른쪽 아래",
@@ -315,10 +315,11 @@
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "200",
"first_word": "지",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점)"
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
@@ -350,90 +351,90 @@
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "철쭉과 진달래",
"searchValue": "골프",
"value": "50",
"points": 2,
"category": "mmSize",
"item": "문구 (철쭉과 진달래)/① 크기-너비 (50 mm)"
"item": "문구 (골프)/① 크기-너비 (50 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "철쭉과 진달래",
"searchValue": "골프",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (철쭉과 진달래)/② 크기-높이 (12 mm)"
"item": "문구 (골프)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "철쭉과 진달래",
"searchValue": "골프",
"value": [
"DoubleSlim",
"283"
],
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (철쭉과 진달래)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt"
"item": "문구 (골프)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt로 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "철쭉과 진달래",
"searchValue": "골프",
"value": "20",
"points": 2,
"category": "OneAnswer",
"item": "문구 (철쭉과 진달래)/④ 글상자 모서리 (둥근모양)",
"item": "문구 (골프)/④ 글상자 모서리 (둥근모양)",
"desc": "모서리 비율 50이면 반원 / 20이면 둥근모양"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "철쭉과 진달래",
"value": "225,15,161",
"searchValue": "골프",
"value": "147,194,80",
"points": 2,
"category": "Color",
"item": "문구 (철쭉과 진달래)/⑤ 채우기 : 색상(RGB:225,15,161)"
"item": "문구 (골프)/⑤ 채우기 : 색상(RGB:147,194,80)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "철쭉과 진달래",
"searchValue": "골프",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (철쭉과 진달래)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (골프)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "철쭉과 진달래",
"searchValue": "골프",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (철쭉과 진달래)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (골프)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "철쭉과 진달래",
"value": "맑은고딕",
"searchValue": "골프",
"value": "고딕",
"points": 1,
"category": "FontName",
"item": "문구 (철쭉과 진달래)/⑧ 글씨체 (맑은고딕)"
"item": "문구 (골프)/⑧ 글씨체 (고딕)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "철쭉과 진달래",
"value": "1800",
"searchValue": "골프",
"value": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (철쭉과 진달래)/⑨ 글씨크기 (18 pt)",
"item": "문구 (골프)/⑨ 글씨크기 (2200)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "철쭉과 진달래",
"searchValue": "골프",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (철쭉과 진달래)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (골프)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
@@ -466,91 +467,91 @@
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "23",
"value": "24",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 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. 골프란?)/② 크기 (12pt)"
},
"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. 봄의 전령 진달래)/② 크기 (12pt)"
"item": "문구② (2. 한국의 골프 역사)/② 크기 (12pt)"
},
"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": "Ideograph",
"searchValue": "한 분야에서 뛰어난 활약을 보인 사람들을 기념하기 위해 설립된 박물관, 단체, 모임을 말한다.",
"value": "LatinSmall",
"points": 2,
"category": "OneAnswer",
"item": "문구 (거름)/④ 각주 번호모양",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
@@ -567,96 +568,96 @@
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Breeding')])",
"ignoreWord": "Breeding",
"path": "boolean(//CHAR[contains(text(),'Fairway')])",
"ignoreWord": "Fairway",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Breeding/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Fairway/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
[
"생육",
"生育"
"승부",
"勝負"
],
[
"유년",
"幼年"
"초목",
"草木"
],
[
"허기",
"虛飢"
"설치",
"設置"
],
[
"풍류",
"風流"
"인정",
"認定"
],
[
"식물",
"植物"
"유학",
"留學"
]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 생육(生育), ② 유년(幼年), ③ 허기(虛飢), ④ 풍류(風流), ⑤ 식물(植物)"
"item": "① 승부(勝負), ② 초목(草木), ③ 설치(設置), ④ 인정(認定), ⑤ 유학(留學)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'지를잘라')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이있는')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…새로 나온 가지가 잘라…) 가 글자바꿈"
"item": "문구 (…초목(草木)은 있는…) / 은 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'보다참꽃')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'초의프로')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…참꽃나무란 진달래보다 이름에 더…) 참꽃나무란 / 진달래보다 순서바꿈"
"item": "문구 (…프로 골프 최초의 선수…)/프로 골프 / 최초의 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "철쭉 관광객 현황(단위 : 천 명)",
"value": "돋움",
"searchValue": "골프 관련 체육시설업 현황",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (철쭉 관광객 현황(단위 : 천 명))/① 글씨체 (돋움)"
"item": "제목 문구 (골프 관련 체육시설업 현황)/① 글씨체 (중고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "철쭉 관광객 현황(단위 : 천 명)",
"searchValue": "골프 관련 체육시설업 현황",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (철쭉 관광객 현황(단위 : 천 명))/② 크기 (12pt)"
"item": "제목 문구 (골프 관련 체육시설업 현황)/② 크기 (12pt)"
},
"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": "140,249,62",
"value": "233,174,61",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:140,249,62)"
"item": "위쪽 제목 셀/① 색상(RGB:233,174,61)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -685,11 +686,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": {
@@ -708,7 +709,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": "AVG",
"option": "SUM",
"value": true,
"points": 4,
"category": "Boolean",
@@ -717,11 +718,11 @@
},
"45": {
"chart_xpath": "",
"chart_type": "누적세로막대형",
"chart_type": "묶은가로막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (누적세로막대형)",
"item": "① 종류 (묶은가로막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
@@ -756,28 +757,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": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (철쭉 관광객 현황)/② 크기 (13pt)"
"item": "제목 문구 (골프 관련 체육시설업 현황)/② 크기 (1200)"
},
"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

@@ -1209,19 +1209,19 @@ class XMLScorer:
def main():
# 시험회차 및 유형
exam_round = '2505'
exam_round = '2506'
# exam_round = '2506_3'
# 채점하고자 하는 유형은 주석 해제
exam_types = [
'A',
# 'B',
# 'C',
'B',
'C',
# 'D',
]
# test_mode = False
test_mode = True #/TEST 폴더 채점시
test_mode = False
# test_mode = True #/TEST 폴더 채점시
output_excel_paths = []
for exam_type in exam_types:

View File

@@ -1 +0,0 @@
=(TRIM(RIGHT(MID(D47, FIND("RGB:", D47) + 4, FIND(")", D47) - FIND("RGB:", D47) - 4), LEN(MID(D47, FIND("RGB:", D47) + 4, FIND(")", D47) - FIND("RGB:", D47) - 4)) - FIND(",", MID(D47, FIND("RGB:", D47) + 4, FIND(")", D47) - FIND("RGB:", D47) - 4), FIND(",", MID(D47, FIND("RGB:", D47) + 4, FIND(")", D47) - FIND("RGB:", D47) - 4)) + 1)))*256^2) + (TRIM(MID(MID(D47, FIND("RGB:", D47) + 4, FIND(")", D47) - FIND("RGB:", D47) - 4), FIND(",", MID(D47, FIND("RGB:", D47) + 4, FIND(")", D47) - FIND("RGB:", D47) - 4)) + 1, FIND(",", MID(D47, FIND("RGB:", D47) + 4, FIND(")", D47) - FIND("RGB:", D47) - 4), FIND(",", MID(D47, FIND("RGB:", D47) + 4, FIND(")", D47) - FIND("RGB:", D47) - 4)) + 1) - FIND(",", MID(D47, FIND("RGB:", D47) + 4, FIND(")", D47) - FIND("RGB:", D47) - 4)) - 1))*256) + (TRIM(LEFT(MID(D47, FIND("RGB:", D47) + 4, FIND(")", D47) - FIND("RGB:", D47) - 4), FIND(",", MID(D47, FIND("RGB:", D47) + 4, FIND(")", D47) - FIND("RGB:", D47) - 4)) - 1)))

View File

@@ -15927,3 +15927,132 @@
2025-06-26 17:43:32,210 - INFO - 변환 성공: 워드(한글)_002391_김지우.hwpx -> 워드(한글)_002391_김지우.hml
2025-06-26 17:43:32,728 - INFO - 변환 성공: 워드(한글)_00349_이재용.hwpx -> 워드(한글)_00349_이재용.hml
2025-06-26 17:43:33,068 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2505\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2505\A\DIW
2025-07-01 14:57:46,817 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\A\DIW
2025-07-01 14:57:50,033 - INFO - 변환 성공: 워드(한글)-006861-NABIJONOVDIYORBEKERKINJONUGLI.hwpx -> 워드(한글)-006861-NABIJONOVDIYORBEKERKINJONUGLI.hml
2025-07-01 14:57:50,642 - INFO - 변환 성공: 워드(한글)-006862-pooja.hwpx -> 워드(한글)-006862-pooja.hml
2025-07-01 14:57:51,144 - INFO - 변환 성공: 워드(한글)-006863-nguyen thi phuong thao.hwpx -> 워드(한글)-006863-nguyen thi phuong thao.hml
2025-07-01 14:57:51,663 - INFO - 변환 성공: 워드(한글)-006865-nguyen tra mi.hwpx -> 워드(한글)-006865-nguyen tra mi.hml
2025-07-01 14:57:52,076 - INFO - 변환 성공: 워드(한글)-006866-abdukhalilov asilbek ibrokhimjon ugli.hwpx -> 워드(한글)-006866-abdukhalilov asilbek ibrokhimjon ugli.hml
2025-07-01 14:57:52,542 - INFO - 변환 성공: 워드(한글)-006867-elchiboev oyatillo khotambek ugli.hwpx -> 워드(한글)-006867-elchiboev oyatillo khotambek ugli.hml
2025-07-01 14:57:53,105 - INFO - 변환 성공: 워드(한글)-006868-ahmadjonov diyorbek gayrat ugli.hwpx -> 워드(한글)-006868-ahmadjonov diyorbek gayrat ugli.hml
2025-07-01 14:57:53,572 - INFO - 변환 성공: 워드(한글)-006869-yusupova khilolakhon azizbekovna.hwpx -> 워드(한글)-006869-yusupova khilolakhon azizbekovna.hml
2025-07-01 14:57:54,079 - INFO - 변환 성공: 워드(한글)-006870-khatamov rakhmatullo odiljon ugli.hwpx -> 워드(한글)-006870-khatamov rakhmatullo odiljon ugli.hml
2025-07-01 14:57:54,538 - INFO - 변환 성공: 워드(한글)-006871-AHMADKULOV AKBARJON ARABBOY UGLI.hwpx -> 워드(한글)-006871-AHMADKULOV AKBARJON ARABBOY UGLI.hml
2025-07-01 14:57:54,972 - INFO - 변환 성공: 워드(한글)-006872-arabboev kamronbek akramjon ugli.hwpx -> 워드(한글)-006872-arabboev kamronbek akramjon ugli.hml
2025-07-01 14:57:55,559 - INFO - 변환 성공: 워드(한글)-006873-erkaboev shoyadbek akhmadbek ugli.hwpx -> 워드(한글)-006873-erkaboev shoyadbek akhmadbek ugli.hml
2025-07-01 14:57:55,990 - INFO - 변환 성공: 워드(한글)-006874-Mamadaliev Asadbek Soibjon ugli.hwpx -> 워드(한글)-006874-Mamadaliev Asadbek Soibjon ugli.hml
2025-07-01 14:57:56,414 - INFO - 변환 성공: 워드(한글)-006875-alponov nurali jumakuzi ugli.hwpx -> 워드(한글)-006875-alponov nurali jumakuzi ugli.hml
2025-07-01 14:57:56,911 - INFO - 변환 성공: 워드(한글)-006876-erkinova khursandoy alisher kizi.hwpx -> 워드(한글)-006876-erkinova khursandoy alisher kizi.hml
2025-07-01 14:57:57,405 - INFO - 변환 성공: 워드(한글)-006877-isakov abubakir ikromjon ugli.hwpx -> 워드(한글)-006877-isakov abubakir ikromjon ugli.hml
2025-07-01 14:57:57,996 - INFO - 변환 성공: 워드(한글)-006878-nguyen thi phuong.hwpx -> 워드(한글)-006878-nguyen thi phuong.hml
2025-07-01 14:57:58,538 - INFO - 변환 성공: 워드(한글)-006879-다케모토지호.hwpx -> 워드(한글)-006879-다케모토지호.hml
2025-07-01 14:57:59,180 - INFO - 변환 성공: 워드(한글)-006880-muminbek umarov fakhriddin ugli.hwpx -> 워드(한글)-006880-muminbek umarov fakhriddin ugli.hml
2025-07-01 14:57:59,630 - INFO - 변환 성공: 워드(한글)-006881-dekhkonov sarvar soibjon ugli.hwpx -> 워드(한글)-006881-dekhkonov sarvar soibjon ugli.hml
2025-07-01 14:58:00,048 - INFO - 변환 성공: 워드(한글)-006882-TUKHTANOV ILYOSBEK UBAYDULLO UGLI.hwpx -> 워드(한글)-006882-TUKHTANOV ILYOSBEK UBAYDULLO UGLI.hml
2025-07-01 14:58:00,565 - INFO - 변환 성공: 워드(한글)-006883-ABDURASULOV MURODJON MARIFJON UGLI.hwpx -> 워드(한글)-006883-ABDURASULOV MURODJON MARIFJON UGLI.hml
2025-07-01 14:58:01,098 - INFO - 변환 성공: 워드(한글)-006884-UKTAMOV SOKHIBJON KHUSANBOY UGLI.hwpx -> 워드(한글)-006884-UKTAMOV SOKHIBJON KHUSANBOY UGLI.hml
2025-07-01 14:58:01,638 - INFO - 변환 성공: 워드(한글)-006885-AKHMADJONOV ABRORBEK ANVARJON UGLI.hwpx -> 워드(한글)-006885-AKHMADJONOV ABRORBEK ANVARJON UGLI.hml
2025-07-01 14:58:02,184 - INFO - 변환 성공: 워드(한글)-006886-KHOLMUROTOV DIYORJON SUNNAT UGLI.hwpx -> 워드(한글)-006886-KHOLMUROTOV DIYORJON SUNNAT UGLI.hml
2025-07-01 14:58:02,748 - INFO - 변환 성공: 워드(한글)-006887-TUGALOV JAVLON DILSHOD UGLI.hwpx -> 워드(한글)-006887-TUGALOV JAVLON DILSHOD UGLI.hml
2025-07-01 14:58:03,285 - INFO - 변환 성공: 워드(한글)-006888-MUKHIDDINOV SALOKHIDDIN ZAYNIDDIN UGLI.hwpx -> 워드(한글)-006888-MUKHIDDINOV SALOKHIDDIN ZAYNIDDIN UGLI.hml
2025-07-01 14:58:03,822 - INFO - 변환 성공: 워드(한글)-006889-SHOYMURODOV KHURSHID ANVAR UGLI.hwpx -> 워드(한글)-006889-SHOYMURODOV KHURSHID ANVAR UGLI.hml
2025-07-01 14:58:04,283 - INFO - 변환 성공: 워드(한글)-006890-MIRZAKARIMOV ULUGBEK MAKHSUDBEK UGLI.hwpx -> 워드(한글)-006890-MIRZAKARIMOV ULUGBEK MAKHSUDBEK UGLI.hml
2025-07-01 14:58:04,715 - INFO - 변환 성공: 워드(한글)-006891-SUVONOV KHIKMATILLO MAVLONBEK UGLI.hwpx -> 워드(한글)-006891-SUVONOV KHIKMATILLO MAVLONBEK UGLI.hml
2025-07-01 14:58:05,248 - INFO - 변환 성공: 워드(한글)-006892-YUSUPOV MUHAMMADJON KOZIM UGLI.hwpx -> 워드(한글)-006892-YUSUPOV MUHAMMADJON KOZIM UGLI.hml
2025-07-01 14:58:05,769 - INFO - 변환 성공: 워드(한글)-006893-Tara Wonyeon Langtangar.hwpx -> 워드(한글)-006893-Tara Wonyeon Langtangar.hml
2025-07-01 14:58:06,336 - INFO - 변환 성공: 워드(한글)-006894-NGUYEN THI YEN.hwpx -> 워드(한글)-006894-NGUYEN THI YEN.hml
2025-07-01 14:58:06,876 - INFO - 변환 성공: 워드(한글)-006895-NGO THI MINH THU.hwpx -> 워드(한글)-006895-NGO THI MINH THU.hml
2025-07-01 14:58:07,439 - INFO - 변환 성공: 워드(한글)-006896-RATNOI PIYAWAT.hwpx -> 워드(한글)-006896-RATNOI PIYAWAT.hml
2025-07-01 14:58:07,987 - INFO - 변환 성공: 워드(한글)-006897-PHAM THUY DUONG.hwpx -> 워드(한글)-006897-PHAM THUY DUONG.hml
2025-07-01 14:58:08,525 - INFO - 변환 성공: 워드(한글)-006898-Koshi Jong Shim Bernadette.hwpx -> 워드(한글)-006898-Koshi Jong Shim Bernadette.hml
2025-07-01 14:58:09,083 - INFO - 변환 성공: 워드(한글)-006899-GHALE SOM KUMAR.hwpx -> 워드(한글)-006899-GHALE SOM KUMAR.hml
2025-07-01 14:58:09,586 - INFO - 변환 성공: 워드(한글)-006900-PHAT SOKIN.hwpx -> 워드(한글)-006900-PHAT SOKIN.hml
2025-07-01 14:58:10,202 - INFO - 변환 성공: 워드(한글)-006901-PAHALAGAMA RALALAGE MADUSHIKA DEEPTH K.hwpx -> 워드(한글)-006901-PAHALAGAMA RALALAGE MADUSHIKA DEEPTH K.hml
2025-07-01 14:58:10,724 - INFO - 변환 성공: 워드(한글)-006902-NGUYEN THUY LINH.hwpx -> 워드(한글)-006902-NGUYEN THUY LINH.hml
2025-07-01 14:58:11,306 - INFO - 변환 성공: 워드(한글)-006903-ZUKHRIDDINOV OMATILLO KHAMIDULLO UGLI.hwpx -> 워드(한글)-006903-ZUKHRIDDINOV OMATILLO KHAMIDULLO UGLI.hml
2025-07-01 14:58:11,651 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\A\DIW
2025-07-01 14:58:12,151 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\B\DIW
2025-07-01 14:58:13,403 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\B\DIW
2025-07-01 14:58:13,904 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\C\DIW
2025-07-01 14:58:15,163 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\C\DIW
2025-07-01 14:58:15,665 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\D\DIW
2025-07-01 14:58:16,945 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\D\DIW
2025-07-01 14:58:17,446 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\E\DIW
2025-07-01 14:58:18,650 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\E\DIW
2025-07-01 15:24:28,106 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\A\DIW
2025-07-01 15:24:29,845 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\A\DIW
2025-07-01 15:24:30,345 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\B\DIW
2025-07-01 15:24:31,594 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\B\DIW
2025-07-01 15:24:32,095 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\C\DIW
2025-07-01 15:24:33,333 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\C\DIW
2025-07-01 15:24:33,834 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\D\DIW
2025-07-01 15:24:35,048 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\D\DIW
2025-07-01 15:24:35,549 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\E\DIW
2025-07-01 15:24:36,789 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\E\DIW
2025-07-01 15:24:59,871 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\A\DIW
2025-07-01 15:25:02,921 - INFO - 변환 성공: DIW_2506_5A.hwpx -> DIW_2506_5A.hml
2025-07-01 15:25:03,480 - INFO - 변환 성공: 워드(한글)-006861-NABIJONOVDIYORBEKERKINJONUGLI.hwpx -> 워드(한글)-006861-NABIJONOVDIYORBEKERKINJONUGLI.hml
2025-07-01 15:25:03,905 - INFO - 변환 성공: 워드(한글)-006862-pooja.hwpx -> 워드(한글)-006862-pooja.hml
2025-07-01 15:25:04,376 - INFO - 변환 성공: 워드(한글)-006863-nguyen thi phuong thao.hwpx -> 워드(한글)-006863-nguyen thi phuong thao.hml
2025-07-01 15:25:04,861 - INFO - 변환 성공: 워드(한글)-006865-nguyen tra mi.hwpx -> 워드(한글)-006865-nguyen tra mi.hml
2025-07-01 15:25:05,261 - INFO - 변환 성공: 워드(한글)-006866-abdukhalilov asilbek ibrokhimjon ugli.hwpx -> 워드(한글)-006866-abdukhalilov asilbek ibrokhimjon ugli.hml
2025-07-01 15:25:05,652 - INFO - 변환 성공: 워드(한글)-006867-elchiboev oyatillo khotambek ugli.hwpx -> 워드(한글)-006867-elchiboev oyatillo khotambek ugli.hml
2025-07-01 15:25:06,146 - INFO - 변환 성공: 워드(한글)-006868-ahmadjonov diyorbek gayrat ugli.hwpx -> 워드(한글)-006868-ahmadjonov diyorbek gayrat ugli.hml
2025-07-01 15:25:06,562 - INFO - 변환 성공: 워드(한글)-006869-yusupova khilolakhon azizbekovna.hwpx -> 워드(한글)-006869-yusupova khilolakhon azizbekovna.hml
2025-07-01 15:25:07,030 - INFO - 변환 성공: 워드(한글)-006870-khatamov rakhmatullo odiljon ugli.hwpx -> 워드(한글)-006870-khatamov rakhmatullo odiljon ugli.hml
2025-07-01 15:25:07,444 - INFO - 변환 성공: 워드(한글)-006871-AHMADKULOV AKBARJON ARABBOY UGLI.hwpx -> 워드(한글)-006871-AHMADKULOV AKBARJON ARABBOY UGLI.hml
2025-07-01 15:25:07,872 - INFO - 변환 성공: 워드(한글)-006872-arabboev kamronbek akramjon ugli.hwpx -> 워드(한글)-006872-arabboev kamronbek akramjon ugli.hml
2025-07-01 15:25:08,432 - INFO - 변환 성공: 워드(한글)-006873-erkaboev shoyadbek akhmadbek ugli.hwpx -> 워드(한글)-006873-erkaboev shoyadbek akhmadbek ugli.hml
2025-07-01 15:25:08,829 - INFO - 변환 성공: 워드(한글)-006874-Mamadaliev Asadbek Soibjon ugli.hwpx -> 워드(한글)-006874-Mamadaliev Asadbek Soibjon ugli.hml
2025-07-01 15:25:09,216 - INFO - 변환 성공: 워드(한글)-006875-alponov nurali jumakuzi ugli.hwpx -> 워드(한글)-006875-alponov nurali jumakuzi ugli.hml
2025-07-01 15:25:09,705 - INFO - 변환 성공: 워드(한글)-006876-erkinova khursandoy alisher kizi.hwpx -> 워드(한글)-006876-erkinova khursandoy alisher kizi.hml
2025-07-01 15:25:10,286 - INFO - 변환 성공: 워드(한글)-006877-isakov abubakir ikromjon ugli.hwpx -> 워드(한글)-006877-isakov abubakir ikromjon ugli.hml
2025-07-01 15:25:10,799 - INFO - 변환 성공: 워드(한글)-006878-nguyen thi phuong.hwpx -> 워드(한글)-006878-nguyen thi phuong.hml
2025-07-01 15:25:11,325 - INFO - 변환 성공: 워드(한글)-006879-다케모토지호.hwpx -> 워드(한글)-006879-다케모토지호.hml
2025-07-01 15:25:11,886 - INFO - 변환 성공: 워드(한글)-006880-muminbek umarov fakhriddin ugli.hwpx -> 워드(한글)-006880-muminbek umarov fakhriddin ugli.hml
2025-07-01 15:25:12,320 - INFO - 변환 성공: 워드(한글)-006881-dekhkonov sarvar soibjon ugli.hwpx -> 워드(한글)-006881-dekhkonov sarvar soibjon ugli.hml
2025-07-01 15:25:12,707 - INFO - 변환 성공: 워드(한글)-006882-TUKHTANOV ILYOSBEK UBAYDULLO UGLI.hwpx -> 워드(한글)-006882-TUKHTANOV ILYOSBEK UBAYDULLO UGLI.hml
2025-07-01 15:25:13,207 - INFO - 변환 성공: 워드(한글)-006883-ABDURASULOV MURODJON MARIFJON UGLI.hwpx -> 워드(한글)-006883-ABDURASULOV MURODJON MARIFJON UGLI.hml
2025-07-01 15:25:13,722 - INFO - 변환 성공: 워드(한글)-006884-UKTAMOV SOKHIBJON KHUSANBOY UGLI.hwpx -> 워드(한글)-006884-UKTAMOV SOKHIBJON KHUSANBOY UGLI.hml
2025-07-01 15:25:14,265 - INFO - 변환 성공: 워드(한글)-006885-AKHMADJONOV ABRORBEK ANVARJON UGLI.hwpx -> 워드(한글)-006885-AKHMADJONOV ABRORBEK ANVARJON UGLI.hml
2025-07-01 15:25:14,807 - INFO - 변환 성공: 워드(한글)-006886-KHOLMUROTOV DIYORJON SUNNAT UGLI.hwpx -> 워드(한글)-006886-KHOLMUROTOV DIYORJON SUNNAT UGLI.hml
2025-07-01 15:25:15,292 - INFO - 변환 성공: 워드(한글)-006887-TUGALOV JAVLON DILSHOD UGLI.hwpx -> 워드(한글)-006887-TUGALOV JAVLON DILSHOD UGLI.hml
2025-07-01 15:25:15,870 - INFO - 변환 성공: 워드(한글)-006888-MUKHIDDINOV SALOKHIDDIN ZAYNIDDIN UGLI.hwpx -> 워드(한글)-006888-MUKHIDDINOV SALOKHIDDIN ZAYNIDDIN UGLI.hml
2025-07-01 15:25:16,357 - INFO - 변환 성공: 워드(한글)-006889-SHOYMURODOV KHURSHID ANVAR UGLI.hwpx -> 워드(한글)-006889-SHOYMURODOV KHURSHID ANVAR UGLI.hml
2025-07-01 15:25:16,769 - INFO - 변환 성공: 워드(한글)-006890-MIRZAKARIMOV ULUGBEK MAKHSUDBEK UGLI.hwpx -> 워드(한글)-006890-MIRZAKARIMOV ULUGBEK MAKHSUDBEK UGLI.hml
2025-07-01 15:25:17,178 - INFO - 변환 성공: 워드(한글)-006891-SUVONOV KHIKMATILLO MAVLONBEK UGLI.hwpx -> 워드(한글)-006891-SUVONOV KHIKMATILLO MAVLONBEK UGLI.hml
2025-07-01 15:25:17,690 - INFO - 변환 성공: 워드(한글)-006892-YUSUPOV MUHAMMADJON KOZIM UGLI.hwpx -> 워드(한글)-006892-YUSUPOV MUHAMMADJON KOZIM UGLI.hml
2025-07-01 15:25:18,205 - INFO - 변환 성공: 워드(한글)-006893-Tara Wonyeon Langtangar.hwpx -> 워드(한글)-006893-Tara Wonyeon Langtangar.hml
2025-07-01 15:25:18,720 - INFO - 변환 성공: 워드(한글)-006894-NGUYEN THI YEN.hwpx -> 워드(한글)-006894-NGUYEN THI YEN.hml
2025-07-01 15:25:19,200 - INFO - 변환 성공: 워드(한글)-006895-NGO THI MINH THU.hwpx -> 워드(한글)-006895-NGO THI MINH THU.hml
2025-07-01 15:25:19,708 - INFO - 변환 성공: 워드(한글)-006896-RATNOI PIYAWAT.hwpx -> 워드(한글)-006896-RATNOI PIYAWAT.hml
2025-07-01 15:25:20,196 - INFO - 변환 성공: 워드(한글)-006897-PHAM THUY DUONG.hwpx -> 워드(한글)-006897-PHAM THUY DUONG.hml
2025-07-01 15:25:20,692 - INFO - 변환 성공: 워드(한글)-006898-Koshi Jong Shim Bernadette.hwpx -> 워드(한글)-006898-Koshi Jong Shim Bernadette.hml
2025-07-01 15:25:21,212 - INFO - 변환 성공: 워드(한글)-006899-GHALE SOM KUMAR.hwpx -> 워드(한글)-006899-GHALE SOM KUMAR.hml
2025-07-01 15:25:21,726 - INFO - 변환 성공: 워드(한글)-006900-PHAT SOKIN.hwpx -> 워드(한글)-006900-PHAT SOKIN.hml
2025-07-01 15:25:22,200 - INFO - 변환 성공: 워드(한글)-006901-PAHALAGAMA RALALAGE MADUSHIKA DEEPTH K.hwpx -> 워드(한글)-006901-PAHALAGAMA RALALAGE MADUSHIKA DEEPTH K.hml
2025-07-01 15:25:22,709 - INFO - 변환 성공: 워드(한글)-006902-NGUYEN THUY LINH.hwpx -> 워드(한글)-006902-NGUYEN THUY LINH.hml
2025-07-01 15:25:23,242 - INFO - 변환 성공: 워드(한글)-006903-ZUKHRIDDINOV OMATILLO KHAMIDULLO UGLI.hwpx -> 워드(한글)-006903-ZUKHRIDDINOV OMATILLO KHAMIDULLO UGLI.hml
2025-07-01 15:25:23,520 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\A\DIW
2025-07-01 15:25:24,021 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\B\DIW
2025-07-01 15:25:25,324 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\B\DIW
2025-07-01 15:25:25,825 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\C\DIW
2025-07-01 15:25:27,090 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\C\DIW
2025-07-01 15:25:27,591 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\D\DIW
2025-07-01 15:25:28,866 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\D\DIW
2025-07-01 15:25:29,366 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\E\DIW
2025-07-01 15:25:30,649 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506_5\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506_5\E\DIW
2025-07-01 15:37:39,702 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\A\DIW
2025-07-01 15:37:42,967 - INFO - 변환 성공: DIW_2506A.hwpx -> DIW_2506A.hml
2025-07-01 15:37:43,384 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\A\DIW
2025-07-01 15:37:43,885 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\B\DIW
2025-07-01 15:37:46,026 - INFO - 변환 성공: DIW_2506B.hwpx -> DIW_2506B.hml
2025-07-01 15:37:46,481 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\B\DIW
2025-07-01 15:37:46,982 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\C\DIW
2025-07-01 15:37:49,112 - INFO - 변환 성공: DIW_2506C.hwpx -> DIW_2506C.hml
2025-07-01 15:37:49,550 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\C\DIW
2025-07-01 15:37:50,051 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\D\DIW
2025-07-01 15:37:52,018 - INFO - 변환 성공: DIW_2506D.hwpx -> DIW_2506D.hml
2025-07-01 15:37:52,474 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\D\DIW
2025-07-01 15:37:52,976 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\E\DIW
2025-07-01 15:37:54,223 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2506\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2506\E\DIW

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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,80,124",
"searchValue": "생활가전수거캠페인",
"value": "209,114,108",
"points": 2,
"category": "Color",
"item": "문구 (광양매실축제안내)/② 채우기 : 색상(RGB:199,82,82)"
"item": "문구 (생활가전수거캠페인)/② 채우기 : 색상(RGB:209,114,108)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "광양매실축제안내",
"value": "100",
"searchValue": "생활가전수거캠페인",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (광양매실축제안내)/③ 크기-너비 (100mm)"
"item": "문구 (생활가전수거캠페인)/③ 크기-너비 (110 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,94 +112,94 @@
"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": "186,255,26",
"searchValue": "",
"value": "230,209,48",
"points": 2,
"category": "Color",
"item": "/③ 면색 : 색상(RGB:186,255,26)"
"item": "/③ 면색 : 색상(RGB:230,209,48)"
},
"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": "봄 매화, 여름 매실로 우리 함께 힐링합시다!",
"value": "ITALIC",
"searchValue": "2025년 7월부터 생활가전수거 캠페인을 시행",
"value": "BOLD",
"points": 2,
"category": "FontAttribute",
"item": "문구 (봄 매화, 여름 매실로 우리 함께 힐링합시다!)/① 기울임"
"item": "문구 (2025년 7월부터 생활가전수거 캠페인을 시행)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "봄 매화, 여름 매실로 우리 함께 힐링합시다!",
"value": "ITALIC",
"searchValue": "2025년 7월부터 생활가전수거 캠페인을 시행",
"value": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (봄 매화, 여름 매실로 우리 함께 힐링합시다!)/② 기울임"
"item": "문구 (2025년 7월부터 생활가전수거 캠페인을 시행)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"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(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "축제안내",
"searchValue": "홍보안내",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (→ 축제안내 )/② 정렬 (가운데 정렬)"
"item": "문구 (● 홍보안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "광양매실축제 홈페이지(http://www.ihd.or.kr)",
"searchValue": "서울시 25개 자치구 및 인근 지역",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (광양매실축제 홈페이지(http://www.ihd.or.kr))/① 진하게"
"item": "문구 (서울시 25개 자치구 및 인근 지역)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "광양매실축제 홈페이지(http://www.ihd.or.kr)",
"searchValue": "서울시 25개 자치구 및 인근 지역",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (광양매실축제 홈페이지(http://www.ihd.or.kr))/② 기울임"
"item": "문구 (서울시 25개 자치구 및 인근 지역)/② ITALIC"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
@@ -210,49 +210,49 @@
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 05. 24.",
"value": "1400",
"searchValue": "2025. 06. 28.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 05. 24.)/① 크기 (14pt)",
"item": "문구 (2025. 06. 28.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 05. 24.",
"searchValue": "2025. 06. 28.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 05. 24.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 06. 28.)/② 정렬 (가운데 정렬)"
},
"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": "2600",
"searchValue": "한국자원순환센터",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (광양매실축제위원회)/② 크기 (26pt)"
"item": "문구 (한국자원순환센터)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "광양매실축제위원회",
"searchValue": "한국자원순환센터",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (광양매실축제위원회)/③ 정렬 (가운데 정렬)"
"item": "문구 (한국자원순환센터)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
@@ -280,23 +280,23 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "CircledDigit",
"value": "HangulSyllable",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"1,2,3":"Digit",
"①,②,③":"CircledDigit",
"가,나,다": "HangulSyllable",
"㉮,㉯,㉰":"CircledHangulSyllable",
"A,B,C":"LatinCapital",
"Ⓐ,Ⓑ,Ⓒ":"CircledLatinCapital",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"정답에 맞는 값 value에 입력":""
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
@@ -315,10 +315,11 @@
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "180",
"first_word": "서",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 180% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점)"
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
@@ -342,7 +343,7 @@
"desc": "섹션이 1개 이상이면 점수부여"
},
"3": {
"path": "//COLDEF",
"path": "TEXT/COLDEF/@Count",
"value": "2",
"points": 3,
"category": "TwoColumn",
@@ -350,87 +351,87 @@
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "매화와 매실",
"value": "55",
"searchValue": "자원순환",
"value": "60",
"points": 2,
"category": "mmSize",
"item": "문구 (매화와 매실)/① 크기-너비 (55 mm)"
"item": "문구 (자원순환)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "매화와 매실",
"searchValue": "자원순환",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (매화와 매실)/② 크기-높이 (12 mm)"
"item": "문구 (자원순환)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "매화와 매실",
"searchValue": "자원순환",
"value": ["DoubleSlim", "283"],
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (매화와 매실)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt"
"item": "문구 (자원순환)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt로 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "매화와 매실",
"value": "20",
"searchValue": "자원순환",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (매화와 매실)/④ 글상자 모서리 (둥근모양)",
"desc": "모서리 비율 50이면 반원 / 20이면 둥근모양"
"item": "문구 (자원순환)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "매화와 매실",
"value": "122,179,64",
"searchValue": "자원순환",
"value": "131,194,68",
"points": 2,
"category": "Color",
"item": "문구 (매화와 매실)/⑤ 채우기 : 색상(RGB:122,179,64)"
"item": "문구 (자원순환)/⑤ 채우기 : 색상(RGB:131,194,68)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "매화와 매실",
"searchValue": "자원순환",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (매화와 매실)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (자원순환)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "매화와 매실",
"searchValue": "자원순환",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (매화와 매실)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (자원순환)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "매화와 매실",
"value": "중고딕",
"searchValue": "자원순환",
"value": "궁서체",
"points": 1,
"category": "FontName",
"item": "문구 (매화와 매실)/⑧ 글씨체 (중고딕)"
"item": "문구 (자원순환)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "매화와 매실",
"searchValue": "자원순환",
"value": "2000",
"points": 1,
"category": "OneAnswer",
"item": "문구 (매화와 매실)/⑨ 글씨크기 (20 pt)",
"item": "문구 (자원순환)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "매화와 매실",
"searchValue": "자원순환",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (매화와 매실)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (자원순환)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
@@ -438,7 +439,7 @@
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림B.jpg\" 삽입"
"item": "① 파일명 \"그림A.jpg\" 삽입"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
@@ -463,187 +464,183 @@
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"value": "22",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 매화의 특징",
"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. 자원순환의 필요성)/② 크기 (12pt)"
},
"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. 매실의 효능",
"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. 매실의 효능)/② 크기 (12pt)"
"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": "CircledHangulSyllable",
"searchValue": "땅으로 복사되는 에너지를 흡수하여 온실효과를 내는 기체",
"value": "CircledDigit",
"points": 2,
"category": "OneAnswer",
"item": "문구 (문인화)/④ 각주 번호모양",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"1,2,3":"Digit",
"①,②,③":"CircledDigit",
"가,나,다": "HangulSyllable",
"㉮,㉯,㉰":"CircledHangulSyllable",
"A,B,C":"LatinCapital",
"Ⓐ,Ⓑ,Ⓒ":"CircledLatinCapital",
"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",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Vitamin')])",
"ignoreWord": "Vitamin",
"path": "boolean(//CHAR[contains(text(),'Platform')])",
"ignoreWord": "Platform",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Vitamin/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Platform/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "연도별 자원순환율 추이(%)",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "제목 문구 (광양매실축제 만족도(단위 : %))/① 글씨체 (굴림체)"
"item": "제목 문구 (연도별 자원순환율 추이(%))/① 글씨체 (굴림체)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "광양매실축제 만족도(단위 : %)",
"searchValue": "연도별 자원순환율 추이(%)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (광양매실축제 만족도(단위 : %))/② 크기 (12pt)"
"item": "제목 문구 (연도별 자원순환율 추이(%))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "광양매실축제 만족도(단위 : %)",
"searchValue": "연도별 자원순환율 추이(%)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (광양매실축제 만족도(단위 : %))/③ 진하게"
"item": "제목 문구 (연도별 자원순환율 추이(%))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "광양매실축제 만족도(단위 : %)",
"searchValue": "연도별 자원순환율 추이(%)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (광양매실축제 만족도(단위 : %))/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (연도별 자원순환율 추이(%))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "233,174,43",
"value": "235,179,218",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:233,174,43)"
"item": "위쪽 제목 셀/① 색상(RGB:235,179,218)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -684,7 +681,7 @@
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (10pt)"
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
@@ -743,36 +740,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": "제목 문구 (광양매실축제 만족도)/② 크기 (13pt)"
"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",
@@ -792,10 +789,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",
@@ -815,10 +812,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

@@ -0,0 +1,838 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "동물등록제시행안내",
"value": "맑은고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (동물등록제시행안내)/① 글씨체 (맑은고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "동물등록제시행안내",
"value": "233,174,43",
"points": 2,
"category": "Color",
"item": "문구 (동물등록제시행안내)/② 채우기 : 색상(RGB:233,174,43)"
},
"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": "144,210,66",
"points": 2,
"category": "Color",
"item": "반/③ 면색 : 색상(RGB:144,210,66)"
},
"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": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (동물병원이나 펫샵, 동물등록대행업체에서)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"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(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "★ 사업안내 ★",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (★ 사업안내 ★)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "1마리당 3만원, 세대당 최대 1회 지원",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (1마리당 3만원, 세대당 최대 1회 지원)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "1마리당 3만원, 세대당 최대 1회 지원",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (1마리당 3만원, 세대당 최대 1회 지원)/② ITALIC"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 06. 28.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 28.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 06. 28.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 28.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "세종시반려동물과",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "문구 (세종시반려동물과)/① 글씨체 (궁서)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "세종시반려동물과",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (세종시반려동물과)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "세종시반려동물과",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (세종시반려동물과)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//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",
"甲,乙,丙": "DecagonCircleHanja",
"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": "60",
"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/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "동물등록제",
"value": ["DoubleSlim", "283"],
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (동물등록제)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt로 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "동물등록제",
"value": "20",
"points": 2,
"category": "OneAnswer",
"item": "문구 (동물등록제)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "동물등록제",
"value": "244,86,167",
"points": 2,
"category": "Color",
"item": "문구 (동물등록제)/⑤ 채우기 : 색상(RGB:244,86,167)"
},
"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": "2000",
"points": 1,
"category": "OneAnswer",
"item": "문구 (동물등록제)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "동물등록제",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (동물등록제)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
"searchValue": "원본 그림의 이름: 그림",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림B.jpg\" 삽입"
},
"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",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Petshop')])",
"ignoreWord": "Petshop",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Petshop/영단어 미입력, 대소문자/오타 시 전체 감점",
"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(), ' ', ''),'생후2개')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…생후 1개월 이상의 반려견을…)>'1' → '2' 글자바꿈"
},
"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": "221,162,248",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:221,162,248)"
},
"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": "OneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "동물등록현황",
"value": "궁서체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (동물등록현황)/① 글씨체 (궁서체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "동물등록현황",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (동물등록현황)/② 크기 (1300)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "동물등록현황",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (동물등록현황)/③ 진하게",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (굴림)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (굴림)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "굴림",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (굴림)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

View File

@@ -0,0 +1,838 @@
{
"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": "58,118,152",
"points": 2,
"category": "Color",
"item": "문구 (인공지능융합일자리박람회)/② 채우기 : 색상(RGB:58,118,152)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "인공지능융합일자리박람회",
"value": "130",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (인공지능융합일자리박람회)/③ 크기-너비 (130 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "인공지능융합일자리박람회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (인공지능융합일자리박람회)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "인공지능융합일자리박람회",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (인공지능융합일자리박람회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "인공지능융합일자리박람회",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (인공지능융합일자리박람회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "인공지능융합일자리박람회",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (인공지능융합일자리박람회)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "작",
"value": {
"Height": 2800,
"Width": 2800
},
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "작/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "작",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "작/② 글씨체 (굴림체)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "작",
"value": "17,227,206",
"points": 2,
"category": "Color",
"item": "작/③ 면색 : 색상(RGB:17,227,206)"
},
"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(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"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(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "행사안내",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"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": 15,
"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. 06. 28.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 28.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 06. 28.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 28.)/② 정렬 (가운데 정렬)"
},
"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": "2300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (차세대융합일자리협회)/② 크기 (2300)"
},
"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": "RomanSmall",
"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",
"甲,乙,丙": "DecagonCircleHanja",
"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": "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/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "인공지능의 영향",
"value": ["DoubleSlim", "283"],
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (인공지능의 영향)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt로 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "인공지능의 영향",
"value": "0",
"points": 2,
"category": "OneAnswer",
"item": "문구 (인공지능의 영향)/④ 글상자 모서리 (직각)",
"desc": "모서리 비율 반원:50 / 둥근모양:20 / 직각:0"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "인공지능의 영향",
"value": "239,238,20",
"points": 2,
"category": "Color",
"item": "문구 (인공지능의 영향)/⑤ 채우기 : 색상(RGB:239,238,20)"
},
"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": "2300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (인공지능의 영향)/⑨ 글씨크기 (2300)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "인공지능의 영향",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (인공지능의 영향)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
"searchValue": "원본 그림의 이름: 그림",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림C.jpg\" 삽입"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 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": "Digit",
"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",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Cooperation')])",
"ignoreWord": "Cooperation",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Cooperation/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "문구 (…경제활동 연장되면서 기간이 60세…)>'연장되면서 / 기간이' 순서바꿈"
},
"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": "229,183,242",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:229,183,242)"
},
"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": "OneAnswer",
"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

@@ -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": "53,164,78",
"searchValue": "한국골프박람회",
"value": "49,95,151",
"points": 2,
"category": "Color",
"item": "문구 (별사랑천문대캠프안내)/② 채우기 : 색상(RGB:53,164,78)"
"item": "문구 (한국골프박람회)/② 채우기 : 색상(RGB:49,95,151)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "별사랑천문대캠프안내",
"value": "120",
"searchValue": "한국골프박람회",
"value": "100",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (별사랑천문대캠프안내)/③ 크기-너비 (120 mm)"
"item": "문구 (한국골프박람회)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "별사랑천문대캠프안내",
"searchValue": "한국골프박람회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (별사랑천문대캠프안내)/④ 크기-높이 (20 mm)"
"item": "문구 (한국골프박람회)/④ 크기-높이 (20mm)"
},
"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,48 +112,48 @@
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "/① 모양 (2줄)"
"item": "/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"searchValue": "",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "/② 글씨체 (굴림체)"
"item": "/② 글씨체 (굴림체)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "211,202,24",
"searchValue": "",
"value": "236,162,142",
"points": 2,
"category": "Color",
"item": "/③ 면색 : 색상(RGB:211,202,24)"
"item": "/③ 면색 : 색상(RGB:236,162,142)"
},
"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": "천문우주과학 체험학습",
"value": "BOLD",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (천문우주과학 체험학습)/① 진하게"
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/① ITALIC"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "천문우주과학 체험학습",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (천문우주과학 체험학습)/② 밑줄"
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(text(),'{char1}')]",
@@ -169,90 +169,90 @@
},
"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(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "참가안내",
"searchValue": "행사안내",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (● 참가안내 ●)/② 정렬 (가운데 정렬)"
"item": "문구 (● 행사안내 ●)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "그룹별 20명(선착순 마감)",
"value": "ITALIC",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (그룹별 20명(선착순 마감))/① 기울임"
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "그룹별 20명(선착순 마감)",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (그룹별 20명(선착순 마감))/② 밑줄"
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Indent": 14
"Left": 10,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (14pt)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 05. 24.",
"searchValue": "2025. 06. 18.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 05. 24.)/① 크기 (14pt)",
"item": "문구 (2025. 06. 18.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 05. 24.",
"searchValue": "2025. 06. 18.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 05. 24.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 06. 18.)/② 정렬 (가운데 정렬)"
},
"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": "2600",
"searchValue": "한국골프연맹",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (별사랑천문대)/② 크기 (26pt)"
"item": "문구 (한국골프연맹)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "별사랑천문대",
"searchValue": "한국골프연맹",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (별사랑천문대)/③ 정렬 (가운데 정렬)"
"item": "문구 (한국골프연맹)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
@@ -280,23 +280,23 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "LatinCapital",
"value": "RomanCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
"desc1": {
"1,2,3":"Digit",
"①,②,③":"CircledDigit",
"가,나,다": "HangulSyllable",
"㉮,㉯,㉰":"CircledHangulSyllable",
"A,B,C":"LatinCapital",
"Ⓐ,Ⓑ,Ⓒ":"CircledLatinCapital",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"정답에 맞는 값 value에 입력":""
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
@@ -305,7 +305,7 @@
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"item": "오른쪽 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
@@ -315,10 +315,11 @@
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "180",
"first_word": "지",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 180% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점)"
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
@@ -342,7 +343,7 @@
"desc": "섹션이 1개 이상이면 점수부여"
},
"3": {
"path": "//COLDEF",
"path": "TEXT/COLDEF/@Count",
"value": "2",
"points": 3,
"category": "TwoColumn",
@@ -350,87 +351,87 @@
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "별자리",
"value": "60",
"searchValue": "골프",
"value": "50",
"points": 2,
"category": "mmSize",
"item": "문구 (별자리)/① 크기-너비 (60 mm)"
"item": "문구 (골프)/① 크기-너비 (50 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "별자리",
"searchValue": "골프",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (별자리)/② 크기-높이 (12mm)"
"item": "문구 (골프)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "별자리",
"searchValue": "골프",
"value": ["DoubleSlim", "283"],
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (별자리)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt"
"item": "문구 (골프)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt로 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "별자리",
"searchValue": "골프",
"value": "20",
"points": 2,
"category": "OneAnswer",
"item": "문구 (별자리)/④ 글상자 모서리 (반원)",
"item": "문구 (골프)/④ 글상자 모서리 (둥근모양)",
"desc": "모서리 비율 50이면 반원 / 20이면 둥근모양"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "별자리",
"value": "191,179,233",
"searchValue": "골프",
"value": "147,194,80",
"points": 2,
"category": "Color",
"item": "문구 (별자리)/⑤ 채우기 : 색상(RGB:191,179,233)"
"item": "문구 (골프)/⑤ 채우기 : 색상(RGB:147,194,80)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "별자리",
"searchValue": "골프",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (별자리)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (골프)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "별자리",
"searchValue": "골프",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (별자리)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (골프)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "별자리",
"value": "고딕",
"searchValue": "골프",
"value": "고딕",
"points": 1,
"category": "FontName",
"item": "문구 (별자리)/⑧ 글씨체 (고딕)"
"item": "문구 (골프)/⑧ 글씨체 (고딕)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "별자리",
"value": "1600",
"searchValue": "골프",
"value": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (별자리)/⑨ 글씨크기 (16pt)",
"item": "문구 (골프)/⑨ 글씨크기 (2200)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "별자리",
"searchValue": "골프",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (별자리)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (골프)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
@@ -438,14 +439,14 @@
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림C.jpg\" 삽입"
"item": "① 파일명 \"그림A.jpg\" 삽입"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"value": "85",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
"item": "② 크기-너비 (85 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
@@ -468,182 +469,177 @@
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 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. 골프란?)/② 크기 (12pt)"
},
"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. 우리나라 계절별 별자리)/② 크기 (12pt)"
"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": "큰곰자리의 꼬리에 해당하는 7개의 별",
"value": "굴림",
"searchValue": "한 분야에서 뛰어난 활약을 보인 사람들을 기념하기 위해 설립된 박물관, 단체, 모임을 말한다.",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 (북두칠성)/② 글씨체 (굴림)"
"item": "문구 (전당)/② 글씨체 (돋움체)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "큰곰자리의 꼬리에 해당하는 7개의 별",
"searchValue": "한 분야에서 뛰어난 활약을 보인 사람들을 기념하기 위해 설립된 박물관, 단체, 모임을 말한다.",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (북두칠성)/③ 크기 (9pt)"
"item": "문구 (전당)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "큰곰자리의 꼬리에 해당하는 7개의 별",
"value": "CircledLatinCapital",
"searchValue": "한 분야에서 뛰어난 활약을 보인 사람들을 기념하기 위해 설립된 박물관, 단체, 모임을 말한다.",
"value": "LatinSmall",
"points": 2,
"category": "OneAnswer",
"item": "문구 (북두칠성)/④ 각주 번호모양",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"1,2,3":"Digit",
"①,②,③":"CircledDigit",
"가,나,다": "HangulSyllable",
"㉮,㉯,㉰":"CircledHangulSyllable",
"A,B,C":"LatinCapital",
"Ⓐ,Ⓑ,Ⓒ":"CircledLatinCapital",
"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",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Babylonia')])",
"ignoreWord": "Babylonia",
"path": "boolean(//CHAR[contains(text(),'Fairway')])",
"ignoreWord": "Fairway",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Babylonia/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Fairway/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["성좌", "星座"],
["유래", "由來"],
["표석", "標石"],
["천구", "天球"],
["계절", "季節"]
["승부", "勝負"],
["초목", "草木"],
["설치", "設置"],
["인정", "認定"],
["유학", "留學"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 성좌(星座), ② 유래(由來), ③ 표석(標石), ④ 천구(天球), ⑤ 계절(季節)"
"item": "① 승부(勝負), ② 초목(草木), ③ 설치(設置), ④ 인정(認定), ⑤ 유학(留學)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'역에해당')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이있는')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…지역이 해당하는 티그리스강과…)/이 글자바꿈"
"item": "문구 (…초목(草木)은 있는…) / 은 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'나는반드')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'초의프로')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…둘 중 반드시 하나는…)/반드시 / 하나는 순서바꿈"
"item": "문구 (…프로 골프 최초의 선수…)/프로 골프 / 최초의 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "지역별 천문대 수",
"value": "돋움체",
"searchValue": "골프 관련 체육시설업 현황",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (지역별 천문대 수)/① 글씨체 (돋움체)"
"item": "제목 문구 (골프 관련 체육시설업 현황)/① 글씨체 (중고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "지역별 천문대 수",
"searchValue": "골프 관련 체육시설업 현황",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 천문대 수)/② 크기 (12pt)"
"item": "제목 문구 (골프 관련 체육시설업 현황)/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "지역별 천문대 수",
"searchValue": "골프 관련 체육시설업 현황",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (지역별 천문대 수)/③ 진하게"
"item": "제목 문구 (골프 관련 체육시설업 현황)/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "지역별 천문대 수",
"searchValue": "골프 관련 체육시설업 현황",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 천문대 수)/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (골프 관련 체육시설업 현황)/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "255,164,95",
"value": "233,174,61",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:255,164,95)"
"item": "위쪽 제목 셀/① 색상(RGB:233,174,61)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -672,11 +668,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": {
@@ -743,42 +739,42 @@
},
"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": "1400",
"searchValue": "골프 관련 체육시설업 현황",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 천문대 수)/② 크기 (14pt)"
"item": "제목 문구 (골프 관련 체육시설업 현황)/② 크기 (1200)"
},
"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": "OneAnswer",
"item": "X축/① 글꼴 (바탕)"
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
@@ -786,22 +782,22 @@
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "바탕",
"value": "돋움",
"points": 1,
"category": "OneAnswer",
"item": "Y축/① 글꼴 (바탕)"
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
@@ -809,16 +805,16 @@
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"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.

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,854 @@
{
"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": "49,95,151",
"points": 2,
"category": "Color",
"item": "문구 (한국골프박람회)/② 채우기 : 색상(RGB:49,95,151)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "한국골프박람회",
"value": "100",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한국골프박람회)/③ 크기-너비 (110mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "한국골프박람회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한국골프박람회)/④ 크기-높이 (20mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "한국골프박람회",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한국골프박람회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "한국골프박람회",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한국골프박람회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "한국골프박람회",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (한국골프박람회)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "지",
"value": {
"Height": 2800,
"Width": 2800
},
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "지/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "지",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "지/② 글씨체 (굴림체)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "지",
"value": "236,162,142",
"points": 2,
"category": "Color",
"item": "지/③ 면색 : 색상(RGB:236,162,142)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "지",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "지/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/① ITALIC"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"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(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "행사안내",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (▷ 행사안내 ◁)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 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. 06. 30.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 30.)/① 크기 (14pt)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 06. 30.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 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": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국골프연맹)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "한국골프연맹",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국골프연맹)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//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": "RomanCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
"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",
"정답에 맞는 값 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": "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/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "골프",
"value": [
"DoubleSlim",
"283"
],
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (골프)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt로 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "골프",
"value": "20",
"points": 2,
"category": "OneAnswer",
"item": "문구 (골프)/④ 글상자 모서리 (둥근모양)",
"desc": "모서리 비율 50이면 반원 / 20이면 둥근모양"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "골프",
"value": "147,194,80",
"points": 2,
"category": "Color",
"item": "문구 (골프)/⑤ 채우기 : 색상(RGB:147,194,80)"
},
"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": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑨ 글씨크기 (2200)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "골프",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
"searchValue": "원본 그림의 이름: 그림",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 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": "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. 한국의 골프 역사)/② 크기 (12pt)"
},
"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": "LatinSmall",
"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",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Fairway')])",
"ignoreWord": "Fairway",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Fairway/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "제목 문구 (골프 관련 체육시설업 현황)/② 크기 (12pt)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "골프 관련 체육시설업 현황",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (골프 관련 체육시설업 현황)/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "골프 관련 체육시설업 현황",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "233,174,61",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:233,174,61)"
},
"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": "글자모양/② 크기 (10pt)"
},
"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": "OneAnswer",
"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

@@ -0,0 +1,854 @@
{
"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": "49,95,151",
"points": 2,
"category": "Color",
"item": "문구 (한국골프박람회)/② 채우기 : 색상(RGB:49,95,151)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "한국골프박람회",
"value": "100",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한국골프박람회)/③ 크기-너비 (110mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "한국골프박람회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한국골프박람회)/④ 크기-높이 (20mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "한국골프박람회",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한국골프박람회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "한국골프박람회",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한국골프박람회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "한국골프박람회",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (한국골프박람회)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "지",
"value": {
"Height": 2800,
"Width": 2800
},
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "지/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "지",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "지/② 글씨체 (굴림체)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "지",
"value": "236,162,142",
"points": 2,
"category": "Color",
"item": "지/③ 면색 : 색상(RGB:236,162,142)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "지",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "지/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/① ITALIC"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"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(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "행사안내",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (▷ 행사안내 ◁)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 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. 06. 30.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 30.)/① 크기 (14pt)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 06. 30.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 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": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국골프연맹)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "한국골프연맹",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국골프연맹)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//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": "RomanCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
"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",
"정답에 맞는 값 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": "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/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "골프",
"value": [
"DoubleSlim",
"283"
],
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (골프)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt로 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "골프",
"value": "20",
"points": 2,
"category": "OneAnswer",
"item": "문구 (골프)/④ 글상자 모서리 (둥근모양)",
"desc": "모서리 비율 50이면 반원 / 20이면 둥근모양"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "골프",
"value": "147,194,80",
"points": 2,
"category": "Color",
"item": "문구 (골프)/⑤ 채우기 : 색상(RGB:147,194,80)"
},
"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": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑨ 글씨크기 (2200)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "골프",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
"searchValue": "원본 그림의 이름: 그림",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 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": "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. 한국의 골프 역사)/② 크기 (12pt)"
},
"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": "LatinSmall",
"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",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Fairway')])",
"ignoreWord": "Fairway",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Fairway/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "제목 문구 (골프 관련 체육시설업 현황)/② 크기 (12pt)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "골프 관련 체육시설업 현황",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (골프 관련 체육시설업 현황)/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "골프 관련 체육시설업 현황",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "233,174,61",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:233,174,61)"
},
"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": "글자모양/② 크기 (10pt)"
},
"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": "OneAnswer",
"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"
}
}
}