하이퍼링크 수정, 차트 타입에 따른 x축 y축 채점요소 변경적용

This commit is contained in:
2025-05-23 17:18:55 +09:00
parent c8554adbb7
commit 828752e05a
35 changed files with 3813 additions and 1266 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -94,15 +94,22 @@ class XMLScorer:
is_correct = False is_correct = False
# 일치 여부 확인
if method == "equal": if method == "equal":
is_correct = (user_answer == right_answer) is_correct = (user_answer == right_answer)
# 정답이 오차범위가 필요한 경우
elif method == "tolerance": elif method == "tolerance":
if isinstance(user_answer, dict) and isinstance(right_answer, dict): if isinstance(user_answer, dict) and isinstance(right_answer, dict):
is_correct = all(abs(user_answer[k] - right_answer[k]) <= tolerance for k in right_answer) is_correct = all(abs(user_answer[k] - right_answer[k]) <= tolerance for k in right_answer)
else: else:
is_correct = abs(user_answer - right_answer) <= tolerance is_correct = abs(user_answer - right_answer) <= tolerance
# 정답이 포함되어 있는 경우
elif method == "in": elif method == "in":
is_correct = user_answer in right_answer is_correct = user_answer in right_answer
# 정답을 부분점수로 계산(특수문자, 한자)
elif method == "partial_score": elif method == "partial_score":
# 부분 점수 계산 # 부분 점수 계산
is_correct = isinstance(user_answer, (int, float)) and user_answer <= right_answer is_correct = isinstance(user_answer, (int, float)) and user_answer <= right_answer
@@ -177,6 +184,7 @@ class XMLScorer:
xpath2 = xpath2.replace('{option}', option) if xpath2 else "" xpath2 = xpath2.replace('{option}', option) if xpath2 else ""
chart_xpath = chart_xpath.replace('{option}', option) if chart_xpath else "" chart_xpath = chart_xpath.replace('{option}', option) if chart_xpath else ""
# 문항 별 채점 결과 저장 # 문항 별 채점 결과 저장
scoring = { scoring = {
'section': section_id, 'section': section_id,
@@ -281,33 +289,72 @@ class XMLScorer:
self.partial_score += points self.partial_score += points
scoring['points'] = points scoring['points'] = points
# 정답이 하나 또는 테이블의 모든 값이 정답인 경우 # 테이블의 경우 모든 셀에 요구사항이 적용되어야 정답처리
elif (category or "") in ["OneAnswer", "TableOneAnswer"]: elif (category or "") == "TableAnswer":
items = root.xpath(xpath) if xpath else [] items = root.xpath(xpath) if xpath else []
items2 = root.xpath(xpath2) if xpath2 else [] items2 = root.xpath(xpath2) if xpath2 else []
chart_items = chart_tree.xpath(chart_xpath, namespaces=namespaces) if chart_xpath else []
require_all_match = (category == "TableOneAnswer") def is_all_match(item_list):
any_match = False return item_list and all(item == right_answer for item in item_list)
all_match = True ## 위 코드와 동일한 기능(풀어서 설명)
# 리스트가 비어 있으면 False 반환
# if not item_list:
# return False
# # 리스트의 모든 항목이 right_answer와 같은지 검사
# for item in item_list:
# if item != right_answer:
# return False # 하나라도 다르면 False 반환
# return True # 전부 일치하면 True 반환
if is_all_match(items):
user_answer = right_answer
elif is_all_match(items2):
user_answer = right_answer
else:
user_answer = ""
points = 0
self.evaluate_answer(scoring, user_answer, right_answer, points)
# 정답이 하나인 경우
# elif (category or "") == "OneAnswer":
elif (category or "") in ["OneAnswer", "ChartOneAnswer"]:
items = root.xpath(xpath) if xpath else []
items2 = root.xpath(xpath2) if xpath2 else []
# 차트 XML에서 정답을 찾는 경우
# 차트 종류가
# 세로막대형이면 x축이 카테고리(catAx) y축이 값(valAx)
# 가로막대형이면 x축이 값(valAx) y축이 카테고리(catAx)
if category == "ChartOneAnswer":
# 하드코딩이라 [2-45문항] 변경시 수정 필요
# chart_type = self.scoring_criteria["2"]["45"]["chart_type"].replace(" ","")
# chart_type 변수의 경우 45번 문항을 먼저 채점하므로
# xy축의 변경이 필요한 53~58번 문항 채점시에 chart_type변수에 차트모양의 정보는 입력 되어있음
# 가로 차트일 경우에만 x축과 y축을 바꿔줌
# 세로, 꺾은선, 원형 차트의 경우 그대로 사용
if "가로" in chart_type:
chart_xpath = chart_xpath.replace("catAx", "valAx")
chart_xpath = chart_xpath.replace("valAx", "catAx")
chart_items = chart_tree.xpath(chart_xpath, namespaces=namespaces) if chart_xpath else []
for item in chain(items, items2, chart_items): for item in chain(items, items2, chart_items):
user_answer = item user_answer = item
if user_answer == right_answer: self.evaluate_answer(scoring, user_answer, right_answer, points)
any_match = True
else:
all_match = False
if require_all_match:
break # 하나라도 다르면 바로 탈출
if require_all_match: if scoring['points'] > 0:
score = points if all_match else 0 break
else:
score = points if any_match else 0
self.evaluate_answer(scoring, user_answer, right_answer, score)
# 정답이 두개인 경우
elif (category or "") == "DoubleAnswer": elif (category or "") == "DoubleAnswer":
items1 = root.xpath(xpath) if xpath else [] items1 = root.xpath(xpath) if xpath else []
items2 = root.xpath(xpath2) if xpath else [] items2 = root.xpath(xpath2) if xpath else []
@@ -326,7 +373,7 @@ class XMLScorer:
items = root.xpath(xpath) items = root.xpath(xpath)
# 오차범위 설정 # 오차범위 설정
# 한글 프로그램 내부에서 드물게 mm단위는 0mm이지만 pt단위는 1pt로 저장되는 경우가 있음 # 한글 프로그램 내부에서 드물게 0mm이지만 1pt로 저장되는 경우가 있음
# #
# XML파일의 요소 옵션값은 내부적으로 1=0.01pt # XML파일의 요소 옵션값은 내부적으로 1=0.01pt
# 이 경우를 대비하여 tolerance를 10으로 설정 (1pt=약0.04mm 만큼의 오차 혀용) # 이 경우를 대비하여 tolerance를 10으로 설정 (1pt=약0.04mm 만큼의 오차 혀용)
@@ -419,6 +466,7 @@ class XMLScorer:
require_all_match = (category == "TableFontName") require_all_match = (category == "TableFontName")
any_match = False any_match = False
all_match = True all_match = True
matched_user_answer = None # 일치하는 user_answer를 기억
for charshape_id in charshape_list: for charshape_id in charshape_list:
font_id = root.xpath(f"//CHARSHAPE[@Id='{charshape_id}']/FONTID/@Hangul") font_id = root.xpath(f"//CHARSHAPE[@Id='{charshape_id}']/FONTID/@Hangul")
@@ -439,6 +487,7 @@ class XMLScorer:
if user_answer == right_answer: if user_answer == right_answer:
any_match = True any_match = True
matched_user_answer = user_answer
else: else:
all_match = False all_match = False
if require_all_match: if require_all_match:
@@ -446,19 +495,19 @@ class XMLScorer:
if require_all_match: if require_all_match:
score = points if all_match else 0 score = points if all_match else 0
self.evaluate_answer(scoring, user_answer, right_answer, score)
else: else:
score = points if any_match else 0 score = points if any_match else 0
self.evaluate_answer(scoring, matched_user_answer if any_match else "", right_answer, score)
self.evaluate_answer(scoring, user_answer, right_answer, score, method="equal")
# 폰트 속성 # 폰트 속성
elif (category or "") == "FontAttribute": elif (category or "") == "FontAttribute":
# 하이퍼링크 처리 # 하이퍼링크 처리
hyperlink_ptag = criterion.get('hyperlink_ptag', None) hyperlink_ptag = criterion.get('hyperlink_ptag', None)
has_ptag = root.xpath(hyperlink_ptag) if hyperlink_ptag else False has_hyperlink_ptag = root.xpath(hyperlink_ptag) if hyperlink_ptag else False
# hyperlink가 아닌 경우(일반적인 텍스트 일 경우) # hyperlink가 아닌 경우(일반적인 텍스트 일 경우)
if not has_ptag: if not has_hyperlink_ptag:
charshape = root.xpath(xpath) charshape = root.xpath(xpath)
if not charshape: if not charshape:
charshape = None charshape = None
@@ -473,12 +522,20 @@ class XMLScorer:
self.evaluate_answer(scoring, user_answer, right_answer, points, method="equal") self.evaluate_answer(scoring, user_answer, right_answer, points, method="equal")
# 하이퍼링크인 경우 # 하이퍼링크인 경우
elif has_ptag: elif has_hyperlink_ptag:
hyperlink_text = search_value.replace(" ", "") hyperlink_text = search_value.replace(" ", "")
p_elements = has_ptag p_elements = has_hyperlink_ptag
for p in p_elements: for p in p_elements:
# 수험자가 입력한 텍스트 중 하이퍼링크가 들어간 문단의 모든 텍스트를 가져와
# 채점하고자 하는 (정답) 하이퍼링크 텍스트와 시작 위치를 비교
# (예시)
# [수험자입력] 1. 사전등록 : 서울 국제 도서 박람회 흠페이지(http://www.ind.or.kr) 참조
# [정답] 서울 국제 도서 박람회 흠페이지(http://www.ind.or.kr) 참조
# 수험자 텍스트의 "1. 사전등록" 부분을 제외하고 난 뒤
# 남은 "서울 국제 도서 박람회 흠페이지(http://www.ind.or.kr) 참조"의 정답 부분과 유사도를 비교
text_list = p.xpath(".//CHAR/text()") text_list = p.xpath(".//CHAR/text()")
full_text = ''.join(text_list).replace(" ", "") full_text = ''.join(text_list).replace(" ", "")
# print("full_text: ", full_text) # print("full_text: ", full_text)
@@ -624,12 +681,11 @@ class XMLScorer:
# 한자 # 한자
elif (category or "") == "Hanja": elif (category or "") == "Hanja":
word_list = criterion.get('word', [])
# 점수 계산 # 점수 계산
score = 0 score = 0
max_score = points max_score = points
word_list = criterion.get('word', [])
# 부분점수 (최대점수에서 한자 갯수만큼 나눈 몫) # 부분점수 (최대점수에서 한자 갯수만큼 나눈 몫)
score_per_pair = max_score // len(word_list) score_per_pair = max_score // len(word_list)
@@ -652,14 +708,12 @@ class XMLScorer:
elif (category or "") == "ChartType": elif (category or "") == "ChartType":
chart_type_list = { chart_type_list = {
'꺾은선형': "//c:lineChart[c:grouping[@val='standard']]", '꺾은선형': "//c:lineChart[c:grouping[@val='standard']]",
'가로막대형': "//c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']]", '묶은가로막대형': "//c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']]",
'세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]", '묶은세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]",
'원형': "//c:pieChart", '원형': "//c:pieChart",
'분산형': "//c:scatterChart" '분산형': "//c:scatterChart"
} }
chart_type = criterion.get('chart_type').replace(" ","") chart_type = criterion.get('chart_type').replace(" ","")
if "묶은" in chart_type:
chart_type = chart_type.replace("묶은", "")
# 입력한 chart_type에 해당하는 xpath를 가져옴 # 입력한 chart_type에 해당하는 xpath를 가져옴
chart_xpath = chart_type_list[chart_type] chart_xpath = chart_type_list[chart_type]
@@ -723,10 +777,8 @@ class XMLScorer:
return xml_data return xml_data
def typo_check(self, correct_answer_file, user_answer_file, chart_xml): def typo_check(self, correct_answer_file, user_answer_file, chart_xml):
user_answer_tree = ET.parse(user_answer_file) user_answer_root = ET.parse(user_answer_file).getroot()
user_answer_root = user_answer_tree.getroot() correct_answer_root = ET.parse(correct_answer_file).getroot()
correct_answer_tree = ET.parse(correct_answer_file)
correct_answer_root = correct_answer_tree.getroot()
# xpath로 바이너리 부분추출 # xpath로 바이너리 부분추출
user_input_text = user_answer_root.xpath('//CHAR//text()[not(ancestor::HEADER) and not(ancestor::TABLE)]') user_input_text = user_answer_root.xpath('//CHAR//text()[not(ancestor::HEADER) and not(ancestor::TABLE)]')
@@ -762,8 +814,6 @@ class XMLScorer:
correct_input_text = [re.sub(r'\d+\.\s*|-', '', text) for text in correct_input_text] correct_input_text = [re.sub(r'\d+\.\s*|-', '', text) for text in correct_input_text]
try : try :
# xpath = self.scoring_criteria["2"]["29"]['path'].split("'")[1]
# ignore_word = xpath.split("'")[1]
ignore_word = self.scoring_criteria["2"]["29"]["ignoreWord"] ignore_word = self.scoring_criteria["2"]["29"]["ignoreWord"]
# 특정 단어 제거 # 특정 단어 제거
# 오타와 누락의 경우만 판단하면 정상작동하지만 # 오타와 누락의 경우만 판단하면 정상작동하지만
@@ -975,19 +1025,22 @@ def main():
# 시험회차 및 유형 # 시험회차 및 유형
exam_round = '2504' exam_round = '2504'
# 채점하고자 하는 유형은 주석 해제
exam_types = [ exam_types = [
# 'A', 'A',
# 'B', 'B',
'C', 'C',
] ]
test_mode = False test_mode = False
# test_mode = True # test_mode = True #/TEST 폴더 채점시
output_excel_paths = [] output_excel_paths = []
for exam_type in exam_types: for exam_type in exam_types:
# JSON 채점기준표 파일 (예시:DIW_2503A.json) # JSON 채점기준표 파일 (예시:DIW_2503A.json)
# scoring_criteria_path = f'./DIW_{exam_round}.json' # scoring_criteria_path = f'./DIW_{exam_round}.json'
scoring_criteria_path = f'./DIW_{exam_round}{exam_type}_new.json' scoring_criteria_path = f'./DIW_{exam_round}{exam_type}.json'
# xml(hml)파일 디렉토리 경로 (예시:./output/A/DIW) # xml(hml)파일 디렉토리 경로 (예시:./output/A/DIW)
# xml_directory = f'./output/{exam_type}/{"TEST" if test_mode else "DIW"}' # xml_directory = f'./output/{exam_type}/{"TEST" if test_mode else "DIW"}'

View File

@@ -1 +1 @@
[{"kind":2,"language":"xpath","value":"//a:t[text()='클라우드 보안투자']/ancestor::a:r//a:ea/@typeface"},{"kind":2,"language":"xpath","value":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕'"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT/@Name"},{"kind":2,"language":"xpath","value":"//CHARSHAPE/@Height"},{"kind":2,"language":"xpath","value":"//PARASHAPE/PARAMARGIN/@LineSpacing"},{"kind":2,"language":"xpath","value":"//PARASHAPE/@Align"},{"kind":2,"language":"xpath","value":"//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width"}] [{"kind":2,"language":"xpath","value":"//a:t[text()='클라우드 보안투자']/ancestor::a:r//a:ea/@typeface"},{"kind":2,"language":"xpath","value":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕'"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT/@Name"},{"kind":2,"language":"xpath","value":"//CHARSHAPE/@Height"},{"kind":2,"language":"xpath","value":"//c:valAx//a:defRPr/@sz"},{"kind":2,"language":"xpath","value":"//c:catAx/c:txPr//a:defRPr/@i"},{"kind":2,"language":"xpath","value":"//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width"}]

View File

@@ -0,0 +1,862 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "용지설정",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "기본설정",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"path2": null,
"searchValue": null,
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"path2": null,
"searchValue": "클라우드컴퓨팅컨퍼런스",
"value": "맑은 고딕",
"points": 1,
"category": "글맵시",
"item": "문구 (클라우드컴퓨팅컨퍼런스)/① 글씨체 (맑은 고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "클라우드컴퓨팅컨퍼런스",
"value": "6438172",
"points": 2,
"category": "글맵시",
"item": "문구 (클라우드컴퓨팅컨퍼런스)/② 채우기 : 색상(RGB:100,170,92)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "클라우드컴퓨팅컨퍼런스",
"value": 31181,
"points": 2,
"category": "글맵시",
"item": "문구 (클라우드컴퓨팅컨퍼런스)/③ 크기-너비 (100mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "클라우드컴퓨팅컨퍼런스",
"value": 5669,
"points": 2,
"category": "글맵시",
"item": "문구 (클라우드컴퓨팅컨퍼런스)/④ 크기-높이 (20mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "클라우드컴퓨팅컨퍼런스",
"value": "true",
"points": 2,
"category": "글맵시",
"item": "문구 (클라우드컴퓨팅컨퍼런스)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "클라우드컴퓨팅컨퍼런스",
"value": "Center",
"points": 2,
"category": "글맵시",
"item": "문구 (클라우드컴퓨팅컨퍼런스)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "boolean(//TEXTART[@Text='{searchValue}'])",
"path2": null,
"searchValue": "클라우드컴퓨팅컨퍼런스",
"value": true,
"points": 2,
"category": "글맵시",
"item": "문구 (클라우드컴퓨팅컨퍼런스)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "boolean(//RECTANGLE[.//CHAR[text()='전']][.//SIZE[(@Height >= 2600 and @Height <= 3000)and(@Width >= 2600 and @Width <= 3000)]])",
"path2": null,
"searchValue": null,
"value": true,
"points": 1,
"category": "문단첫글자장식",
"item": "전/① 모양 (2줄)"
},
"9": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='전']]/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
"value": "궁서체",
"points": 1,
"category": "문단첫글자장식",
"item": "전/② 글씨체 (궁서체)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='전']]//WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": null,
"value": "3835135",
"points": 2,
"category": "문단첫글자장식",
"item": "전/③ 면색 : 색상(RGB:255,132,58)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='전']]//OUTSIDEMARGIN/@Right",
"path2": null,
"searchValue": null,
"value": "850",
"points": 2,
"category": "문단첫글자장식",
"item": "전/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])",
"path2": null,
"searchValue": "글로벌 클라우드 컴퓨팅 컨퍼런스",
"value": true,
"points": 2,
"category": "글꼴 속성",
"item": "문구 (글로벌 클라우드 컴퓨팅 컨퍼런스)/① 진하게"
},
"13": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])",
"path2": null,
"searchValue": "글로벌 클라우드 컴퓨팅 컨퍼런스",
"value": true,
"points": 2,
"category": "글꼴 속성",
"item": "문구 (글로벌 클라우드 컴퓨팅 컨퍼런스)/② 밑줄"
},
"14": {
"path": "count(//CHAR[contains(text(),'●')]) + count(//CHAR[contains(text(),'※')])",
"path2": "string-length(//CHAR[contains(text(),'●')]) - string-length(translate(//CHAR[contains(text(),'●')], '●', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))",
"searchValue": null,
"value": 3,
"points": 3,
"category": "특수문자",
"item": "① ●, ② ●, ③ ※"
},
"15": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "참여안내",
"value": "궁서",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (● 참여안내 ●)/① 글씨체 (궁서)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "참여안내",
"value": "Center",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (● 참여안내 ●)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
"hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][ITALIC])",
"hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "홈페이지(http://www.ihd.or.kr) 참조",
"value": true,
"points": 1,
"category": "Hyperlink",
"item": "문구 (홈페이지(http://www.ihd.or.kr) 참조)/① 기울임"
},
"18": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])",
"hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][UNDERLINE])",
"hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "홈페이지(http://www.ihd.or.kr) 참조",
"value": true,
"points": 1,
"category": "Hyperlink",
"item": "문구 (홈페이지(http://www.ihd.or.kr) 참조)/② 밑줄"
},
"19": {
"path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)",
"path2": null,
"searchValue": "기타사항",
"value": true,
"points": 2,
"category": "문단모양",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2025. 04. 26.",
"value": 1400,
"points": 1,
"category": "글꼴 속성",
"item": "문구 (2025. 04. 26.)/① 크기 (14pt)"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "2025. 04. 26.",
"value": "Center",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (2025. 04. 26.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "글로벌멀티클라우드협의회",
"value": "궁서체",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (글로벌멀티클라우드협의회)/① 글씨체 (궁서체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "글로벌멀티클라우드협의회",
"value": 2600,
"points": 1,
"category": "글꼴 속성",
"item": "문구 (글로벌멀티클라우드협의회)/② 크기 (26pt)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "글로벌멀티클라우드협의회",
"value": "Center",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (글로벌멀티클라우드협의회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "DIAT",
"value": "궁서",
"points": 1,
"category": "머리말",
"item": "문구 (DIAT)/① 글꼴 (궁서)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "DIAT",
"value": 900,
"points": 1,
"category": "머리말",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "머리말",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"path2": null,
"searchValue": null,
"value": "LatinCapital",
"points": 2,
"category": "쪽번호",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)"
},
"29": {
"path": "//PAGENUM/@Pos",
"path2": null,
"searchValue": null,
"value": "BottomRight",
"points": 2,
"category": "쪽번호",
"item": "② 오른쪽 아래"
},
"30": {
"path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='200'])",
"path2": null,
"searchValue": null,
"value": true,
"points": 2,
"category": "줄간격",
"item": "문제 1 줄간격 200% 설정"
}
},
"2": {
"1": {
"path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "쪽 테두리",
"item": "문제2 쪽 테두리(이중 실선, 머리말 포함) 설정"
},
"2": {
"path": "count(//SECTION)>1",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "다단",
"item": "① 구역나누기"
},
"3": {
"path": "//COLDEF/@Count>1",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "다단",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "클라우드 컴퓨팅",
"value": 17007,
"points": 2,
"category": "글상자",
"item": "문구 (클라우드 컴퓨팅)/① 크기-너비 (60mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "클라우드 컴퓨팅",
"value": 3401,
"points": 2,
"category": "글상자",
"item": "문구 (클라우드 컴퓨팅)/② 크기-높이 (12mm)"
},
"6": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
"path2": null,
"searchValue": "클라우드 컴퓨팅",
"value": "DoubleSlim",
"points": 2,
"category": "글상자",
"item": "문구 (클라우드 컴퓨팅)/③ 테두리 : 이중 실선(1.00mm)"
},
"7": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio",
"path2": null,
"searchValue": "클라우드 컴퓨팅",
"value": 50,
"points": 2,
"category": "글상자",
"item": "문구 (클라우드 컴퓨팅)/④ 글상자 모서리 (반원)"
},
"8": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "클라우드 컴퓨팅",
"value": "10966730",
"points": 2,
"category": "글상자",
"item": "문구 (클라우드 컴퓨팅)/⑤ 채우기 : 색상(RGB:202,86,167)"
},
"9": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "클라우드 컴퓨팅",
"value": "true",
"points": 1,
"category": "글상자",
"item": "문구 (클라우드 컴퓨팅)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"path2": null,
"searchValue": "클라우드 컴퓨팅",
"value": "Center",
"points": 1,
"category": "글상자",
"item": "문구 (클라우드 컴퓨팅)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "클라우드 컴퓨팅",
"value": "한양견고딕",
"points": 1,
"category": "글상자",
"item": "문구 (클라우드 컴퓨팅)/⑧ 글씨체 (견고딕)"
},
"12": {
"path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')",
"path2": null,
"searchValue": "클라우드 컴퓨팅",
"value": true,
"points": 1,
"category": "글상자",
"item": "문구 (클라우드 컴퓨팅)/⑨ 글씨크기 (20pt)"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
"path2": null,
"searchValue": "클라우드 컴퓨팅",
"value": "Center",
"points": 1,
"category": "글상자",
"item": "문구 (클라우드 컴퓨팅)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
"path2": null,
"searchValue": "원본 그림의 이름: 그림",
"value": true,
"points": 2,
"category": "그림삽입",
"item": "① 파일명 \"그림A.jpg\" 삽입"
},
"15": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": null,
"value": 22677,
"points": 2,
"category": "그림삽입",
"item": "② 크기-너비 (80mm)"
},
"16": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": null,
"value": 12755,
"points": 2,
"category": "그림삽입",
"item": "③ 크기-높이 (40mm)"
},
"17": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
"path2": null,
"searchValue": null,
"value": 0,
"points": 2,
"category": "그림삽입",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
"path2": null,
"searchValue": null,
"value": 6803,
"points": 2,
"category": "그림삽입",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22mm)"
},
"19": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "1. 주목하는 최신 트렌드",
"value": "굴림",
"points": 1,
"category": "속성",
"item": "문구① (1. 주목하는 최신 트렌드)/① 글씨체 (굴림)"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "1. 주목하는 최신 트렌드",
"value": 1200,
"points": 1,
"category": "속성",
"item": "문구① (1. 주목하는 최신 트렌드)/② 크기 (12pt)"
},
"21": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "1. 주목하는 최신 트렌드",
"value": true,
"points": 1,
"category": "속성",
"item": "문구① (1. 주목하는 최신 트렌드)/③ 진하게"
},
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "2. 기술의 경제적 가치",
"value": "굴림",
"points": 1,
"category": "속성",
"item": "문구② (2. 기술의 경제적 가치)/① 글씨체 (굴림)"
},
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2. 기술의 경제적 가치",
"value": 1200,
"points": 1,
"category": "속성",
"item": "문구② (2. 기술의 경제적 가치)/② 크기 (12pt)"
},
"24": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "2. 기술의 경제적 가치",
"value": true,
"points": 1,
"category": "속성",
"item": "문구② (2. 기술의 경제적 가치)/③ 진하게"
},
"25": {
"path": "boolean(//CHAR[contains(text(),'클라우드')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('클라우드') + 1) = '클라우드']/following-sibling::FOOTNOTE/descendant::CHAR)",
"searchValue": null,
"value": true,
"points": 2,
"category": "각주",
"item": "문구 (클라우드)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "인터넷을 통해 액세스할 수 있는 가상화된 서버에서 실행되는 프로그램과 데이터베이스를 제공하는 환경",
"value": "한양중고딕",
"points": 1,
"category": "각주",
"item": "문구 (클라우드)/② 글씨체 (한양중고딕)"
},
"27": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "인터넷을 통해 액세스할 수 있는 가상화된 서버에서 실행되는 프로그램과 데이터베이스를 제공하는 환경",
"value": 900,
"points": 1,
"category": "각주",
"item": "문구 (클라우드)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"path2": null,
"searchValue": "인터넷을 통해 액세스할 수 있는 가상화된 서버에서 실행되는 프로그램과 데이터베이스를 제공하는 환경",
"value": "Ideograph",
"points": 2,
"category": "각주",
"item": "문구 (클라우드)/④ 각주 번호모양"
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Digital')])",
"path2": null,
"ignoreWord": "Digital",
"value": true,
"points": 3,
"category": "영단어",
"item": "Digital/영단어 미입력, 대소문자/오타 시 전체 감점"
},
"30": {
"path": "(count(//CHAR[contains(text(),'전환')][contains(text(),'轉換')])+count(//CHAR[contains(text(),'핵심')][contains(text(),'核心')])+count(//CHAR[contains(text(),'확산')][contains(text(),'擴散')])+count(//CHAR[contains(text(),'보안')][contains(text(),'保安')])+count(//CHAR[contains(text(),'도입')][contains(text(),'導入')]))*2",
"path2": null,
"searchValue": null,
"value": 10,
"points": 10,
"category": "한자",
"item": "① 전환(轉換), ② 핵심(核心), ③ 확산(擴散), ④ 보안(保安), ⑤ 도입(導入)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'션이발전')])",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "편집",
"item": "문구 (…보안(保安) 솔루션은 발전하면서…)/\"은\" → \"이\" 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이터유출')])",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "편집",
"item": "문구 (…유출과 데이터 사이버…)/\"유출과\" / \"데이터\" 순서바꿈"
},
"33": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "클라우드 보안(단위: 백만 달러)",
"value": "돋움",
"points": 1,
"category": "표",
"item": "제목 문구 (클라우드 보안(단위: 백만 달러))/① 글씨체 (돋움)"
},
"34": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "클라우드 보안(단위: 백만 달러)",
"value": 1200,
"points": 1,
"category": "표",
"item": "제목 문구 (클라우드 보안(단위: 백만 달러))/② 크기 (12pt)"
},
"35": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "클라우드 보안(단위: 백만 달러)",
"value": true,
"points": 1,
"category": "표",
"item": "제목 문구 (클라우드 보안(단위: 백만 달러))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "클라우드 보안(단위: 백만 달러)",
"value": "Center",
"points": 1,
"category": "표",
"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='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "2862825",
"points": 2,
"category": "표",
"item": "위쪽 제목 셀/① 색상(RGB:233,174,43)"
},
"38": {
"path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": null,
"value": true,
"points": 1,
"category": "표",
"item": "위쪽 제목 셀/② 진하게"
},
"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='2']/@BorderFill]/BOTTOMBORDER/@Type",
"searchValue": null,
"value": "DoubleSlim",
"points": 2,
"category": "표",
"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='2']/@BorderFill]/BOTTOMBORDER/@Width",
"searchValue": null,
"value": "0.5mm",
"points": 2,
"category": "표",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
"value": "한양중고딕",
"points": 1,
"category": "표",
"item": "글자모양/① 글씨체 (중고딕)"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": null,
"value": 1000,
"points": 1,
"category": "표",
"item": "글자모양/② 크기 (10pt)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align",
"path2": null,
"searchValue": null,
"value": "Center",
"points": 1,
"category": "표",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=SUM') and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=SUM')]])",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "표",
"item": "블록 계산식/합계"
},
"45": {
"path": "boolean(//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']])",
"path2": null,
"searchValue": null,
"value": true,
"points": 2,
"category": "chart_xml",
"item": "① 종류 (묶은 세로 막대형)"
},
"46": {
"path": "//c:valAx/c:majorTickMark/@val",
"path2": null,
"searchValue": null,
"value": "out",
"points": 2,
"category": "chart_xml",
"item": "② 값 축 주 눈금선"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
"path2": null,
"searchValue": null,
"value": 22677,
"points": 2,
"category": "차트",
"item": "③ 크기-너비 (80mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
"path2": null,
"searchValue": null,
"value": 25511,
"points": 2,
"category": "차트",
"item": "④ 크기-높이 (90mm)"
},
"49": {
"path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])",
"path2": null,
"searchValue": null,
"value": true,
"points": 2,
"category": "chart_xml",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)"
},
"50": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"path2": null,
"searchValue": "클라우드 보안 투자",
"value": "굴림",
"points": 1,
"category": "chart_xml",
"item": "제목 문구 (클라우드 보안 투자)/① 글씨체 (굴림)"
},
"51": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"path2": null,
"searchValue": "클라우드 보안 투자",
"value": 1300,
"points": 1,
"category": "chart_xml",
"item": "제목 문구 (클라우드 보안 투자)/② 크기 (13pt)"
},
"52": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b",
"path2": null,
"searchValue": "클라우드 보안 투자",
"value": 1,
"points": 1,
"category": "chart_xml",
"item": "제목 문구 (클라우드 보안 투자)/③ 진하게"
},
"53": {
"path": "//c:catAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
"value": "돋움",
"points": 1,
"category": "chart_xml",
"item": "X축/① 글꼴 (돋움)"
},
"54": {
"path": "//c:catAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
"value": 900,
"points": 1,
"category": "chart_xml",
"item": "X축/② 크기 (9pt)"
},
"55": {
"path": "//c:catAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
"value": "1",
"points": 1,
"category": "chart_xml",
"item": "X축/③ 기울임"
},
"56": {
"path": "//c:valAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
"value": "돋움",
"points": 1,
"category": "chart_xml",
"item": "Y축/① 글꼴 (돋움)"
},
"57": {
"path": "//c:valAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
"value": 900,
"points": 1,
"category": "chart_xml",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"path": "//c:valAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
"value": "1",
"points": 1,
"category": "chart_xml",
"item": "Y축/③ 기울임"
},
"59": {
"path": "//c:legend//a:ea/@typeface",
"path2": null,
"searchValue": null,
"value": "돋움",
"points": 1,
"category": "chart_xml",
"item": "범례/① 글꼴 (돋움)"
},
"60": {
"path": "//c:legend//a:defRPr/@sz",
"path2": null,
"searchValue": null,
"value": 900,
"points": 1,
"category": "chart_xml",
"item": "범례/② 크기 (9pt)"
},
"61": {
"path": "//c:legend//a:defRPr/@i",
"path2": null,
"searchValue": null,
"value": "1",
"points": 1,
"category": "chart_xml",
"item": "범례/③ 기울임"
}
}
}

