2511회 채점완료

This commit is contained in:
2025-11-28 17:04:20 +09:00
parent ed97d6c9ed
commit 24b4a8b72d
57 changed files with 3776 additions and 1707 deletions

View File

@@ -4,8 +4,8 @@ from pathlib import Path
import re
# ===== 사용자 설정 =====
source_dir = r"D:\project\HWP\HWP-Scoring\회차별채점자료\2510"
exam_round = "2510" # 회차명
source_dir = r"D:\project\HWP\HWP-Scoring\회차별채점자료\2511"
exam_round = "2511" # 회차명
exam_code = "DIW" # 코드명
# =======================

View File

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

View File

@@ -166,7 +166,7 @@ if __name__ == "__main__":
setup_logging()
exam_rounds = [
"2510",
"2511",
# "2507"
]

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.

BIN
251128_DIW_2511D_TEST.xlsx Normal file

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": "14,214,211",
"searchValue": "대학교육정책포럼",
"value": "53,135,145",
"points": 2,
"category": "Color",
"item": "문구 (현대미술비엔날레)/② 채우기 : 색상(RGB:14,214,211)"
"item": "문구 (대학교육정책포럼)/② 채우기 : 색상(RGB:53,135,145)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "현대미술비엔날레",
"searchValue": "대학교육정책포럼",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (현대미술비엔날레)/③ 크기-너비 (120 mm)"
"item": "문구 (대학교육정책포럼)/③ 크기-너비 (120 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "현대미술비엔날레",
"searchValue": "대학교육정책포럼",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (현대미술비엔날레)/④ 크기-높이 (20 mm)"
"item": "문구 (대학교육정책포럼)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "현대미술비엔날레",
"searchValue": "대학교육정책포럼",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (현대미술비엔날레)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (대학교육정책포럼)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "현대미술비엔날레",
"searchValue": "대학교육정책포럼",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (현대미술비엔날레)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (대학교육정책포럼)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "현대미술비엔날레",
"searchValue": "대학교육정책포럼",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (현대미술비엔날레)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (대학교육정책포럼)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -116,7 +116,7 @@
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"searchValue": "",
"value": "굴림체",
"points": 1,
"category": "FontName",
@@ -124,15 +124,15 @@
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "37,211,143",
"searchValue": "",
"value": "192,204,239",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:37,211,143)"
"item": "어/③ 면색 : 색상(RGB:192,204,239)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
@@ -141,19 +141,19 @@
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "경계를 넘어, 새로운 시선",
"searchValue": "대학 퇴출 및 통폐합의 방향과 과제를 주제",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (경계를 넘어, 새로운 시선)/① BOLD"
"item": "문구 (대학 퇴출 및 통폐합의 방향과 과제를 주제)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "경계를 넘어, 새로운 시선",
"searchValue": "대학 퇴출 및 통폐합의 방향과 과제를 주제",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (경계를 넘어, 새로운 시선)/② UNDERLINE"
"item": "문구 (대학 퇴출 및 통폐합의 방향과 과제를 주제)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
@@ -186,20 +186,20 @@
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025. 10. 29.() 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"searchValue": "2025. 11. 28.() 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025. 10. 29.() 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/① BOLD"
"item": "문구 (2025. 11. 28.() 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025. 10. 29.() 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"searchValue": "2025. 11. 28.() 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025. 10. 29.() 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/② ITALIC"
"item": "문구 (2025. 11. 28.() 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/② ITALIC"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
@@ -215,52 +215,52 @@
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 10. 25.",
"value": "1400",
"searchValue": "2025. 11. 22.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/① 크기 (1400)",
"item": "문구 (2025. 11. 22.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 10. 25.",
"searchValue": "2025. 11. 22.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "현대미술발전협의회",
"value": "맑은고딕",
"searchValue": "한국대학교육협의회",
"value": "고딕",
"points": 1,
"category": "FontName",
"item": "문구 (현대미술발전협의회)/① 글씨체 (맑은고딕)"
"item": "문구 (한국대학교육협의회)/① 글씨체 (고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "현대미술발전협의회",
"searchValue": "한국대학교육협의회",
"value": "2500",
"points": 1,
"category": "OneAnswer",
"item": "문구 (현대미술발전협의회)/② 크기 (2500)"
"item": "문구 (한국대학교육협의회)/② 크기 (2500)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "현대미술발전협의회",
"searchValue": "한국대학교육협의회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (현대미술발전협의회)/③ 정렬 (가운데 정렬)"
"item": "문구 (한국대학교육협의회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "궁서체",
"value": "굴림",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (궁서체)"
"item": "문구 (DIAT)/① 글꼴 (굴림)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -283,20 +283,26 @@
"value": "LatinCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
@@ -319,13 +325,13 @@
"value": true,
"points": 2,
"category": "hyperlink",
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
"item": "문구 (https://www.ihd.or.kr)/하이퍼링크 없이 작성",
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
},
"31": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "200",
"first_word": "",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
@@ -361,17 +367,17 @@
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "55",
"value": "65",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (현대미술 생태계)/① 크기-너비 (55 mm)"
"item": "문구 (대학 구조조정)/① 크기-너비 (65 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (현대미술 생태계)/② 크기-높이 (12 mm)"
"item": "문구 (대학 구조조정)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -381,7 +387,7 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (현대미술 생태계)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (대학 구조조정)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
@@ -389,43 +395,43 @@
"value": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (현대미술 생태계)/④ 글상자 모서리 (반원)",
"item": "문구 (대학 구조조정)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "229,233,119",
"value": "227,220,193",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (현대미술 생태계)/⑤ 채우기 : 색상(RGB:229,233,119)"
"item": "문구 (대학 구조조정)/⑤ 채우기 : 색상(RGB:227,220,193)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (현대미술 생태계)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (대학 구조조정)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (현대미술 생태계)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (대학 구조조정)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "견고딕",
"value": "궁서체",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (현대미술 생태계)/⑧ 글씨체 (견고딕)"
"item": "문구 (대학 구조조정)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "2000",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (현대미술 생태계)/⑨ 글씨크기 (2000)",
"item": "문구 (대학 구조조정)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
@@ -433,39 +439,39 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (현대미술 생태계)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (대학 구조조정)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림C.jpg\" 삽입",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 mm)"
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "35",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
"item": "③ 크기-높이 (35 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"points": 2,
"category": "mmSize",
@@ -473,81 +479,81 @@
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 현대미술 트렌드",
"value": "돋움",
"searchValue": "1. 학령인구 감소",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구① (1. 현대미술 트렌드)/① 글씨체 (돋움)"
"item": "문구① (1. 학령인구 감소)/① 글씨체 (중고딕)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 현대미술 트렌드",
"searchValue": "1. 학령인구 감소",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 현대미술 트렌드)/② 크기 (1200)"
"item": "문구① (1. 학령인구 감소)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 현대미술 트렌드",
"searchValue": "1. 학령인구 감소",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 현대미술 트렌드)/③ 진하게"
"item": "문구① (1. 학령인구 감소)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 현대미술의 가치",
"value": "돋움",
"searchValue": "2. 한계대학이란?",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구② (2. 현대미술의 가치)/① 글씨체 (돋움)"
"item": "문구② (2. 한계대학이란?)/① 글씨체 (중고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 현대미술의 가치",
"searchValue": "2. 한계대학이란?",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 현대미술의 가치)/② 크기 (1200)"
"item": "문구② (2. 한계대학이란?)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 현대미술의 가치",
"searchValue": "2. 한계대학이란?",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 현대미술의 가치)/③ 진하게"
"item": "문구② (2. 한계대학이란?)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "블록체인(Blockchain)",
"option": "학령인구",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (블록체인(Blockchain))/① 각주 설정 및 문구 입력"
"item": "문구 (학령인구)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "누구라도 임의로 수정할 수 없고, 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술",
"value": "돋움",
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (블록체인(Blockchain))/② 글씨체 (돋움)"
"item": "문구 (학령인구)/② 글씨체 (돋움)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "누구라도 임의로 수정할 수 없고, 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술",
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (블록체인(Blockchain))/③ 크기 (9pt)"
"item": "문구 (학령인구)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "누구라도 임의로 수정할 수 없고, 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술",
"value": "HangulPhonetic",
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "CircledHangulJamo",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
@@ -563,6 +569,7 @@
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
@@ -572,81 +579,81 @@
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Blockchain')])",
"ignoreWord": "Blockchain",
"path": "boolean(//CHAR[contains(text(),'Management')])",
"ignoreWord": "Management",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Blockchain/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Management/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["진화", "進化"],
["관객", "觀客"],
["매체", "媒體"],
["대체", "代替"],
["논의", "論議"]
["환경", "環境"],
["분석", "分析"],
["재무구조", "財務構造"],
["경영", "經營"],
["상태", "狀態"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 진화(進化), ② 관객(觀客), ③ 매체(媒體), ④ 대체(代替), ⑤ 논의(論議)"
"item": "① 환경(環境), ② 분석(分析), ③ 재무구조(財務構造), ④ 경영(經營), ⑤ 상태(狀態)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'지털아트')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'덕적해이')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…아트나 디지털 대체(代替) 불가능 토큰…)>'아트나 / 디지털' 순서바꿈"
"item": "문구 (…비위나 해이가 도덕적 대학…)>'해이가 / 도덕적' 순서바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'페어및비엔')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'증가추이')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…글로벌 아트페어 밑 비엔날레가…)>'밑→및' 글자바꿈"
"item": "문구 (…향후 증강 추이는 가속화될 전망이다…)>'강 → 가' 글자바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "현대미술 성장률(단위: %)",
"value": "고딕",
"searchValue": "학령인구 변동 추계(단위:천명)",
"value": "맑은고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (현대미술 성장률(단위: %))/① 글씨체 (고딕)"
"item": "제목 문구 (학령인구 변동 추계(단위:천명))/① 글씨체 (맑은고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "현대미술 성장률(단위: %)",
"searchValue": "학령인구 변동 추계(단위:천명)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (현대미술 성장률(단위: %))/② 크기 (1200)"
"item": "제목 문구 (학령인구 변동 추계(단위:천명))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "현대미술 성장률(단위: %)",
"searchValue": "학령인구 변동 추계(단위:천명)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (현대미술 성장률(단위: %))/③ 진하게"
"item": "제목 문구 (학령인구 변동 추계(단위:천명))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "현대미술 성장률(단위: %)",
"searchValue": "학령인구 변동 추계(단위:천명)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (현대미술 성장률(단위: %))/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "105,155,39",
"value": "158,219,98",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:105,155,39)"
"item": "위쪽 제목 셀/① 색상(RGB:158,219,98)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -675,11 +682,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "굴림",
"value": "돋움체",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (굴림)",
"item": "글자모양/① 글씨체 (돋움체)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -746,28 +753,28 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "현대미술 성장률",
"value": "돋움체",
"searchValue": "학령인구 변동 추계",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (현대미술 성장률)/① 글씨체 (돋움체)"
"item": "제목 문구 (학령인구 변동 추계)/① 글씨체 (굴림체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "현대미술 성장률",
"value": "1400",
"searchValue": "학령인구 변동 추계",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (현대미술 성장률)/② 크기 (1400)"
"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": {

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": "202,86,167",
"searchValue": "전통주페어링특강안내",
"value": "187,57,49",
"points": 2,
"category": "Color",
"item": "문구 (반려동물산업의미래)/② 채우기 : 색상(RGB:202,86,167)"
"item": "문구 (전통주페어링특강안내)/② 채우기 : 색상(RGB:187,57,49)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "반려동물산업의미래",
"searchValue": "전통주페어링특강안내",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (반려동물산업의미래)/③ 크기-너비 (110 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
@@ -116,23 +116,23 @@
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "바탕체",
"searchValue": "",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "어/② 글씨체 (바탕체)"
"item": "어/② 글씨체 (중고딕)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "252,229,88",
"searchValue": "",
"value": "252,231,95",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:252,229,88)"
"item": "어/③ 면색 : 색상(RGB:252,231,95)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
@@ -141,39 +141,39 @@
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "제1회 반려동물 산업의 미래",
"searchValue": "전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (제1회 반려동물 산업의 미래)/① BOLD"
"item": "문구 (전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "제1회 반려동물 산업의 미래",
"searchValue": "전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (제1회 반려동물 산업의 미래)/② UNDERLINE"
"item": "문구 (전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "궁서",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 ( 행사안내 )/① 글씨체 (궁서)"
"item": "문구 ( 행사안내 )/① 글씨체 (굴림체)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
@@ -181,78 +181,78 @@
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "반려동물 산업 종사자, 단체 및 학계, 언론 관계자 등",
"value": "BOLD",
"searchValue": "2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (반려동물 산업 종사자, 단체 및 학계, 언론 관계자 등)/① BOLD"
"item": "문구 (2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "반려동물 산업 종사자, 단체 및 학계, 언론 관계자 등",
"value": "ITALIC",
"searchValue": "2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (반려동물 산업 종사자, 단체 및 학계, 언론 관계자 등)/② ITALIC"
"item": "문구 (2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Indent": 12
"Left": 12,
"Indent": 14
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (14)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 10. 25.",
"searchValue": "2025. 11. 22.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/① 크기 (1300)",
"item": "문구 (2025. 11. 22.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 10. 25.",
"searchValue": "2025. 11. 22.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "한국반려동물산업협회",
"searchValue": "대한민국전통주살리기협회",
"value": "궁서체",
"points": 1,
"category": "FontName",
"item": "문구 (한국반려동물산업협회)/① 글씨체 (궁서체)"
"item": "문구 (대한민국전통주살리기협회)/① 글씨체 (궁서체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "한국반려동물산업협회",
"value": "2400",
"searchValue": "대한민국전통주살리기협회",
"value": "2700",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국반려동물산업협회)/② 크기 (2400)"
"item": "문구 (대한민국전통주살리기협회)/② 크기 (2700)"
},
"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",
@@ -280,23 +280,29 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "LatinCapital",
"value": "HangulSyllable",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
@@ -324,11 +330,11 @@
},
"31": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "200",
"first_word": "",
"value": "190",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
"item": "문제 1 줄간격 190% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
@@ -364,14 +370,14 @@
"value": "60",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (반려동물 시장)/① 크기-너비 (60 mm)"
"item": "문구 (한국의 전통주)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (반려동물 시장)/② 크기-높이 (12 mm)"
"item": "문구 (한국의 전통주)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -381,51 +387,51 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (반려동물 시장)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (한국의 전통주)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE/@Ratio",
"value": "50",
"value": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (반려동물 시장)/④ 글상자 모서리 (반원)",
"item": "문구 (한국의 전통주)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "233,174,43",
"value": "53,135,145",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (반려동물 시장)/⑤ 채우기 : 색상(RGB:233,174,43)"
"item": "문구 (한국의 전통주)/⑤ 채우기 : 색상(RGB:53,135,145)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (반려동물 시장)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (한국의 전통주)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (반려동물 시장)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (한국의 전통주)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "견고딕",
"value": "궁서",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (반려동물 시장)/⑧ 글씨체 (견고딕)"
"item": "문구 (한국의 전통주)/⑧ 글씨체 (궁서)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "1800",
"value": "2000",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (반려동물 시장)/⑨ 글씨크기 (1800)",
"item": "문구 (한국의 전통주)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
@@ -433,10 +439,10 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (반려동물 시장)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (한국의 전통주)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
@@ -444,116 +450,117 @@
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
"item": "② 크기-너비 (85 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "22",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 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. 펫 휴머니제이션)/② 크기 (1200)"
"item": "문구① (1. 한국 전통주)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 펫 휴머니제이션",
"searchValue": "1. 한국 전통주",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 펫 휴머니제이션)/③ 진하게"
"item": "문구① (1. 한국 전통주)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 반려동물 산업의 미래",
"searchValue": "2. 패러다임 바뀐 음주 문화",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구② (2. 반려동물 산업의 미래)/① 글씨체 (돋움)"
"item": "문구② (2. 패러다임 바뀐 음주 문화)/① 글씨체 (돋움)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 반려동물 산업의 미래",
"searchValue": "2. 패러다임 바뀐 음주 문화",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 반려동물 산업의 미래)/② 크기 (1200)"
"item": "문구② (2. 패러다임 바뀐 음주 문화)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 반려동물 산업의 미래",
"searchValue": "2. 패러다임 바뀐 음주 문화",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 반려동물 산업의 미래)/③ 진하게"
"item": "문구② (2. 패러다임 바뀐 음주 문화)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "펫팸족",
"option": "MZ세대",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (펫팸족)/① 각주 설정 및 문구 입력"
"item": "문구 (MZ세대)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "반려동물을 가족처럼 여기는 사람들",
"value": "중고딕",
"searchValue": "밀레니얼 세대와 Z세대를 통틀어 지칭하는 신조어",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "문구 (펫팸족)/② 글씨체 (중고딕)"
"item": "문구 (MZ세대)/② 글씨체 (바탕체)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "반려동물을 가족처럼 여기는 사람들",
"searchValue": "밀레니얼 세대와 Z세대를 통틀어 지칭하는 신조어",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (펫팸족)/③ 크기 (9pt)"
"item": "문구 (MZ세대)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "반려동물을 가족처럼 여기는 사람들",
"value": "DecagonCircleHanja",
"searchValue": "밀레니얼 세대와 Z세대를 통틀어 지칭하는 신조어",
"value": "UserChar",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
@@ -562,6 +569,7 @@
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
@@ -571,81 +579,81 @@
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Solution')])",
"ignoreWord": "Solution",
"path": "boolean(//CHAR[contains(text(),'Paradigm')])",
"ignoreWord": "Paradigm",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Solution/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Paradigm/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "문구 (…경제 수준 향상, 고령화, 저출산, 1인 가구…)>'고령화, / 저출산, ' 순서바꿈"
"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": "국내 반려동물 시장 규모(단위:십억 원)",
"value": "1100",
"searchValue": "연도별 전통주 산업(단위:원)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (국내 반려동물 시장 규모(단위:십억 원))/② 크기 (1100)"
"item": "제목 문구 (연도별 전통주 산업(단위:원))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "국내 반려동물 시장 규모(단위:십억 원)",
"searchValue": "연도별 전통주 산업(단위:원)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (국내 반려동물 시장 규모(단위:십억 원))/③ 진하게"
"item": "제목 문구 (연도별 전통주 산업(단위:원))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "국내 반려동물 시장 규모(단위:십억 원)",
"searchValue": "연도별 전통주 산업(단위:원)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (국내 반려동물 시장 규모(단위:십억 원))/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (연도별 전통주 산업(단위:원))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "166,220,112",
"value": "202,86,167",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:166,220,112)"
"item": "위쪽 제목 셀/① 색상(RGB:202,86,167)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -674,11 +682,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "돋움",
"value": "중고딕",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (돋움)",
"item": "글자모양/① 글씨체 (중고딕)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -697,7 +705,7 @@
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "SUM",
"option": "AVG",
"value": true,
"points": 4,
"category": "Boolean",
@@ -706,11 +714,11 @@
},
"45": {
"chart_xpath": "",
"chart_type": "표식만 있는 분산형",
"chart_type": "누적 세로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (표식만 있는 분산형)",
"item": "① 종류 (누적 세로 막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
@@ -745,36 +753,36 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "국내 반려동물 시장 규모",
"value": "궁서체",
"searchValue": "연도별 전통주 산업",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (국내 반려동물 시장 규모)/① 글씨체 (궁서체)"
"item": "제목 문구 (연도별 전통주 산업)/① 글씨체 (굴림체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "국내 반려동물 시장 규모",
"searchValue": "연도별 전통주 산업",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (국내 반려동물 시장 규모)/② 크기 (1300)"
"item": "제목 문구 (연도별 전통주 산업)/② 크기 (1300)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "국내 반려동물 시장 규모",
"searchValue": "연도별 전통주 산업",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (국내 반려동물 시장 규모)/③ 기울임",
"item": "제목 문구 (연도별 전통주 산업)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"value": "바탕",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (굴림)"
"item": "X축/① 글꼴 (바탕)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -794,10 +802,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"value": "바탕",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (굴림)"
"item": "Y축/① 글꼴 (바탕)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -817,10 +825,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "굴림",
"value": "바탕",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (굴림)"
"item": "범례/① 글꼴 (바탕)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

View File

@@ -46,65 +46,65 @@
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "즐거운컬러푸드영양교실",
"value": "궁서체",
"searchValue": "제18회인정시북페스티벌",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (즐거운컬러푸드영양교실)/① 글씨체 (궁서체)"
"item": "문구 (제18회인정시북페스티벌)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "즐거운컬러푸드영양교실",
"value": "51,63,153",
"searchValue": "제18회인정시북페스티벌",
"value": "104,37,245",
"points": 2,
"category": "Color",
"item": "문구 (즐거운컬러푸드영양교실)/② 채우기 : 색상(RGB:51,63,153)"
"item": "문구 (제18회인정시북페스티벌)/② 채우기 : 색상(RGB:104,37,245)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "즐거운컬러푸드영양교실",
"value": "130",
"searchValue": "제18회인정시북페스티벌",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (즐거운컬러푸드영양교실)/③ 크기-너비 (130 mm)"
"item": "문구 (제18회인정시북페스티벌)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "즐거운컬러푸드영양교실",
"searchValue": "제18회인정시북페스티벌",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (즐거운컬러푸드영양교실)/④ 크기-높이 (20 mm)"
"item": "문구 (제18회인정시북페스티벌)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "즐거운컬러푸드영양교실",
"searchValue": "제18회인정시북페스티벌",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (즐거운컬러푸드영양교실)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (제18회인정시북페스티벌)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "즐거운컬러푸드영양교실",
"searchValue": "제18회인정시북페스티벌",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (즐거운컬러푸드영양교실)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (제18회인정시북페스티벌)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "즐거운컬러푸드영양교실",
"searchValue": "제18회인정시북페스티벌",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (즐거운컬러푸드영양교실)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (제18회인정시북페스티벌)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -116,23 +116,23 @@
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "맑은 고딕",
"searchValue": "",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "어/② 글씨체 (맑은 고딕)"
"item": "어/② 글씨체 (굴림)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "105,231,82",
"searchValue": "",
"value": "234,137,67",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:105,231,82)"
"item": "어/③ 면색 : 색상(RGB:234,137,67)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
@@ -141,39 +141,39 @@
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "즐거운 컬러푸드 영양교실",
"searchValue": "제18회 인정시 북 페스티벌",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (즐거운 컬러푸드 영양교실)/① BOLD"
"item": "문구 (제18회 인정시 북 페스티벌)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "즐거운 컬러푸드 영양교실",
"searchValue": "제18회 인정시 북 페스티벌",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (즐거운 컬러푸드 영양교실)/② ITALIC"
"item": "문구 (제18회 인정시 북 페스티벌)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "굴림체",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 ( 행사안내 )/① 글씨체 (굴림체)"
"item": "문구 ( 행사안내 )/① 글씨체 (돋움체)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
@@ -181,86 +181,86 @@
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "홈페이지(http://www.ihd.or.kr)",
"searchValue": "인정시립대학교 야외무대",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (홈페이지(http://www.ihd.or.kr))/① ITALIC"
"item": "문구 (인정시립대학교 야외무대)/① ITALIC"
},
"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))/② UNDERLINE"
"item": "문구 (인정시립대학교 야외무대)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 18,
"Left": 15,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (18), 내어쓰기 (12)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 10. 16.",
"searchValue": "2025. 11. 22.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 16.)/① 크기 (1400)",
"item": "문구 (2025. 11. 22.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 10. 16.",
"searchValue": "2025. 11. 22.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 16.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
},
"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": "2200",
"searchValue": "인정시립대학교 총무팀",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (용일동보건소)/② 크기 (2200)"
"item": "문구 (인정시립대학교 총무팀)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "용일동보건소",
"searchValue": "인정시립대학교 총무팀",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (용일동보건소)/③ 정렬 (가운데 정렬)"
"item": "문구 (인정시립대학교 총무팀)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움",
"value": "돋움",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움)"
"item": "문구 (DIAT)/① 글꼴 (돋움)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -280,23 +280,29 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "LatinCapital",
"value": "DecagonCircle",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"item": "① 쪽 번호 매기기 (갑,을,병 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
@@ -315,7 +321,7 @@
},
"30": {
"path": "//CHAR[contains(text(),'{searchValue}')]",
"searchValue": "http://www.ihd.or.kr",
"searchValue": "http",
"value": true,
"points": 2,
"category": "hyperlink",
@@ -325,7 +331,7 @@
"31": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "180",
"first_word": "",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 180% 설정",
@@ -361,17 +367,17 @@
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "55",
"value": "60",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (다양한 컬러푸드)/① 크기-너비 (55 mm)"
"item": "문구 (베스트와 스테디)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (다양한 컬러푸드)/② 크기-높이 (12 mm)"
"item": "문구 (베스트와 스테디)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -381,7 +387,7 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (다양한 컬러푸드)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (베스트와 스테디)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
@@ -389,43 +395,43 @@
"value": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (다양한 컬러푸드)/④ 글상자 모서리 (반원)",
"item": "문구 (베스트와 스테디)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "194,133,195",
"value": "233,106,147",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (다양한 컬러푸드)/⑤ 채우기 : 색상(RGB:194,133,195)"
"item": "문구 (베스트와 스테디)/⑤ 채우기 : 색상(RGB:233,106,147)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (다양한 컬러푸드)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (베스트와 스테디)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (다양한 컬러푸드)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (베스트와 스테디)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "견고딕",
"value": "궁서체",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (다양한 컬러푸드)/⑧ 글씨체 (견고딕)"
"item": "문구 (베스트와 스테디)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "1600",
"value": "1800",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (다양한 컬러푸드)/⑨ 글씨크기 (1600)",
"item": "문구 (베스트와 스테디)/⑨ 글씨크기 (1800)",
"desc": "1pt당 100"
},
"13": {
@@ -433,127 +439,128 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (다양한 컬러푸드)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (베스트와 스테디)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"item": "① 파일명 \"그림C.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "2",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 2mm)"
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "23",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 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. 컬러푸드란?",
"value": "1100",
"searchValue": "1. 베스트셀러",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 컬러푸드란?)/② 크기 (1100)"
"item": "문구① (1. 베스트셀러)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 컬러푸드란?",
"searchValue": "1. 베스트셀러",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 컬러푸드란?)/③ 진하게"
"item": "문구① (1. 베스트셀러)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 컬러푸드의 효능",
"value": "굴림",
"searchValue": "2. 스테디셀러",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구② (2. 컬러푸드의 효능)/① 글씨체 (굴림)"
"item": "문구② (2. 스테디셀러)/① 글씨체 (굴림)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 컬러푸드의 효능",
"value": "1100",
"searchValue": "2. 스테디셀러",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 컬러푸드의 효능)/② 크기 (1100)"
"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": "UserChar",
"searchValue": "영국의 작가 대니얼 디포의 장편소설",
"value": "CircledIdeograph",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
@@ -562,6 +569,7 @@
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
@@ -571,81 +579,81 @@
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Phytochemical')])",
"ignoreWord": "Phytochemical",
"path": "boolean(//CHAR[contains(text(),'Bookman')])",
"ignoreWord": "Bookman",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Phytochemical/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Bookman/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "과일야채 섭취량 비교(단위 : g)",
"value": "굴림체",
"searchValue": "연평균 성인 독서량 추이(단위 : )",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/① 글씨체 (굴림체)"
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : ))/① 글씨체 (맑은 고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"value": "1100",
"searchValue": "연평균 성인 독서량 추이(단위 : )",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/② 크기 (1100)"
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : ))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"searchValue": "연평균 성인 독서량 추이(단위 : )",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/③ 진하게"
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : ))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"searchValue": "연평균 성인 독서량 추이(단위 : )",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : ))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "253,164,95",
"value": "37,233,245",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:253,164,95)"
"item": "위쪽 제목 셀/① 색상(RGB:37,233,245)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -674,11 +682,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "궁서",
"value": "돋움체",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (궁서)",
"item": "글자모양/① 글씨체 (돋움체)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -745,36 +753,36 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "과일야채 섭취량 비교",
"value": "돋움체",
"searchValue": "연평균 성인 독서량 추이",
"value": "궁서",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (과일야채 섭취량 비교)/① 글씨체 (돋움체)"
"item": "제목 문구 (연평균 성인 독서량 추이)/① 글씨체 (궁서)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "과일야채 섭취량 비교",
"searchValue": "연평균 성인 독서량 추이",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (과일야채 섭취량 비교)/② 크기 (1400)"
"item": "제목 문구 (연평균 성인 독서량 추이)/② 크기 (1400)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "과일야채 섭취량 비교",
"searchValue": "연평균 성인 독서량 추이",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (과일야채 섭취량 비교)/③ 기울임",
"item": "제목 문구 (연평균 성인 독서량 추이)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "돋움",
"value": "바탕체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움)"
"item": "X축/① 글꼴 (바탕체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -794,10 +802,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움",
"value": "바탕체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움)"
"item": "Y축/① 글꼴 (바탕체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -817,10 +825,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움",
"value": "바탕체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움)"
"item": "범례/① 글꼴 (바탕체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

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": "252,67,144",
"searchValue": "전통된장만들기체험교실",
"value": "153,51,102",
"points": 2,
"category": "Color",
"item": "문구 (한방바이오박람회)/② 채우기 : 색상(RGB:252,67,144)"
"item": "문구 (전통된장만들기체험교실)/② 채우기 : 색상(RGB:153,51,102)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "한방바이오박람회",
"searchValue": "전통된장만들기체험교실",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한방바이오박람회)/③ 크기-너비 (120 mm)"
"item": "문구 (전통된장만들기체험교실)/③ 크기-너비 (120 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "한방바이오박람회",
"searchValue": "전통된장만들기체험교실",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한방바이오박람회)/④ 크기-높이 (20 mm)"
"item": "문구 (전통된장만들기체험교실)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "한방바이오박람회",
"searchValue": "전통된장만들기체험교실",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한방바이오박람회)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (전통된장만들기체험교실)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "한방바이오박람회",
"searchValue": "전통된장만들기체험교실",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한방바이오박람회)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (전통된장만들기체험교실)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "한방바이오박람회",
"searchValue": "전통된장만들기체험교실",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (한방바이오박람회)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (전통된장만들기체험교실)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -116,23 +116,23 @@
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "궁서",
"searchValue": "",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "어/② 글씨체 (궁서)"
"item": "어/② 글씨체 (돋움체)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "115,139,236",
"searchValue": "",
"value": "83,246,225",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:115,139,236)"
"item": "어/③ 면색 : 색상(RGB:83,246,225)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
@@ -141,126 +141,126 @@
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "한방바이오 박람회",
"searchValue": "전통된장 만들기 체험교실",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (한방바이오 박람회)/① BOLD"
"item": "문구 (전통된장 만들기 체험교실)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "한방바이오 박람회",
"searchValue": "전통된장 만들기 체험교실",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (한방바이오 박람회)/② ITALIC"
"item": "문구 (전통된장 만들기 체험교실)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "바탕체",
"searchValue": "체험안내",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 (♠ 행사안내 )/① 글씨체 (바탕체)"
"item": "문구 (★ 체험안내 )/① 글씨체 (굴림체)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
"match_str": "행사안내",
"match_str": "체험안내",
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 (♠ 행사안내 )/② 정렬 (가운데 정렬)"
"item": "문구 (★ 체험안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "제천시청 홈페이지(http://www.ihd.or.kr)",
"searchValue": "초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (제천시청 홈페이지(http://www.ihd.or.kr))/① ITALIC"
"item": "문구 (초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능)/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "제천시청 홈페이지(http://www.ihd.or.kr)",
"searchValue": "초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (제천시청 홈페이지(http://www.ihd.or.kr))/② UNDERLINE"
"item": "문구 (초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 12,
"Indent": 10
"Left": 15,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (10)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 09. 27.",
"searchValue": "2025. 11. 22.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/① 크기 (1400)",
"item": "문구 (2025. 11. 22.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 09. 27.",
"searchValue": "2025. 11. 22.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
},
"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": "문구 (한방발전추진협회)/② 크기 (2600)"
"item": "문구 (전통음식관광협회)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "한방발전추진협회",
"searchValue": "전통음식관광협회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한방발전추진협회)/③ 정렬 (가운데 정렬)"
"item": "문구 (전통음식관광협회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움",
"value": "중고딕",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움)"
"item": "문구 (DIAT)/① 글꼴 (중고딕)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -280,23 +280,29 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "RomanCapital",
"value": "LatinCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
@@ -315,7 +321,7 @@
},
"30": {
"path": "//CHAR[contains(text(),'{searchValue}')]",
"searchValue": "http://www.ihd.or.kr",
"searchValue": "http",
"value": true,
"points": 2,
"category": "hyperlink",
@@ -324,11 +330,11 @@
},
"31": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "190",
"first_word": "",
"value": "180",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 190% 설정",
"item": "문제 1 줄간격 180% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
@@ -361,17 +367,17 @@
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "65",
"value": "60",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (한약의 정의와 효과)/① 크기-너비 (65 mm)"
"item": "문구 (된장의 역사와 종류)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (한약의 정의와 효과)/② 크기-높이 (12 mm)"
"item": "문구 (된장의 역사와 종류)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -381,7 +387,7 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (한약의 정의와 효과)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (된장의 역사와 종류)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
@@ -389,43 +395,43 @@
"value": "50",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (한약의 정의와 효과)/④ 글상자 모서리 (반원)",
"item": "문구 (된장의 역사와 종류)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "62,187,204",
"value": "247,227,169",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (한약의 정의와 효과)/⑤ 채우기 : 색상(RGB:62,187,204)"
"item": "문구 (된장의 역사와 종류)/⑤ 채우기 : 색상(RGB:247,227,169)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (한약의 정의와 효과)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (된장의 역사와 종류)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (한약의 정의와 효과)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (된장의 역사와 종류)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "맑은 고딕",
"value": "궁서체",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (한약의 정의와 효과)/⑧ 글씨체 (맑은 고딕)"
"item": "문구 (된장의 역사와 종류)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "1700",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (한약의 정의와 효과)/⑨ 글씨크기 (1700)",
"item": "문구 (된장의 역사와 종류)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
@@ -433,39 +439,39 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (한약의 정의와 효과)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (된장의 역사와 종류)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"item": "① 파일명 \"그림D.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "23",
"points": 2,
"category": "mmSize",
@@ -473,87 +479,88 @@
},
"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. 한약이란?)/② 크기 (1200)"
"item": "문구① (1. 된장의 역사)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 한약이란?",
"searchValue": "1. 된장의 역사",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 한약이란?)/③ 진하게"
"item": "문구① (1. 된장의 역사)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 한약의 효과",
"searchValue": "2. 된장의 종류",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구② (2. 한약의 효과)/① 글씨체 (굴림)"
"item": "문구② (2. 된장의 종류)/① 글씨체 (굴림)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 한약의 효과",
"searchValue": "2. 된장의 종류",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 한약의 효과)/② 크기 (1200)"
"item": "문구② (2. 된장의 종류)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 한약의 효과",
"searchValue": "2. 된장의 종류",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 한약의 효과)/③ 진하게"
"item": "문구② (2. 된장의 종류)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "미신",
"option": "절구",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (미신)/① 각주 설정 및 문구 입력"
"item": "문구 (절구)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "돋움",
"searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (미신)/② 글씨체 (돋움)"
"item": "문구 (절구)/② 글씨체 (돋움)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (미신)/③ 크기 (9pt)"
"item": "문구 (절구)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "UserChar",
"searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구",
"value": "CircledDigit",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
@@ -562,89 +569,91 @@
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Organism')])",
"ignoreWord": "Organism",
"path": "boolean(//CHAR[contains(text(),'Fermentation')])",
"ignoreWord": "Fermentation",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Organism/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Fermentation/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "1100",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : ))/② 크기 (1100)"
"item": "제목 문구 (전통된장 총매출(단위 : 억원))/② 크기 (1100)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : )",
"searchValue": "전통된장 총매출(단위 : 억원)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : ))/③ 진하게"
"item": "제목 문구 (전통된장 총매출(단위 : 억원))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : )",
"searchValue": "전통된장 총매출(단위 : 억원)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : ))/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (전통된장 총매출(단위 : 억원))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "157,229,141",
"value": "212,131,154",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:157,229,141)"
"item": "위쪽 제목 셀/① 색상(RGB:212,131,154)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -673,11 +682,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "중고딕",
"value": "돋움체",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (중고딕)",
"item": "글자모양/① 글씨체 (돋움체)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -705,11 +714,11 @@
},
"45": {
"chart_xpath": "",
"chart_type": "누적 세로 막대형",
"chart_type": "묶은 가로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (누적 세로 막대형)",
"item": "① 종류 (묶은 가로 막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
@@ -744,36 +753,36 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "한약에 쓰이는 약초 재배량",
"value": "궁서",
"searchValue": "전통된장 총매출",
"value": "궁서",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/① 글씨체 (궁서)"
"item": "제목 문구 (전통된장 총매출)/① 글씨체 (궁서)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "한약에 쓰이는 약초 재배량",
"searchValue": "전통된장 총매출",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/② 크기 (1300)"
"item": "제목 문구 (전통된장 총매출)/② 크기 (1300)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "한약에 쓰이는 약초 재배량",
"searchValue": "전통된장 총매출",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/③ 기울임",
"item": "제목 문구 (전통된장 총매출)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "굴림체",
"value": "바탕",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (굴림체)"
"item": "X축/① 글꼴 (바탕)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -793,10 +802,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "굴림체",
"value": "바탕",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (굴림체)"
"item": "Y축/① 글꼴 (바탕)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -816,10 +825,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "굴림체",
"value": "바탕",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (굴림체)"
"item": "범례/① 글꼴 (바탕)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

View File

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

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,850 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "대학교육정책포럼",
"value": "휴먼옛체",
"points": 1,
"category": "OneAnswer",
"item": "문구 (대학교육정책포럼)/① 글씨체 (휴먼옛체)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "대학교육정책포럼",
"value": "53,135,145",
"points": 2,
"category": "Color",
"item": "문구 (대학교육정책포럼)/② 채우기 : 색상(RGB:53,135,145)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "대학교육정책포럼",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (대학교육정책포럼)/③ 크기-너비 (120 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "대학교육정책포럼",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (대학교육정책포럼)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "대학교육정책포럼",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (대학교육정책포럼)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "대학교육정책포럼",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (대학교육정책포럼)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "대학교육정책포럼",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (대학교육정책포럼)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "한",
"value": {
"Height": 2800,
"Width": 2800
},
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "어/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "한",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "어/② 글씨체 (굴림체)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "한",
"value": "192,204,239",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:192,204,239)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "한",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "어/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "대학 퇴출 및 통폐합의 방향과 과제를 주제",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (대학 퇴출 및 통폐합의 방향과 과제를 주제)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "대학 퇴출 및 통폐합의 방향과 과제를 주제",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (대학 퇴출 및 통폐합의 방향과 과제를 주제)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "★",
"char2": "★",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① ★, ② ★, ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "문구 (★ 행사안내 ★)/① 글씨체 (궁서)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
"match_str": "행사안내",
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 (★ 행사안내 ★)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/② ITALIC"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 10,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 11. 22.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 11. 22.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 11. 22.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "한국대학교육협의회",
"value": "견고딕",
"points": 1,
"category": "FontName",
"item": "문구 (한국대학교육협의회)/① 글씨체 (견고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "한국대학교육협의회",
"value": "2500",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국대학교육협의회)/② 크기 (2500)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "한국대학교육협의회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국대학교육협의회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "굴림",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (굴림)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "Header.OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "Header.OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "LatinCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
"path": "//CHAR[contains(text(),'{searchValue}')]",
"searchValue": "http",
"value": true,
"points": 2,
"category": "hyperlink",
"item": "문구 (https://www.ihd.or.kr)/하이퍼링크 없이 작성",
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
},
"31": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "200",
"first_word": "한",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
"1": {
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
"value": {
"header_inside": true,
"all_double_slim": true
},
"points": 4,
"category": "PageBorder",
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
},
"2": {
"path": "count(//SECTION)>1",
"value": true,
"points": 3,
"category": "Boolean",
"item": "① 구역나누기",
"desc": "섹션이 1개 이상이면 점수부여"
},
"3": {
"path": "./TEXT/COLDEF/@Count",
"value": "2",
"points": 3,
"category": "TwoColumn",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "65",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (대학 구조조정)/① 크기-너비 (65 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (대학 구조조정)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (대학 구조조정)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE/@Ratio",
"value": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (대학 구조조정)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "227,220,193",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (대학 구조조정)/⑤ 채우기 : 색상(RGB:227,220,193)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (대학 구조조정)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (대학 구조조정)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "궁서체",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (대학 구조조정)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "2000",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (대학 구조조정)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (대학 구조조정)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "35",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (35 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 학령인구 감소",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구① (1. 학령인구 감소)/① 글씨체 (중고딕)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 학령인구 감소",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 학령인구 감소)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 학령인구 감소",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 학령인구 감소)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 한계대학이란?",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구② (2. 한계대학이란?)/① 글씨체 (중고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 한계대학이란?",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 한계대학이란?)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 한계대학이란?",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 한계대학이란?)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "학령인구",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (학령인구)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (학령인구)/② 글씨체 (돋움)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (학령인구)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
"value": "CircledHangulJamo",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Management')])",
"ignoreWord": "Management",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Management/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["환경", "環境"],
["분석", "分析"],
["재무구조", "財務構造"],
["경영", "經營"],
["상태", "狀態"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 환경(環境), ② 분석(分析), ③ 재무구조(財務構造), ④ 경영(經營), ⑤ 상태(狀態)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'덕적해이')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…비위나 해이가 도덕적 대학…)>'해이가 / 도덕적' 순서바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'증가추이')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…향후 증강 추이는 가속화될 전망이다…)>'강 → 가' 글자바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "학령인구 변동 추계(단위:천명)",
"value": "맑은고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (학령인구 변동 추계(단위:천명))/① 글씨체 (맑은고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "학령인구 변동 추계(단위:천명)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (학령인구 변동 추계(단위:천명))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "학령인구 변동 추계(단위:천명)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (학령인구 변동 추계(단위:천명))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "학령인구 변동 추계(단위:천명)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "158,219,98",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:158,219,98)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "위쪽 제목 셀/② 진하게",
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
},
"39": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
"value": "DoubleSlim",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선"
},
"40": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
"value": "0.5mm",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "돋움체",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (돋움체)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "AVG",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "꺾은선형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (꺾은선형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "학령인구 변동 추계",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (학령인구 변동 추계)/① 글씨체 (굴림체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "학령인구 변동 추계",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (학령인구 변동 추계)/② 크기 (1300)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "학령인구 변동 추계",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (학령인구 변동 추계)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (궁서)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (궁서)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "궁서",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (궁서)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,850 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "전통주페어링특강안내",
"value": "휴먼옛체",
"points": 1,
"category": "OneAnswer",
"item": "문구 (전통주페어링특강안내)/① 글씨체 (휴먼옛체)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "전통주페어링특강안내",
"value": "187,57,49",
"points": 2,
"category": "Color",
"item": "문구 (전통주페어링특강안내)/② 채우기 : 색상(RGB:187,57,49)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "전통주페어링특강안내",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (전통주페어링특강안내)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "전통주페어링특강안내",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (전통주페어링특강안내)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "전통주페어링특강안내",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전통주페어링특강안내)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "전통주페어링특강안내",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전통주페어링특강안내)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "전통주페어링특강안내",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (전통주페어링특강안내)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "혼",
"value": {
"Height": 2800,
"Width": 2800
},
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "어/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "혼",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "어/② 글씨체 (중고딕)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "혼",
"value": "252,231,95",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:252,231,95)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "혼",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "어/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "★",
"char2": "★",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① ★, ② ★, ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 (★ 행사안내 ★)/① 글씨체 (굴림체)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
"match_str": "행사안내",
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 (★ 행사안내 ★)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 12,
"Indent": 14
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (14)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 11. 22.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 11. 22.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 11. 22.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "대한민국전통주살리기협회",
"value": "궁서체",
"points": 1,
"category": "FontName",
"item": "문구 (대한민국전통주살리기협회)/① 글씨체 (궁서체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "대한민국전통주살리기협회",
"value": "2700",
"points": 1,
"category": "OneAnswer",
"item": "문구 (대한민국전통주살리기협회)/② 크기 (2700)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "대한민국전통주살리기협회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (대한민국전통주살리기협회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "굴림",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (굴림)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "Header.OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "Header.OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "HangulSyllable",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
"path": "//CHAR[contains(text(),'{searchValue}')]",
"searchValue": "http",
"value": true,
"points": 2,
"category": "hyperlink",
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
},
"31": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "190",
"first_word": "혼",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 190% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
"1": {
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
"value": {
"header_inside": true,
"all_double_slim": true
},
"points": 4,
"category": "PageBorder",
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
},
"2": {
"path": "count(//SECTION)>1",
"value": true,
"points": 3,
"category": "Boolean",
"item": "① 구역나누기",
"desc": "섹션이 1개 이상이면 점수부여"
},
"3": {
"path": "./TEXT/COLDEF/@Count",
"value": "2",
"points": 3,
"category": "TwoColumn",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "60",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (한국의 전통주)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (한국의 전통주)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (한국의 전통주)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE/@Ratio",
"value": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (한국의 전통주)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "53,135,145",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (한국의 전통주)/⑤ 채우기 : 색상(RGB:53,135,145)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (한국의 전통주)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (한국의 전통주)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "궁서",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (한국의 전통주)/⑧ 글씨체 (궁서)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "2000",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (한국의 전통주)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (한국의 전통주)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림B.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 한국 전통주",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구① (1. 한국 전통주)/① 글씨체 (돋움)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 한국 전통주",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 한국 전통주)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 한국 전통주",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 한국 전통주)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 패러다임 바뀐 음주 문화",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구② (2. 패러다임 바뀐 음주 문화)/① 글씨체 (돋움)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 패러다임 바뀐 음주 문화",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 패러다임 바뀐 음주 문화)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 패러다임 바뀐 음주 문화",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 패러다임 바뀐 음주 문화)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "MZ세대",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (MZ세대)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "밀레니얼 세대와 Z세대를 통틀어 지칭하는 신조어",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "문구 (MZ세대)/② 글씨체 (바탕체)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "밀레니얼 세대와 Z세대를 통틀어 지칭하는 신조어",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (MZ세대)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "밀레니얼 세대와 Z세대를 통틀어 지칭하는 신조어",
"value": "UserChar",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Paradigm')])",
"ignoreWord": "Paradigm",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Paradigm/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["양조", "釀造"],
["노동자", "勞動者"],
["문인", "文人"],
["백주", "白酒"],
["음미", "吟味"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 양조(釀造), ② 노동자(勞動者), ③ 문인(文人), ④ 백주(白酒), ⑤ 음미(吟味)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'있는술을')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…즐길 수 있게 술을 찾아 마시는 것이…)>'게' → '는' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'하는문화')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…마시고 문화에서 취하는 술의 맛과…)>'문화에서' / '취하는' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "연도별 전통주 산업(단위:억원)",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "제목 문구 (연도별 전통주 산업(단위:억원))/① 글씨체 (돋움체)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "연도별 전통주 산업(단위:억원)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (연도별 전통주 산업(단위:억원))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "연도별 전통주 산업(단위:억원)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (연도별 전통주 산업(단위:억원))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "연도별 전통주 산업(단위:억원)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (연도별 전통주 산업(단위:억원))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "202,86,167",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:202,86,167)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "위쪽 제목 셀/② 진하게",
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
},
"39": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
"value": "DoubleSlim",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선"
},
"40": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
"value": "0.5mm",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "중고딕",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (중고딕)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "AVG",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "누적 세로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (누적 세로 막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "연도별 전통주 산업",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (연도별 전통주 산업)/① 글씨체 (굴림체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "연도별 전통주 산업",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (연도별 전통주 산업)/② 크기 (1300)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "연도별 전통주 산업",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (연도별 전통주 산업)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "바탕",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (바탕)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "바탕",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (바탕)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "바탕",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (바탕)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

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": "제18회인정시북페스티벌",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (글로벌핀테크컨퍼런스)/① 글씨체 (궁서체)"
"item": "문구 (제18회인정시북페스티벌)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "글로벌핀테크컨퍼런스",
"value": "53,135,145",
"searchValue": "제18회인정시북페스티벌",
"value": "104,37,245",
"points": 2,
"category": "Color",
"item": "문구 (글로벌핀테크컨퍼런스)/② 채우기 : 색상(RGB:53,135,145)"
"item": "문구 (제18회인정시북페스티벌)/② 채우기 : 색상(RGB:104,37,245)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "글로벌핀테크컨퍼런스",
"searchValue": "제18회인정시북페스티벌",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (글로벌핀테크컨퍼런스)/③ 크기-너비 (110 mm)"
"item": "문구 (제18회인정시북페스티벌)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "글로벌핀테크컨퍼런스",
"searchValue": "제18회인정시북페스티벌",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (글로벌핀테크컨퍼런스)/④ 크기-높이 (20 mm)"
"item": "문구 (제18회인정시북페스티벌)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "글로벌핀테크컨퍼런스",
"searchValue": "제18회인정시북페스티벌",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (글로벌핀테크컨퍼런스)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (제18회인정시북페스티벌)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "글로벌핀테크컨퍼런스",
"searchValue": "제18회인정시북페스티벌",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (글로벌핀테크컨퍼런스)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (제18회인정시북페스티벌)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "글로벌핀테크컨퍼런스",
"searchValue": "제18회인정시북페스티벌",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (글로벌핀테크컨퍼런스)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (제18회인정시북페스티벌)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -116,23 +116,23 @@
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "맑은 고딕",
"searchValue": "",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "어/② 글씨체 (맑은 고딕)"
"item": "어/② 글씨체 (굴림)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "123,217,167",
"searchValue": "",
"value": "234,137,67",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:123,217,167)"
"item": "어/③ 면색 : 색상(RGB:234,137,67)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
@@ -141,39 +141,39 @@
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "디지털 자산, 오픈 뱅킹, 보안 인증, AI 기반 금융 분석",
"value": "ITALIC",
"searchValue": "제18회 인정시 북 페스티벌",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (디지털 자산, 오픈 뱅킹, 보안 인증, AI 기반 금융 분석)/① ITALIC"
"item": "문구 (제18회 인정시 북 페스티벌)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "디지털 자산, 오픈 뱅킹, 보안 인증, AI 기반 금융 분석",
"value": "UNDERLINE",
"searchValue": "제18회 인정시 북 페스티벌",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (디지털 자산, 오픈 뱅킹, 보안 인증, AI 기반 금융 분석)/② UNDERLINE"
"item": "문구 (제18회 인정시 북 페스티벌)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "궁서",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 ( 행사안내 )/① 글씨체 (궁서)"
"item": "문구 ( 행사안내 )/① 글씨체 (돋움체)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
@@ -181,25 +181,25 @@
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "금융권 종사자, 핀테크 스타트업, 투자자, IT 전문가, 일반인",
"value": "BOLD",
"searchValue": "인정시립대학교 야외무대",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (금융권 종사자, 핀테크 스타트업, 투자자, IT 전문가, 일반인)/① BOLD"
"item": "문구 (인정시립대학교 야외무대)/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "금융권 종사자, 핀테크 스타트업, 투자자, IT 전문가, 일반인",
"value": "ITALIC",
"searchValue": "인정시립대학교 야외무대",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (금융권 종사자, 핀테크 스타트업, 투자자, IT 전문가, 일반인)/② ITALIC"
"item": "문구 (인정시립대학교 야외무대)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
@@ -215,52 +215,52 @@
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 10. 25.",
"searchValue": "2025. 11. 22.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/① 크기 (1400)",
"item": "문구 (2025. 11. 22.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 10. 25.",
"searchValue": "2025. 11. 22.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
},
"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": "2300",
"searchValue": "인정시립대학교 총무팀",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (글로벌 핀테크 컨퍼런스)/② 크기 (2300)"
"item": "문구 (인정시립대학교 총무팀)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "글로벌 핀테크 컨퍼런스",
"searchValue": "인정시립대학교 총무팀",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (글로벌 핀테크 컨퍼런스)/③ 정렬 (가운데 정렬)"
"item": "문구 (인정시립대학교 총무팀)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "중고딕",
"value": "돋움",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (중고딕)"
"item": "문구 (DIAT)/① 글꼴 (돋움)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -280,32 +280,38 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "RomanCapital",
"value": "DecagonCircle",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"item": "① 쪽 번호 매기기 (갑,을,병 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomLeft",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "왼쪽 아래",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
@@ -319,16 +325,16 @@
"value": true,
"points": 2,
"category": "hyperlink",
"item": "문구 (https://www.ihd.or.kr)/하이퍼링크 없이 작성",
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
},
"31": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "190",
"first_word": "",
"value": "180",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 190% 설정",
"item": "문제 1 줄간격 180% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
@@ -364,14 +370,14 @@
"value": "60",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (핀테크 산업)/① 크기-너비 (60 mm)"
"item": "문구 (베스트와 스테디)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (핀테크 산업)/② 크기-높이 (12 mm)"
"item": "문구 (베스트와 스테디)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -381,7 +387,7 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (핀테크 산업)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (베스트와 스테디)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
@@ -389,43 +395,43 @@
"value": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (핀테크 산업)/④ 글상자 모서리 (반원)",
"item": "문구 (베스트와 스테디)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "227,220,193",
"value": "233,106,147",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (핀테크 산업)/⑤ 채우기 : 색상(RGB:227,220,193)"
"item": "문구 (베스트와 스테디)/⑤ 채우기 : 색상(RGB:233,106,147)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (핀테크 산업)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (베스트와 스테디)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (핀테크 산업)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (베스트와 스테디)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "견고딕",
"value": "궁서체",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (핀테크 산업)/⑧ 글씨체 (견고딕)"
"item": "문구 (베스트와 스테디)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "2000",
"value": "1800",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (핀테크 산업)/⑨ 글씨크기 (2000)",
"item": "문구 (베스트와 스테디)/⑨ 글씨크기 (1800)",
"desc": "1pt당 100"
},
"13": {
@@ -433,127 +439,128 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (핀테크 산업)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (베스트와 스테디)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"item": "① 파일명 \"그림C.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 mm)"
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "22",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 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. 핀테크 산업)/② 크기 (1200)"
"item": "문구① (1. 베스트셀러)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 핀테크 산업",
"searchValue": "1. 베스트셀러",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 핀테크 산업)/③ 진하게"
"item": "문구① (1. 베스트셀러)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 성장 전망",
"value": "돋움",
"searchValue": "2. 스테디셀러",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구② (2. 성장 전망)/① 글씨체 (돋움)"
"item": "문구② (2. 스테디셀러)/① 글씨체 (굴림체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 성장 전망",
"searchValue": "2. 스테디셀러",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 성장 전망)/② 크기 (1200)"
"item": "문구② (2. 스테디셀러)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 성장 전망",
"searchValue": "2. 스테디셀러",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 성장 전망)/③ 진하게"
"item": "문구② (2. 스테디셀러)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "머신러닝",
"option": "로빈슨 크루소",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (머신러닝)/① 각주 설정 및 문구 입력"
"item": "문구 (로빈슨 크루소)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "인공지능의 연구 분야로 인간의 학습 능력과 같은 기능을 컴퓨터에서 실현하고자 하는 기술 및 기법",
"searchValue": "영국의 작가 대니얼 디포의 장편소설",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구 (머신러닝)/② 글씨체 (중고딕)"
"item": "문구 (로빈슨 크루소)/② 글씨체 (중고딕)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "인공지능의 연구 분야로 인간의 학습 능력과 같은 기능을 컴퓨터에서 실현하고자 하는 기술 및 기법",
"searchValue": "영국의 작가 대니얼 디포의 장편소설",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (머신러닝)/③ 크기 (9pt)"
"item": "문구 (로빈슨 크루소)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "인공지능의 연구 분야로 인간의 학습 능력과 같은 기능을 컴퓨터에서 실현하고자 하는 기술 및 기법",
"value": "CircledDigit",
"searchValue": "영국의 작가 대니얼 디포의 장편소설",
"value": "CircledIdeograph",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
@@ -562,6 +569,7 @@
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
@@ -571,81 +579,81 @@
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'FinTech')])",
"ignoreWord": "FinTech",
"path": "boolean(//CHAR[contains(text(),'Bookman')])",
"ignoreWord": "Bookman",
"value": true,
"points": 3,
"category": "Boolean",
"item": "FinTech/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Bookman/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["대체", "代替"],
["등장", "登場"],
["실생활", "實生活"],
["성장", "成長"],
["절감", "節減"]
["시초", "始初"],
["유래", "由來"],
["양립", "兩立"],
["수요", "需要"],
["독자", "讀者"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 대체(代替), ② 등장(登場), ③ 실생활(實生活), ④ 성장(成長), ⑤ 절감(節減)"
"item": "① 시초(始初), ② 유래(由來), ③ 양립(兩立), ④ 수요(需要), ⑤ 독자(讀者)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'테크산업')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'품의양립')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…산업이 핀테크 전통 금융권과 협업하여…)>'산업이 / 핀테크' 순서바꿈"
"item": "문구 (…작품은 양립(兩立)이…)>'은 → 의' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'계의자동')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'러와훌륭')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…은행, 보험, 투자업계를 자동화 및 효율성…)>'를→의' 글자바꿈"
"item": "문구 (…훌륭한 베스트셀러와 작품의 양립…)>'훌륭한 / 베스트셀러와' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "핀테크 산업 성장률(단위: %)",
"value": "궁서",
"searchValue": "연평균 성인 독서량 추이(단위 : )",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (핀테크 산업 성장률(단위: %))/① 글씨체 (궁서)"
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : ))/① 글씨체 (맑은 고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "핀테크 산업 성장률(단위: %)",
"searchValue": "연평균 성인 독서량 추이(단위 : )",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (핀테크 산업 성장률(단위: %))/② 크기 (1200)"
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : ))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "핀테크 산업 성장률(단위: %)",
"searchValue": "연평균 성인 독서량 추이(단위 : )",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (핀테크 산업 성장률(단위: %))/③ 진하게"
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : ))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "핀테크 산업 성장률(단위: %)",
"searchValue": "연평균 성인 독서량 추이(단위 : )",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : ))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "221,141,229",
"value": "37,233,245",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:221,141,229)"
"item": "위쪽 제목 셀/① 색상(RGB:37,233,245)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -674,11 +682,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "굴림",
"value": "돋움체",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (굴림)",
"item": "글자모양/① 글씨체 (돋움체)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -745,36 +753,36 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "핀테크 산업 성장률",
"value": "바탕체",
"searchValue": "연평균 성인 독서량 추이",
"value": "궁서",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (핀테크 산업 성장률)/① 글씨체 (바탕체)"
"item": "제목 문구 (연평균 성인 독서량 추이)/① 글씨체 (궁서)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "핀테크 산업 성장률",
"searchValue": "연평균 성인 독서량 추이",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (핀테크 산업 성장률)/② 크기 (1400)"
"item": "제목 문구 (연평균 성인 독서량 추이)/② 크기 (1400)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "핀테크 산업 성장률",
"searchValue": "연평균 성인 독서량 추이",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (핀테크 산업 성장률)/③ 기울임",
"item": "제목 문구 (연평균 성인 독서량 추이)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "돋움",
"value": "바탕체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움)"
"item": "X축/① 글꼴 (바탕체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -794,10 +802,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움",
"value": "바탕체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움)"
"item": "Y축/① 글꼴 (바탕체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -817,10 +825,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움",
"value": "바탕체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움)"
"item": "범례/① 글꼴 (바탕체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

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": "252,67,144",
"searchValue": "전통된장만들기체험교실",
"value": "153,51,102",
"points": 2,
"category": "Color",
"item": "문구 (한방바이오박람회)/② 채우기 : 색상(RGB:252,67,144)"
"item": "문구 (전통된장만들기체험교실)/② 채우기 : 색상(RGB:153,51,102)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "한방바이오박람회",
"searchValue": "전통된장만들기체험교실",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한방바이오박람회)/③ 크기-너비 (120 mm)"
"item": "문구 (전통된장만들기체험교실)/③ 크기-너비 (120 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "한방바이오박람회",
"searchValue": "전통된장만들기체험교실",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한방바이오박람회)/④ 크기-높이 (20 mm)"
"item": "문구 (전통된장만들기체험교실)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "한방바이오박람회",
"searchValue": "전통된장만들기체험교실",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한방바이오박람회)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (전통된장만들기체험교실)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "한방바이오박람회",
"searchValue": "전통된장만들기체험교실",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한방바이오박람회)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (전통된장만들기체험교실)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "한방바이오박람회",
"searchValue": "전통된장만들기체험교실",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (한방바이오박람회)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (전통된장만들기체험교실)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -116,23 +116,23 @@
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "궁서",
"searchValue": "",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "어/② 글씨체 (궁서)"
"item": "어/② 글씨체 (돋움체)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "115,139,236",
"searchValue": "",
"value": "83,246,225",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:115,139,236)"
"item": "어/③ 면색 : 색상(RGB:83,246,225)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
@@ -141,126 +141,126 @@
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "한방바이오 박람회",
"searchValue": "전통된장 만들기 체험교실",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (한방바이오 박람회)/① BOLD"
"item": "문구 (전통된장 만들기 체험교실)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "한방바이오 박람회",
"searchValue": "전통된장 만들기 체험교실",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (한방바이오 박람회)/② ITALIC"
"item": "문구 (전통된장 만들기 체험교실)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "바탕체",
"searchValue": "체험안내",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 (♠ 행사안내 )/① 글씨체 (바탕체)"
"item": "문구 (★ 체험안내 )/① 글씨체 (굴림체)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
"match_str": "행사안내",
"match_str": "체험안내",
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 (♠ 행사안내 )/② 정렬 (가운데 정렬)"
"item": "문구 (★ 체험안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "제천시청 홈페이지(http://www.ihd.or.kr)",
"searchValue": "초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (제천시청 홈페이지(http://www.ihd.or.kr))/① ITALIC"
"item": "문구 (초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능)/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "제천시청 홈페이지(http://www.ihd.or.kr)",
"searchValue": "초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (제천시청 홈페이지(http://www.ihd.or.kr))/② UNDERLINE"
"item": "문구 (초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 12,
"Indent": 10
"Left": 15,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (10)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 09. 27.",
"searchValue": "2025. 11. 22.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/① 크기 (1400)",
"item": "문구 (2025. 11. 22.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 09. 27.",
"searchValue": "2025. 11. 22.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
},
"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": "문구 (한방발전추진협회)/② 크기 (2600)"
"item": "문구 (전통음식관광협회)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "한방발전추진협회",
"searchValue": "전통음식관광협회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한방발전추진협회)/③ 정렬 (가운데 정렬)"
"item": "문구 (전통음식관광협회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움",
"value": "중고딕",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움)"
"item": "문구 (DIAT)/① 글꼴 (중고딕)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -280,23 +280,29 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "RomanCapital",
"value": "LatinCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
@@ -315,7 +321,7 @@
},
"30": {
"path": "//CHAR[contains(text(),'{searchValue}')]",
"searchValue": "http://www.ihd.or.kr",
"searchValue": "http",
"value": true,
"points": 2,
"category": "hyperlink",
@@ -324,11 +330,11 @@
},
"31": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "190",
"first_word": "",
"value": "180",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 190% 설정",
"item": "문제 1 줄간격 180% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
@@ -361,17 +367,17 @@
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "65",
"value": "60",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (한약의 정의와 효과)/① 크기-너비 (65 mm)"
"item": "문구 (된장의 역사와 종류)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (한약의 정의와 효과)/② 크기-높이 (12 mm)"
"item": "문구 (된장의 역사와 종류)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -381,7 +387,7 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (한약의 정의와 효과)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (된장의 역사와 종류)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
@@ -389,43 +395,43 @@
"value": "50",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (한약의 정의와 효과)/④ 글상자 모서리 (반원)",
"item": "문구 (된장의 역사와 종류)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "62,187,204",
"value": "247,227,169",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (한약의 정의와 효과)/⑤ 채우기 : 색상(RGB:62,187,204)"
"item": "문구 (된장의 역사와 종류)/⑤ 채우기 : 색상(RGB:247,227,169)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (한약의 정의와 효과)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (된장의 역사와 종류)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (한약의 정의와 효과)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (된장의 역사와 종류)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "맑은 고딕",
"value": "궁서체",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (한약의 정의와 효과)/⑧ 글씨체 (맑은 고딕)"
"item": "문구 (된장의 역사와 종류)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "1700",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (한약의 정의와 효과)/⑨ 글씨크기 (1700)",
"item": "문구 (된장의 역사와 종류)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
@@ -433,39 +439,39 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (한약의 정의와 효과)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (된장의 역사와 종류)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"item": "① 파일명 \"그림D.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "23",
"points": 2,
"category": "mmSize",
@@ -473,87 +479,88 @@
},
"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. 한약이란?)/② 크기 (1200)"
"item": "문구① (1. 된장의 역사)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 한약이란?",
"searchValue": "1. 된장의 역사",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 한약이란?)/③ 진하게"
"item": "문구① (1. 된장의 역사)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 한약의 효과",
"searchValue": "2. 된장의 종류",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구② (2. 한약의 효과)/① 글씨체 (굴림)"
"item": "문구② (2. 된장의 종류)/① 글씨체 (굴림)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 한약의 효과",
"searchValue": "2. 된장의 종류",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 한약의 효과)/② 크기 (1200)"
"item": "문구② (2. 된장의 종류)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 한약의 효과",
"searchValue": "2. 된장의 종류",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 한약의 효과)/③ 진하게"
"item": "문구② (2. 된장의 종류)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "미신",
"option": "절구",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (미신)/① 각주 설정 및 문구 입력"
"item": "문구 (절구)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "돋움",
"searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (미신)/② 글씨체 (돋움)"
"item": "문구 (절구)/② 글씨체 (돋움)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (미신)/③ 크기 (9pt)"
"item": "문구 (절구)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "UserChar",
"searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구",
"value": "CircledDigit",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
@@ -562,89 +569,91 @@
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Organism')])",
"ignoreWord": "Organism",
"path": "boolean(//CHAR[contains(text(),'Fermentation')])",
"ignoreWord": "Fermentation",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Organism/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Fermentation/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "1100",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : ))/② 크기 (1100)"
"item": "제목 문구 (전통된장 총매출(단위 : 억원))/② 크기 (1100)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : )",
"searchValue": "전통된장 총매출(단위 : 억원)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : ))/③ 진하게"
"item": "제목 문구 (전통된장 총매출(단위 : 억원))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : )",
"searchValue": "전통된장 총매출(단위 : 억원)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : ))/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (전통된장 총매출(단위 : 억원))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "157,229,141",
"value": "212,131,154",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:157,229,141)"
"item": "위쪽 제목 셀/① 색상(RGB:212,131,154)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -673,11 +682,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "중고딕",
"value": "돋움체",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (중고딕)",
"item": "글자모양/① 글씨체 (돋움체)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -705,11 +714,11 @@
},
"45": {
"chart_xpath": "",
"chart_type": "누적 세로 막대형",
"chart_type": "묶은 가로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (누적 세로 막대형)",
"item": "① 종류 (묶은 가로 막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
@@ -744,36 +753,36 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "한약에 쓰이는 약초 재배량",
"value": "궁서",
"searchValue": "전통된장 총매출",
"value": "궁서",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/① 글씨체 (궁서)"
"item": "제목 문구 (전통된장 총매출)/① 글씨체 (궁서)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "한약에 쓰이는 약초 재배량",
"searchValue": "전통된장 총매출",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/② 크기 (1300)"
"item": "제목 문구 (전통된장 총매출)/② 크기 (1300)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "한약에 쓰이는 약초 재배량",
"searchValue": "전통된장 총매출",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/③ 기울임",
"item": "제목 문구 (전통된장 총매출)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "굴림체",
"value": "바탕",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (굴림체)"
"item": "X축/① 글꼴 (바탕)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -793,10 +802,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "굴림체",
"value": "바탕",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (굴림체)"
"item": "Y축/① 글꼴 (바탕)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -816,10 +825,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "굴림체",
"value": "바탕",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (굴림체)"
"item": "범례/① 글꼴 (바탕)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

Binary file not shown.

View File

@@ -1,841 +0,0 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "한방바이오박람회",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한방바이오박람회)/① 글씨체 (굴림체)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "한방바이오박람회",
"value": "252,67,144",
"points": 2,
"category": "Color",
"item": "문구 (한방바이오박람회)/② 채우기 : 색상(RGB:252,67,144)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "한방바이오박람회",
"value": "120",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한방바이오박람회)/③ 크기-너비 (120 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "한방바이오박람회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한방바이오박람회)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "한방바이오박람회",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한방바이오박람회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "한방바이오박람회",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한방바이오박람회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "한방바이오박람회",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (한방바이오박람회)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "제",
"value": {
"Height": 2800,
"Width": 2800
},
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "어/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "제",
"value": "궁서",
"points": 1,
"category": "FontName",
"item": "어/② 글씨체 (궁서)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "제",
"value": "115,139,236",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:115,139,236)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "제",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "어/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "한방바이오 박람회",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (한방바이오 박람회)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "한방바이오 박람회",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (한방바이오 박람회)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "♠",
"char2": "♠",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① ♠ , ② ♠ , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "문구 (♠ 행사안내 ♠)/① 글씨체 (바탕체)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
"match_str": "행사안내",
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 (♠ 행사안내 ♠)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "제천시청 홈페이지(http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (제천시청 홈페이지(http://www.ihd.or.kr))/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "제천시청 홈페이지(http://www.ihd.or.kr)",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (제천시청 홈페이지(http://www.ihd.or.kr))/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 12,
"Indent": 10
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (10)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 09. 27.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 09. 27.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "한방발전추진협회",
"value": "견고딕",
"points": 1,
"category": "FontName",
"item": "문구 (한방발전추진협회)/① 글씨체 (견고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "한방발전추진협회",
"value": "2600",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한방발전추진협회)/② 크기 (2600)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "한방발전추진협회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한방발전추진협회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "Header.OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "Header.OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "RomanCapital",
"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": "BottomLeft",
"points": 2,
"category": "PageNumber",
"item": "왼쪽 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
"path": "//CHAR[contains(text(),'{searchValue}')]",
"searchValue": "http://www.ihd.or.kr",
"value": true,
"points": 2,
"category": "hyperlink",
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
},
"31": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "190",
"first_word": "제",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 190% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
"1": {
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
"value": {
"header_inside": true,
"all_double_slim": true
},
"points": 4,
"category": "PageBorder",
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
},
"2": {
"path": "count(//SECTION)>1",
"value": true,
"points": 3,
"category": "Boolean",
"item": "① 구역나누기",
"desc": "섹션이 1개 이상이면 점수부여"
},
"3": {
"path": "./TEXT/COLDEF/@Count",
"value": "2",
"points": 3,
"category": "TwoColumn",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "65",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (한약의 정의와 효과)/① 크기-너비 (65 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (한약의 정의와 효과)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (한약의 정의와 효과)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE/@Ratio",
"value": "50",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (한약의 정의와 효과)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "62,187,204",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (한약의 정의와 효과)/⑤ 채우기 : 색상(RGB:62,187,204)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (한약의 정의와 효과)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (한약의 정의와 효과)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "맑은 고딕",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (한약의 정의와 효과)/⑧ 글씨체 (맑은 고딕)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "1700",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (한약의 정의와 효과)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (한약의 정의와 효과)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "23",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 한약이란?",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구① (1. 한약이란?)/① 글씨체 (굴림)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 한약이란?",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 한약이란?)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 한약이란?",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 한약이란?)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 한약의 효과",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구② (2. 한약의 효과)/① 글씨체 (굴림)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 한약의 효과",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 한약의 효과)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 한약의 효과",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 한약의 효과)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "미신",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (미신)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 (미신)/② 글씨체 (돋움체)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (미신)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "비과학적이고 종교적으로 망령되다고 판단되는 신앙",
"value": "UserChar",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Organism')])",
"ignoreWord": "Organism",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Organism/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["한약", "韓藥"],
["배합", "配合"],
["채취", "採取"],
["보약", "補藥"],
["치료", "治療"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 한약(韓藥), ② 배합(配合), ③ 채취(採取), ④ 보약(補藥), ⑤ 치료(治療)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'병을퇴치')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…사람의 질병은 퇴치할 수 있다고…)>'은 → 을' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'부터한약')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…우리 민족은 한약만으로 예로부터 병을 치료해왔고…)>'한약만으로 / 예로부터' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "바탕체",
"points": 1,
"category": "FontName",
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/① 글씨체 (바탕체)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/② 크기 (1100)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "한약에 쓰이는 약초 재배량(단위 : 톤)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량(단위 : 톤))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "157,229,141",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:157,229,141)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "위쪽 제목 셀/② 진하게",
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
},
"39": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
"value": "DoubleSlim",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선"
},
"40": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
"value": "0.5mm",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "중고딕",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (중고딕)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "SUM",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "누적 세로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (누적 세로 막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "ChartOneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "한약에 쓰이는 약초 재배량",
"value": "궁서체",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/① 글씨체 (궁서체)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "한약에 쓰이는 약초 재배량",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/② 크기 (1300)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "한약에 쓰이는 약초 재배량",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (한약에 쓰이는 약초 재배량)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "굴림체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (굴림체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "굴림체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (굴림체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "굴림체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (굴림체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}