View File

@@ -0,0 +1,863 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "용지설정",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "기본설정",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"path2": null,
"searchValue": null,
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"path2": null,
"searchValue": "친환경에너지박람회",
"value": "궁서체",
"points": 1,
"category": "글맵시",
"item": "문구 (친환경에너지박람회)/① 글씨체 : 궁서체"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "친환경에너지박람회",
"value": "5395143",
"points": 2,
"category": "글맵시",
"item": "문구 (친환경에너지박람회)/② 채우기 : 색상(RGB:199,82,82)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "친환경에너지박람회",
"value": 31181,
"points": 2,
"category": "글맵시",
"item": "문구 (친환경에너지박람회)/③ 크기 : 너비(110mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "친환경에너지박람회",
"value": 5669,
"points": 2,
"category": "글맵시",
"item": "문구 (친환경에너지박람회)/④ 크기 : 높이(20mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "친환경에너지박람회",
"value": "true",
"points": 2,
"category": "글맵시",
"item": "문구 (친환경에너지박람회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "친환경에너지박람회",
"value": "Center",
"points": 2,
"category": "글맵시",
"item": "문구 (친환경에너지박람회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "boolean(//TEXTART[@Text='{searchValue}'])",
"path2": null,
"searchValue": "친환경에너지박람회",
"value": true,
"points": 2,
"category": "글맵시",
"item": "문구 (친환경에너지박람회)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])",
"path2": null,
"searchValue": null,
"value": true,
"points": 1,
"category": "문단첫글자장식",
"item": "자/① 모양 (2줄)"
},
"9": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
"value": "궁서",
"points": 1,
"category": "문단첫글자장식",
"item": "지/② 글씨체 (궁서)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='지']]//WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": null,
"value": "16768058",
"points": 2,
"category": "문단첫글자장식",
"item": "지/③ 면색 : 색상(RGB:58,220,255)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='지']]//OUTSIDEMARGIN/@Right",
"path2": null,
"searchValue": null,
"value": "850",
"points": 2,
"category": "문단첫글자장식",
"item": "지/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])",
"path2": null,
"searchValue": "태양광, 풍력, 수소에너지 등 신재생 에너지 기술",
"value": true,
"points": 2,
"category": "글꼴 속성",
"item": "문구 (태양광, 풍력, 수소에너지 등 신재생 에너지 기술)/① 진하게"
},
"13": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])",
"path2": null,
"searchValue": "태양광, 풍력, 수소에너지 등 신재생 에너지 기술",
"value": true,
"points": 2,
"category": "글꼴 속성",
"item": "문구 (태양광, 풍력, 수소에너지 등 신재생 에너지 기술)/② 밑줄"
},
"14": {
"path": "count(//CHAR[contains(text(),'▶')]) + count(//CHAR[contains(text(),'◀')]) + count(//CHAR[contains(text(),'※')])",
"path2": "string-length(//CHAR[contains(text(),'▶')]) - string-length(translate(//CHAR[contains(text(),'▶')], '▶', '')) + string-length(//CHAR[contains(text(),'◀')]) - string-length(translate(//CHAR[contains(text(),'◀')], '◀', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))",
"searchValue": null,
"value": 3,
"points": 3,
"category": "특수문자",
"item": "① ▶, ② ◀, ③ ※"
},
"15": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "행사안내",
"value": "한양중고딕",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (▶ 행사안내 ◀)/① 글씨체 (중고딕)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "행사안내",
"value": "Center",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (▶ 행사안내 ◀)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][BOLD])",
"hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][BOLD])",
"hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록",
"value": true,
"points": 1,
"category": "Hyperlink",
"item": "문구 (블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록)/① 진하게"
},
"18": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
"hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][ITALIC])",
"hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록",
"value": true,
"points": 1,
"category": "Hyperlink",
"item": "문구 (블로그(http://www.ihd.or.kr) 참조하여 온라인으로 등록)/② 기울임"
},
"1-19": {
"path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=2000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)",
"path2": null,
"searchValue": "기타사항",
"value": true,
"points": 2,
"category": "문단모양",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2025. 04. 26.",
"value": 1300,
"points": 1,
"category": "글꼴 속성",
"item": "문구 (2025. 04. 26.)/① 크기 (13pt)"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "2025. 04. 26.",
"value": "Center",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (2025. 04. 26.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "친환경에너지발전협의회",
"value": "돋움",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (친환경에너지발전협의회)/① 글씨체 (돋움)"
},
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "친환경에너지발전협의회",
"value": 2700,
"points": 1,
"category": "글꼴 속성",
"item": "문구 (친환경에너지발전협의회)/② 크기 (27pt)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "친환경에너지발전협의회",
"value": "Center",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (친환경에너지발전협의회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "DIAT",
"value": "굴림",
"points": 1,
"category": "머리말",
"item": "문구 (DIAT)/① 글꼴 (굴림)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "DIAT",
"value": 900,
"points": 1,
"category": "머리말",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "머리말",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"path2": null,
"searchValue": null,
"value": "HangulSyllable",
"points": 2,
"category": "쪽번호",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)"
},
"29": {
"path": "//PAGENUM/@Pos",
"path2": null,
"searchValue": null,
"value": "BottomCenter",
"points": 2,
"category": "쪽번호",
"item": "② 가운데 아래"
},
"30": {
"path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])",
"path2": null,
"searchValue": null,
"value": true,
"points": 2,
"category": "줄간격",
"item": "문제 1 줄간격 180% 설정"
}
},
"2": {
"1": {
"path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "쪽 테두리",
"item": "문제2 쪽 테두리(이중 실선, 머리말 포함) 설정"
},
"2": {
"path": "count(//SECTION)>1",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "다단",
"item": "① 구역나누기"
},
"3": {
"path": "//COLDEF/@Count>1",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "다단",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "친환경 에너지",
"value": 14173,
"points": 2,
"category": "글상자",
"item": "문구 (친환경 에너지)/① 크기-너비 (50mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "친환경 에너지",
"value": 3402,
"points": 2,
"category": "글상자",
"item": "문구 (친환경 에너지)/② 크기-높이 (12mm)"
},
"6": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
"path2": null,
"searchValue": "친환경 에너지",
"value": "DoubleSlim",
"points": 2,
"category": "글상자",
"item": "문구 (친환경 에너지)/③ 테두리 : 이중 실선(1.00mm)"
},
"7": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio",
"path2": null,
"searchValue": "친환경 에너지",
"value": 20,
"points": 2,
"category": "글상자",
"item": "문구 (친환경 에너지)/④ 글상자 모서리 (둥근 모양)"
},
"8": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "친환경 에너지",
"value": "9537333",
"points": 2,
"category": "글상자",
"item": "문구 (친환경 에너지)/⑤ 채우기 : 색상(RGB:53,135,145)"
},
"9": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "친환경 에너지",
"value": "true",
"points": 1,
"category": "글상자",
"item": "문구 (친환경 에너지)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"path2": null,
"searchValue": "친환경 에너지",
"value": "Center",
"points": 1,
"category": "글상자",
"item": "문구 (친환경 에너지)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "친환경 에너지",
"value": "궁서체",
"points": 1,
"category": "글상자",
"item": "문구 (친환경 에너지)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')",
"path2": null,
"searchValue": "친환경 에너지",
"value": true,
"points": 1,
"category": "글상자",
"item": "문구 (친환경 에너지)/⑨ 글씨크기 (20pt)"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
"path2": null,
"searchValue": "친환경 에너지",
"value": "Center",
"points": 1,
"category": "글상자",
"item": "문구 (친환경 에너지)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
"path2": null,
"searchValue": "원본 그림의 이름: 그림",
"value": true,
"points": 2,
"category": "그림삽입",
"item": "① 파일명 \"그림B.jpg\" 삽입"
},
"15": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": null,
"value": 24094,
"points": 2,
"category": "그림삽입",
"item": "② 크기-너비 (85mm)"
},
"16": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": null,
"value": 11338,
"points": 2,
"category": "그림삽입",
"item": "③ 크기-높이 (40mm)"
},
"17": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
"path2": null,
"searchValue": null,
"value": 0,
"points": 2,
"category": "그림삽입",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
"path2": null,
"searchValue": null,
"value": 6800,
"points": 2,
"category": "그림삽입",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24mm)"
},
"19": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "1. 친환경 에너지 개요",
"value": "돋움",
"points": 1,
"category": "속성",
"item": "문구① (1. 친환경 에너지 개요)/① 글씨체 (돋움)"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "1. 친환경 에너지 개요",
"value": 1200,
"points": 1,
"category": "속성",
"item": "문구① (1. 친환경 에너지 개요)/② 크기 (12pt)"
},
"21": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "1. 친환경 에너지 개요",
"value": true,
"points": 1,
"category": "속성",
"item": "문구① (1. 친환경 에너지 개요)/③ 진하게"
},
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "2. 신재생 에너지",
"value": "돋움",
"points": 1,
"category": "속성",
"item": "문구② (2. 신재생 에너지)/① 글씨체 (돋움)"
},
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2. 신재생 에너지",
"value": 1200,
"points": 1,
"category": "속성",
"item": "문구② (2. 신재생 에너지)/② 크기 (12pt)"
},
"24": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "2. 신재생 에너지",
"value": true,
"points": 1,
"category": "속성",
"item": "문구② (2. 신재생 에너지)/③ 진하게"
},
"25": {
"path": "boolean(//CHAR[contains(text(),'태양전지')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('태양전지') + 1) = '태양전지']/following-sibling::FOOTNOTE/descendant::CHAR)",
"searchValue": null,
"value": true,
"points": 2,
"category": "각주",
"item": "문구 (태양전지)/① 문구입력"
},
"26": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "태양의 빛에너지를 전기에너지로 변환시켜 전기를 발생하는 장치로 친환경 방식으로 알려져 있음",
"value": "굴림",
"points": 1,
"category": "각주",
"item": "문구 (태양전지)/② 글씨체 (굴림)"
},
"27": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "태양의 빛에너지를 전기에너지로 변환시켜 전기를 발생하는 장치로 친환경 방식으로 알려져 있음",
"value": 900,
"points": 1,
"category": "각주",
"item": "문구 (태양전지)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"path2": null,
"searchValue": "태양의 빛에너지를 전기에너지로 변환시켜 전기를 발생하는 장치로 친환경 방식으로 알려져 있음",
"value": "CircledHangulJamo",
"points": 2,
"category": "각주",
"item": "문구 (태양전지)/④ 각주 번호 모양"
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Campaign')])",
"path2": null,
"ignoreWord": "Campaign",
"value": true,
"points": 3,
"category": "영단어",
"item": "Campaign/영단어 미입력, 대소문자/오타 시 전체 감점"
},
"30": {
"path": "(count(//CHAR[contains(text(),'저감')][contains(text(),'低減')])+count(//CHAR[contains(text(),'화석')][contains(text(),'化石')])+count(//CHAR[contains(text(),'투자')][contains(text(),'投資')])+count(//CHAR[contains(text(),'달성')][contains(text(),'達成')])+count(//CHAR[contains(text(),'세금')][contains(text(),'稅金')]))*2",
"path2": null,
"searchValue": null,
"value": 10,
"points": 10,
"category": "한자",
"item": "① 한옥(韓屋), ② 사계절(四季節), ③거주(居住), ④ 구조(構造), ⑤ 골격(骨格)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'택을제공')])",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "편집",
"item": "문구 (…세금 혜택이 제공하고 있으며…)/\"이\" → \"을\" 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'탄소배출')])",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "편집",
"item": "문구 (…배출 탄소 규제가 강화되면서…)/\"배출\" / \"탄소\" 순서바꿈"
},
"33": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "친환경 에너지 성장률(단위: %)",
"value": "돋움",
"points": 1,
"category": "표",
"item": "제목 문구 (친환경 에너지 성장률(단위: %))/① 글씨체 (돋움)"
},
"34": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "친환경 에너지 성장률(단위: %)",
"value": 1200,
"points": 1,
"category": "표",
"item": "제목 문구 (친환경 에너지 성장률(단위: %))/② 크기 (12pt)"
},
"35": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "친환경 에너지 성장률(단위: %)",
"value": true,
"points": 1,
"category": "표",
"item": "제목 문구 (친환경 에너지 성장률(단위: %))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "친환경 에너지 성장률(단위: %)",
"value": "Center",
"points": 1,
"category": "표",
"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='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"searchValue": null,
"value": "10966730",
"points": 2,
"category": "표",
"item": "위쪽 제목 셀/① 색상(RGB:202,86,167)"
},
"38": {
"path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": null,
"value": true,
"points": 1,
"category": "표",
"item": "위쪽 제목 셀/② 진하게"
},
"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='2']/@BorderFill]/BOTTOMBORDER/@Type",
"searchValue": null,
"value": "DoubleSlim",
"points": 2,
"category": "표",
"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='2']/@BorderFill]/BOTTOMBORDER/@Width",
"searchValue": null,
"value": "0.5mm",
"points": 2,
"category": "표",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
"value": "한양중고딕",
"points": 1,
"category": "표",
"item": "글자모양/① 글씨체 (중고딕)"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": null,
"value": 1000,
"points": 1,
"category": "표",
"item": "글자모양/② 크기 (10pt)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align",
"path2": null,
"searchValue": null,
"value": "Center",
"points": 1,
"category": "표",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=AVG') and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=AVG')]])",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "표",
"item": "블록계산식/평균"
},
"45": {
"path": "//c:lineChart/c:grouping/@val='standard'",
"path2": null,
"searchValue": null,
"value": true,
"points": 2,
"category": "chart_xml",
"item": "① 종류 (꺾은선형)"
},
"46": {
"path": "//c:valAx/c:majorTickMark/@val",
"path2": null,
"searchValue": null,
"value": "out",
"points": 2,
"category": "chart_xml",
"item": "② 값 축 주 눈금선"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
"path2": null,
"searchValue": null,
"value": 22677,
"points": 2,
"category": "차트",
"item": "③ 크기-너비 (80mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
"path2": null,
"searchValue": null,
"value": 22677,
"points": 2,
"category": "차트",
"item": "④ 크기-높이 (80mm)"
},
"49": {
"path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])",
"path2": null,
"searchValue": null,
"value": true,
"points": 2,
"category": "chart_xml",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)"
},
"50": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"path2": null,
"searchValue": "친환경 에너지 성장률",
"value": "궁서체",
"points": 1,
"category": "chart_xml",
"item": "제목 문구 (친환경 에너지 성장률)/① 글씨체 (궁서체)"
},
"51": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"path2": null,
"searchValue": "친환경 에너지 성장률",
"value": 1300,
"points": 1,
"category": "chart_xml",
"item": "제목 문구 (친환경 에너지 성장률)/② 크기 (13pt)"
},
"52": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b",
"path2": null,
"searchValue": "친환경 에너지 성장률",
"value": 1,
"points": 1,
"category": "chart_xml",
"item": "제목 문구 (친환경 에너지 성장률)/③ 진하게"
},
"53": {
"path": "//c:catAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
"value": "바탕",
"points": 1,
"category": "chart_xml",
"item": "X축/① 글꼴 (바탕)"
},
"54": {
"path": "//c:catAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
"value": 900,
"points": 1,
"category": "chart_xml",
"item": "X축/② 크기 (9pt)"
},
"55": {
"path": "//c:catAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
"value": "1",
"points": 1,
"category": "chart_xml",
"item": "X축/③ 기울임"
},
"56": {
"path": "//c:valAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
"value": "바탕",
"points": 1,
"category": "chart_xml",
"item": "Y축/① 글꼴 (바탕)"
},
"57": {
"path": "//c:valAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
"value": 900,
"points": 1,
"category": "chart_xml",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"path": "//c:valAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
"value": "1",
"points": 1,
"category": "chart_xml",
"item": "Y축/③ 기울임"
},
"59": {
"path": "//c:legend//a:ea/@typeface",
"path2": null,
"searchValue": null,
"value": "바탕",
"points": 1,
"category": "chart_xml",
"item": "범례/① 글꼴 (바탕)"
},
"60": {
"path": "//c:legend//a:defRPr/@sz",
"path2": null,
"searchValue": null,
"value": 900,
"points": 1,
"category": "chart_xml",
"item": "범례/② 크기 (9pt)"
},
"61": {
"path": "//c:legend//a:defRPr/@i",
"path2": null,
"searchValue": null,
"value": "1",
"points": 1,
"category": "chart_xml",
"item": "범례/③ 기울임"
}
}
}

View File

@@ -0,0 +1,863 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "용지설정",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "기본설정",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"path2": null,
"searchValue": null,
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"path2": null,
"searchValue": "서울국제도서박람회",
"value": "돋움",
"points": 1,
"category": "글맵시",
"item": "문구 (서울국제도서박람회)/① 글씨체 : 돋움"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "서울국제도서박람회",
"value": "6438172",
"points": 2,
"category": "글맵시",
"item": "문구 (서울국제도서박람회)/② 채우기 : 색상(RGB:28,61,98)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "서울국제도서박람회",
"value": 28346,
"points": 2,
"category": "글맵시",
"item": "문구 (서울국제도서박람회)/③ 크기 : 너비(100mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "서울국제도서박람회",
"value": 5669,
"points": 2,
"category": "글맵시",
"item": "문구 (서울국제도서박람회)/④ 크기 : 높이(20mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "서울국제도서박람회",
"value": "true",
"points": 2,
"category": "글맵시",
"item": "문구 (서울국제도서박람회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "서울국제도서박람회",
"value": "Center",
"points": 2,
"category": "글맵시",
"item": "문구 (서울국제도서박람회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "boolean(//TEXTART[@Text='{searchValue}'])",
"path2": null,
"searchValue": "서울국제도서박람회",
"value": true,
"points": 2,
"category": "글맵시",
"item": "문구 (서울국제도서박람회)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "boolean(//RECTANGLE[.//CHAR[text()='책']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])",
"path2": null,
"searchValue": null,
"value": true,
"points": 1,
"category": "문단첫글자장식",
"item": "책/① 모양 (2줄)"
},
"9": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='책']]/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
"value": "돋움",
"points": 1,
"category": "문단첫글자장식",
"item": "책/② 글씨체 (돋움)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='책']]//WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": null,
"value": "1943246",
"points": 2,
"category": "문단첫글자장식",
"item": "책/③ 면색 : 색상(RGB:206,166,29)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='책']]//OUTSIDEMARGIN/@Right",
"path2": null,
"searchValue": null,
"value": "850",
"points": 2,
"category": "문단첫글자장식",
"item": "책/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])",
"path2": null,
"searchValue": "문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판",
"value": true,
"points": 2,
"category": "글꼴 속성",
"item": "문구 (문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판)/① 진하게"
},
"13": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][ITALIC])",
"path2": null,
"searchValue": "문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판",
"value": true,
"points": 2,
"category": "글꼴 속성",
"item": "문구 (문학, 인문학, 어린이/청소년 도서, 전자책, 독립 출판)/② 기울임"
},
"14": {
"path": "count(//CHAR[contains(text(),'◆')]) + count(//CHAR[contains(text(),'※')])",
"path2": "string-length(//CHAR[contains(text(),'◆')]) - string-length(translate(//CHAR[contains(text(),'◆')], '◆', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))",
"searchValue": null,
"value": 3,
"points": 3,
"category": "특수문자",
"item": "① ◆, ② ◆, ③ ※"
},
"15": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "행사안내",
"value": "궁서",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (◆ 행사안내 ◆)/① 글씨체 (궁서)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "행사안내",
"value": "Center",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (◆ 행사안내 ◆)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
"hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][ITALIC])",
"hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조",
"value": true,
"points": 1,
"category": "Hyperlink",
"item": "문구 (서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조)/① 기울임"
},
"18": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])",
"hyperlink_xpath": "boolean(//CHARSHAPE[@Id={charshape_id}][UNDERLINE])",
"hyperlink": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조",
"value": true,
"points": 1,
"category": "Hyperlink",
"item": "문구 (서울 국제 도서 박람회 홈페이지(http://www.ihd.or.kr) 참조)/② 밑줄"
},
"19": {
"path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)",
"path2": null,
"searchValue": "기타사항",
"value": true,
"points": 2,
"category": "문단모양",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2025. 04. 26.",
"value": 1300,
"points": 1,
"category": "글꼴 속성",
"item": "문구 (2025. 04. 26.)/① 크기 (13pt)"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "2025. 04. 26.",
"value": "Center",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (2025. 04. 26.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "서울국제도서박람회",
"value": "한양견고딕",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (서울국제도서박람회)/① 글씨체 (견고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "서울국제도서박람회",
"value": 2500,
"points": 1,
"category": "글꼴 속성",
"item": "문구 (서울국제도서박람회)/② 크기 (25pt)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "서울국제도서박람회",
"value": "Center",
"points": 1,
"category": "글꼴 속성",
"item": "문구 (서울국제도서박람회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "DIAT",
"value": "한양중고딕",
"points": 1,
"category": "머리말",
"item": "문구 (DIAT)/① 글꼴 (중고딕)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "DIAT",
"value": 900,
"points": 1,
"category": "머리말",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "머리말",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"path2": null,
"searchValue": null,
"value": "RomanSmall",
"points": 2,
"category": "쪽번호",
"item": "① 쪽 번호 매기기 (i,ii,iii 순으로)"
},
"29": {
"path": "//PAGENUM/@Pos",
"path2": null,
"searchValue": null,
"value": "BottomRight",
"points": 2,
"category": "쪽번호",
"item": "② 오른쪽 아래"
},
"30": {
"path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])",
"path2": null,
"searchValue": null,
"value": true,
"points": 2,
"category": "줄간격",
"item": "문제 1 줄간격 180% 설정"
}
},
"2": {
"1": {
"path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "쪽 테두리",
"item": "문제2 쪽 테두리(이중 실선, 머리말 포함) 설정"
},
"2": {
"path": "count(//SECTION)>1",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "다단",
"item": "① 구역나누기"
},
"3": {
"path": "//COLDEF/@Count>1",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "다단",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "출판 산업 트렌드",
"value": 19842,
"points": 2,
"category": "글상자",
"item": "문구 (출판 산업 트렌드)/① 크기-너비 (70mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "출판 산업 트렌드",
"value": 3402,
"points": 2,
"category": "글상자",
"item": "문구 (출판 산업 트렌드)/② 크기-높이 (12mm)"
},
"6": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
"path2": null,
"searchValue": "출판 산업 트렌드",
"value": "DoubleSlim",
"points": 2,
"category": "글상자",
"item": "문구 (출판 산업 트렌드)/③ 테두리 : 이중 실선(1.00mm)"
},
"7": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio",
"path2": null,
"searchValue": "출판 산업 트렌드",
"value": 50,
"points": 2,
"category": "글상자",
"item": "문구 (출판 산업 트렌드)/④ 글상자 모서리 (반원)"
},
"8": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "출판 산업 트렌드",
"value": "5395050",
"points": 2,
"category": "글상자",
"item": "문구 (출판 산업 트렌드)/⑤ 채우기 : 색상(RGB:199,82,82)"
},
"9": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "출판 산업 트렌드",
"value": "true",
"points": 1,
"category": "글상자",
"item": "문구 (출판 산업 트렌드)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"path2": null,
"searchValue": "출판 산업 트렌드",
"value": "Center",
"points": 1,
"category": "글상자",
"item": "문구 (출판 산업 트렌드)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "출판 산업 트렌드",
"value": "휴먼옛체",
"points": 1,
"category": "글상자",
"item": "문구 (출판 산업 트렌드)/⑧ 글씨체 (휴먼옛체)"
},
"12": {
"path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')",
"path2": null,
"searchValue": "출판 산업 트렌드",
"value": true,
"points": 1,
"category": "글상자",
"item": "문구 (출판 산업 트렌드)/⑨ 글씨크기 (20pt)"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
"path2": null,
"searchValue": "출판 산업 트렌드",
"value": "Center",
"points": 1,
"category": "글상자",
"item": "문구 (출판 산업 트렌드)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
"path2": null,
"searchValue": "원본 그림의 이름: 그림",
"value": true,
"points": 2,
"category": "그림삽입",
"item": "① 파일명 \"그림C.jpg\" 삽입"
},
"15": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": null,
"value": 22677,
"points": 2,
"category": "그림삽입",
"item": "② 크기-너비 (85mm)"
},
"16": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": null,
"value": 11338,
"points": 2,
"category": "그림삽입",
"item": "③ 크기-높이 (40mm)"
},
"17": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
"path2": null,
"searchValue": null,
"value": 0,
"points": 2,
"category": "그림삽입",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
"path2": null,
"searchValue": null,
"value": 6800,
"points": 2,
"category": "그림삽입",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24mm)"
},
"19": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "1. 출판 산업의 확장",
"value": "굴림",
"points": 1,
"category": "속성",
"item": "문구① (1. 출판 산업의 확장)/① 글씨체 (굴림)"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "1. 출판 산업의 확장",
"value": 1200,
"points": 1,
"category": "속성",
"item": "문구① (1. 출판 산업의 확장)/② 크기 (12pt)"
},
"21": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "1. 출판 산업의 확장",
"value": true,
"points": 1,
"category": "속성",
"item": "문구① (1. 출판 산업의 확장)/③ 진하게"
},
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "2. 도서 박람회의 가치",
"value": "굴림",
"points": 1,
"category": "속성",
"item": "문구② (2. 도서 박람회의 가치)/① 글씨체 (굴림)"
},
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2. 도서 박람회의 가치",
"value": 1200,
"points": 1,
"category": "속성",
"item": "문구② (2. 도서 박람회의 가치)/② 크기 (12pt)"
},
"24": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "2. 도서 박람회의 가치",
"value": true,
"points": 1,
"category": "속성",
"item": "문구② (2. 도서 박람회의 가치)/③ 진하게"
},
"25": {
"path": "boolean(//CHAR[contains(text(),'오디오북')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('오디오북') + 1) = '오디오북']/following-sibling::FOOTNOTE/descendant::CHAR)",
"searchValue": null,
"value": true,
"points": 2,
"category": "각주",
"item": "문구 (오디오북)/① 문구입력"
},
"26": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함",
"value": "궁서",
"points": 1,
"category": "각주",
"item": "문구 (오디오북)/② 글씨체 (궁서)"
},
"27": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함",
"value": 900,
"points": 1,
"category": "각주",
"item": "문구 (오디오북)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"path2": null,
"searchValue": "눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함",
"value": "CircledLatinSmall",
"points": 2,
"category": "각주",
"item": "문구 (오디오북)/④ 각주 번호 모양"
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Platform')])",
"path2": null,
"ignoreWord": "Platform",
"value": true,
"points": 3,
"category": "영단어",
"item": "cornerstone/영단어 미입력, 대소문자/오타 시 전체 감점"
},
"30": {
"path": "(count(//CHAR[contains(text(),'출판')][contains(text(),'出版')])+count(//CHAR[contains(text(),'독자')][contains(text(),'讀者')])+count(//CHAR[contains(text(),'박람회')][contains(text(),'博覽會')])+count(//CHAR[contains(text(),'교류')][contains(text(),'交流')])+count(//CHAR[contains(text(),'증가')][contains(text(),'增加')]))*2",
"path2": null,
"searchValue": null,
"value": 10,
"points": 10,
"category": "한자",
"item": "① 출판(出版), ② 독자(讀者), ③ 박람회(博覽會), ④ 교류(交流), ⑤ 증가(增加)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'래도점점')])",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "편집",
"item": "문구 (…콘텐츠 거래는 점점…)/\"는\" → \"도\" 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'양한산업')])",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "편집",
"item": "문구 (…요식업 등의 산업과 다양한 연계되며…)/\"산업과\" / \"다양한\" 순서바꿈"
},
"33": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "출판 산업 성장률(단위: %)",
"value": "돋움",
"points": 1,
"category": "표",
"item": "제목 문구 (출판 산업 성장률(단위: %))/① 글씨체 (돋움)"
},
"34": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "출판 산업 성장률(단위: %)",
"value": 1200,
"points": 1,
"category": "표",
"item": "제목 문구 (출판 산업 성장률(단위: %))/② 크기 (12pt)"
},
"35": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "출판 산업 성장률(단위: %)",
"value": true,
"points": 1,
"category": "표",
"item": "제목 문구 (출판 산업 성장률(단위: %))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "출판 산업 성장률(단위: %)",
"value": "Center",
"points": 1,
"category": "표",
"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='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"searchValue": null,
"value": "13938409",
"points": 2,
"category": "표",
"item": "위쪽 제목 셀/① 색상(RGB:233,174,43)"
},
"38": {
"path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": null,
"value": true,
"points": 1,
"category": "표",
"item": "위쪽 제목 셀/② 진하게"
},
"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='2']/@BorderFill]/BOTTOMBORDER/@Type",
"searchValue": null,
"value": "DoubleSlim",
"points": 2,
"category": "표",
"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='2']/@BorderFill]/BOTTOMBORDER/@Width",
"searchValue": null,
"value": "0.5mm",
"points": 2,
"category": "표",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
"value": "한양중고딕",
"points": 1,
"category": "표",
"item": "글자모양/① 글씨체 (중고딕)"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": null,
"value": 1000,
"points": 1,
"category": "표",
"item": "글자모양/② 크기 (10pt)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align",
"path2": null,
"searchValue": null,
"value": "Center",
"points": 1,
"category": "표",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=AVG') and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=AVG')]])",
"path2": null,
"searchValue": null,
"value": true,
"points": 4,
"category": "표",
"item": "블록계산식/평균"
},
"45": {
"path": "boolean(//c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']])",
"path2": null,
"searchValue": null,
"value": true,
"points": 2,
"category": "chart_xml",
"item": "① 종류 (묶은 가로 막대형)"
},
"46": {
"path": "//c:valAx/c:majorTickMark/@val",
"path2": null,
"searchValue": null,
"value": "out",
"points": 2,
"category": "chart_xml",
"item": "② 값 축 주 눈금선"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
"path2": null,
"searchValue": null,
"value": 22677,
"points": 2,
"category": "차트",
"item": "③ 크기-너비 (80mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
"path2": null,
"searchValue": null,
"value": 22677,
"points": 2,
"category": "차트",
"item": "④ 크기-높이 (80mm)"
},
"49": {
"path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='평균'])",
"path2": null,
"searchValue": null,
"value": true,
"points": 2,
"category": "chart_xml",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)"
},
"50": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"path2": null,
"searchValue": "출판 산업 성장률",
"value": "바탕",
"points": 1,
"category": "chart_xml",
"item": "제목 문구 (출판 산업 성장률)/① 글씨체 (바탕)"
},
"51": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"path2": null,
"searchValue": "출판 산업 성장률",
"value": 1200,
"points": 1,
"category": "chart_xml",
"item": "제목 문구 (출판 산업 성장률)/② 크기 (12pt)"
},
"52": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b",
"path2": null,
"searchValue": "출판 산업 성장률",
"value": 1,
"points": 1,
"category": "chart_xml",
"item": "제목 문구 (출판 산업 성장률)/③ 진하게"
},
"53": {
"path": "//c:catAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
"value": "돋움",
"points": 1,
"category": "chart_xml",
"item": "X축/① 글꼴 (돋움)"
},
"54": {
"path": "//c:catAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
"value": 900,
"points": 1,
"category": "chart_xml",
"item": "X축/② 크기 (9pt)"
},
"55": {
"path": "//c:catAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
"value": "1",
"points": 1,
"category": "chart_xml",
"item": "X축/③ 기울임"
},
"56": {
"path": "//c:valAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
"value": "돋움",
"points": 1,
"category": "chart_xml",
"item": "Y축/① 글꼴 (돋움)"
},
"57": {
"path": "//c:valAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
"value": 900,
"points": 1,
"category": "chart_xml",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"path": "//c:valAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
"value": "1",
"points": 1,
"category": "chart_xml",
"item": "Y축/③ 기울임"
},
"59": {
"path": "//c:legend//a:ea/@typeface",
"path2": null,
"searchValue": null,
"value": "돋움",
"points": 1,
"category": "chart_xml",
"item": "범례/① 글꼴 (돋움)"
},
"60": {
"path": "//c:legend//a:defRPr/@sz",
"path2": null,
"searchValue": null,
"value": 900,
"points": 1,
"category": "chart_xml",
"item": "범례/② 크기 (9pt)"
},
"61": {
"path": "//c:legend//a:defRPr/@i",
"path2": null,
"searchValue": null,
"value": "1",
"points": 1,
"category": "chart_xml",
"item": "범례/③ 기울임"
}
}
}

View File

@@ -15,8 +15,8 @@
"Left": 20, "Left": 20,
"Right": 20, "Right": 20,
"Header": 10, "Header": 10,
"Gutter": 0, "Footer": 10,
"Footer": 10 "Gutter": 0
}, },
"tolerance": 1, "tolerance": 1,
"points": 4, "points": 4,
@@ -517,9 +517,9 @@
"item": "문구② (2. 기술의 경제적 가치)/③ 진하게" "item": "문구② (2. 기술의 경제적 가치)/③ 진하게"
}, },
"25": { "25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{searchValue}')]]/FOOTNOTE)", "path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{searchValue}') + 1) = '{searchValue}']/following-sibling::FOOTNOTE/descendant::CHAR)", "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"searchValue": "클라우드", "option": "클라우드",
"value": true, "value": true,
"points": 2, "points": 2,
"category": "Boolean", "category": "Boolean",
@@ -651,7 +651,7 @@
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@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", "value": "DoubleSlim",
"points": 2, "points": 2,
"category": "OneAnswer", "category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선" "item": "제목 셀 아래선/① 이중실선"
}, },
"40": { "40": {
@@ -659,7 +659,7 @@
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@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", "value": "0.5mm",
"points": 2, "points": 2,
"category": "OneAnswer", "category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm" "item": "제목 셀 아래선/② 0.5mm"
}, },
"41": { "41": {
@@ -676,14 +676,14 @@
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000", "value": "1000",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "TableAnswer",
"item": "글자모양/② 크기 (10pt)" "item": "글자모양/② 크기 (10pt)"
}, },
"43": { "43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center", "value": "Center",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)" "item": "글자모양/③ 정렬 (가운데 정렬)"
}, },
"44": { "44": {
@@ -761,21 +761,21 @@
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}, },
"53": { "53": {
"chart_xpath": "//c:catAx//a:ea/@typeface", "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "돋움", "value": "돋움",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "X축/① 글꼴 (돋움)" "item": "X축/① 글꼴 (돋움)"
}, },
"54": { "54": {
"chart_xpath": "//c:catAx//a:defRPr/@sz", "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900", "value": "900",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "X축/② 크기 (9pt)" "item": "X축/② 크기 (9pt)"
}, },
"55": { "55": {
"chart_xpath": "//c:catAx//a:defRPr/@{option}", "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i", "option": "i",
"value": "1", "value": "1",
"points": 1, "points": 1,
@@ -784,28 +784,27 @@
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}, },
"56": { "56": {
"chart_xpath": "//c:valAx//a:ea/@typeface", "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움", "value": "돋움",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "Y축/① 글꼴 (돋움)" "item": "Y축/① 글꼴 (돋움)"
}, },
"57": { "57": {
"chart_xpath": "//c:valAx//a:defRPr/@sz", "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900", "value": "900",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "Y축/② 크기 (9pt)" "item": "Y축/② 크기 (9pt)"
}, },
"58": { "58": {
"chart_xpath": "//c:valAx//a:defRPr/@{option}", "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i", "option": "i",
"value": "1", "value": "1",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "Y축/③ 기울임", "item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}, },
"59": { "59": {
"chart_xpath": "//c:legend//a:ea/@typeface", "chart_xpath": "//c:legend//a:ea/@typeface",

View File

@@ -517,9 +517,9 @@
"item": "문구② (2. 신재생 에너지)/③ 진하게" "item": "문구② (2. 신재생 에너지)/③ 진하게"
}, },
"25": { "25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{searchValue}')]]/FOOTNOTE)", "path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{searchValue}') + 1) = '{searchValue}']/following-sibling::FOOTNOTE/descendant::CHAR)", "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"searchValue": "태양전지", "option": "태양전지",
"value": true, "value": true,
"points": 2, "points": 2,
"category": "Boolean", "category": "Boolean",
@@ -651,7 +651,7 @@
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@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", "value": "DoubleSlim",
"points": 2, "points": 2,
"category": "OneAnswer", "category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선" "item": "제목 셀 아래선/① 이중실선"
}, },
"40": { "40": {
@@ -659,7 +659,7 @@
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@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", "value": "0.5mm",
"points": 2, "points": 2,
"category": "OneAnswer", "category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm" "item": "제목 셀 아래선/② 0.5mm"
}, },
"41": { "41": {
@@ -676,14 +676,14 @@
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000", "value": "1000",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "TableAnswer",
"item": "글자모양/② 크기 (10pt)" "item": "글자모양/② 크기 (10pt)"
}, },
"43": { "43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center", "value": "Center",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)" "item": "글자모양/③ 정렬 (가운데 정렬)"
}, },
"44": { "44": {
@@ -761,21 +761,21 @@
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}, },
"53": { "53": {
"chart_xpath": "//c:catAx//a:ea/@typeface", "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "바탕", "value": "바탕",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "X축/① 글꼴 (바탕)" "item": "X축/① 글꼴 (바탕)"
}, },
"54": { "54": {
"chart_xpath": "//c:catAx//a:defRPr/@sz", "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900", "value": "900",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "X축/② 크기 (9pt)" "item": "X축/② 크기 (9pt)"
}, },
"55": { "55": {
"chart_xpath": "//c:catAx//a:defRPr/@{option}", "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i", "option": "i",
"value": "1", "value": "1",
"points": 1, "points": 1,
@@ -784,28 +784,27 @@
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}, },
"56": { "56": {
"chart_xpath": "//c:valAx//a:ea/@typeface", "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "바탕", "value": "바탕",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "Y축/① 글꼴 (바탕)" "item": "Y축/① 글꼴 (바탕)"
}, },
"57": { "57": {
"chart_xpath": "//c:valAx//a:defRPr/@sz", "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900", "value": "900",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "Y축/② 크기 (9pt)" "item": "Y축/② 크기 (9pt)"
}, },
"58": { "58": {
"chart_xpath": "//c:valAx//a:defRPr/@{option}", "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i", "option": "i",
"value": "1", "value": "1",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "Y축/③ 기울임", "item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}, },
"59": { "59": {
"chart_xpath": "//c:legend//a:ea/@typeface", "chart_xpath": "//c:legend//a:ea/@typeface",

View File

@@ -651,7 +651,7 @@
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@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", "value": "DoubleSlim",
"points": 2, "points": 2,
"category": "OneAnswer", "category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선" "item": "제목 셀 아래선/① 이중실선"
}, },
"40": { "40": {
@@ -659,7 +659,7 @@
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@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", "value": "0.5mm",
"points": 2, "points": 2,
"category": "OneAnswer", "category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm" "item": "제목 셀 아래선/② 0.5mm"
}, },
"41": { "41": {
@@ -676,14 +676,14 @@
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000", "value": "1000",
"points": 1, "points": 1,
"category": "TableOneAnswer", "category": "TableAnswer",
"item": "글자모양/② 크기 (10pt)" "item": "글자모양/② 크기 (10pt)"
}, },
"43": { "43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center", "value": "Center",
"points": 1, "points": 1,
"category": "TableOneAnswer", "category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)" "item": "글자모양/③ 정렬 (가운데 정렬)"
}, },
"44": { "44": {
@@ -761,21 +761,21 @@
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}, },
"53": { "53": {
"chart_xpath": "//c:catAx//a:ea/@typeface", "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "돋움", "value": "돋움",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "X축/① 글꼴 (돋움)" "item": "X축/① 글꼴 (돋움)"
}, },
"54": { "54": {
"chart_xpath": "//c:catAx//a:defRPr/@sz", "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900", "value": "900",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "X축/② 크기 (9pt)" "item": "X축/② 크기 (9pt)"
}, },
"55": { "55": {
"chart_xpath": "//c:catAx//a:defRPr/@{option}", "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i", "option": "i",
"value": "1", "value": "1",
"points": 1, "points": 1,
@@ -784,28 +784,27 @@
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}, },
"56": { "56": {
"chart_xpath": "//c:valAx//a:ea/@typeface", "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움", "value": "돋움",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "Y축/① 글꼴 (돋움)" "item": "Y축/① 글꼴 (돋움)"
}, },
"57": { "57": {
"chart_xpath": "//c:valAx//a:defRPr/@sz", "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900", "value": "900",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "Y축/② 크기 (9pt)" "item": "Y축/② 크기 (9pt)"
}, },
"58": { "58": {
"chart_xpath": "//c:valAx//a:defRPr/@{option}", "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i", "option": "i",
"value": "1", "value": "1",
"points": 1, "points": 1,
"category": "OneAnswer", "category": "OneAnswer",
"item": "Y축/③ 기울임", "item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}, },
"59": { "59": {
"chart_xpath": "//c:legend//a:ea/@typeface", "chart_xpath": "//c:legend//a:ea/@typeface",