Compare commits
11 Commits
7d7916519e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 292e91d22d | |||
| 3bae260238 | |||
| 8dfdca25a2 | |||
| d1e94037d5 | |||
| 4e4a582c70 | |||
| 8827c85c26 | |||
| d436e4d033 | |||
| c13d5feffe | |||
| e3cf4ea53f | |||
| 28c0a9c4e1 | |||
| bb6f9ca7ae |
@@ -1,56 +1,49 @@
|
||||
import os
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
import re
|
||||
import glob
|
||||
|
||||
# 채점자료 정답 파일만 복사하는 스크립트
|
||||
# ── 설정 ────────────────────────────────────────────────────────────────
|
||||
exam_round = "2604" # 회차명
|
||||
exam_code = "DIW" # 코드명
|
||||
|
||||
# ===== 사용자 설정 =====
|
||||
source_dir = r"D:\project\HWP\HWP-Scoring\회차별채점자료\2512"
|
||||
exam_round = "2512" # 회차명
|
||||
exam_code = "DIW" # 코드명
|
||||
# =======================
|
||||
source_dir = rf"D:\project\HWP\HWP-Scoring\회차별채점자료\{exam_round}"
|
||||
output_base = r"input"
|
||||
|
||||
types = ["A", "B", "C", "D", "E"]
|
||||
|
||||
def get_exam_type(filename: str):
|
||||
"""
|
||||
파일명에서 확장자 앞의 마지막 알파벳을 추출 (예: 국어A.hwpx → A)
|
||||
"""
|
||||
match = re.search(r"([A-Za-z])\.hwpx$", filename)
|
||||
return match.group(1).upper() if match else None
|
||||
# ── 복사 실행 ────────────────────────────────────────────────────────────
|
||||
for type in types:
|
||||
pattern = os.path.join(source_dir, f"*{type}*")
|
||||
matched = [d for d in glob.glob(pattern) if os.path.isdir(d)]
|
||||
|
||||
if not matched:
|
||||
print(f"[WARN] 폴더 없음: {pattern}")
|
||||
continue
|
||||
|
||||
def copy_exam_files():
|
||||
src = Path(source_dir)
|
||||
if not src.exists():
|
||||
print(f"경로를 찾을 수 없습니다: {src}")
|
||||
return
|
||||
src_folder = matched[0]
|
||||
|
||||
base_dest = Path(".") / "input" / exam_round
|
||||
copied = 0
|
||||
file_pattern = os.path.join(src_folder, f"제*회 디지털정보활용능력 워드프로세서(한글2022버전) {type}형 정답.hwpx")
|
||||
matched_files = glob.glob(file_pattern)
|
||||
|
||||
for path in src.rglob("*"):
|
||||
if path.is_file() and path.suffix.lower() == ".hwpx":
|
||||
exam_type = get_exam_type(path.name)
|
||||
if not exam_type:
|
||||
continue # 마지막 문자가 알파벳이 아니면 건너뜀
|
||||
if not matched_files:
|
||||
print(f"[WARN] 파일 없음: {file_pattern}")
|
||||
continue
|
||||
|
||||
dest_dir = base_dest / exam_type / exam_code
|
||||
dest_dir.mkdir(parents=True, exist_ok=True)
|
||||
dest_path = dest_dir / path.name
|
||||
src_path = matched_files[0]
|
||||
|
||||
# 같은 이름의 파일이 있을 경우 숫자 붙이기
|
||||
counter = 1
|
||||
while dest_path.exists():
|
||||
dest_path = dest_dir / f"{path.stem}_{counter}{path.suffix}"
|
||||
counter += 1
|
||||
# 원본 확장자 추출 후 새 파일명 생성: DIW_2602A.hwpx
|
||||
src_ext = os.path.splitext(src_path)[1]
|
||||
new_filename = f"{exam_code}_{exam_round}{type}{src_ext}"
|
||||
|
||||
shutil.copy2(path, dest_path)
|
||||
print(f"복사 완료: {path} → {dest_path}")
|
||||
copied += 1
|
||||
dst_folder = os.path.join(output_base, exam_round, type, exam_code)
|
||||
os.makedirs(dst_folder, exist_ok=True)
|
||||
|
||||
print(f"\n총 {copied}개 파일 복사 완료.")
|
||||
dst_path = os.path.join(dst_folder, new_filename)
|
||||
shutil.copy2(src_path, dst_path)
|
||||
print(f"[OK] {type}형 복사 완료 → {dst_path}")
|
||||
|
||||
# ── TEST 폴더 생성 ────────────────────────────────────────────────────────
|
||||
test_folder = os.path.join(output_base, exam_round, type, "TEST")
|
||||
os.makedirs(test_folder, exist_ok=True)
|
||||
|
||||
if __name__ == "__main__":
|
||||
copy_exam_files()
|
||||
print("\n전체 처리 완료.")
|
||||
@@ -1,4 +1,6 @@
|
||||
# 분류되지 않은 답안파일 원본 폴더에서 복사할 때 사용
|
||||
# DIW 폴더가 있는 경우, 부모 디렉토리 이름에 따라 A, B, C, D, E 폴더로 복사
|
||||
# 예시: D:\project\data\제2601회 정기\제2601회 정기\과목별답안파일\1교시\DIW → .\input\2601\A\DIW
|
||||
|
||||
import os
|
||||
import shutil
|
||||
@@ -41,10 +43,10 @@ def copy_dic_subdirs(source_root, target_root_a, target_root_b, target_root_c, t
|
||||
print(f"Skipping {dir_name} under {parent_dir}, as it doesn't match '2교시' or '3교시'.")
|
||||
|
||||
# 사용법
|
||||
exam_round = "2512_2"
|
||||
exam_round = "2604_5"
|
||||
# exam_round = "2510_4"
|
||||
# source_directory = r"D:\project\data\제2510회 수시2(제주)\답안파일\제2510회 수시2 제주지부_답안파일"
|
||||
source_directory = r"D:\project\HWP\HWP-Scoring\회차별채점자료\2510"
|
||||
source_directory = r"D:\project\data\제2604회 수시5(읍내)\답안파일\2604회 수시5_읍내정보통신학교"
|
||||
|
||||
|
||||
target_directory_a = f".\\input\\{exam_round}\\A" # '1교시'의 타겟 경로
|
||||
@@ -1,4 +1,6 @@
|
||||
# 분류된 "과목별" 폴더에서 시험 파일을 복사하는 스크립트
|
||||
# - 시험 회차와 과목별 폴더 구조에 맞게 파일을 복사하여 "input/회차/유형/과목" 경로로 정리
|
||||
# - 예시: "D:\project\data\제2622회 특별\과목별답안파일 (2)\DIW\A형" 폴더 안의 파일들을 "input/2622/A/DIW"로 복사
|
||||
|
||||
import os
|
||||
import shutil
|
||||
@@ -45,10 +47,10 @@ def copy_exam_files(exam_round, exam_codes, source_dir):
|
||||
os.makedirs(target_path, exist_ok=True)
|
||||
|
||||
# ✅ TEST 폴더 생성: input/회차/유형/TEST
|
||||
# test_folder = os.path.join("output", exam_round, exam_type, "TEST")
|
||||
# if test_folder not in created_test_folders:
|
||||
# os.makedirs(test_folder, exist_ok=True)
|
||||
# created_test_folders.add(test_folder)
|
||||
test_folder = os.path.join("output", exam_round, exam_type, "TEST")
|
||||
if test_folder not in created_test_folders:
|
||||
os.makedirs(test_folder, exist_ok=True)
|
||||
created_test_folders.add(test_folder)
|
||||
|
||||
print(f"\n🔄 복사 시작: {exam_code} - 유형: {exam_type} (폴더명: {real_folder})")
|
||||
print(f"📂 원본 경로: {source_folder}")
|
||||
@@ -76,8 +78,8 @@ def copy_exam_files(exam_round, exam_codes, source_dir):
|
||||
# 사용 예시
|
||||
if __name__ == "__main__":
|
||||
# [source_dir경로\DIW] 디렉토리 안에 A형, B형... 폴더가 존재해야 함
|
||||
exam_round = "2512"
|
||||
exam_round = "2604"
|
||||
exam_codes = ["DIW"]
|
||||
source_dir = r"D:\project\data\제2512회 정기_DIAT\답안파일"
|
||||
source_dir = r"D:\project\data\제2604회 정기\제2604회 정기\답안파일"
|
||||
|
||||
copy_exam_files(exam_round, exam_codes, source_dir)
|
||||
|
||||
@@ -166,7 +166,7 @@ if __name__ == "__main__":
|
||||
setup_logging()
|
||||
|
||||
exam_rounds = [
|
||||
"2512",
|
||||
"2604",
|
||||
]
|
||||
|
||||
# 변환할 폴더 경로 설정
|
||||
@@ -178,10 +178,9 @@ if __name__ == "__main__":
|
||||
(f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\C\\DIW",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\C\\DIW"),
|
||||
(f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\D\\DIW",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\D\\DIW"),
|
||||
(f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\E\\DIW",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\E\\DIW"),
|
||||
]
|
||||
|
||||
# folders = [
|
||||
# (f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\C\\TEST",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\C\\TEST")]
|
||||
# (f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\D\\TEST",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\D\\TEST"),
|
||||
]
|
||||
|
||||
# 변환 실행
|
||||
for input, output in folders:
|
||||
|
||||
@@ -1,101 +0,0 @@
|
||||
# 2503회 추가 문제 처리방법
|
||||
|
||||
## 체크 할 변경 문항
|
||||
|
||||
* 문제1
|
||||
* 쪽 번호 매기기 (A,B,C 순으로) (28번)
|
||||
* 가운데 아래 (29번)
|
||||
* ***문제1, 2 모두적용*** 채점기준 변동으로 인해
|
||||
기존 1페이지(SECTION[1]태그) 기준 제외
|
||||
|
||||
> ~~//SECTION[1]~~//PAGENUM/@Pos
|
||||
|
||||
## 추가 문항
|
||||
|
||||
* 문제1
|
||||
* 문단 첫글자 장식
|
||||
* 8번 : 모양 (2줄)
|
||||
* 줄 간격 160%일때 높이, 너비 2600
|
||||
줄 간격 180%일때 높이, 너비 2800
|
||||
그 사이의 값 일 경우 정답처리
|
||||
|
||||
```xpath
|
||||
boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800) and (@Width >= 2600 and @Width <= 2800)]])
|
||||
```
|
||||
|
||||
* 9번 : 글씨체 (궁서체)
|
||||
* 기존 글씨체 찾는 xpath구문과 동일
|
||||
|
||||
```xpath
|
||||
//FONTFACE[@Lang="Hangul"]/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name
|
||||
```
|
||||
|
||||
* 10번 : 색상(RGB:105,155,55)
|
||||
* '지'를 포함하는 RECTANGLE요소의 자손 WINDOWBRUSH태그의 @FaceColor속성
|
||||
|
||||
```xpath
|
||||
//RECTANGLE[.//CHAR[text()='지']]//WINDOWBRUSH/@FaceColor
|
||||
```
|
||||
|
||||
* 11번 : 본문과의 간격 : 3.0mm
|
||||
* '지'를 포함하는 RECTANGLE요소의 자손 OUTSIDEMARGIN태그의 @Right속성
|
||||
* ***한글문서에서 본문과의 간격 항목을 변경하면 @Right속성만 변함***
|
||||
|
||||
```xpath
|
||||
//RECTANGLE[.//CHAR[text()='지']]//OUTSIDEMARGIN/@Right
|
||||
```
|
||||
|
||||
* 문제 1의 줄간격 180% 설정 (30번)
|
||||
* 1페이지에 속한 모든 문단의 줄간격이 180이 아닌것이 하나도 없을 경우
|
||||
|
||||
```xpath
|
||||
not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])
|
||||
```
|
||||
|
||||
* 문제2
|
||||
|
||||
* 각주 번호모양 (28번)
|
||||
* 1,2,3 : Digit
|
||||
* ①,②,③ : CircledDigit
|
||||
* I,II,III : RomanCapital
|
||||
* i,ii,iii : RomanSmall
|
||||
* 항목이 많아 채점 시 파악
|
||||
|
||||
```xpath
|
||||
//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type
|
||||
```
|
||||
|
||||
* 영단어 Hybrid (29번)
|
||||
* 문서 전체 CHAR태그 내 Hybrid 단어가 들어가 있으면 정답
|
||||
* "영단어 미입력, 대소문자/오타 시 전체 감점" 처리방법
|
||||
* ***오타 체크 시 Hybrid (해당 문항의 영단어)를 제외 필요***
|
||||
|
||||
```xpath
|
||||
boolean(//CHAR[contains(text(),'Hybrid')])
|
||||
```
|
||||
|
||||
* 블록 계산식 (44번)
|
||||
* 표 **마지막 행/열** 과 **마지막-1 행/열**의 자손 FIELDBEGIN태그의 @Command속성 확인
|
||||
* @Command속성이 '=SUM'으로 시작하고 '결과값'으로 끝나는지 확인
|
||||
* 계산식을 입력하는 방법에 따라 *계산식*,*블록계산식*,*자동계산식*으로 다양하게 입력가능하고
|
||||
xml 파일에도 속성값이 바뀌는 경우가 있다
|
||||
|
||||
```xpath
|
||||
boolean(//TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '190'] and //TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '290'])
|
||||
```
|
||||
|
||||
* **값 축** 주 눈금선 (46번)
|
||||
* 차트의 값 축(보통 세로축) 눈금선 옵션이 부여되었는지 확인하는 문항인데
|
||||
차트 생성하면 기본적으로 부여되어 있어서 따로 항목을 제거하지 않는 이상 정답일 듯하다
|
||||
|
||||
```xpath
|
||||
//c:valAx/c:majorTickMark/@val
|
||||
```
|
||||
|
||||
* 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용) (49번)
|
||||
* 계산식 행의 제목(마지막 행 1열 "합계")이 차트 데이터 항목에 포함되어 있지 않으면 정답처리
|
||||
* 혹여나 불필요한 '범례' 속성 제외
|
||||
|
||||
```xpath
|
||||
not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])
|
||||
```
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
260427_DIW_2604A_채점결과.xlsx
Normal file
BIN
260427_DIW_2604A_채점결과.xlsx
Normal file
Binary file not shown.
BIN
260427_DIW_2604B_채점결과.xlsx
Normal file
BIN
260427_DIW_2604B_채점결과.xlsx
Normal file
Binary file not shown.
BIN
260427_DIW_2604C_채점결과.xlsx
Normal file
BIN
260427_DIW_2604C_채점결과.xlsx
Normal file
Binary file not shown.
BIN
260428_DIW_2604A_채점결과.xlsx
Normal file
BIN
260428_DIW_2604A_채점결과.xlsx
Normal file
Binary file not shown.
BIN
260428_DIW_2604B_채점결과.xlsx
Normal file
BIN
260428_DIW_2604B_채점결과.xlsx
Normal file
Binary file not shown.
BIN
260428_DIW_2604C_채점결과.xlsx
Normal file
BIN
260428_DIW_2604C_채점결과.xlsx
Normal file
Binary file not shown.
BIN
260429_DIW_2604A_채점결과.xlsx
Normal file
BIN
260429_DIW_2604A_채점결과.xlsx
Normal file
Binary file not shown.
BIN
260429_DIW_2604B_채점결과.xlsx
Normal file
BIN
260429_DIW_2604B_채점결과.xlsx
Normal file
Binary file not shown.
BIN
260429_DIW_2604C_채점결과.xlsx
Normal file
BIN
260429_DIW_2604C_채점결과.xlsx
Normal file
Binary file not shown.
@@ -46,65 +46,65 @@
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"value": "굴림체",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국전통공예박람회)/① 글씨체 (굴림체)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"value": "28,61,98",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "48,117,196",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (한국전통공예박람회)/② 채우기 : 색상(RGB:28,61,98)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/② 채우기 : 색상(RGB:48,117,196)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"value": "110",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "130",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한국전통공예박람회)/③ 크기-너비 (110 mm)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/③ 크기-너비 (130 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한국전통공예박람회)/④ 크기-높이 (20 mm)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국전통공예박람회)/⑤ 위치 (글자처럼 취급)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국전통공예박람회)/⑥ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (한국전통공예박람회)/⑦ 글맵시모양 (육안확인)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "전",
|
||||
"searchValue": "한",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
@@ -116,23 +116,23 @@
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "전",
|
||||
"value": "궁서체",
|
||||
"searchValue": "한",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (궁서체)"
|
||||
"item": "어/② 글씨체 (굴림)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "전",
|
||||
"value": "236,217,74",
|
||||
"searchValue": "한",
|
||||
"value": "248,190,122",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:236,217,74)"
|
||||
"item": "어/③ 면색 : 색상(RGB:248,190,122)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "전",
|
||||
"searchValue": "한",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
@@ -141,31 +141,31 @@
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "다양한 분야의 장인과 예술가들이 참여",
|
||||
"searchValue": "평생교육사 양성 교육과정 현황과 개선 방안 탐색",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (다양한 분야의 장인과 예술가들이 참여)/① BOLD"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "다양한 분야의 장인과 예술가들이 참여",
|
||||
"searchValue": "평생교육사 양성 교육과정 현황과 개선 방안 탐색",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (다양한 분야의 장인과 예술가들이 참여)/② UNDERLINE"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "●",
|
||||
"char2": "●",
|
||||
"char1": "◆",
|
||||
"char2": "◆",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ●, ② ●, ③ ※"
|
||||
"item": "① ◆, ② ◆, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
@@ -173,7 +173,7 @@
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (● 행사안내 ●)/① 글씨체 (궁서)"
|
||||
"item": "문구 (◆ 행사안내 ◆)/① 글씨체 (궁서)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
@@ -181,25 +181,25 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (● 행사안내 ●)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (◆ 행사안내 ◆)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr)",
|
||||
"searchValue": "한국평생교육학회 홈페이지(http://www.ihd.or.kr) 참조",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr))/① ITALIC"
|
||||
"item": "문구 (한국평생교육학회 홈페이지(http://www.ihd.or.kr) 참조)/① ITALIC"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr)",
|
||||
"searchValue": "한국평생교육학회 홈페이지(http://www.ihd.or.kr) 참조",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr))/② UNDERLINE"
|
||||
"item": "문구 (한국평생교육학회 홈페이지(http://www.ihd.or.kr) 참조)/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
@@ -215,52 +215,52 @@
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"value": "1400",
|
||||
"searchValue": "2026. 01. 24.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/① 크기 (1400)",
|
||||
"item": "문구 (2026. 01. 24.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 01. 24.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 01. 24.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "한국 전통공예 협의회",
|
||||
"value": "굴림",
|
||||
"searchValue": "한국평생교육학회",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (한국 전통공예 협의회)/① 글씨체 (굴림)"
|
||||
"item": "문구 (한국평생교육학회)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "한국 전통공예 협의회",
|
||||
"value": "2600",
|
||||
"searchValue": "한국평생교육학회",
|
||||
"value": "2500",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국 전통공예 협의회)/② 크기 (2600)"
|
||||
"item": "문구 (한국평생교육학회)/② 크기 (2500)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "한국 전통공예 협의회",
|
||||
"searchValue": "한국평생교육학회",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국 전통공예 협의회)/③ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (한국평생교육학회)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "궁서",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (궁서)"
|
||||
"item": "문구 (DIAT)/① 글꼴 (굴림체)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
@@ -283,7 +283,7 @@
|
||||
"value": "LatinCapital",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
@@ -311,7 +311,7 @@
|
||||
"value": "BottomRight",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
"item": "오른쪽 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
@@ -331,7 +331,7 @@
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "200",
|
||||
"first_word": "전",
|
||||
"first_word": "한",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 200% 설정",
|
||||
@@ -370,14 +370,14 @@
|
||||
"value": "65",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (한국 전통공예)/① 크기-너비 (65 mm)"
|
||||
"item": "문구 (평생교육시대)/① 크기-너비 (65 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (한국 전통공예)/② 크기-높이 (12 mm)"
|
||||
"item": "문구 (평생교육시대)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
@@ -387,51 +387,51 @@
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (한국 전통공예)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"item": "문구 (평생교육시대)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"value": "20",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (한국 전통공예)/④ 글상자 모서리 (반원)",
|
||||
"item": "문구 (평생교육시대)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "202,86,167",
|
||||
"value": "224,122,146",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (한국 전통공예)/⑤ 채우기 : 색상(RGB:202,86,167)"
|
||||
"item": "문구 (평생교육시대)/⑤ 채우기 : 색상(RGB:224,122,146)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (한국 전통공예)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
"item": "문구 (평생교육시대)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (한국 전통공예)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
"item": "문구 (평생교육시대)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "견고딕",
|
||||
"value": "휴먼옛체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (한국 전통공예)/⑧ 글씨체 (견고딕)"
|
||||
"item": "문구 (평생교육시대)/⑧ 글씨체 (휴먼옛체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (한국 전통공예)/⑨ 글씨크기 (2000)",
|
||||
"item": "문구 (평생교육시대)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
@@ -439,14 +439,14 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (한국 전통공예)/⑩ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (평생교육시대)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림C.jpg\" 삽입",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
@@ -479,81 +479,81 @@
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 전통공예",
|
||||
"value": "굴림체",
|
||||
"searchValue": "1. 평생교육이란?",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 전통공예)/① 글씨체 (굴림체)"
|
||||
"item": "문구① (1. 평생교육이란?)/① 글씨체 (굴림)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 전통공예",
|
||||
"searchValue": "1. 평생교육이란?",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 전통공예)/② 크기 (1200)"
|
||||
"item": "문구① (1. 평생교육이란?)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 전통공예",
|
||||
"searchValue": "1. 평생교육이란?",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 전통공예)/③ 진하게"
|
||||
"item": "문구① (1. 평생교육이란?)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 전통 공예 산업",
|
||||
"value": "굴림체",
|
||||
"searchValue": "2. 평생교육사의 개념",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 전통 공예 산업)/① 글씨체 (굴림체)"
|
||||
"item": "문구② (2. 평생교육사의 개념)/① 글씨체 (굴림)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 전통 공예 산업",
|
||||
"searchValue": "2. 평생교육사의 개념",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 전통 공예 산업)/② 크기 (1200)"
|
||||
"item": "문구② (2. 평생교육사의 개념)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 전통 공예 산업",
|
||||
"searchValue": "2. 평생교육사의 개념",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 전통 공예 산업)/③ 진하게"
|
||||
"item": "문구② (2. 평생교육사의 개념)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "업사이클링",
|
||||
"option": "유네스코",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (업사이클링)/① 각주 설정 및 문구 입력"
|
||||
"item": "문구 (유네스코)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함",
|
||||
"value": "중고딕",
|
||||
"searchValue": "교육, 과학, 문화의 보급 및 교류를 통하여 국가 간의 협력 증진을 목적으로 설립된 국제연합전문기구",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (업사이클링)/② 글씨체 (중고딕)"
|
||||
"item": "문구 (유네스코)/② 글씨체 (궁서)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함",
|
||||
"searchValue": "교육, 과학, 문화의 보급 및 교류를 통하여 국가 간의 협력 증진을 목적으로 설립된 국제연합전문기구",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (업사이클링)/③ 크기 (9pt)"
|
||||
"item": "문구 (유네스코)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함",
|
||||
"value": "CircledIdeograph",
|
||||
"searchValue": "교육, 과학, 문화의 보급 및 교류를 통하여 국가 간의 협력 증진을 목적으로 설립된 국제연합전문기구",
|
||||
"value": "UserChar",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
@@ -579,81 +579,81 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Upcycling')])",
|
||||
"ignoreWord": "Upcycling",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Development",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Upcycling/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"item": "Development/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["차원", "次元"],
|
||||
["사례", "事例"],
|
||||
["주목", "注目"],
|
||||
["소비", "消費"],
|
||||
["명장", "名匠"]
|
||||
["평생", "平生"],
|
||||
["교육", "敎育"],
|
||||
["신념", "信念"],
|
||||
["현장", "現場"],
|
||||
["자격", "資格"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 차원(次元), ② 사례(事例), ③ 주목(注目), ④ 소비(消費), ⑤ 명장(名匠)"
|
||||
"item": "① 평생(平生), ② 교육(敎育), ③ 신념(信念), ④ 현장(現場), ⑤ 자격(資格)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'국인관광')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'하는사람')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (...활성화되면서 관광객과 외국인 일반...)>'관광객과 / 외국인' 순서바꿈"
|
||||
"item": "문구 (…어느 하나에 사람에게 해당하는 평생교육사의…)>'사람에게' / '해당하는' 순서바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'예품등이')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'21과목이다')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (...디지털 아트 공예품 통이...)>'통' → '등' 글자바꿈"
|
||||
"item": "문구 (…총 21종목이다…)>'종' → '과' 글자바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급(단위: 명)",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/① 글씨체 (돋움)"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급(단위: 명))/① 글씨체 (돋움)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급(단위: 명)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/② 크기 (1200)"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급(단위: 명))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급(단위: 명)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/③ 진하게"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급(단위: 명))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급(단위: 명)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급(단위: 명))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "138,194,217",
|
||||
"value": "233,174,43",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:138,194,217)"
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:233,174,43)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
@@ -714,11 +714,11 @@
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "표식만 있는 분산형",
|
||||
"chart_type": "묶은 세로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (표식만 있는 분산형)",
|
||||
"item": "① 종류 (묶은 세로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
@@ -753,28 +753,28 @@
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"value": "굴림",
|
||||
"searchValue": "평생교육사 자격증 발급",
|
||||
"value": "바탕체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/① 글씨체 (굴림)"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급)/① 글씨체 (바탕체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/② 크기 (1300)"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급)/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/③ 기울임",
|
||||
"item": "제목 문구 (평생교육사 자격증 발급)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
@@ -46,65 +46,65 @@
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "제18회인정시북페스티벌",
|
||||
"searchValue": "전국제과제빵박람회",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (제18회인정시북페스티벌)/① 글씨체 (견고딕)"
|
||||
"item": "문구 (전국제과제빵박람회)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "제18회인정시북페스티벌",
|
||||
"value": "104,37,245",
|
||||
"searchValue": "전국제과제빵박람회",
|
||||
"value": "49,95,151",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (제18회인정시북페스티벌)/② 채우기 : 색상(RGB:104,37,245)"
|
||||
"item": "문구 (전국제과제빵박람회)/② 채우기 : 색상(RGB:49,95,151)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "제18회인정시북페스티벌",
|
||||
"searchValue": "전국제과제빵박람회",
|
||||
"value": "110",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (제18회인정시북페스티벌)/③ 크기-너비 (110 mm)"
|
||||
"item": "문구 (전국제과제빵박람회)/③ 크기-너비 (110 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "제18회인정시북페스티벌",
|
||||
"searchValue": "전국제과제빵박람회",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (제18회인정시북페스티벌)/④ 크기-높이 (20 mm)"
|
||||
"item": "문구 (전국제과제빵박람회)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "제18회인정시북페스티벌",
|
||||
"searchValue": "전국제과제빵박람회",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (제18회인정시북페스티벌)/⑤ 위치 (글자처럼 취급)"
|
||||
"item": "문구 (전국제과제빵박람회)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "제18회인정시북페스티벌",
|
||||
"searchValue": "전국제과제빵박람회",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (제18회인정시북페스티벌)/⑥ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (전국제과제빵박람회)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "제18회인정시북페스티벌",
|
||||
"searchValue": "전국제과제빵박람회",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (제18회인정시북페스티벌)/⑦ 글맵시모양 (육안확인)"
|
||||
"item": "문구 (전국제과제빵박람회)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "인",
|
||||
"searchValue": "제",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
@@ -116,23 +116,23 @@
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "인",
|
||||
"value": "굴림",
|
||||
"searchValue": "제",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (굴림)"
|
||||
"item": "어/② 글씨체 (궁서)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "인",
|
||||
"value": "234,137,67",
|
||||
"searchValue": "제",
|
||||
"value": "66,227,189",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:234,137,67)"
|
||||
"item": "어/③ 면색 : 색상(RGB:66,227,189)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "인",
|
||||
"searchValue": "제",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
@@ -141,39 +141,39 @@
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "제18회 인정시 북 페스티벌",
|
||||
"searchValue": "국내 유일의 제과제빵 전문 박람회",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (제18회 인정시 북 페스티벌)/① BOLD"
|
||||
"item": "문구 (국내 유일의 제과제빵 전문 박람회)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "제18회 인정시 북 페스티벌",
|
||||
"value": "ITALIC",
|
||||
"searchValue": "국내 유일의 제과제빵 전문 박람회",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (제18회 인정시 북 페스티벌)/② ITALIC"
|
||||
"item": "문구 (국내 유일의 제과제빵 전문 박람회)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "【",
|
||||
"char2": "】",
|
||||
"char1": "★",
|
||||
"char2": "★",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① 【, ② 】, ③ ※"
|
||||
"item": "① ★, ② ★, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "돋움체",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (【 행사안내 】)/① 글씨체 (돋움체)"
|
||||
"item": "문구 (★ 행사안내 ★)/① 글씨체 (굴림)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
@@ -181,86 +181,86 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (【 행사안내 】)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (★ 행사안내 ★)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "인정시립대학교 야외무대",
|
||||
"value": "ITALIC",
|
||||
"searchValue": "홈페이지(http://www.ihd.or.kr) 게시판 또는 전화(02-123-4567) 접수",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (인정시립대학교 야외무대)/① ITALIC"
|
||||
"item": "문구 (홈페이지(http://www.ihd.or.kr) 게시판 또는 전화(02-123-4567) 접수)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "인정시립대학교 야외무대",
|
||||
"value": "UNDERLINE",
|
||||
"searchValue": "홈페이지(http://www.ihd.or.kr) 게시판 또는 전화(02-123-4567) 접수",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (인정시립대학교 야외무대)/② UNDERLINE"
|
||||
"item": "문구 (홈페이지(http://www.ihd.or.kr) 게시판 또는 전화(02-123-4567) 접수)/② ITALIC"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 15,
|
||||
"Indent": 12
|
||||
"Left": 12,
|
||||
"Indent": 10
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (10)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 11. 22.",
|
||||
"value": "1400",
|
||||
"searchValue": "2026. 01. 24.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 11. 22.)/① 크기 (1400)",
|
||||
"item": "문구 (2026. 01. 24.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 11. 22.",
|
||||
"searchValue": "2026. 01. 24.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 01. 24.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "인정시립대학교 총무팀",
|
||||
"value": "중고딕",
|
||||
"searchValue": "대한제과제빵협회",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (인정시립대학교 총무팀)/① 글씨체 (중고딕)"
|
||||
"item": "문구 (대한제과제빵협회)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "인정시립대학교 총무팀",
|
||||
"value": "2400",
|
||||
"searchValue": "대한제과제빵협회",
|
||||
"value": "2200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (인정시립대학교 총무팀)/② 크기 (2400)"
|
||||
"item": "문구 (대한제과제빵협회)/② 크기 (2200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "인정시립대학교 총무팀",
|
||||
"searchValue": "대한제과제빵협회",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (인정시립대학교 총무팀)/③ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (대한제과제빵협회)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "돋움",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (돋움)"
|
||||
"item": "문구 (DIAT)/① 글꼴 (굴림)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
@@ -280,10 +280,10 @@
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "DecagonCircle",
|
||||
"value": "LatinCapital",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (갑,을,병 순으로)",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
@@ -330,11 +330,11 @@
|
||||
},
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "180",
|
||||
"first_word": "인",
|
||||
"value": "190",
|
||||
"first_word": "제",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 180% 설정",
|
||||
"item": "문제 1 줄간격 190% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
@@ -367,17 +367,17 @@
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (베스트와 스테디)/① 크기-너비 (60 mm)"
|
||||
"item": "문구 (제과제빵)/① 크기-너비 (50 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (베스트와 스테디)/② 크기-높이 (12 mm)"
|
||||
"item": "문구 (제과제빵)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
@@ -387,7 +387,7 @@
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (베스트와 스테디)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"item": "문구 (제과제빵)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
@@ -395,43 +395,43 @@
|
||||
"value": "20",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (베스트와 스테디)/④ 글상자 모서리 (반원)",
|
||||
"item": "문구 (제과제빵)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "233,106,147",
|
||||
"value": "202,86,167",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (베스트와 스테디)/⑤ 채우기 : 색상(RGB:233,106,147)"
|
||||
"item": "문구 (제과제빵)/⑤ 채우기 : 색상(RGB:202,86,167)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (베스트와 스테디)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
"item": "문구 (제과제빵)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (베스트와 스테디)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
"item": "문구 (제과제빵)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "궁서체",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (베스트와 스테디)/⑧ 글씨체 (궁서체)"
|
||||
"item": "문구 (제과제빵)/⑧ 글씨체 (돋움체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "1800",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (베스트와 스테디)/⑨ 글씨크기 (1800)",
|
||||
"item": "문구 (제과제빵)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
@@ -439,14 +439,14 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (베스트와 스테디)/⑩ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (제과제빵)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림C.jpg\" 삽입",
|
||||
"item": "① 파일명 \"그림B.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
@@ -479,81 +479,81 @@
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 베스트셀러",
|
||||
"value": "굴림체",
|
||||
"searchValue": "1. 제과제빵이란?",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 베스트셀러)/① 글씨체 (굴림체)"
|
||||
"item": "문구① (1. 제과제빵이란?)/① 글씨체 (돋움)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 베스트셀러",
|
||||
"searchValue": "1. 제과제빵이란?",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 베스트셀러)/② 크기 (1200)"
|
||||
"item": "문구① (1. 제과제빵이란?)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 베스트셀러",
|
||||
"searchValue": "1. 제과제빵이란?",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 베스트셀러)/③ 진하게"
|
||||
"item": "문구① (1. 제과제빵이란?)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 스테디셀러",
|
||||
"value": "굴림체",
|
||||
"searchValue": "2. 설탕 공예",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 스테디셀러)/① 글씨체 (굴림체)"
|
||||
"item": "문구② (2. 설탕 공예)/① 글씨체 (돋움)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 스테디셀러",
|
||||
"searchValue": "2. 설탕 공예",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 스테디셀러)/② 크기 (1200)"
|
||||
"item": "문구② (2. 설탕 공예)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 스테디셀러",
|
||||
"searchValue": "2. 설탕 공예",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 스테디셀러)/③ 진하게"
|
||||
"item": "문구② (2. 설탕 공예)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "로빈슨 크루소",
|
||||
"option": "가니쉬",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (로빈슨 크루소)/① 각주 설정 및 문구 입력"
|
||||
"item": "문구 (가니쉬)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "영국의 작가 대니얼 디포의 장편소설",
|
||||
"value": "중고딕",
|
||||
"searchValue": "음식의 외형을 돋보이게 하기 위해 장식 또는 곁들임으로 사용되는 식재료",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (로빈슨 크루소)/② 글씨체 (중고딕)"
|
||||
"item": "문구 (가니쉬)/② 글씨체 (굴림)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "영국의 작가 대니얼 디포의 장편소설",
|
||||
"searchValue": "음식의 외형을 돋보이게 하기 위해 장식 또는 곁들임으로 사용되는 식재료",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (로빈슨 크루소)/③ 크기 (9pt)"
|
||||
"item": "문구 (가니쉬)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "영국의 작가 대니얼 디포의 장편소설",
|
||||
"value": "CircledIdeograph",
|
||||
"searchValue": "음식의 외형을 돋보이게 하기 위해 장식 또는 곁들임으로 사용되는 식재료",
|
||||
"value": "RomanSmall",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
@@ -579,81 +579,81 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Bookman')])",
|
||||
"ignoreWord": "Bookman",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Chocolatier",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Bookman/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"item": "Chocolatier/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["시초", "始初"],
|
||||
["유래", "由來"],
|
||||
["양립", "兩立"],
|
||||
["수요", "需要"],
|
||||
["독자", "讀者"]
|
||||
["발효", "醱酵"],
|
||||
["제품", "製品"],
|
||||
["장식", "裝飾"],
|
||||
["표현", "表現"],
|
||||
["경향", "傾向"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 시초(始初), ② 유래(由來), ③ 양립(兩立), ④ 수요(需要), ⑤ 독자(讀者)"
|
||||
"item": "① 발효(醱酵), ② 제품(製品), ③ 장식(裝飾), ④ 표현(表現), ⑤ 경향(傾向) "
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'품의양립')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'루를사용')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…작품은 양립(兩立)이…)>'은 → 의' 글자바꿈"
|
||||
"item": "문구 (…보통은 밀가루를 포용하지만…)>'포'→'사' 글자바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'러와훌륭')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'람을불어')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…훌륭한 베스트셀러와 작품의 양립…)>'훌륭한 / 베스트셀러와' 순서바꿈"
|
||||
"item": "문구 (…뭉치기, 불어넣어 바람을 부풀리기 등의…)>'불어넣어 / 바람을' 순서바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "연평균 성인 독서량 추이(단위 : 권)",
|
||||
"value": "맑은 고딕",
|
||||
"searchValue": "연령별 박람회 참가자 현황(단위:명)",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : 권))/① 글씨체 (맑은 고딕)"
|
||||
"item": "제목 문구 (연령별 박람회 참가자 현황(단위:명))/① 글씨체 (굴림체)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "연평균 성인 독서량 추이(단위 : 권)",
|
||||
"value": "1200",
|
||||
"searchValue": "연령별 박람회 참가자 현황(단위:명)",
|
||||
"value": "1100",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : 권))/② 크기 (1200)"
|
||||
"item": "제목 문구 (연령별 박람회 참가자 현황(단위:명))/② 크기 (1100)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "연평균 성인 독서량 추이(단위 : 권)",
|
||||
"searchValue": "연령별 박람회 참가자 현황(단위:명)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : 권))/③ 진하게"
|
||||
"item": "제목 문구 (연령별 박람회 참가자 현황(단위:명))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "연평균 성인 독서량 추이(단위 : 권)",
|
||||
"searchValue": "연령별 박람회 참가자 현황(단위:명)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (연평균 성인 독서량 추이(단위 : 권))/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (연령별 박람회 참가자 현황(단위:명))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "37,233,245",
|
||||
"value": "233,225,43",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:37,233,245)"
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:233,225,43)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
@@ -682,11 +682,11 @@
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "돋움체",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (돋움체)",
|
||||
"item": "글자모양/① 글씨체 (중고딕)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
@@ -705,7 +705,7 @@
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"option": "SUM",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
@@ -753,28 +753,28 @@
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "연평균 성인 독서량 추이",
|
||||
"value": "궁서",
|
||||
"searchValue": "연령별 박람회 참가자 현황",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (연평균 성인 독서량 추이)/① 글씨체 (궁서)"
|
||||
"item": "제목 문구 (연령별 박람회 참가자 현황)/① 글씨체 (돋움체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "연평균 성인 독서량 추이",
|
||||
"value": "1400",
|
||||
"searchValue": "연령별 박람회 참가자 현황",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (연평균 성인 독서량 추이)/② 크기 (1400)"
|
||||
"item": "제목 문구 (연령별 박람회 참가자 현황)/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "연평균 성인 독서량 추이",
|
||||
"searchValue": "연령별 박람회 참가자 현황",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (연평균 성인 독서량 추이)/③ 기울임",
|
||||
"item": "제목 문구 (연령별 박람회 참가자 현황)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
850
JSON/2601/DIW_2601C.json
Normal file
850
JSON/2601/DIW_2601C.json
Normal file
@@ -0,0 +1,850 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Top": 20,
|
||||
"Bottom": 20,
|
||||
"Left": 20,
|
||||
"Right": 20,
|
||||
"Header": 10,
|
||||
"Footer": 10,
|
||||
"Gutter": 0
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "거창에살으리랏다",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (거창에살으리랏다)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "거창에살으리랏다",
|
||||
"value": "211,125,209",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (거창에살으리랏다)/② 채우기 : 색상(RGB:211,125,209)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "거창에살으리랏다",
|
||||
"value": "110",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (거창에살으리랏다)/③ 크기-너비 (110 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "거창에살으리랏다",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (거창에살으리랏다)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "거창에살으리랏다",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (거창에살으리랏다)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "거창에살으리랏다",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (거창에살으리랏다)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "거창에살으리랏다",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (거창에살으리랏다)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "뉴",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "어/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "뉴",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (궁서체)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "뉴",
|
||||
"value": "174,227,120",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:174,227,120)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "뉴",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "어/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "저출산/고령화 수치(중위연령, 고령화지수, 출산율)",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (저출산/고령화 수치(중위연령, 고령화지수, 출산율))/① ITALIC"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "저출산/고령화 수치(중위연령, 고령화지수, 출산율)",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (저출산/고령화 수치(중위연령, 고령화지수, 출산율))/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "☆",
|
||||
"char2": "☆",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ☆, ② ☆, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (☆ 행사안내 ☆)/① 글씨체 (궁서)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "행사안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (☆ 행사안내 ☆)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2026. 01. 25.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2026. 01. 25.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2026. 01. 25.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2026. 01. 25.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 15,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2026. 01. 24.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 01. 24.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2026. 01. 24.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 01. 24.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "거창군청",
|
||||
"value": "휴먼옛체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (거창군청)/① 글씨체 (휴먼옛체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "거창군청",
|
||||
"value": "2700",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (거창군청)/② 크기 (2700)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "거창군청",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (거창군청)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (돋움)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "LatinCapital",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
},
|
||||
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
"오른쪽 아래": "BottomRight",
|
||||
"왼쪽 아래": "BottomLeft"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]",
|
||||
"searchValue": "http",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "hyperlink",
|
||||
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
|
||||
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
|
||||
},
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "180",
|
||||
"first_word": "뉴",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 180% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
|
||||
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
|
||||
"value": {
|
||||
"header_inside": true,
|
||||
"all_double_slim": true
|
||||
},
|
||||
"points": 4,
|
||||
"category": "PageBorder",
|
||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||
},
|
||||
"2": {
|
||||
"path": "count(//SECTION)>1",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "① 구역나누기",
|
||||
"desc": "섹션이 1개 이상이면 점수부여"
|
||||
},
|
||||
"3": {
|
||||
"path": "./TEXT/COLDEF/@Count",
|
||||
"value": "2",
|
||||
"points": 3,
|
||||
"category": "TwoColumn",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "65",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (인구절벽)/① 크기-너비 (65 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (인구절벽)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
"value": {
|
||||
"Style": "DoubleSlim",
|
||||
"Width": "283"
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (인구절벽)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (인구절벽)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "244,220,42",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (인구절벽)/⑤ 채우기 : 색상(RGB:244,220,42)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (인구절벽)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (인구절벽)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "휴먼옛체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (인구절벽)/⑧ 글씨체 (휴먼옛체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (인구절벽)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (인구절벽)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림C.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (80 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "40",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (40 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
"value": "0",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "22",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 인구절벽이란?",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 인구절벽이란?)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 인구절벽이란?",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 인구절벽이란?)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 인구절벽이란?",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 인구절벽이란?)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 인구절벽 대응책",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 인구절벽 대응책)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 인구절벽 대응책",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 인구절벽 대응책)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 인구절벽 대응책",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 인구절벽 대응책)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "생산가능인구",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (생산가능인구)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "전체 인구가 늘더라도 생산가능인구가 감소한다면 생산가능인구가 짊어져야 하는 비용은 증가한다.",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (생산가능인구)/② 글씨체 (굴림)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "전체 인구가 늘더라도 생산가능인구가 감소한다면 생산가능인구가 짊어져야 하는 비용은 증가한다.",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (생산가능인구)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "전체 인구가 늘더라도 생산가능인구가 감소한다면 생산가능인구가 짊어져야 하는 비용은 증가한다.",
|
||||
"value": "DecagonCircleHanja",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Disaster",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Disaster/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["이론", "理論"],
|
||||
["분포", "分布"],
|
||||
["확산", "擴散"],
|
||||
["변화", "變化"],
|
||||
["확대", "擴大"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 이론(理論), ② 분포(分布), ③ 확산(擴散), ④ 변화(變化), ⑤ 확대(擴大)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'지기시작')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…기점으로 시작하는 약해지기 현상을…)>'시작하는' / '약해지기' 순서바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'취업기회')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…청년들의 취협 기회도…)>'협' → '업' 글자바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "OECD 주요국 합계출산율",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (OECD 주요국 합계출산율)/① 글씨체 (궁서)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "OECD 주요국 합계출산율",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (OECD 주요국 합계출산율)/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "OECD 주요국 합계출산율",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (OECD 주요국 합계출산율)/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "OECD 주요국 합계출산율",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (OECD 주요국 합계출산율)/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "247,159,100",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:247,159,100)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "위쪽 제목 셀/② 진하게",
|
||||
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
|
||||
},
|
||||
"39": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"value": "DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/① 이중실선"
|
||||
},
|
||||
"40": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"value": "0.5mm",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/② 0.5mm"
|
||||
},
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (돋움체)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
|
||||
"value": "1000",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/② 크기 (1000)"
|
||||
},
|
||||
"43": {
|
||||
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
"item": "블록 계산식/합계",
|
||||
"desc": "option값에 합계는 SUM / 평균은 AVG"
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "꺾은선형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (꺾은선형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
|
||||
"value": "out",
|
||||
"points": 2,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "② 값 축 주 눈금선",
|
||||
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
|
||||
},
|
||||
"47": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-너비 (80 mm)"
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
|
||||
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "OECD 주요국 합계출산율",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (OECD 주요국 합계출산율)/① 글씨체 (돋움)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "OECD 주요국 합계출산율",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (OECD 주요국 합계출산율)/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "OECD 주요국 합계출산율",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (OECD 주요국 합계출산율)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (굴림체)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/② 크기 (9pt)"
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (굴림체)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/② 크기 (9pt)"
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (굴림체)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/② 크기 (9pt)"
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
}
|
||||
}
|
||||
}
|
||||
850
JSON/2602/DIW_2602A.json
Normal file
850
JSON/2602/DIW_2602A.json
Normal file
@@ -0,0 +1,850 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Top": 20,
|
||||
"Bottom": 20,
|
||||
"Left": 20,
|
||||
"Right": 20,
|
||||
"Header": 10,
|
||||
"Footer": 10,
|
||||
"Gutter": 0
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "대한민국요리경연대회",
|
||||
"value": "맑은 고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (대한민국요리경연대회)/① 글씨체 (맑은 고딕)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "대한민국요리경연대회",
|
||||
"value": "53,135,146",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (대한민국요리경연대회)/② 채우기 : 색상(RGB:53,135,146)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "대한민국요리경연대회",
|
||||
"value": "120",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (대한민국요리경연대회)/③ 크기-너비 (120 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "대한민국요리경연대회",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (대한민국요리경연대회)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "대한민국요리경연대회",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (대한민국요리경연대회)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "대한민국요리경연대회",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (대한민국요리경연대회)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "대한민국요리경연대회",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (대한민국요리경연대회)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "국",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "어/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "국",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (돋움체)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "국",
|
||||
"value": "255,182,137",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:255,182,137)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "국",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "어/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "대한민국 요리 경연대회",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "대한민국 요리 경연대회",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "★",
|
||||
"char2": "★",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ★, ② ★, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (★ 행사안내 ★)/① 글씨체 (궁서)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "행사안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (★ 행사안내 ★)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "대한민국 요리사 협의회 홈페이지(http://www.ihd.or.kr) 참조",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (대한민국 요리사 협의회 홈페이지(http://www.ihd.or.kr) 참조)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "대한민국 요리사 협의회 홈페이지(http://www.ihd.or.kr) 참조",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (대한민국 요리사 협의회 홈페이지(http://www.ihd.or.kr) 참조)/② ITALIC"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 10,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2026. 2. 28.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 2. 28.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2026. 2. 28.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 2. 28.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "대한민국요리사협의회",
|
||||
"value": "맑은 고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (대한민국요리사협의회)/① 글씨체 (맑은 고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "대한민국요리사협의회",
|
||||
"value": "2500",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (대한민국요리사협의회)/② 크기 (2500)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "대한민국요리사협의회",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (대한민국요리사협의회)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (굴림)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "DecagonCircle",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
},
|
||||
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomRight",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
"오른쪽 아래": "BottomRight",
|
||||
"왼쪽 아래": "BottomLeft"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]",
|
||||
"searchValue": "http",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "hyperlink",
|
||||
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
|
||||
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
|
||||
},
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "180",
|
||||
"first_word": "국",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 180% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
|
||||
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
|
||||
"value": {
|
||||
"header_inside": true,
|
||||
"all_double_slim": true
|
||||
},
|
||||
"points": 4,
|
||||
"category": "PageBorder",
|
||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||
},
|
||||
"2": {
|
||||
"path": "count(//SECTION)>1",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "① 구역나누기",
|
||||
"desc": "섹션이 1개 이상이면 점수부여"
|
||||
},
|
||||
"3": {
|
||||
"path": "./TEXT/COLDEF/@Count",
|
||||
"value": "2",
|
||||
"points": 3,
|
||||
"category": "TwoColumn",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "70",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (요리 산업 현황)/① 크기-너비 (70 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (요리 산업 현황)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
"value": {
|
||||
"Style": "DoubleSlim",
|
||||
"Width": "283"
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (요리 산업 현황)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "20",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (요리 산업 현황)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "227,220,193",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (요리 산업 현황)/⑤ 채우기 : 색상(RGB:227,220,193)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (요리 산업 현황)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (요리 산업 현황)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (요리 산업 현황)/⑧ 글씨체 (돋움체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (요리 산업 현황)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (요리 산업 현황)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "85",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (85 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "40",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (40 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
"value": "0",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "22",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 요리 산업의 트렌드",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 요리 산업의 트렌드)/① 글씨체 (굴림)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 요리 산업의 트렌드",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 요리 산업의 트렌드)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 요리 산업의 트렌드",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 요리 산업의 트렌드)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 요리 경연대회의 가치",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 요리 경연대회의 가치)/① 글씨체 (굴림)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 요리 경연대회의 가치",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 요리 경연대회의 가치)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 요리 경연대회의 가치",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 요리 경연대회의 가치)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "대체육",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (대체육)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "식물성 고기라고 불리며, 비동물성 재료로 모양과 식감을 고기와 유사하게 만든 식재료를 의미함",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (대체육)/② 글씨체 (돋움)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "식물성 고기라고 불리며, 비동물성 재료로 모양과 식감을 고기와 유사하게 만든 식재료를 의미함",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (대체육)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "식물성 고기라고 불리며, 비동물성 재료로 모양과 식감을 고기와 유사하게 만든 식재료를 의미함",
|
||||
"value": "CircledHangulJamo",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Recipe",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Recipe/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": ""
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["요리", "料理"],
|
||||
["지속", "持續"],
|
||||
["활용", "活用"],
|
||||
["실력", "實力"],
|
||||
["미식", "美食"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 요리(料理), ② 지속(持續), ③ 활용(活用), ④ 실력(實力), ⑤ 미식(美食)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'태의미식')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…새로운 미식을 형태의 창조하는…)>'미식을' / '형태의' 순서바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'광도경제')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…미식(美食) 관광은 경제적…)>'은' → '도' 글자바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "요리 산업 트렌드(단위: 건수)",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (요리 산업 트렌드(단위: 건수))/① 글씨체 (궁서)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "요리 산업 트렌드(단위: 건수)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (요리 산업 트렌드(단위: 건수))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "요리 산업 트렌드(단위: 건수)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (요리 산업 트렌드(단위: 건수))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "요리 산업 트렌드(단위: 건수)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (요리 산업 트렌드(단위: 건수))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "160,214,107",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:160,214,107)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "위쪽 제목 셀/② 진하게",
|
||||
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
|
||||
},
|
||||
"39": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"value": "DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/① 이중실선"
|
||||
},
|
||||
"40": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"value": "0.5mm",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/② 0.5mm"
|
||||
},
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (굴림)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
|
||||
"value": "1000",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/② 크기 (1000)"
|
||||
},
|
||||
"43": {
|
||||
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "SUM",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
"item": "블록 계산식/합계",
|
||||
"desc": "option값에 합계는 SUM / 평균은 AVG"
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "표식만 있는 분산형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (표식만 있는 분산형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
|
||||
"value": "out",
|
||||
"points": 2,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "② 값 축 주 눈금선",
|
||||
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
|
||||
},
|
||||
"47": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-너비 (80 mm)"
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
|
||||
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "요리 산업 트렌드(단위: 건수)",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (요리 산업 트렌드(단위: 건수))/① 글씨체 (돋움)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "요리 산업 트렌드(단위: 건수)",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (요리 산업 트렌드(단위: 건수))/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "요리 산업 트렌드(단위: 건수)",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (요리 산업 트렌드(단위: 건수))/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (궁서)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/② 크기 (9pt)"
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (궁서)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/② 크기 (9pt)"
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (궁서)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/② 크기 (9pt)"
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -46,65 +46,65 @@
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"value": "궁서체",
|
||||
"searchValue": "전문사무연합협의회출범안내",
|
||||
"value": "맑은 고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/① 글씨체 (궁서체)"
|
||||
"item": "문구 (전문사무연합협의회출범안내)/① 글씨체 (맑은 고딕)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"value": "233,190,46",
|
||||
"searchValue": "전문사무연합협의회출범안내",
|
||||
"value": "194,58,253",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/② 채우기 : 색상(RGB:233,190,46)"
|
||||
"item": "문구 (전문사무연합협의회출범안내)/② 채우기 : 색상(RGB:194,58,253)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"value": "110",
|
||||
"searchValue": "전문사무연합협의회출범안내",
|
||||
"value": "140",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/③ 크기-너비 (110 mm)"
|
||||
"item": "문구 (전문사무연합협의회출범안내)/③ 크기-너비 (140 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"searchValue": "전문사무연합협의회출범안내",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/④ 크기-높이 (20 mm)"
|
||||
"item": "문구 (전문사무연합협의회출범안내)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"searchValue": "전문사무연합협의회출범안내",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/⑤ 위치 (글자처럼 취급)"
|
||||
"item": "문구 (전문사무연합협의회출범안내)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"searchValue": "전문사무연합협의회출범안내",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/⑥ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (전문사무연합협의회출범안내)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"searchValue": "전문사무연합협의회출범안내",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/⑦ 글맵시모양 (육안확인)"
|
||||
"item": "문구 (전문사무연합협의회출범안내)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "생",
|
||||
"searchValue": "국",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
@@ -116,23 +116,23 @@
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "생",
|
||||
"value": "굴림체",
|
||||
"searchValue": "국",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (굴림체)"
|
||||
"item": "어/② 글씨체 (궁서체)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "생",
|
||||
"value": "221,251,229",
|
||||
"searchValue": "국",
|
||||
"value": "87,172,220",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:221,251,229)"
|
||||
"item": "어/③ 면색 : 색상(RGB:87,172,220)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "생",
|
||||
"searchValue": "국",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
@@ -141,31 +141,31 @@
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "생성형 인공지능",
|
||||
"searchValue": "비전과 목표를 공유",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (생성형 인공지능)/① BOLD"
|
||||
"item": "문구 (비전과 목표를 공유)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "생성형 인공지능",
|
||||
"value": "ITALIC",
|
||||
"searchValue": "비전과 목표를 공유",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (생성형 인공지능)/② ITALIC"
|
||||
"item": "문구 (비전과 목표를 공유)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "★",
|
||||
"char2": "★",
|
||||
"char1": "■",
|
||||
"char2": "■",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ★, ② ★, ③ ※"
|
||||
"item": "① ■, ② ■, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
@@ -173,7 +173,7 @@
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (★ 행사안내 ★)/① 글씨체 (궁서)"
|
||||
"item": "문구 (■ 행사안내 ■)/① 글씨체 (궁서)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
@@ -181,78 +181,78 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (★ 행사안내 ★)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (■ 행사안내 ■)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "협회 홈페이지(https://www.ihd.or.kr)",
|
||||
"searchValue": "본회 홈페이지(http://www.ihd.or.kr)에서 신청 가능",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (협회 홈페이지(https://www.ihd.or.kr))/① BOLD"
|
||||
"item": "문구 (본회 홈페이지(http://www.ihd.or.kr)에서 신청 가능)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "협회 홈페이지(https://www.ihd.or.kr)",
|
||||
"value": "UNDERLINE",
|
||||
"searchValue": "본회 홈페이지(http://www.ihd.or.kr)에서 신청 가능",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (협회 홈페이지(https://www.ihd.or.kr))/② UNDERLINE"
|
||||
"item": "문구 (본회 홈페이지(http://www.ihd.or.kr)에서 신청 가능)/② ITALIC"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 13,
|
||||
"Indent": 10
|
||||
"Left": 15,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (13), 내어쓰기 (10)",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 2. 28.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/① 크기 (1300)",
|
||||
"item": "문구 (2026. 2. 28.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 2. 28.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 2. 28.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "생성형인공지능협회",
|
||||
"value": "돋움",
|
||||
"searchValue": "한국전문사무연합협의회",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (생성형인공지능협회)/① 글씨체 (돋움)"
|
||||
"item": "문구 (한국전문사무연합협의회)/① 글씨체 (돋움체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "생성형인공지능협회",
|
||||
"value": "2000",
|
||||
"searchValue": "한국전문사무연합협의회",
|
||||
"value": "2400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (생성형인공지능협회)/② 크기 (2000)"
|
||||
"item": "문구 (한국전문사무연합협의회)/② 크기 (2400)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "생성형인공지능협회",
|
||||
"searchValue": "한국전문사무연합협의회",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (생성형인공지능협회)/③ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (한국전문사무연합협의회)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
@@ -280,10 +280,10 @@
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "LatinCapital",
|
||||
"value": "RomanCapital",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기",
|
||||
"item": "① 쪽 번호 매기기 (I,II,III 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
@@ -308,10 +308,10 @@
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomRight",
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "왼쪽 아래",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
@@ -330,11 +330,11 @@
|
||||
},
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "200",
|
||||
"first_word": "생",
|
||||
"value": "190",
|
||||
"first_word": "국",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 200% 설정",
|
||||
"item": "문제 1 줄간격 190% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
@@ -367,17 +367,17 @@
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"value": "45",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (생성형 인공지능)/① 크기-너비 (60 mm)"
|
||||
"item": "문구 (전문사무)/① 크기-너비 (45 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (생성형 인공지능)/② 크기-높이 (12 mm)"
|
||||
"item": "문구 (전문사무)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
@@ -387,51 +387,51 @@
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (생성형 인공지능)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"item": "문구 (전문사무)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "0",
|
||||
"value": "20",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (생성형 인공지능)/④ 글상자 모서리 (직각)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20 / 직각:0"
|
||||
"item": "문구 (전문사무)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "153,226,253",
|
||||
"value": "249,176,199",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (생성형 인공지능)/⑤ 채우기 : 색상(RGB:153,226,253)"
|
||||
"item": "문구 (전문사무)/⑤ 채우기 : 색상(RGB:249,176,199)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (생성형 인공지능)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
"item": "문구 (전문사무)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (생성형 인공지능)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
"item": "문구 (전문사무)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (생성형 인공지능)/⑧ 글씨체 (견고딕)"
|
||||
"item": "문구 (전문사무)/⑧ 글씨체 (견고딕)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (생성형 인공지능)/⑨ 글씨크기 (2000)",
|
||||
"item": "문구 (전문사무)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
@@ -439,22 +439,22 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (생성형 인공지능)/⑩ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (전문사무)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림D.jpg\" 삽입",
|
||||
"item": "① 파일명 \"그림B.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "85",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (85 mm)"
|
||||
"item": "② 크기-너비 (80 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
@@ -479,81 +479,81 @@
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 서비스 현황",
|
||||
"value": "돋움체",
|
||||
"searchValue": "1. 전문사무",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 서비스 현황)/① 글씨체 (돋움체)"
|
||||
"item": "문구① (1. 전문사무)/① 글씨체 (굴림체)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 서비스 현황",
|
||||
"searchValue": "1. 전문사무",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 서비스 현황)/② 크기 (1200)"
|
||||
"item": "문구① (1. 전문사무)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 서비스 현황",
|
||||
"searchValue": "1. 전문사무",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 서비스 현황)/③ 진하게"
|
||||
"item": "문구① (1. 전문사무)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 활용 분야",
|
||||
"value": "돋움체",
|
||||
"searchValue": "2. 전문사무의 동향",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 활용 분야)/① 글씨체 (돋움체)"
|
||||
"item": "문구② (2. 전문사무의 동향)/① 글씨체 (굴림체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 활용 분야",
|
||||
"searchValue": "2. 전문사무의 동향",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 활용 분야)/② 크기 (1200)"
|
||||
"item": "문구② (2. 전문사무의 동향)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 활용 분야",
|
||||
"searchValue": "2. 전문사무의 동향",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 활용 분야)/③ 진하게"
|
||||
"item": "문구② (2. 전문사무의 동향)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "핀테크",
|
||||
"option": "인공지능 리터러시",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (핀테크)/① 각주 설정 및 문구 입력"
|
||||
"item": "문구 (인공지능 리터러시)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업",
|
||||
"value": "굴림",
|
||||
"searchValue": "인공지능을 이해하고 활용할 수 있는 능력",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (핀테크)/② 글씨체 (굴림)"
|
||||
"item": "문구 (인공지능 리터러시)/② 글씨체 (중고딕)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업",
|
||||
"searchValue": "인공지능을 이해하고 활용할 수 있는 능력",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (핀테크)/③ 크기 (9pt)"
|
||||
"item": "문구 (인공지능 리터러시)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업",
|
||||
"value": "CircledLatinCapital",
|
||||
"searchValue": "인공지능을 이해하고 활용할 수 있는 능력",
|
||||
"value": "CircledHangulJamo",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
@@ -579,81 +579,81 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Generative')])",
|
||||
"ignoreWord": "Generative",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Chatgpt",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Generative/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"item": "Chatgpt/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["생성", "生成"],
|
||||
["현재", "現在"],
|
||||
["창조", "創造"],
|
||||
["결함", "缺陷"],
|
||||
["극대", "極大"]
|
||||
["기술", "技術"],
|
||||
["도약", "跳躍"],
|
||||
["동향", "動向"],
|
||||
["역량", "力量"],
|
||||
["혁신", "革新"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 생성(生成), ② 현재(現在), ③ 창조(創造), ④ 결함(缺陷), ⑤ 극대(極大)"
|
||||
"item": "① 기술(技術), ② 도약(跳躍), ③ 동향(動向), ④ 역량(力量), ⑤ 혁신(革新)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'성형인공')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'성과신뢰')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…사용하는 인공지능 생성형 서비스이다…)>'인공지능 / 생성형' 순서바꿈"
|
||||
"item": "문구 (…이러한 업무는 신뢰성이 정확성과 중요하기 때문에…)>'신뢰성이 / 정확성과' 순서바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'률검토를')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'전기회를')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…작성 및 법률 검투를 수행…)>'투' → '토' 글자바꿈"
|
||||
"item": "문구 (…도약(跳躍)을 위한 발전 기획를 맞이하고…)>'획' → '회' 글자바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "생성형 인공지능 서비스 이용률 현황",
|
||||
"value": "굴림체",
|
||||
"searchValue": "전문사무 자격증 취득자 현황",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (생성형 인공지능 서비스 이용률 현황)/① 글씨체 (굴림체)"
|
||||
"item": "제목 문구 (전문사무 자격증 취득자 현황)/① 글씨체 (돋움체)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "생성형 인공지능 서비스 이용률 현황",
|
||||
"searchValue": "전문사무 자격증 취득자 현황",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (생성형 인공지능 서비스 이용률 현황)/② 크기 (1200)"
|
||||
"item": "제목 문구 (전문사무 자격증 취득자 현황)/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "생성형 인공지능 서비스 이용률 현황",
|
||||
"searchValue": "전문사무 자격증 취득자 현황",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (생성형 인공지능 서비스 이용률 현황)/③ 진하게"
|
||||
"item": "제목 문구 (전문사무 자격증 취득자 현황)/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "생성형 인공지능 서비스 이용률 현황",
|
||||
"searchValue": "전문사무 자격증 취득자 현황",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (생성형 인공지능 서비스 이용률 현황)/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (전문사무 자격증 취득자 현황)/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "232,250,210",
|
||||
"value": "191,240,173",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:232,250,210)"
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:191,240,173)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
@@ -682,11 +682,11 @@
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "중고딕",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (중고딕)",
|
||||
"item": "글자모양/① 글씨체 (굴림)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
@@ -704,8 +704,8 @@
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "SUM",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
@@ -714,11 +714,11 @@
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "묶은 가로 막대형",
|
||||
"chart_type": "묶은 세로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (묶은 가로 막대형)",
|
||||
"item": "① 종류 (묶은 세로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
@@ -738,10 +738,10 @@
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "80",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (80 mm)"
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
@@ -753,32 +753,32 @@
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "생성형 인공지능 이용률 현황",
|
||||
"value": "휴먼옛체",
|
||||
"searchValue": "전문사무 자격증 취득 현황",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (생성형 인공지능 이용률 현황)/① 글씨체 (휴먼옛체)"
|
||||
"item": "제목 문구 (전문사무 자격증 취득 현황)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "생성형 인공지능 이용률 현황",
|
||||
"searchValue": "전문사무 자격증 취득 현황",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (생성형 인공지능 이용률 현황)/② 크기 (1300)"
|
||||
"item": "제목 문구 (전문사무 자격증 취득 현황)/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "생성형 인공지능 이용률 현황",
|
||||
"searchValue": "전문사무 자격증 취득 현황",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (생성형 인공지능 이용률 현황)/③ 기울임",
|
||||
"item": "제목 문구 (전문사무 자격증 취득 현황)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
@@ -801,7 +801,7 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
@@ -824,7 +824,7 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
@@ -46,65 +46,65 @@
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"searchValue": "슬기로운국제사진공모전",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (청소년창작음악페스티벌)/① 글씨체 (궁서체)"
|
||||
"item": "문구 (슬기로운국제사진공모전)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"value": "48,117,97",
|
||||
"searchValue": "슬기로운국제사진공모전",
|
||||
"value": "31,178,161",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (청소년창작음악페스티벌)/② 채우기 : 색상(RGB:48,117,97)"
|
||||
"item": "문구 (슬기로운국제사진공모전)/② 채우기 : 색상(RGB:31,178,161)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"value": "110",
|
||||
"searchValue": "슬기로운국제사진공모전",
|
||||
"value": "120",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (청소년창작음악페스티벌)/③ 크기-너비 (110 mm)"
|
||||
"item": "문구 (슬기로운국제사진공모전)/③ 크기-너비 (120 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"searchValue": "슬기로운국제사진공모전",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (청소년창작음악페스티벌)/④ 크기-높이 (20 mm)"
|
||||
"item": "문구 (슬기로운국제사진공모전)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"searchValue": "슬기로운국제사진공모전",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (청소년창작음악페스티벌)/⑤ 위치 (글자처럼 취급)"
|
||||
"item": "문구 (슬기로운국제사진공모전)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"searchValue": "슬기로운국제사진공모전",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (청소년창작음악페스티벌)/⑥ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (슬기로운국제사진공모전)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"searchValue": "슬기로운국제사진공모전",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (전통주페어링특강안내)/⑦ 글맵시모양 (육안확인)"
|
||||
"item": "문구 (슬기로운국제사진공모전)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "음",
|
||||
"searchValue": "사",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
@@ -116,23 +116,23 @@
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "음",
|
||||
"value": "굴림체",
|
||||
"searchValue": "사",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (굴림체)"
|
||||
"item": "어/② 글씨체 (돋움)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "음",
|
||||
"value": "248,132,58",
|
||||
"searchValue": "사",
|
||||
"value": "214,150,244",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:248,132,58)"
|
||||
"item": "어/③ 면색 : 색상(RGB:214,150,244)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "음",
|
||||
"searchValue": "사",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
@@ -141,39 +141,39 @@
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "행사의 주제는 ‘음악, 꿈을 노래하다’",
|
||||
"value": "BOLD",
|
||||
"searchValue": "일반 대중에게 공개",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (행사의 주제는 ‘음악, 꿈을 노래하다’)/① BOLD"
|
||||
"item": "문구 (일반 대중에게 공개)/① ITALIC"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "행사의 주제는 ‘음악, 꿈을 노래하다’",
|
||||
"searchValue": "일반 대중에게 공개",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (행사의 주제는 ‘음악, 꿈을 노래하다’)/② UNDERLINE"
|
||||
"item": "문구 (일반 대중에게 공개)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "★",
|
||||
"char2": "★",
|
||||
"char1": "◎",
|
||||
"char2": "◎",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ★, ② ★, ③ ※"
|
||||
"item": "① ◎ , ② ◎ , ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "중고딕",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (★ 행사안내 ★)/① 글씨체 (중고딕)"
|
||||
"item": "문구 (◎ 행사안내 ◎)/① 글씨체 (궁서)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
@@ -181,25 +181,25 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (★ 행사안내 ★)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (◎ 행사안내 ◎)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인",
|
||||
"searchValue": "양재 미디어센터 홈페이지(http://www.ihd.or.kr) 슬기로운 미디어 생활",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인)/① BOLD"
|
||||
"item": "문구 (양재 미디어센터 홈페이지(http://www.ihd.or.kr) 슬기로운 미디어 생활)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인",
|
||||
"searchValue": "양재 미디어센터 홈페이지(http://www.ihd.or.kr) 슬기로운 미디어 생활",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인)/② ITALIC"
|
||||
"item": "문구 (양재 미디어센터 홈페이지(http://www.ihd.or.kr) 슬기로운 미디어 생활)/② ITALIC"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
@@ -215,52 +215,52 @@
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 02. 28.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/① 크기 (1300)",
|
||||
"item": "문구 (2026. 02. 28.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 02. 28.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 02. 28.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "청소년 창작 음악 사무국",
|
||||
"value": "돋움",
|
||||
"searchValue": "양재 미디어센터",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (청소년 창작 음악 사무국)/① 글씨체 (돋움)"
|
||||
"item": "문구 (양재 미디어센터)/① 글씨체 (굴림)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "청소년 창작 음악 사무국",
|
||||
"value": "2700",
|
||||
"searchValue": "양재 미디어센터",
|
||||
"value": "2300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (청소년 창작 음악 사무국)/② 크기 (2700)"
|
||||
"item": "문구 (양재 미디어센터)/② 크기 (2300)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "청소년 창작 음악 사무국",
|
||||
"searchValue": "양재 미디어센터",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (청소년 창작 음악 사무국)/③ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (양재 미디어센터)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "굴림",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (굴림)"
|
||||
"item": "문구 (DIAT)/① 글꼴 (중고딕)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
@@ -280,10 +280,10 @@
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "HangulSyllable",
|
||||
"value": "RomanCapital",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"item": "① 쪽 번호 매기기 (I,II,III 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
@@ -308,10 +308,10 @@
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomRight",
|
||||
"value": "BottomLeft",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "오른쪽 아래",
|
||||
"item": "왼쪽 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
@@ -331,7 +331,7 @@
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "180",
|
||||
"first_word": "음",
|
||||
"first_word": "사",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 180% 설정",
|
||||
@@ -370,14 +370,14 @@
|
||||
"value": "60",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (청소년 음악 창작)/① 크기-너비 (60 mm)"
|
||||
"item": "문구 (사진 예술 산업)/① 크기-너비 (60 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (청소년 음악 창작)/② 크기-높이 (12 mm)"
|
||||
"item": "문구 (사진 예술 산업)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
@@ -387,51 +387,51 @@
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (청소년 음악 창작)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"item": "문구 (사진 예술 산업)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "20",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (청소년 음악 창작)/④ 글상자 모서리 (반원)",
|
||||
"item": "문구 (사진 예술 산업)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "53,135,145",
|
||||
"value": "228,211,147",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (청소년 음악 창작)/⑤ 채우기 : 색상(RGB:53,135,145)"
|
||||
"item": "문구 (사진 예술 산업)/⑤ 채우기 : 색상(RGB:228,211,147)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (청소년 음악 창작)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
"item": "문구 (사진 예술 산업)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (청소년 음악 창작)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
"item": "문구 (사진 예술 산업)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "궁서체",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (청소년 음악 창작)/⑧ 글씨체 (궁서체)"
|
||||
"item": "문구 (사진 예술 산업)/⑧ 글씨체 (견고딕)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (청소년 음악 창작)/⑨ 글씨크기 (2000)",
|
||||
"item": "문구 (사진 예술 산업)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
@@ -439,14 +439,14 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (청소년 음악 창작)/⑩ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (사진 예술 산업)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림B.jpg\" 삽입",
|
||||
"item": "① 파일명 \"그림C.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
@@ -479,84 +479,84 @@
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 청소년 음악 창작",
|
||||
"value": "돋움체",
|
||||
"searchValue": "1. 현대 사진 예술",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 청소년 음악 창작)/① 글씨체 (돋움체)"
|
||||
"item": "문구① (1. 현대 사진 예술)/① 글씨체 (돋움)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 청소년 음악 창작",
|
||||
"searchValue": "1. 현대 사진 예술",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 청소년 음악 창작)/② 크기 (1200)"
|
||||
"item": "문구① (1. 현대 사진 예술)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 청소년 음악 창작",
|
||||
"searchValue": "1. 현대 사진 예술",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 청소년 음악 창작)/③ 진하게"
|
||||
"item": "문구① (1. 현대 사진 예술)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 청소년 음악 산업",
|
||||
"value": "돋움체",
|
||||
"searchValue": "2. 사진 산업의 가치",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 청소년 음악 산업)/① 글씨체 (돋움체)"
|
||||
"item": "문구② (2. 사진 산업의 가치)/① 글씨체 (돋움)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 청소년 음악 산업",
|
||||
"searchValue": "2. 사진 산업의 가치",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 청소년 음악 산업)/② 크기 (1200)"
|
||||
"item": "문구② (2. 사진 산업의 가치)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 청소년 음악 산업",
|
||||
"searchValue": "2. 사진 산업의 가치",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 청소년 음악 산업)/③ 진하게"
|
||||
"item": "문구② (2. 사진 산업의 가치)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "스트리밍",
|
||||
"option": "스토리텔링",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (스트리밍)/① 각주 설정 및 문구 입력"
|
||||
"item": "문구 (스토리텔링)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함",
|
||||
"value": "굴림",
|
||||
"searchValue": "알리고자 하는 바를 단어, 이미지, 소리를 통해 사건, 이야기로 전달하는 것을 의미함",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (스트리밍)/② 글씨체 (굴림)"
|
||||
"item": "문구 (스토리텔링)/② 글씨체 (중고딕)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함",
|
||||
"searchValue": "알리고자 하는 바를 단어, 이미지, 소리를 통해 사건, 이야기로 전달하는 것을 의미함",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (스트리밍)/③ 크기 (9pt)"
|
||||
"item": "문구 (스토리텔링)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함",
|
||||
"value": "CircledHangulJamo",
|
||||
"searchValue": "알리고자 하는 바를 단어, 이미지, 소리를 통해 사건, 이야기로 전달하는 것을 의미함",
|
||||
"value": "CircledDigit",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (스트리밍)/④ 각주 번호모양",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
@@ -579,81 +579,81 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Artist')])",
|
||||
"ignoreWord": "Artist",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Documentary",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Artist/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"item": "Documentary/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["작곡", "作曲"],
|
||||
["유통", "流通"],
|
||||
["창작", "創作"],
|
||||
["발표", "發表"],
|
||||
["수익", "受益"]
|
||||
["표현", "表現"],
|
||||
["합성", "合成"],
|
||||
["보정", "補正"],
|
||||
["투자", "投資"],
|
||||
["각광", "脚光"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 작곡(作曲), ② 유통(流通), ③ 창작(創作), ④ 발표(發表), ⑤ 수익(受益)"
|
||||
"item": "① 표현(表現), ② 합성(合成), ③ 보정(補正), ④ 투자(投資), ⑤ 각광(脚光)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이고실험')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'지능이자동')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…벗어나 자율적이구 실험적인…)>'구' → '고' 글자바꿈"
|
||||
"item": "문구 (…자동으로 인공지능이 이미지 보정…)>'자동으로 / 인공지능이' 순서바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'로운기회')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'육적측면')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…뮤지션들에게도 기회가 새로운 열리고…)>'기회가 / 새로운' 순서바꿈"
|
||||
"item": "문구 (…상업적, 교육적 측변에서도…)>'변' → '면' 글자바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"value": "돋움",
|
||||
"searchValue": "사진 산업 시장 성장률",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/① 글씨체 (돋움)"
|
||||
"item": "제목 문구 (사진 산업 시장 성장률)/① 글씨체 (궁서)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"searchValue": "사진 산업 시장 성장률",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/② 크기 (1200)"
|
||||
"item": "제목 문구 (사진 산업 시장 성장률)/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"searchValue": "사진 산업 시장 성장률",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/③ 진하게"
|
||||
"item": "제목 문구 (사진 산업 시장 성장률)/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"searchValue": "사진 산업 시장 성장률",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (연령별 축제 만족도(단위:%))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "202,86,167",
|
||||
"value": "165,211,137",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:202,86,167)"
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:165,211,137)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
@@ -682,11 +682,11 @@
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "중고딕",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (중고딕)",
|
||||
"item": "글자모양/① 글씨체 (굴림)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
@@ -704,7 +704,7 @@
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
@@ -714,11 +714,11 @@
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "꺾은선형",
|
||||
"chart_type": "곡선이 있는 분산형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (꺾은선형)",
|
||||
"item": "① 종류 (곡선이 있는 분산형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
@@ -753,36 +753,36 @@
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"value": "맑은 고딕",
|
||||
"searchValue": "사진 산업 시장 성장률",
|
||||
"value": "바탕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/① 글씨체 (맑은 고딕)"
|
||||
"item": "제목 문구 (사진 산업 시장 성장률)/① 글씨체 (바탕)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"value": "1300",
|
||||
"searchValue": "사진 산업 시장 성장률",
|
||||
"value": "1400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/② 크기 (1300)"
|
||||
"item": "제목 문구 (사진 산업 시장 성장률)/② 크기 (1400)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"searchValue": "사진 산업 시장 성장률",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/③ 기울임",
|
||||
"item": "제목 문구 (사진 산업 시장 성장률)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (바탕)"
|
||||
"item": "X축/① 글꼴 (돋움)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -801,11 +801,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (바탕)"
|
||||
"item": "Y축/① 글꼴 (돋움)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -824,11 +824,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (바탕)"
|
||||
"item": "범례/① 글꼴 (돋움)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
@@ -46,65 +46,65 @@
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"value": "견고딕",
|
||||
"searchValue": "전국대학생창업아이디어공모전",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/① 글씨체 (견고딕)"
|
||||
"item": "문구 (전국대학생창업아이디어공모전)/① 글씨체 (돋움체)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"value": "28,61,98",
|
||||
"searchValue": "전국대학생창업아이디어공모전",
|
||||
"value": "28,77,128",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/② 채우기 : 색상(RGB:28,61,98)"
|
||||
"item": "문구 (전국대학생창업아이디어공모전)/② 채우기 : 색상(RGB:28,77,128)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"value": "120",
|
||||
"searchValue": "전국대학생창업아이디어공모전",
|
||||
"value": "130",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/③ 크기-너비 (120 mm)"
|
||||
"item": "문구 (전국대학생창업아이디어공모전)/③ 크기-너비 (130 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"searchValue": "전국대학생창업아이디어공모전",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/④ 크기-높이 (20 mm)"
|
||||
"item": "문구 (전국대학생창업아이디어공모전)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"searchValue": "전국대학생창업아이디어공모전",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/⑤ 위치 (글자처럼 취급)"
|
||||
"item": "문구 (전국대학생창업아이디어공모전)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"searchValue": "전국대학생창업아이디어공모전",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/⑥ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (전국대학생창업아이디어공모전)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"searchValue": "전국대학생창업아이디어공모전",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/⑦ 글맵시모양 (육안확인)"
|
||||
"item": "문구 (전국대학생창업아이디어공모전)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "디",
|
||||
"searchValue": "미",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
@@ -116,23 +116,23 @@
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "디",
|
||||
"value": "중고딕",
|
||||
"searchValue": "미",
|
||||
"value": "바탕체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (중고딕)"
|
||||
"item": "어/② 글씨체 (바탕체)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "디",
|
||||
"value": "157,92,187",
|
||||
"searchValue": "미",
|
||||
"value": "187,196,219",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:157,92,187)"
|
||||
"item": "어/③ 면색 : 색상(RGB:187,196,219)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "디",
|
||||
"searchValue": "미",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
@@ -141,19 +141,19 @@
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "다양한 분야의 세미나와 전시",
|
||||
"searchValue": "새로운 도전, 창업으로 실현하다",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (다양한 분야의 세미나와 전시)/① BOLD"
|
||||
"item": "문구 (새로운 도전, 창업으로 실현하다)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "다양한 분야의 세미나와 전시",
|
||||
"searchValue": "새로운 도전, 창업으로 실현하다",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (다양한 분야의 세미나와 전시)/② UNDERLINE"
|
||||
"item": "문구 (새로운 도전, 창업으로 실현하다)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
@@ -165,15 +165,15 @@
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ■, ② ■, ③ ※"
|
||||
"item": "① ■ , ② ■ , ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "굴림",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (■ 행사안내 ■)/① 글씨체 (굴림)"
|
||||
"item": "문구 (■ 행사안내 ■)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
@@ -186,20 +186,20 @@
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025.12.24.(수) 18:00까지 전화로 등록 가능(02-1234-5678)",
|
||||
"searchValue": "2026.03.03.(화) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025.12.24.(수) 18:00까지 전화로 등록 가능(02-1234-5678))/① ITALIC"
|
||||
"item": "문구 (2026.03.03.(화) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/① ITALIC"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025.12.24.(수) 18:00까지 전화로 등록 가능(02-1234-5678)",
|
||||
"searchValue": "2026.03.03.(화) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025.12.24.(수) 18:00까지 전화로 등록 가능(02-1234-5678))/② UNDERLINE"
|
||||
"item": "문구 (2026.03.03.(화) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
@@ -215,44 +215,44 @@
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 02. 28.",
|
||||
"value": "1400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/① 크기 (1400)",
|
||||
"item": "문구 (2026. 02. 28.)/① 크기 (1400)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 02. 28.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 02. 28.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "사단법인 스마트오피스협의회",
|
||||
"value": "돋움체",
|
||||
"searchValue": "전국청년창업진흥원",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (사단법인 스마트오피스협의회)/① 글씨체 (돋움체)"
|
||||
"item": "문구 (전국청년창업진흥원)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "사단법인 스마트오피스협의회",
|
||||
"searchValue": "전국청년창업진흥원",
|
||||
"value": "2700",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (사단법인 스마트오피스협의회)/② 크기 (2700)"
|
||||
"item": "문구 (전국청년창업진흥원)/② 크기 (2700)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "사단법인 스마트오피스협의회",
|
||||
"searchValue": "전국청년창업진흥원",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (사단법인 스마트오피스협의회)/③ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (전국청년창업진흥원)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
@@ -283,7 +283,7 @@
|
||||
"value": "Ideograph",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"item": "① 쪽 번호 매기기 (一,二,三 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
@@ -311,7 +311,7 @@
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "왼쪽 아래",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
@@ -320,21 +320,12 @@
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]",
|
||||
"searchValue": "http",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "hyperlink",
|
||||
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
|
||||
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
|
||||
},
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "190",
|
||||
"first_word": "디",
|
||||
"value": "200",
|
||||
"first_word": "미",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 190% 설정",
|
||||
"item": "문제 1 줄간격 200% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
@@ -370,14 +361,14 @@
|
||||
"value": "70",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (된장의 역사와 종류)/① 크기-너비 (70 mm)"
|
||||
"item": "문구 (대학생 창업 현황)/① 크기-너비 (70 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (된장의 역사와 종류)/② 크기-높이 (12 mm)"
|
||||
"item": "문구 (대학생 창업 현황)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
@@ -387,7 +378,7 @@
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (된장의 역사와 종류)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"item": "문구 (대학생 창업 현황)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
@@ -395,43 +386,43 @@
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (된장의 역사와 종류)/④ 글상자 모서리 (반원)",
|
||||
"item": "문구 (대학생 창업 현황)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "227,220,193",
|
||||
"value": "227,142,193",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (된장의 역사와 종류)/⑤ 채우기 : 색상(RGB:227,220,193)"
|
||||
"item": "문구 (대학생 창업 현황)/⑤ 채우기 : 색상(RGB:227,142,193)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (된장의 역사와 종류)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
"item": "문구 (대학생 창업 현황)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (된장의 역사와 종류)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
"item": "문구 (대학생 창업 현황)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "맑은 고딕",
|
||||
"value": "맑은고딕",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (된장의 역사와 종류)/⑧ 글씨체 (맑은 고딕)"
|
||||
"item": "문구 (대학생 창업 현황)/⑧ 글씨체 (맑은고딕)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (된장의 역사와 종류)/⑨ 글씨크기 (2000)",
|
||||
"item": "문구 (대학생 창업 현황)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
@@ -439,14 +430,14 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (된장의 역사와 종류)/⑩ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (대학생 창업 현황)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"item": "① 파일명 \"그림D.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
@@ -479,81 +470,81 @@
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 디지털 문서 편집 기술",
|
||||
"value": "중고딕",
|
||||
"searchValue": "1. 대학생 창업",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 디지털 문서 편집 기술)/① 글씨체 (중고딕)"
|
||||
"item": "문구① (1. 대학생 창업)/① 글씨체 (돋움)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 디지털 문서 편집 기술",
|
||||
"searchValue": "1. 대학생 창업",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 디지털 문서 편집 기술)/② 크기 (1200)"
|
||||
"item": "문구① (1. 대학생 창업)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 디지털 문서 편집 기술",
|
||||
"searchValue": "1. 대학생 창업",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 디지털 문서 편집 기술)/③ 진하게"
|
||||
"item": "문구① (1. 대학생 창업)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 문서 자동화 솔루션",
|
||||
"value": "중고딕",
|
||||
"searchValue": "2. 창업 생태계",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 문서 자동화 솔루션)/① 글씨체 (중고딕)"
|
||||
"item": "문구② (2. 창업 생태계)/① 글씨체 (돋움)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 문서 자동화 솔루션",
|
||||
"searchValue": "2. 창업 생태계",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 문서 자동화 솔루션)/② 크기 (1200)"
|
||||
"item": "문구② (2. 창업 생태계)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 문서 자동화 솔루션",
|
||||
"searchValue": "2. 창업 생태계",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 문서 자동화 솔루션)/③ 진하게"
|
||||
"item": "문구② (2. 창업 생태계)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "전자 서명",
|
||||
"option": "펀딩",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (전자 서명)/① 각주 설정 및 문구 입력"
|
||||
"item": "문구 (펀딩)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "공개키 암호화 방식을 사용하여 본인인증, 혹은 전자문서의 부인 방지를 위해 사용되는 기술",
|
||||
"searchValue": "필요, 프로그램, 프로젝트에 자금을 조달하기 위해 자원을 제공하는 행위를 말한다.",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (전자 서명)/② 글씨체 (돋움)"
|
||||
"item": "문구 (펀딩)/② 글씨체 (돋움)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "공개키 암호화 방식을 사용하여 본인인증, 혹은 전자문서의 부인 방지를 위해 사용되는 기술",
|
||||
"searchValue": "필요, 프로그램, 프로젝트에 자금을 조달하기 위해 자원을 제공하는 행위를 말한다.",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전자 서명)/③ 크기 (9pt)"
|
||||
"item": "문구 (펀딩)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "공개키 암호화 방식을 사용하여 본인인증, 혹은 전자문서의 부인 방지를 위해 사용되는 기술",
|
||||
"value": "CircledDigit",
|
||||
"searchValue": "필요, 프로그램, 프로젝트에 자금을 조달하기 위해 자원을 제공하는 행위를 말한다.",
|
||||
"value": "LatinSmall",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
@@ -579,81 +570,81 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Security')])",
|
||||
"ignoreWord": "Security",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Incubation",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Security/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"item": "Incubation/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["초안", "草案"],
|
||||
["진위", "眞僞"],
|
||||
["탑재", "搭載"],
|
||||
["자동", "自動"],
|
||||
["극대화", "極大化"]
|
||||
["창업", "創業"],
|
||||
["육성", "育成"],
|
||||
["기회", "機會"],
|
||||
["투자", "投資"],
|
||||
["고용", "雇用"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 초안(草案), ② 진위(眞僞), ③ 탑재(搭載), ④ 자동(自動), ⑤ 극대화(極大化)"
|
||||
"item": "① 창업(創業), ② 육성(育成), ③ 기회(機會), ④ 투자(投資), ⑤ 고용(雇用)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'간과비용')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'지능,빅데')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…대체하면서 비용이 시간과 절감될…)>'비용이 / 시간과' 순서바꿈"
|
||||
"item": "문구 (...최근에는 빅데이터, 인공지능, 블록체인 등...)>'빅데이터, / 인공지능,' 순서바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이필요한')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'스모델이')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…인력 투입이 필요해 수작업…)>'해' → '한' 글자바꿈"
|
||||
"item": "문구 (...혁신적인 비즈니스 모형이...)>'형→델' 글자바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률(단위:%)",
|
||||
"value": "굴림체",
|
||||
"searchValue": "대학생 창업 분야별 성장률(%)",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률(단위:%))/① 글씨체 (굴림체)"
|
||||
"item": "제목 문구 (대학생 창업 분야별 성장률(%))/① 글씨체 (궁서체)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률(단위:%)",
|
||||
"value": "1100",
|
||||
"searchValue": "대학생 창업 분야별 성장률(%)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률(단위:%))/② 크기 (1100)"
|
||||
"item": "제목 문구 (대학생 창업 분야별 성장률(%))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률(단위:%)",
|
||||
"searchValue": "대학생 창업 분야별 성장률(%)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률(단위:%))/③ 진하게"
|
||||
"item": "제목 문구 (대학생 창업 분야별 성장률(%))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률(단위:%)",
|
||||
"searchValue": "대학생 창업 분야별 성장률(%)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률(단위:%))/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (대학생 창업 분야별 성장률(%))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "233,174,43",
|
||||
"value": "213,178,100",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:233,174,43)"
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:213,178,100)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
@@ -704,7 +695,7 @@
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
@@ -714,11 +705,11 @@
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "묶은 가로 막대형",
|
||||
"chart_type": "100% 기준 누적 가로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (묶은 가로 막대형)",
|
||||
"item": "① 종류 (100% 기준 누적 가로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
@@ -738,10 +729,10 @@
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "90",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
"item": "④ 크기-높이 (80 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
@@ -753,36 +744,36 @@
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률",
|
||||
"searchValue": "대학생 창업 분야별 성장률",
|
||||
"value": "휴먼옛체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률)/① 글씨체 (휴먼옛체)"
|
||||
"item": "제목 문구 (대학생 창업 분야별 성장률)/① 글씨체 (휴먼옛체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률",
|
||||
"value": "1200",
|
||||
"searchValue": "대학생 창업 분야별 성장률",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률)/② 크기 (1200)"
|
||||
"item": "제목 문구 (대학생 창업 분야별 성장률)/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률",
|
||||
"searchValue": "대학생 창업 분야별 성장률",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률)/③ 기울임",
|
||||
"item": "제목 문구 (대학생 창업 분야별 성장률)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "궁서",
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (궁서)"
|
||||
"item": "X축/① 글꼴 (굴림체)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -801,11 +792,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "궁서",
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (궁서)"
|
||||
"item": "Y축/① 글꼴 (굴림체)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -824,11 +815,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "궁서",
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (궁서)"
|
||||
"item": "범례/① 글꼴 (굴림체)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
@@ -46,65 +46,65 @@
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "견고딕",
|
||||
"searchValue": "상반기건강차체험안내",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)"
|
||||
"item": "문구 (상반기건강차체험안내)/① 글씨체 (돋움체)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "51,69,153",
|
||||
"searchValue": "상반기건강차체험안내",
|
||||
"value": "55,123,200",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)"
|
||||
"item": "문구 (상반기건강차체험안내)/② 채우기 : 색상(RGB:55,123,200)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "110",
|
||||
"searchValue": "상반기건강차체험안내",
|
||||
"value": "125",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)"
|
||||
"item": "문구 (상반기건강차체험안내)/③ 크기-너비 (125 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"searchValue": "상반기건강차체험안내",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)"
|
||||
"item": "문구 (상반기건강차체험안내)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"searchValue": "상반기건강차체험안내",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)"
|
||||
"item": "문구 (상반기건강차체험안내)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"searchValue": "상반기건강차체험안내",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (상반기건강차체험안내)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"searchValue": "상반기건강차체험안내",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)"
|
||||
"item": "문구 (상반기건강차체험안내)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "갯",
|
||||
"searchValue": "차",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
@@ -116,23 +116,23 @@
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "갯",
|
||||
"value": "굴림",
|
||||
"searchValue": "차",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (굴림)"
|
||||
"item": "어/② 글씨체 (굴림체)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "갯",
|
||||
"value": "219,207,102",
|
||||
"searchValue": "차",
|
||||
"value": "231,215,17",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:219,207,102)"
|
||||
"item": "어/③ 면색 : 색상(RGB:231,215,17)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "갯",
|
||||
"searchValue": "차",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
@@ -141,126 +141,126 @@
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "한산해안 갯벌체험 교실",
|
||||
"searchValue": "새로운 취미를 가질 수 있는 기회",
|
||||
"value": "BOLD",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한산해안 갯벌체험 교실)/① BOLD"
|
||||
"item": "문구 (새로운 취미를 가질 수 있는 기회)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "한산해안 갯벌체험 교실",
|
||||
"searchValue": "새로운 취미를 가질 수 있는 기회",
|
||||
"value": "ITALIC",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한산해안 갯벌체험 교실)/② ITALIC"
|
||||
"item": "문구 (새로운 취미를 가질 수 있는 기회)/② ITALIC"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "≪",
|
||||
"char2": "≫",
|
||||
"char1": "◇",
|
||||
"char2": "◇",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ≪, ② ≫, ③ ※"
|
||||
"item": "① ◇ , ② ◇ , ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "돋움",
|
||||
"searchValue": "체험안내",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (≪ 행사안내 ≫)/① 글씨체 (돋움)"
|
||||
"item": "문구 (◇ 체험안내 ◇)/① 글씨체 (궁서)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "행사안내",
|
||||
"match_str": "체험안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (≪ 행사안내 ≫)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (◇ 체험안내 ◇)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
|
||||
"searchValue": "서울시 청담동 서울필문화센터 1층",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/① BOLD"
|
||||
"item": "문구 (서울시 청담동 서울필문화센터 1층)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
|
||||
"searchValue": "서울시 청담동 서울필문화센터 1층",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/② UNDERLINE"
|
||||
"item": "문구 (서울시 청담동 서울필문화센터 1층)/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "신청안내",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 10,
|
||||
"Left": 15,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 11.",
|
||||
"searchValue": "2026. 02. 28.",
|
||||
"value": "1400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 11.)/① 크기 (1400)",
|
||||
"item": "문구 (2026. 02. 28.)/① 크기 (1400)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 11.",
|
||||
"searchValue": "2026. 02. 28.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 02. 28.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "견고딕",
|
||||
"searchValue": "서울필문화센터",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (한산시청해양자원육성과)/① 글씨체 (견고딕)"
|
||||
"item": "문구 (서울필문화센터)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "2200",
|
||||
"searchValue": "서울필문화센터",
|
||||
"value": "2500",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산시청해양자원육성과)/② 크기 (2200)"
|
||||
"item": "문구 (서울필문화센터)/② 크기 (2500)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"searchValue": "서울필문화센터",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산시청해양자원육성과)/③ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (서울필문화센터)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "돋움체",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (돋움체)"
|
||||
"item": "문구 (DIAT)/① 글꼴 (굴림)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
@@ -280,7 +280,7 @@
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "DecagonCircle",
|
||||
"value": "LatinCapital",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
|
||||
@@ -308,7 +308,7 @@
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomCenter",
|
||||
"value": "BottomRight",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
@@ -322,7 +322,7 @@
|
||||
"30": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "200",
|
||||
"first_word": "갯",
|
||||
"first_word": "차",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 200% 설정",
|
||||
@@ -361,14 +361,14 @@
|
||||
"value": "60",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (살아있는 갯벌)/① 크기-너비 (60 mm)"
|
||||
"item": "문구 (홍차에 대하여)/① 크기-너비 (60 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (살아있는 갯벌)/② 크기-높이 (12 mm)"
|
||||
"item": "문구 (홍차에 대하여)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
@@ -378,7 +378,7 @@
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (살아있는 갯벌)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"item": "문구 (홍차에 대하여)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
@@ -386,43 +386,43 @@
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (살아있는 갯벌)/④ 글상자 모서리 (반원)",
|
||||
"item": "문구 (홍차에 대하여)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "249,173,168",
|
||||
"value": "241,183,180",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)"
|
||||
"item": "문구 (홍차에 대하여)/⑤ 채우기 : 색상(RGB:241,183,180)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
"item": "문구 (홍차에 대하여)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
"item": "문구 (홍차에 대하여)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "굴림체",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)"
|
||||
"item": "문구 (홍차에 대하여)/⑧ 글씨체 (견고딕)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "1700",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)",
|
||||
"item": "문구 (홍차에 대하여)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
@@ -430,22 +430,22 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (홍차에 대하여)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"item": "① 파일명 \"그림E.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "80",
|
||||
"value": "85",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (80 mm)"
|
||||
"item": "② 크기-너비 (85 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
@@ -463,88 +463,88 @@
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "23",
|
||||
"value": "22",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"searchValue": "1. 홍차의 역사",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)"
|
||||
"item": "문구① (1. 홍차의 역사)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"searchValue": "1. 홍차의 역사",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 갯벌의 가치)/② 크기 (1200)"
|
||||
"item": "문구① (1. 홍차의 역사)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"searchValue": "1. 홍차의 역사",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 갯벌의 가치)/③ 진하게"
|
||||
"item": "문구① (1. 홍차의 역사)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"searchValue": "2. 홍차의 효능",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/① 글씨체 (중고딕)"
|
||||
"item": "문구② (2. 홍차의 효능)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"searchValue": "2. 홍차의 효능",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/② 크기 (1200)"
|
||||
"item": "문구② (2. 홍차의 효능)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"searchValue": "2. 홍차의 효능",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/③ 진하게"
|
||||
"item": "문구② (2. 홍차의 효능)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "리아스식 해안",
|
||||
"option": "효소",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (리아스식 해안)/① 각주 설정 및 문구 입력"
|
||||
"item": "문구 (효소)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "돋움체",
|
||||
"searchValue": "세포 안에서 합성되어 촉매 구실을 하는 화합물",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (리아스식 해안)/② 글씨체 (돋움체)"
|
||||
"item": "문구 (효소)/② 글씨체 (굴림)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"searchValue": "세포 안에서 합성되어 촉매 구실을 하는 화합물",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (리아스식 해안)/③ 크기 (9pt)"
|
||||
"item": "문구 (효소)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "CircledLatinSmall",
|
||||
"searchValue": "세포 안에서 합성되어 촉매 구실을 하는 화합물",
|
||||
"value": "Digit",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
@@ -570,81 +570,81 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Microorganism')])",
|
||||
"ignoreWord": "Microorganism",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Culture",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"item": "Culture/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["조수", "潮水"],
|
||||
["유기물", "有機物"],
|
||||
["정화", "淨化"],
|
||||
["조수", "潮水"],
|
||||
["분포", "分布"]
|
||||
["홍차", "紅茶"],
|
||||
["추정", "推定"],
|
||||
["재배", "栽培"],
|
||||
["특징", "特徵"],
|
||||
["건강", "健康"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 조수(潮水), ② 유기물(有機物), ③ 정화(淨化), ④ 조수(潮水), ⑤ 분포(分布)"
|
||||
"item": "① 홍차(紅茶), ② 추정(推定), ③ 재배(栽培), ④ 특징(特徵), ⑤ 건강(健康)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'급이원활')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'세기중반')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…산소공급은 원활하고…)>'은' → '이' 글자바꿈"
|
||||
"item": "문구 (…17제기 중반 네덜란드와…)>'제' → '세' 글자바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면이바다')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'산된홍차')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈"
|
||||
"item": "문구 (…홍차는 생산된 세계적으로 유명해졌다는…)>'홍차는 / 생산된' 순서바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "굴림",
|
||||
"searchValue": "국내 홍차 선호도(%)",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/① 글씨체 (굴림)"
|
||||
"item": "제목 문구 (국내 홍차 선호도(%))/① 글씨체 (돋움체)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "1100",
|
||||
"searchValue": "국내 홍차 선호도(%)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/② 크기 (1100)"
|
||||
"item": "제목 문구 (국내 홍차 선호도(%))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"searchValue": "국내 홍차 선호도(%)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/③ 진하게"
|
||||
"item": "제목 문구 (국내 홍차 선호도(%))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"searchValue": "국내 홍차 선호도(%)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (국내 홍차 선호도(%))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "154,235,85",
|
||||
"value": "251,244,70",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:154,235,85)"
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:251,244,70)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
@@ -673,11 +673,11 @@
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "궁서",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (궁서)",
|
||||
"item": "글자모양/① 글씨체 (굴림)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
@@ -695,8 +695,8 @@
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "SUM",
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
@@ -705,11 +705,11 @@
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "원뿔형 누적 가로 막대형",
|
||||
"chart_type": "꺾은선형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (원뿔형 누적 가로 막대형)",
|
||||
"item": "① 종류 (꺾은선형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
@@ -744,32 +744,32 @@
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "궁서체",
|
||||
"searchValue": "국내 홍차 선호도",
|
||||
"value": "휴먼옛체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/① 글씨체 (궁서체)"
|
||||
"item": "제목 문구 (국내 홍차 선호도)/① 글씨체 (휴먼옛체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "1200",
|
||||
"searchValue": "국내 홍차 선호도",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)"
|
||||
"item": "제목 문구 (국내 홍차 선호도)/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "i",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"option": "b",
|
||||
"searchValue": "국내 홍차 선호도",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/③ 기울임",
|
||||
"item": "제목 문구 (국내 홍차 선호도)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
@@ -784,7 +784,7 @@
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
@@ -792,7 +792,7 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
@@ -807,7 +807,7 @@
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
@@ -815,7 +815,7 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
@@ -830,7 +830,7 @@
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
@@ -46,65 +46,65 @@
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"value": "굴림체",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국전통공예박람회)/① 글씨체 (굴림체)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"value": "28,61,98",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "48,117,196",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (한국전통공예박람회)/② 채우기 : 색상(RGB:28,61,98)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/② 채우기 : 색상(RGB:48,117,196)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"value": "110",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "130",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한국전통공예박람회)/③ 크기-너비 (110 mm)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/③ 크기-너비 (130 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한국전통공예박람회)/④ 크기-높이 (20 mm)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국전통공예박람회)/⑤ 위치 (글자처럼 취급)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국전통공예박람회)/⑥ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "한국전통공예박람회",
|
||||
"searchValue": "한국평생교육학회학술포럼",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (한국전통공예박람회)/⑦ 글맵시모양 (육안확인)"
|
||||
"item": "문구 (한국평생교육학회학술포럼)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "전",
|
||||
"searchValue": "한",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
@@ -116,23 +116,23 @@
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "전",
|
||||
"value": "궁서체",
|
||||
"searchValue": "한",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (궁서체)"
|
||||
"item": "어/② 글씨체 (굴림)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "전",
|
||||
"value": "236,217,74",
|
||||
"searchValue": "한",
|
||||
"value": "248,190,122",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:236,217,74)"
|
||||
"item": "어/③ 면색 : 색상(RGB:248,190,122)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "전",
|
||||
"searchValue": "한",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
@@ -141,31 +141,31 @@
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "다양한 분야의 장인과 예술가들이 참여",
|
||||
"searchValue": "평생교육사 양성 교육과정 현황과 개선 방안 탐색",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (다양한 분야의 장인과 예술가들이 참여)/① BOLD"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "다양한 분야의 장인과 예술가들이 참여",
|
||||
"searchValue": "평생교육사 양성 교육과정 현황과 개선 방안 탐색",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (다양한 분야의 장인과 예술가들이 참여)/② UNDERLINE"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "●",
|
||||
"char2": "●",
|
||||
"char1": "◆",
|
||||
"char2": "◆",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ●, ② ●, ③ ※"
|
||||
"item": "① ◆, ② ◆, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
@@ -173,7 +173,7 @@
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (● 행사안내 ●)/① 글씨체 (궁서)"
|
||||
"item": "문구 (◆ 행사안내 ◆)/① 글씨체 (궁서)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
@@ -181,25 +181,25 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (● 행사안내 ●)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (◆ 행사안내 ◆)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr)",
|
||||
"searchValue": "한국평생교육학회 홈페이지(http://www.ihd.or.kr) 참조",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr))/① ITALIC"
|
||||
"item": "문구 (한국평생교육학회 홈페이지(http://www.ihd.or.kr) 참조)/① ITALIC"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr)",
|
||||
"searchValue": "한국평생교육학회 홈페이지(http://www.ihd.or.kr) 참조",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr))/② UNDERLINE"
|
||||
"item": "문구 (한국평생교육학회 홈페이지(http://www.ihd.or.kr) 참조)/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
@@ -215,52 +215,52 @@
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"value": "1400",
|
||||
"searchValue": "2026. 01. 24.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/① 크기 (1400)",
|
||||
"item": "문구 (2026. 01. 24.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 01. 24.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 01. 24.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "한국 전통공예 협의회",
|
||||
"value": "굴림",
|
||||
"searchValue": "한국평생교육학회",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (한국 전통공예 협의회)/① 글씨체 (굴림)"
|
||||
"item": "문구 (한국평생교육학회)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "한국 전통공예 협의회",
|
||||
"value": "2600",
|
||||
"searchValue": "한국평생교육학회",
|
||||
"value": "2500",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국 전통공예 협의회)/② 크기 (2600)"
|
||||
"item": "문구 (한국평생교육학회)/② 크기 (2500)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "한국 전통공예 협의회",
|
||||
"searchValue": "한국평생교육학회",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국 전통공예 협의회)/③ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (한국평생교육학회)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "궁서",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (궁서)"
|
||||
"item": "문구 (DIAT)/① 글꼴 (굴림체)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
@@ -283,7 +283,7 @@
|
||||
"value": "LatinCapital",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
@@ -311,7 +311,7 @@
|
||||
"value": "BottomRight",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
"item": "오른쪽 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
@@ -331,7 +331,7 @@
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "200",
|
||||
"first_word": "전",
|
||||
"first_word": "한",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 200% 설정",
|
||||
@@ -370,14 +370,14 @@
|
||||
"value": "65",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (한국 전통공예)/① 크기-너비 (65 mm)"
|
||||
"item": "문구 (평생교육시대)/① 크기-너비 (65 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (한국 전통공예)/② 크기-높이 (12 mm)"
|
||||
"item": "문구 (평생교육시대)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
@@ -387,51 +387,51 @@
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (한국 전통공예)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"item": "문구 (평생교육시대)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"value": "20",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (한국 전통공예)/④ 글상자 모서리 (반원)",
|
||||
"item": "문구 (평생교육시대)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "202,86,167",
|
||||
"value": "224,122,146",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (한국 전통공예)/⑤ 채우기 : 색상(RGB:202,86,167)"
|
||||
"item": "문구 (평생교육시대)/⑤ 채우기 : 색상(RGB:224,122,146)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (한국 전통공예)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
"item": "문구 (평생교육시대)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (한국 전통공예)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
"item": "문구 (평생교육시대)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "견고딕",
|
||||
"value": "휴먼옛체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (한국 전통공예)/⑧ 글씨체 (견고딕)"
|
||||
"item": "문구 (평생교육시대)/⑧ 글씨체 (휴먼옛체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (한국 전통공예)/⑨ 글씨크기 (2000)",
|
||||
"item": "문구 (평생교육시대)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
@@ -439,14 +439,14 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (한국 전통공예)/⑩ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (평생교육시대)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림C.jpg\" 삽입",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
@@ -479,81 +479,81 @@
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 전통공예",
|
||||
"value": "굴림체",
|
||||
"searchValue": "1. 평생교육이란?",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 전통공예)/① 글씨체 (굴림체)"
|
||||
"item": "문구① (1. 평생교육이란?)/① 글씨체 (굴림)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 전통공예",
|
||||
"searchValue": "1. 평생교육이란?",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 전통공예)/② 크기 (1200)"
|
||||
"item": "문구① (1. 평생교육이란?)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 전통공예",
|
||||
"searchValue": "1. 평생교육이란?",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 전통공예)/③ 진하게"
|
||||
"item": "문구① (1. 평생교육이란?)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 전통 공예 산업",
|
||||
"value": "굴림체",
|
||||
"searchValue": "2. 평생교육사의 개념",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 전통 공예 산업)/① 글씨체 (굴림체)"
|
||||
"item": "문구② (2. 평생교육사의 개념)/① 글씨체 (굴림)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 전통 공예 산업",
|
||||
"searchValue": "2. 평생교육사의 개념",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 전통 공예 산업)/② 크기 (1200)"
|
||||
"item": "문구② (2. 평생교육사의 개념)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 전통 공예 산업",
|
||||
"searchValue": "2. 평생교육사의 개념",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 전통 공예 산업)/③ 진하게"
|
||||
"item": "문구② (2. 평생교육사의 개념)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "업사이클링",
|
||||
"option": "유네스코",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (업사이클링)/① 각주 설정 및 문구 입력"
|
||||
"item": "문구 (유네스코)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함",
|
||||
"value": "중고딕",
|
||||
"searchValue": "교육, 과학, 문화의 보급 및 교류를 통하여 국가 간의 협력 증진을 목적으로 설립된 국제연합전문기구",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (업사이클링)/② 글씨체 (중고딕)"
|
||||
"item": "문구 (유네스코)/② 글씨체 (궁서)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함",
|
||||
"searchValue": "교육, 과학, 문화의 보급 및 교류를 통하여 국가 간의 협력 증진을 목적으로 설립된 국제연합전문기구",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (업사이클링)/③ 크기 (9pt)"
|
||||
"item": "문구 (유네스코)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함",
|
||||
"value": "CircledIdeograph",
|
||||
"searchValue": "교육, 과학, 문화의 보급 및 교류를 통하여 국가 간의 협력 증진을 목적으로 설립된 국제연합전문기구",
|
||||
"value": "UserChar",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
@@ -579,81 +579,81 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Upcycling')])",
|
||||
"ignoreWord": "Upcycling",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Development",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Upcycling/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"item": "Development/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["차원", "次元"],
|
||||
["사례", "事例"],
|
||||
["주목", "注目"],
|
||||
["소비", "消費"],
|
||||
["명장", "名匠"]
|
||||
["평생", "平生"],
|
||||
["교육", "敎育"],
|
||||
["신념", "信念"],
|
||||
["현장", "現場"],
|
||||
["자격", "資格"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 차원(次元), ② 사례(事例), ③ 주목(注目), ④ 소비(消費), ⑤ 명장(名匠)"
|
||||
"item": "① 평생(平生), ② 교육(敎育), ③ 신념(信念), ④ 현장(現場), ⑤ 자격(資格)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'국인관광')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'하는사람')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (...활성화되면서 관광객과 외국인 일반...)>'관광객과 / 외국인' 순서바꿈"
|
||||
"item": "문구 (…어느 하나에 사람에게 해당하는 평생교육사의…)>'사람에게' / '해당하는' 순서바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'예품등이')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'21과목이다')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (...디지털 아트 공예품 통이...)>'통' → '등' 글자바꿈"
|
||||
"item": "문구 (…총 21종목이다…)>'종' → '과' 글자바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급(단위: 명)",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/① 글씨체 (돋움)"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급(단위: 명))/① 글씨체 (돋움)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급(단위: 명)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/② 크기 (1200)"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급(단위: 명))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급(단위: 명)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/③ 진하게"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급(단위: 명))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급(단위: 명)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급(단위: 명))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "138,194,217",
|
||||
"value": "233,174,43",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:138,194,217)"
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:233,174,43)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
@@ -714,11 +714,11 @@
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "표식만 있는 분산형",
|
||||
"chart_type": "묶은 세로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (표식만 있는 분산형)",
|
||||
"item": "① 종류 (묶은 세로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
@@ -753,28 +753,28 @@
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"value": "굴림",
|
||||
"searchValue": "평생교육사 자격증 발급",
|
||||
"value": "바탕체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/① 글씨체 (굴림)"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급)/① 글씨체 (바탕체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/② 크기 (1300)"
|
||||
"item": "제목 문구 (평생교육사 자격증 발급)/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "전통 공예 산업 성장률(단위: %)",
|
||||
"searchValue": "평생교육사 자격증 발급",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/③ 기울임",
|
||||
"item": "제목 문구 (평생교육사 자격증 발급)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
@@ -55,19 +55,19 @@
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "전통주페어링특강안내",
|
||||
"value": "187,57,49",
|
||||
"value": "28,145,110",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (전통주페어링특강안내)/② 채우기 : 색상(RGB:187,57,49)"
|
||||
"item": "문구 (전통주페어링특강안내)/② 채우기 : 색상(RGB:28,145,110)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "전통주페어링특강안내",
|
||||
"value": "110",
|
||||
"value": "120",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (전통주페어링특강안내)/③ 크기-너비 (110 mm)"
|
||||
"item": "문구 (전통주페어링특강안내)/③ 크기-너비 (120 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
@@ -117,18 +117,18 @@
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "혼",
|
||||
"value": "중고딕",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (중고딕)"
|
||||
"item": "어/② 글씨체 (돋움체)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "혼",
|
||||
"value": "252,231,95",
|
||||
"value": "250,167,83",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:252,231,95)"
|
||||
"item": "어/③ 면색 : 색상(RGB:250,167,83)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
@@ -141,19 +141,19 @@
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것",
|
||||
"searchValue": "한식에 가장 잘 어울리는 전통주를 추천",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것)/① BOLD"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것",
|
||||
"searchValue": "한식에 가장 잘 어울리는 전통주를 추천",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (전통주는 단순히 전통만 고집하는 오래된 것이 아니라는 것)/② UNDERLINE"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
@@ -170,10 +170,10 @@
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "굴림체",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (★ 행사안내 ★)/① 글씨체 (굴림체)"
|
||||
"item": "문구 (★ 행사안내 ★)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
@@ -186,49 +186,49 @@
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
|
||||
"value": "ITALIC",
|
||||
"searchValue": "서울 목동 현대백화점 요리실 1호, 2호, 3호",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/① ITALIC"
|
||||
"item": "문구 (서울 목동 현대백화점 요리실 1호, 2호, 3호)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
|
||||
"value": "UNDERLINE",
|
||||
"searchValue": "서울 목동 현대백화점 요리실 1호, 2호, 3호",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 11월 23일(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/② UNDERLINE"
|
||||
"item": "문구 (서울 목동 현대백화점 요리실 1호, 2호, 3호)/② ITALIC"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 12,
|
||||
"Indent": 14
|
||||
"Left": 10,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (14)",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 11. 22.",
|
||||
"searchValue": "2026. 03. 28.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 11. 22.)/① 크기 (1300)",
|
||||
"item": "문구 (2026. 03. 28.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 11. 22.",
|
||||
"searchValue": "2026. 03. 28.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 03. 28.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
@@ -367,10 +367,10 @@
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"value": "55",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (한국의 전통주)/① 크기-너비 (60 mm)"
|
||||
"item": "문구 (한국의 전통주)/① 크기-너비 (55 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
@@ -395,15 +395,15 @@
|
||||
"value": "20",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (한국의 전통주)/④ 글상자 모서리 (반원)",
|
||||
"item": "문구 (한국의 전통주)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "53,135,145",
|
||||
"value": "119,214,225",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (한국의 전통주)/⑤ 채우기 : 색상(RGB:53,135,145)"
|
||||
"item": "문구 (한국의 전통주)/⑤ 채우기 : 색상(RGB:119,214,225)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
@@ -421,10 +421,10 @@
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "궁서",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (한국의 전통주)/⑧ 글씨체 (궁서)"
|
||||
"item": "문구 (한국의 전통주)/⑧ 글씨체 (궁서체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
@@ -446,15 +446,15 @@
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림B.jpg\" 삽입",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "85",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (85 mm)"
|
||||
"item": "② 크기-너비 (80 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
@@ -537,10 +537,10 @@
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "밀레니얼 세대와 Z세대를 통틀어 지칭하는 신조어",
|
||||
"value": "바탕체",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (MZ세대)/② 글씨체 (바탕체)"
|
||||
"item": "문구 (MZ세대)/② 글씨체 (굴림)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
@@ -553,9 +553,9 @@
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "밀레니얼 세대와 Z세대를 통틀어 지칭하는 신조어",
|
||||
"value": "UserChar",
|
||||
"value": "CircledHangulJamo",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"category": "PageNumber",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
@@ -579,13 +579,13 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Paradigm')])",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Paradigm",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Paradigm/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
"desc": ""
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
@@ -602,11 +602,11 @@
|
||||
"item": "① 양조(釀造), ② 노동자(勞動者), ③ 문인(文人), ④ 백주(白酒), ⑤ 음미(吟味)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'있는술을')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'에도막걸')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…즐길 수 있게 술을 찾아 마시는 것이…)>'게' → '는' 글자바꿈"
|
||||
"item": "문구 (…문인(文人)들의 문집에토 막걸리로…)>'토' → '도' 글자바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'하는문화')])",
|
||||
@@ -617,35 +617,35 @@
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "연도별 전통주 산업(단위:억원)",
|
||||
"searchValue": "월평균 주종별 음주(단위:%)",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (연도별 전통주 산업(단위:억원))/① 글씨체 (돋움체)"
|
||||
"item": "제목 문구 (월평균 주종별 음주(단위:%))/① 글씨체 (돋움체)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "연도별 전통주 산업(단위:억원)",
|
||||
"searchValue": "월평균 주종별 음주(단위:%)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (연도별 전통주 산업(단위:억원))/② 크기 (1200)"
|
||||
"item": "제목 문구 (월평균 주종별 음주(단위:%))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "연도별 전통주 산업(단위:억원)",
|
||||
"searchValue": "월평균 주종별 음주(단위:%)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (연도별 전통주 산업(단위:억원))/③ 진하게"
|
||||
"item": "제목 문구 (월평균 주종별 음주(단위:%))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "연도별 전통주 산업(단위:억원)",
|
||||
"searchValue": "월평균 주종별 음주(단위:%)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (연도별 전통주 산업(단위:억원))/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (월평균 주종별 음주(단위:%))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
@@ -704,8 +704,8 @@
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "SUM",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
@@ -714,11 +714,11 @@
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "누적 세로 막대형",
|
||||
"chart_type": "곡선이 있는 분산형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (누적 세로 막대형)",
|
||||
"item": "① 종류 (곡선이 있는 분산형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
@@ -753,36 +753,36 @@
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "연도별 전통주 산업",
|
||||
"value": "굴림체",
|
||||
"searchValue": "월평균 주종별 음주",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (연도별 전통주 산업)/① 글씨체 (굴림체)"
|
||||
"item": "제목 문구 (월평균 주종별 음주)/① 글씨체 (궁서)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "연도별 전통주 산업",
|
||||
"searchValue": "월평균 주종별 음주",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (연도별 전통주 산업)/② 크기 (1300)"
|
||||
"item": "제목 문구 (월평균 주종별 음주)/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "연도별 전통주 산업",
|
||||
"searchValue": "월평균 주종별 음주",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (연도별 전통주 산업)/③ 기울임",
|
||||
"item": "제목 문구 (월평균 주종별 음주)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "맑은 고딕",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (바탕)"
|
||||
"item": "X축/① 글꼴 (맑은 고딕)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -801,11 +801,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "맑은 고딕",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (바탕)"
|
||||
"item": "Y축/① 글꼴 (맑은 고딕)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -824,11 +824,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "맑은 고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (바탕)"
|
||||
"item": "범례/① 글꼴 (맑은 고딕)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
850
JSON/2603/DIW_2603B.json
Normal file
850
JSON/2603/DIW_2603B.json
Normal file
@@ -0,0 +1,850 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Top": 20,
|
||||
"Bottom": 20,
|
||||
"Left": 20,
|
||||
"Right": 20,
|
||||
"Header": 10,
|
||||
"Footer": 10,
|
||||
"Gutter": 0
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "슬기로운미디어생활특강안내",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (슬기로운미디어생활특강안내)/① 글씨체 (돋움체)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "슬기로운미디어생활특강안내",
|
||||
"value": "146,44,137",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (슬기로운미디어생활특강안내)/② 채우기 : 색상(RGB:146,44,137)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "슬기로운미디어생활특강안내",
|
||||
"value": "130",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (슬기로운미디어생활특강안내)/③ 크기-너비 (130 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "슬기로운미디어생활특강안내",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (슬기로운미디어생활특강안내)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "슬기로운미디어생활특강안내",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (슬기로운미디어생활특강안내)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "슬기로운미디어생활특강안내",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (슬기로운미디어생활특강안내)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "슬기로운미디어생활특강안내",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (슬기로운미디어생활특강안내)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "이",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "어/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "이",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (궁서)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "이",
|
||||
"value": "172,235,62",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:172,235,62)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "이",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "어/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "동영상 콘텐츠의 현재와 미래",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (동영상 콘텐츠의 현재와 미래)/① ITALIC"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "동영상 콘텐츠의 현재와 미래",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (동영상 콘텐츠의 현재와 미래)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "◎",
|
||||
"char2": "◎",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ◎, ② ◎, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "맑은 고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (◎ 행사안내 ◎)/① 글씨체 (맑은 고딕)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "행사안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (◎ 행사안내 ◎)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "중랑미디어센터 홈페이지(http://www.ihd.or.kr) 슬기로운 미디어 생활",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (중랑미디어센터 홈페이지(http://www.ihd.or.kr) 슬기로운 미디어 생활)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "중랑미디어센터 홈페이지(http://www.ihd.or.kr) 슬기로운 미디어 생활",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (중랑미디어센터 홈페이지(http://www.ihd.or.kr) 슬기로운 미디어 생활)/② ITALIC"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 15,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2026. 03. 28.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 03. 28.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2026. 03. 28.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 03. 28.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "중랑미디어센터",
|
||||
"value": "휴먼옛체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (중랑미디어센터)/① 글씨체 (휴먼옛체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "중랑미디어센터",
|
||||
"value": "2300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (중랑미디어센터)/② 크기 (2300)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "중랑미디어센터",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (중랑미디어센터)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (중고딕)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "RomanCapital",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (I,II,III 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
},
|
||||
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomLeft",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
"오른쪽 아래": "BottomRight",
|
||||
"왼쪽 아래": "BottomLeft"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]",
|
||||
"searchValue": "http",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "hyperlink",
|
||||
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
|
||||
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
|
||||
},
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "190",
|
||||
"first_word": "이",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 190% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
|
||||
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
|
||||
"value": {
|
||||
"header_inside": true,
|
||||
"all_double_slim": true
|
||||
},
|
||||
"points": 4,
|
||||
"category": "PageBorder",
|
||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||
},
|
||||
"2": {
|
||||
"path": "count(//SECTION)>1",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "① 구역나누기",
|
||||
"desc": "섹션이 1개 이상이면 점수부여"
|
||||
},
|
||||
"3": {
|
||||
"path": "./TEXT/COLDEF/@Count",
|
||||
"value": "2",
|
||||
"points": 3,
|
||||
"category": "TwoColumn",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (방송 콘텐츠)/① 크기-너비 (60 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (방송 콘텐츠)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
"value": {
|
||||
"Style": "DoubleSlim",
|
||||
"Width": "283"
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (방송 콘텐츠)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (방송 콘텐츠)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "227,220,193",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (방송 콘텐츠)/⑤ 채우기 : 색상(RGB:227,220,193)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (방송 콘텐츠)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (방송 콘텐츠)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (방송 콘텐츠)/⑧ 글씨체 (견고딕)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (방송 콘텐츠)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (방송 콘텐츠)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림B.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (80 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "40",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (40 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
"value": "0",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "24",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 최근 콘텐츠 동향",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 최근 콘텐츠 동향)/① 글씨체 (돋움)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 최근 콘텐츠 동향",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 최근 콘텐츠 동향)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 최근 콘텐츠 동향",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 최근 콘텐츠 동향)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. OTT 서비스의 미래",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. OTT 서비스의 미래)/① 글씨체 (돋움)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. OTT 서비스의 미래",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. OTT 서비스의 미래)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. OTT 서비스의 미래",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. OTT 서비스의 미래)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "코로나",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (코로나)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "새로운 유형의 바이러스에 의한 급성 호흡기 전염병",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (코로나)/② 글씨체 (중고딕)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "새로운 유형의 바이러스에 의한 급성 호흡기 전염병",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (코로나)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "새로운 유형의 바이러스에 의한 급성 호흡기 전염병",
|
||||
"value": "DecagonCircle",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Streaming",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Streaming/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["시청", "視聽"],
|
||||
["송출", "送出"],
|
||||
["취향", "趣向"],
|
||||
["성장", "成長"],
|
||||
["근절", "根絶"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 시청(視聽), ② 송출(送出), ③ 취향(趣向), ④ 성장(成長), ⑤ 근절(根絶)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'간에원하')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…언제든지 원하는 원하는 시간에 순서로…)>'원하는' / '시간에' 순서바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'수익구조')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…이익구조가 열악하다.…)>'이' → '수' 글자바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "동영상 플랫폼 이용률(%)",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (동영상 플랫폼 이용률(%))/① 글씨체 (굴림체)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "동영상 플랫폼 이용률(%)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (동영상 플랫폼 이용률(%))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "동영상 플랫폼 이용률(%)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (동영상 플랫폼 이용률(%))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "동영상 플랫폼 이용률(%)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (동영상 플랫폼 이용률(%))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "95,229,218",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:95,229,218)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "위쪽 제목 셀/② 진하게",
|
||||
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
|
||||
},
|
||||
"39": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"value": "DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/① 이중실선"
|
||||
},
|
||||
"40": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"value": "0.5mm",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/② 0.5mm"
|
||||
},
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (궁서체)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
|
||||
"value": "1000",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/② 크기 (1000)"
|
||||
},
|
||||
"43": {
|
||||
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
"item": "블록 계산식/합계",
|
||||
"desc": "option값에 합계는 SUM / 평균은 AVG"
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "묶은 세로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (묶은 세로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
|
||||
"value": "out",
|
||||
"points": 2,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "② 값 축 주 눈금선",
|
||||
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
|
||||
},
|
||||
"47": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-너비 (80 mm)"
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
|
||||
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "동영상 플랫폼 이용률",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (동영상 플랫폼 이용률)/① 글씨체 (굴림)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "동영상 플랫폼 이용률",
|
||||
"value": "1400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (동영상 플랫폼 이용률)/② 크기 (1400)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "동영상 플랫폼 이용률",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (동영상 플랫폼 이용률)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "바탕체",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (바탕체)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/② 크기 (9pt)"
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "바탕체",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (바탕체)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/② 크기 (9pt)"
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "바탕체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (바탕체)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/② 크기 (9pt)"
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -46,61 +46,61 @@
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "전통된장만들기체험교실",
|
||||
"value": "맑은 고딕",
|
||||
"searchValue": "천혜의비경철쭉",
|
||||
"value": "맑은고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전통된장만들기체험교실)/① 글씨체 (맑은 고딕)"
|
||||
"item": "문구 (천혜의비경철쭉)/① 글씨체 (맑은고딕)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "전통된장만들기체험교실",
|
||||
"value": "153,51,102",
|
||||
"searchValue": "천혜의비경철쭉",
|
||||
"value": "23,48,108",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (전통된장만들기체험교실)/② 채우기 : 색상(RGB:153,51,102)"
|
||||
"item": "문구 (천혜의비경철쭉)/② 채우기 : 색상(RGB:23,48,108)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "전통된장만들기체험교실",
|
||||
"value": "120",
|
||||
"searchValue": "천혜의비경철쭉",
|
||||
"value": "110",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (전통된장만들기체험교실)/③ 크기-너비 (120 mm)"
|
||||
"item": "문구 (천혜의비경철쭉)/③ 크기-너비 (120 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "전통된장만들기체험교실",
|
||||
"searchValue": "천혜의비경철쭉",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (전통된장만들기체험교실)/④ 크기-높이 (20 mm)"
|
||||
"item": "문구 (천혜의비경철쭉)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "전통된장만들기체험교실",
|
||||
"searchValue": "천혜의비경철쭉",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전통된장만들기체험교실)/⑤ 위치 (글자처럼 취급)"
|
||||
"item": "문구 (천혜의비경철쭉)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "전통된장만들기체험교실",
|
||||
"searchValue": "천혜의비경철쭉",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전통된장만들기체험교실)/⑥ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (천혜의비경철쭉)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "전통된장만들기체험교실",
|
||||
"searchValue": "천혜의비경철쭉",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (전통된장만들기체험교실)/⑦ 글맵시모양 (육안확인)"
|
||||
"item": "문구 (슬기로운국제사진공모전)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
@@ -117,18 +117,18 @@
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "전",
|
||||
"value": "돋움체",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (돋움체)"
|
||||
"item": "어/② 글씨체 (굴림)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "전",
|
||||
"value": "83,246,225",
|
||||
"value": "237,134,232",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:83,246,225)"
|
||||
"item": "어/③ 면색 : 색상(RGB:237,134,232)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
@@ -141,65 +141,65 @@
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "전통된장 만들기 체험교실",
|
||||
"searchValue": "바래봉 해발 약 500m에서 시작해 점점 정상으로",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (전통된장 만들기 체험교실)/① BOLD"
|
||||
"item": "문구 (바래봉 해발 약 500m에서 시작해 점점 정상으로)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "전통된장 만들기 체험교실",
|
||||
"searchValue": "바래봉 해발 약 500m에서 시작해 점점 정상으로",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (전통된장 만들기 체험교실)/② ITALIC"
|
||||
"item": "문구 (바래봉 해발 약 500m에서 시작해 점점 정상으로)/② ITALIC"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "★",
|
||||
"char2": "★",
|
||||
"char1": "●",
|
||||
"char2": "●",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ★, ② ★, ③ ※"
|
||||
"item": "① ● , ② ● , ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "체험안내",
|
||||
"value": "굴림체",
|
||||
"searchValue": "참여안내",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (★ 체험안내 ★)/① 글씨체 (굴림체)"
|
||||
"item": "문구 (● 참여안내 ●)/① 글씨체 (궁서)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "체험안내",
|
||||
"match_str": "참여안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (★ 체험안내 ★)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (● 참여안내 ●)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능",
|
||||
"searchValue": "홈페이지(http://www.ihd.or.kr) 참고",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능)/① ITALIC"
|
||||
"item": "문구 (홈페이지(http://www.ihd.or.kr) 참고)/① ITALIC"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능",
|
||||
"searchValue": "홈페이지(http://www.ihd.or.kr) 참고",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (초등학생 자녀를 둔 학부모 30명(자녀 2인까지 동반 가능)/② UNDERLINE"
|
||||
"item": "문구 (홈페이지(http://www.ihd.or.kr) 참고)/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
@@ -215,44 +215,44 @@
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 11. 22.",
|
||||
"searchValue": "2026. 03. 28.",
|
||||
"value": "1400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 11. 22.)/① 크기 (1400)",
|
||||
"item": "문구 (2026. 03. 28.)/① 크기 (1400)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 11. 22.",
|
||||
"searchValue": "2026. 03. 28.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 03. 28.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "전통음식관광협회",
|
||||
"value": "견고딕",
|
||||
"searchValue": "운봉바래봉철쭉제",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (전통음식관광협회)/① 글씨체 (견고딕)"
|
||||
"item": "문구 (운봉바래봉철쭉제)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "전통음식관광협회",
|
||||
"value": "2400",
|
||||
"searchValue": "운봉바래봉철쭉제",
|
||||
"value": "2600",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전통음식관광협회)/② 크기 (2400)"
|
||||
"item": "문구 (운봉바래봉철쭉제)/② 크기 (2600)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "전통음식관광협회",
|
||||
"searchValue": "운봉바래봉철쭉제",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전통음식관광협회)/③ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (운봉바래봉철쭉제)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
@@ -283,7 +283,7 @@
|
||||
"value": "LatinCapital",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"item": "① 쪽 번호 매기기 (I,II,III 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
@@ -308,7 +308,7 @@
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomLeft",
|
||||
"value": "BottomRight",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "왼쪽 아래",
|
||||
@@ -330,7 +330,7 @@
|
||||
},
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "180",
|
||||
"value": "200",
|
||||
"first_word": "전",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
@@ -367,17 +367,17 @@
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (된장의 역사와 종류)/① 크기-너비 (60 mm)"
|
||||
"item": "문구 (철쭉과 진달래)/① 크기-너비 (50 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (된장의 역사와 종류)/② 크기-높이 (12 mm)"
|
||||
"item": "문구 (철쭉과 진달래)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
@@ -387,51 +387,51 @@
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (된장의 역사와 종류)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"item": "문구 (철쭉과 진달래)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"value": "20",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (된장의 역사와 종류)/④ 글상자 모서리 (반원)",
|
||||
"item": "문구 (철쭉과 진달래)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "247,227,169",
|
||||
"value": "247,226,144",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (된장의 역사와 종류)/⑤ 채우기 : 색상(RGB:247,227,169)"
|
||||
"item": "문구 (철쭉과 진달래)/⑤ 채우기 : 색상(RGB:247,226,144)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (된장의 역사와 종류)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
"item": "문구 (철쭉과 진달래)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (된장의 역사와 종류)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
"item": "문구 (철쭉과 진달래)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "궁서체",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (된장의 역사와 종류)/⑧ 글씨체 (궁서체)"
|
||||
"item": "문구 (철쭉과 진달래)/⑧ 글씨체 (굴림체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "1700",
|
||||
"value": "1800",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (된장의 역사와 종류)/⑨ 글씨크기 (1700)",
|
||||
"item": "문구 (철쭉과 진달래)/⑨ 글씨크기 (1800)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
@@ -439,14 +439,14 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (된장의 역사와 종류)/⑩ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (철쭉과 진달래)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림D.jpg\" 삽입",
|
||||
"item": "① 파일명 \"그림C.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
@@ -479,81 +479,81 @@
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 된장의 역사",
|
||||
"value": "굴림",
|
||||
"searchValue": "1. 철쭉의 특징",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 된장의 역사)/① 글씨체 (굴림)"
|
||||
"item": "문구① (1. 철쭉의 특징)/① 글씨체 (궁서)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 된장의 역사",
|
||||
"searchValue": "1. 철쭉의 특징",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 된장의 역사)/② 크기 (1200)"
|
||||
"item": "문구① (1. 철쭉의 특징)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 된장의 역사",
|
||||
"searchValue": "1. 철쭉의 특징",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 된장의 역사)/③ 진하게"
|
||||
"item": "문구① (1. 철쭉의 특징)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 된장의 종류",
|
||||
"value": "굴림",
|
||||
"searchValue": "2. 봄의 전령 진달래",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 된장의 종류)/① 글씨체 (굴림)"
|
||||
"item": "문구② (2. 봄의 전령 진달래)/① 글씨체 (궁서)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 된장의 종류",
|
||||
"searchValue": "2. 봄의 전령 진달래",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 된장의 종류)/② 크기 (1200)"
|
||||
"item": "문구② (2. 봄의 전령 진달래)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 된장의 종류",
|
||||
"searchValue": "2. 봄의 전령 진달래",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 된장의 종류)/③ 진하게"
|
||||
"item": "문구② (2. 사진 산업의 가치)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "절구",
|
||||
"option": "거름",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (절구)/① 각주 설정 및 문구 입력"
|
||||
"item": "문구 (거름)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구",
|
||||
"value": "돋움",
|
||||
"searchValue": "땅을 기름지게 하기 위해 사용하는 유기물질",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (절구)/② 글씨체 (돋움)"
|
||||
"item": "문구 (거름)/② 글씨체 (굴림)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구",
|
||||
"searchValue": "땅을 기름지게 하기 위해 사용하는 유기물질",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (절구)/③ 크기 (9pt)"
|
||||
"item": "문구 (거름)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "곡식을 빻거나 찧으며 떡을 치기도 하는 기구",
|
||||
"value": "CircledDigit",
|
||||
"searchValue": "땅을 기름지게 하기 위해 사용하는 유기물질",
|
||||
"value": "Ideograph",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
@@ -579,81 +579,81 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Fermentation')])",
|
||||
"ignoreWord": "Fermentation",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Breeding",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Fermentation/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"item": "Breeding/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["기록", "記錄"],
|
||||
["추정", "推定"],
|
||||
["속성", "速成"],
|
||||
["단점", "短點"],
|
||||
["숙성", "熟成"]
|
||||
["생육", "生育"],
|
||||
["유년", "幼年"],
|
||||
["허기", "虛飢"],
|
||||
["풍류", "風流"],
|
||||
["식물", "植物"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 기록(記錄), ② 추정(推定), ③ 속성(速成), ④ 단점(短點), ⑤ 숙성(熟成)"
|
||||
"item": "① 생육(生育), ② 유년(幼年), ③ 허기(虛飢), ④ 풍류(風流), ⑤ 식물(植物)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'장의제조')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'지를잘라')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…된장에 제조를…)>'에 → 의' 글자바꿈"
|
||||
"item": "문구 (…새로 나온 가지가 잘라…)>'가 → 를' 글자바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'크게다르')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'보다참꽃')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…메주와 다르며 크게…)>'다르며 / 크게' 순서바꿈"
|
||||
"item": "문구 (…참꽃나무란 진달래보다 이름에 더…)>'참꽃나무란 / 진달래보다' 순서바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "전통된장 총매출(단위 : 억원)",
|
||||
"value": "바탕체",
|
||||
"searchValue": "철쭉 관광객 현황(단위 : 천 명)",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (전통된장 총매출(단위 : 억원))/① 글씨체 (바탕체)"
|
||||
"item": "제목 문구 (철쭉 관광객 현황(단위 : 천 명))/① 글씨체 (돋움체)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "전통된장 총매출(단위 : 억원)",
|
||||
"value": "1100",
|
||||
"searchValue": "철쭉 관광객 현황(단위 : 천 명)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통된장 총매출(단위 : 억원))/② 크기 (1100)"
|
||||
"item": "제목 문구 (철쭉 관광객 현황(단위 : 천 명))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "전통된장 총매출(단위 : 억원)",
|
||||
"searchValue": "철쭉 관광객 현황(단위 : 천 명)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (전통된장 총매출(단위 : 억원))/③ 진하게"
|
||||
"item": "제목 문구 (철쭉 관광객 현황(단위 : 천 명))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "전통된장 총매출(단위 : 억원)",
|
||||
"searchValue": "철쭉 관광객 현황(단위 : 천 명)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통된장 총매출(단위 : 억원))/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (연령별 축제 만족도(단위:%))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "212,131,154",
|
||||
"value": "160,221,234",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:212,131,154)"
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:160,221,234)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
@@ -682,11 +682,11 @@
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "돋움체",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (돋움체)",
|
||||
"item": "글자모양/① 글씨체 (중고딕)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
@@ -704,8 +704,8 @@
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "SUM",
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
@@ -714,11 +714,11 @@
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "묶은 가로 막대형",
|
||||
"chart_type": "누적 세로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (묶은 가로 막대형)",
|
||||
"item": "① 종류 (누적 세로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
@@ -753,36 +753,36 @@
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "전통된장 총매출",
|
||||
"value": "궁서",
|
||||
"searchValue": "철쭉 관광객 현황",
|
||||
"value": "휴먼옛체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통된장 총매출)/① 글씨체 (궁서)"
|
||||
"item": "제목 문구 (철쭉 관광객 현황)/① 글씨체 (휴먼옛체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "전통된장 총매출",
|
||||
"searchValue": "철쭉 관광객 현황",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통된장 총매출)/② 크기 (1300)"
|
||||
"item": "제목 문구 (철쭉 관광객 현황)/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "전통된장 총매출",
|
||||
"searchValue": "철쭉 관광객 현황",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전통된장 총매출)/③ 기울임",
|
||||
"item": "제목 문구 (철쭉 관광객 현황)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (바탕)"
|
||||
"item": "X축/① 글꼴 (돋움)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -801,11 +801,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (바탕)"
|
||||
"item": "Y축/① 글꼴 (돋움)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -824,11 +824,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (바탕)"
|
||||
"item": "범례/① 글꼴 (돋움)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
850
JSON/2604/DIW_2604A.json
Normal file
850
JSON/2604/DIW_2604A.json
Normal file
@@ -0,0 +1,850 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Top": 20,
|
||||
"Bottom": 20,
|
||||
"Left": 20,
|
||||
"Right": 20,
|
||||
"Header": 10,
|
||||
"Footer": 10,
|
||||
"Gutter": 0
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "디지털노마드창업자모집",
|
||||
"value": "휴먼옛체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (디지털노마드창업자모집)/① 글씨체 (휴먼옛체)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "디지털노마드창업자모집",
|
||||
"value": "202,86,167",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (디지털노마드창업자모집)/② 채우기 : 색상(RGB:202,86,167)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "디지털노마드창업자모집",
|
||||
"value": "120",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (디지털노마드창업자모집)/③ 크기-너비 (120 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "디지털노마드창업자모집",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (디지털노마드창업자모집)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "디지털노마드창업자모집",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (디지털노마드창업자모집)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "디지털노마드창업자모집",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (디지털노마드창업자모집)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "디지털노마드창업자모집",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (디지털노마드창업자모집)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "서",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "어/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "서",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (궁서체)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "서",
|
||||
"value": "238,219,98",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:238,219,98)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "서",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "어/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "디지털노마드 형태의 근무와 창업에 관심 있는 분들의",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "디지털노마드 형태의 근무와 창업에 관심 있는 분들의",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "◎",
|
||||
"char2": "◎",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ◎ , ② ◎ , ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "참여안내",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (◎ 참여안내 ◎)/① 글씨체 (돋움)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "참여안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (◎ 참여안내 ◎)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "서면심사 및 대면심사",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (서면심사 및 대면심사)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "서면심사 및 대면심사",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (서면심사 및 대면심사)/② ITALIC"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 15,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2026. 04. 25.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 04. 25.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2026. 04. 25.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 04. 25.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "디지털노마드센터",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (디지털노마드센터)/① 글씨체 (굴림체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "디지털노마드센터",
|
||||
"value": "2500",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (디지털노마드센터)/② 크기 (2500)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "디지털노마드센터",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (디지털노마드센터)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (굴림)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "HangulSyllable",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
},
|
||||
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
"오른쪽 아래": "BottomRight",
|
||||
"왼쪽 아래": "BottomLeft"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]",
|
||||
"searchValue": "http",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "hyperlink",
|
||||
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
|
||||
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
|
||||
},
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "190",
|
||||
"first_word": "서",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 190% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
|
||||
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
|
||||
"value": {
|
||||
"header_inside": true,
|
||||
"all_double_slim": true
|
||||
},
|
||||
"points": 4,
|
||||
"category": "PageBorder",
|
||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||
},
|
||||
"2": {
|
||||
"path": "count(//SECTION)>1",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "① 구역나누기",
|
||||
"desc": "섹션이 1개 이상이면 점수부여"
|
||||
},
|
||||
"3": {
|
||||
"path": "./TEXT/COLDEF/@Count",
|
||||
"value": "2",
|
||||
"points": 3,
|
||||
"category": "TwoColumn",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (디지털노마드)/① 크기-너비 (60 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (디지털노마드)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
"value": {
|
||||
"Style": "DoubleSlim",
|
||||
"Width": "283"
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (디지털노마드)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (디지털노마드)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "192,205,239",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (디지털노마드)/⑤ 채우기 : 색상(RGB:192,205,239)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (디지털노마드)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (디지털노마드)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (디지털노마드)/⑧ 글씨체 (견고딕)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "1900",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (디지털노마드)/⑨ 글씨크기 (1900)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (디지털노마드)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "85",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (85 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "40",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (40 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
"value": "0",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "22",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 디지털노마드란?",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 디지털노마드란?)/① 글씨체 (돋움)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 디지털노마드란?",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 디지털노마드란?)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 디지털노마드란?",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 디지털노마드란?)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 디지털노마드의 장단점",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 디지털노마드의 장단점)/① 글씨체 (돋움)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 디지털노마드의 장단점",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 디지털노마드의 장단점)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 디지털노마드의 장단점",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 디지털노마드의 장단점)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "공유오피스",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (공유오피스)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "함께 사용할 수 있는 사무공간",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (공유오피스)/② 글씨체 (돋움체)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "함께 사용할 수 있는 사무공간",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (공유오피스)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "함께 사용할 수 있는 사무공간",
|
||||
"value": "UserChar",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Digital",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Digital/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": ""
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["원격", "遠隔"],
|
||||
["환경", "環境"],
|
||||
["문화", "文化"],
|
||||
["형성", "形成"],
|
||||
["부여", "附與"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 원격(遠隔), ② 환경(環境), ③ 문화(文化), ④ 형성(形成), ⑤ 부여(附與)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'소에구애')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…기기를 활용해 장소는 구애받지 않고…)>'는' → '에' 글자바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'무나원격')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…원격근무를 재택근무나 하는 사람들을 말한다.…)>'원격근무를 / 재택근무나' 순서바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "전 세계 디지털노마드 추이(단위:만명)",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (전 세계 디지털노마드 추이(단위:만명))/① 글씨체 (중고딕)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "전 세계 디지털노마드 추이(단위:만명)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전 세계 디지털노마드 추이(단위:만명))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "전 세계 디지털노마드 추이(단위:만명)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (전 세계 디지털노마드 추이(단위:만명))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "전 세계 디지털노마드 추이(단위:만명)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전 세계 디지털노마드 추이(단위:만명))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "175,232,239",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:175,232,239)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "위쪽 제목 셀/② 진하게",
|
||||
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
|
||||
},
|
||||
"39": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"value": "DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/① 이중실선"
|
||||
},
|
||||
"40": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"value": "0.5mm",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/② 0.5mm"
|
||||
},
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "바탕체",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (바탕체)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
|
||||
"value": "1000",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/② 크기 (1000)"
|
||||
},
|
||||
"43": {
|
||||
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "SUM",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
"item": "블록 계산식/합계",
|
||||
"desc": "option값에 합계는 SUM / 평균은 AVG"
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "곡선이 있는 분산형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (곡선이 있는 분산형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
|
||||
"value": "out",
|
||||
"points": 2,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "② 값 축 주 눈금선",
|
||||
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
|
||||
},
|
||||
"47": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-너비 (80 mm)"
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
|
||||
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "전 세계 디지털노마드 추이",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전 세계 디지털노마드 추이)/① 글씨체 (궁서)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "전 세계 디지털노마드 추이",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전 세계 디지털노마드 추이)/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "전 세계 디지털노마드 추이",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (전 세계 디지털노마드 추이)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (굴림체)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/② 크기 (9pt)"
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (굴림체)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/② 크기 (9pt)"
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (굴림체)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/② 크기 (9pt)"
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -46,65 +46,65 @@
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"value": "궁서체",
|
||||
"searchValue": "세계문화체험페스티벌",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (청소년창작음악페스티벌)/① 글씨체 (궁서체)"
|
||||
"item": "문구 (세계문화체험페스티벌)/① 글씨체 (굴림)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"value": "48,117,97",
|
||||
"searchValue": "세계문화체험페스티벌",
|
||||
"value": "28,61,98",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (청소년창작음악페스티벌)/② 채우기 : 색상(RGB:48,117,97)"
|
||||
"item": "문구 (세계문화체험페스티벌)/② 채우기 : 색상(RGB:28,61,98)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"value": "110",
|
||||
"searchValue": "세계문화체험페스티벌",
|
||||
"value": "130",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (청소년창작음악페스티벌)/③ 크기-너비 (110 mm)"
|
||||
"item": "문구 (세계문화체험페스티벌)/③ 크기-너비 (130 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"searchValue": "세계문화체험페스티벌",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (청소년창작음악페스티벌)/④ 크기-높이 (20 mm)"
|
||||
"item": "문구 (세계문화체험페스티벌)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"searchValue": "세계문화체험페스티벌",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (청소년창작음악페스티벌)/⑤ 위치 (글자처럼 취급)"
|
||||
"item": "문구 (세계문화체험페스티벌)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"searchValue": "세계문화체험페스티벌",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (청소년창작음악페스티벌)/⑥ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (세계문화체험페스티벌)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "청소년창작음악페스티벌",
|
||||
"searchValue": "세계문화체험페스티벌",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (전통주페어링특강안내)/⑦ 글맵시모양 (육안확인)"
|
||||
"item": "문구 (세계문화체험페스티벌)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "음",
|
||||
"searchValue": "전",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
@@ -116,23 +116,23 @@
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "음",
|
||||
"value": "굴림체",
|
||||
"searchValue": "전",
|
||||
"value": "맑은 고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (굴림체)"
|
||||
"item": "어/② 글씨체 (맑은 고딕)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "음",
|
||||
"value": "248,132,58",
|
||||
"searchValue": "전",
|
||||
"value": "245,132,58",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:248,132,58)"
|
||||
"item": "어/③ 면색 : 색상(RGB:245,132,58)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "음",
|
||||
"searchValue": "전",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
@@ -141,39 +141,39 @@
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "행사의 주제는 ‘음악, 꿈을 노래하다’",
|
||||
"searchValue": "전통 공연, 의상 체험, 음식 시식, 공예 체험",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (행사의 주제는 ‘음악, 꿈을 노래하다’)/① BOLD"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "행사의 주제는 ‘음악, 꿈을 노래하다’",
|
||||
"value": "UNDERLINE",
|
||||
"searchValue": "전통 공연, 의상 체험, 음식 시식, 공예 체험",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (행사의 주제는 ‘음악, 꿈을 노래하다’)/② UNDERLINE"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/② ITALIC"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "★",
|
||||
"char2": "★",
|
||||
"char1": "▶",
|
||||
"char2": "◀",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ★, ② ★, ③ ※"
|
||||
"item": "① ▶ , ② ◀ , ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "중고딕",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (★ 행사안내 ★)/① 글씨체 (중고딕)"
|
||||
"item": "문구 (▶ 행사안내 ◀)/① 글씨체 (궁서)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
@@ -181,25 +181,25 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (★ 행사안내 ★)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (▶ 행사안내 ◀)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인",
|
||||
"value": "BOLD",
|
||||
"searchValue": "2026년 5월 1일(금) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인)/① BOLD"
|
||||
"item": "문구 (2026년 5월 1일(금) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인",
|
||||
"value": "ITALIC",
|
||||
"searchValue": "2026년 5월 1일(금) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인)/② ITALIC"
|
||||
"item": "문구 (2026년 5월 1일(금) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
@@ -215,52 +215,52 @@
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 04. 25.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/① 크기 (1300)",
|
||||
"item": "문구 (2026. 04. 25.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 04. 25.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 04. 25.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "청소년 창작 음악 사무국",
|
||||
"value": "돋움",
|
||||
"searchValue": "세계도시문화축제협회",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (청소년 창작 음악 사무국)/① 글씨체 (돋움)"
|
||||
"item": "문구 (세계도시문화축제협회)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "청소년 창작 음악 사무국",
|
||||
"value": "2700",
|
||||
"searchValue": "세계도시문화축제협회",
|
||||
"value": "2500",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (청소년 창작 음악 사무국)/② 크기 (2700)"
|
||||
"item": "문구 (세계도시문화축제협회)/② 크기 (2500)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "청소년 창작 음악 사무국",
|
||||
"searchValue": "세계도시문화축제협회",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (청소년 창작 음악 사무국)/③ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (한국대학교육협의회)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "굴림",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (굴림)"
|
||||
"item": "문구 (DIAT)/① 글꼴 (중고딕)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
@@ -280,7 +280,7 @@
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "HangulSyllable",
|
||||
"value": "RomanSmall",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
@@ -331,7 +331,7 @@
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "180",
|
||||
"first_word": "음",
|
||||
"first_word": "전",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 180% 설정",
|
||||
@@ -367,17 +367,17 @@
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"value": "65",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (청소년 음악 창작)/① 크기-너비 (60 mm)"
|
||||
"item": "문구 (글로벌 문화 교류)/① 크기-너비 (65 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (청소년 음악 창작)/② 크기-높이 (12 mm)"
|
||||
"item": "문구 (글로벌 문화 교류)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
@@ -387,7 +387,7 @@
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (청소년 음악 창작)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"item": "문구 (글로벌 문화 교류)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
@@ -395,43 +395,43 @@
|
||||
"value": "20",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (청소년 음악 창작)/④ 글상자 모서리 (반원)",
|
||||
"item": "문구 (글로벌 문화 교류)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "53,135,145",
|
||||
"value": "199,231,245",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (청소년 음악 창작)/⑤ 채우기 : 색상(RGB:53,135,145)"
|
||||
"item": "문구 (글로벌 문화 교류)/⑤ 채우기 : 색상(RGB:199,231,245)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (청소년 음악 창작)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
"item": "문구 (글로벌 문화 교류)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (청소년 음악 창작)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
"item": "문구 (글로벌 문화 교류)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "궁서체",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (청소년 음악 창작)/⑧ 글씨체 (궁서체)"
|
||||
"item": "문구 (글로벌 문화 교류)/⑧ 글씨체 (궁서)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (청소년 음악 창작)/⑨ 글씨크기 (2000)",
|
||||
"item": "문구 (글로벌 문화 교류)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
@@ -439,7 +439,7 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (청소년 음악 창작)/⑩ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (글로벌 문화 교류)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
@@ -479,84 +479,84 @@
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 청소년 음악 창작",
|
||||
"value": "돋움체",
|
||||
"searchValue": "1. 글로벌 문화 트렌드",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 청소년 음악 창작)/① 글씨체 (돋움체)"
|
||||
"item": "문구① (1. 글로벌 문화 트렌드)/① 글씨체 (굴림)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 청소년 음악 창작",
|
||||
"searchValue": "1. 글로벌 문화 트렌드",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 청소년 음악 창작)/② 크기 (1200)"
|
||||
"item": "문구① (1. 글로벌 문화 트렌드)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 청소년 음악 창작",
|
||||
"searchValue": "1. 글로벌 문화 트렌드",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 청소년 음악 창작)/③ 진하게"
|
||||
"item": "문구① (1. 글로벌 문화 트렌드)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 청소년 음악 산업",
|
||||
"value": "돋움체",
|
||||
"searchValue": "2. 문화 산업의 가치",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 청소년 음악 산업)/① 글씨체 (돋움체)"
|
||||
"item": "문구② (2. 문화 산업의 가치)/① 글씨체 (굴림)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 청소년 음악 산업",
|
||||
"searchValue": "2. 문화 산업의 가치",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 청소년 음악 산업)/② 크기 (1200)"
|
||||
"item": "문구② (2. 문화 산업의 가치)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 청소년 음악 산업",
|
||||
"searchValue": "2. 문화 산업의 가치",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 청소년 음악 산업)/③ 진하게"
|
||||
"item": "문구② (2. 문화 산업의 가치)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "스트리밍",
|
||||
"option": "브랜드",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (스트리밍)/① 각주 설정 및 문구 입력"
|
||||
"item": "문구 (브랜드)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함",
|
||||
"value": "굴림",
|
||||
"searchValue": "경제적인 생산자를 구별하는 지각된 이미지와 경험의 집합으로 상품이나 회사를 나타내는 상표임",
|
||||
"value": "바탕체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (스트리밍)/② 글씨체 (굴림)"
|
||||
"item": "문구 (브랜드)/② 글씨체 (바탕체)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함",
|
||||
"searchValue": "경제적인 생산자를 구별하는 지각된 이미지와 경험의 집합으로 상품이나 회사를 나타내는 상표임",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (스트리밍)/③ 크기 (9pt)"
|
||||
"item": "문구 (브랜드)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함",
|
||||
"value": "CircledHangulJamo",
|
||||
"searchValue": "경제적인 생산자를 구별하는 지각된 이미지와 경험의 집합으로 상품이나 회사를 나타내는 상표임",
|
||||
"value": "DecagonCircleHanja",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (스트리밍)/④ 각주 번호모양",
|
||||
"category": "PageNumber",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
@@ -579,81 +579,81 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Artist')])",
|
||||
"ignoreWord": "Artist",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Pandemic",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Artist/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
"item": "Pandemic/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": ""
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["작곡", "作曲"],
|
||||
["유통", "流通"],
|
||||
["창작", "創作"],
|
||||
["발표", "發表"],
|
||||
["수익", "受益"]
|
||||
["문화", "文化"],
|
||||
["인기", "人氣"],
|
||||
["초월", "超越"],
|
||||
["미식", "美食"],
|
||||
["정부", "政府"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 작곡(作曲), ② 유통(流通), ③ 창작(創作), ④ 발표(發表), ⑤ 수익(受益)"
|
||||
"item": "① 문화(文化), ② 인기(人氣), ③ 초월(超越), ④ 미식(美食), ⑤ 정부(政府)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이고실험')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'전시,문화')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…벗어나 자율적이구 실험적인…)>'구' → '고' 글자바꿈"
|
||||
"item": "문구 (…온라인 문화 전시, 가상 체험, 디지털 공연 등이…)>'문화 / 전시,' 순서바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'로운기회')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'화를현대')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…뮤지션들에게도 기회가 새로운 열리고…)>'기회가 / 새로운' 순서바꿈"
|
||||
"item": "문구 (…전통문화는 현대적으로…)>'는 → 를' 글자바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"searchValue": "문화 산업 시장 성장률(단위:%)",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/① 글씨체 (돋움)"
|
||||
"item": "제목 문구 (문화 산업 시장 성장률(단위:%))/① 글씨체 (돋움)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"searchValue": "문화 산업 시장 성장률(단위:%)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/② 크기 (1200)"
|
||||
"item": "제목 문구 (문화 산업 시장 성장률(단위:%))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"searchValue": "문화 산업 시장 성장률(단위:%)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/③ 진하게"
|
||||
"item": "제목 문구 (문화 산업 시장 성장률(단위:%))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"searchValue": "문화 산업 시장 성장률(단위:%)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (문화 산업 시장 성장률(단위:%))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "202,86,167",
|
||||
"value": "233,62,98",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:202,86,167)"
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:233,62,98)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
@@ -704,7 +704,7 @@
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
@@ -714,11 +714,11 @@
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "꺾은선형",
|
||||
"chart_type": "표식만 있는 분산형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (꺾은선형)",
|
||||
"item": "① 종류 (표식만 있는 분산형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
@@ -753,36 +753,36 @@
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"value": "맑은 고딕",
|
||||
"searchValue": "문화 산업 시장 성장률(단위:%)",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/① 글씨체 (맑은 고딕)"
|
||||
"item": "제목 문구 (문화 산업 시장 성장률(단위:%))/① 글씨체 (굴림체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"searchValue": "문화 산업 시장 성장률(단위:%)",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/② 크기 (1300)"
|
||||
"item": "제목 문구 (문화 산업 시장 성장률(단위:%))/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "청소년 음악 성장률(단위:%)",
|
||||
"searchValue": "문화 산업 시장 성장률(단위:%)",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (청소년 음악 성장률(단위:%))/③ 기울임",
|
||||
"item": "제목 문구 (문화 산업 시장 성장률(단위:%))/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (바탕)"
|
||||
"item": "X축/① 글꼴 (돋움)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -801,11 +801,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (바탕)"
|
||||
"item": "Y축/① 글꼴 (돋움)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -824,11 +824,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "바탕",
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (바탕)"
|
||||
"item": "범례/① 글꼴 (돋움)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
850
JSON/2604/DIW_2604C.json
Normal file
850
JSON/2604/DIW_2604C.json
Normal file
@@ -0,0 +1,850 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Top": 20,
|
||||
"Bottom": 20,
|
||||
"Left": 20,
|
||||
"Right": 20,
|
||||
"Header": 10,
|
||||
"Footer": 10,
|
||||
"Gutter": 0
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "인상파예술특별기획전",
|
||||
"value": "휴먼명조",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (인상파예술특별기획전)/① 글씨체 (휴먼명조)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "인상파예술특별기획전",
|
||||
"value": "95,172,34",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (인상파예술특별기획전)/② 채우기 : 색상(RGB:95,172,34)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "인상파예술특별기획전",
|
||||
"value": "130",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (인상파예술특별기획전)/③ 크기-너비 (130 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "인상파예술특별기획전",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (인상파예술특별기획전)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "인상파예술특별기획전",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (인상파예술특별기획전)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "인상파예술특별기획전",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (인상파예술특별기획전)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "인상파예술특별기획전",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (대학교육정책포럼)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "빛",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "어/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "빛",
|
||||
"value": "맑은 고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (맑은 고딕)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "빛",
|
||||
"value": "244,82,29",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:244,82,29)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "빛",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "어/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "인상파 미술에 대한 깊이 있는 이해를 도와드립니다.",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① ITALIC"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "인상파 미술에 대한 깊이 있는 이해를 도와드립니다.",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "◉",
|
||||
"char2": "◉",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ◉ , ② ◉ , ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "전시정보",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (◉ 전시정보 ◉)/① 글씨체 (돋움)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "전시정보",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (◉ 전시정보 ◉)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "나만의 키링 만들기 체험",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (나만의 키링 만들기 체험)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "나만의 키링 만들기 체험",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (나만의 키링 만들기 체험)/② ITALIC"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 15,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2026. 04. 25.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 04. 25.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2026. 04. 25.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 04. 25.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "성남오아시스예술센터",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (성남오아시스예술센터)/① 글씨체 (돋움체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "성남오아시스예술센터",
|
||||
"value": "2600",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (성남오아시스예술센터)/② 크기 (2600)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "성남오아시스예술센터",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (성남오아시스예술센터)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (굴림)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "HangulSyllable",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
},
|
||||
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomRight",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "오른쪽 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
"오른쪽 아래": "BottomRight",
|
||||
"왼쪽 아래": "BottomLeft"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]",
|
||||
"searchValue": "http",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "hyperlink",
|
||||
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
|
||||
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
|
||||
},
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "200",
|
||||
"first_word": "빛",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 200% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
|
||||
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
|
||||
"value": {
|
||||
"header_inside": true,
|
||||
"all_double_slim": true
|
||||
},
|
||||
"points": 4,
|
||||
"category": "PageBorder",
|
||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||
},
|
||||
"2": {
|
||||
"path": "count(//SECTION)>1",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "① 구역나누기",
|
||||
"desc": "섹션이 1개 이상이면 점수부여"
|
||||
},
|
||||
"3": {
|
||||
"path": "./TEXT/COLDEF/@Count",
|
||||
"value": "2",
|
||||
"points": 3,
|
||||
"category": "TwoColumn",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (인상주의)/① 크기-너비 (50 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (인상주의)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
"value": {
|
||||
"Style": "DoubleSlim",
|
||||
"Width": "283"
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (인상주의)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (인상주의)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "245,177,248",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (인상주의)/⑤ 채우기 : 색상(RGB:245,177,248)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (인상주의)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (인상주의)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (인상주의)/⑧ 글씨체 (견고딕)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2200",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (인상주의)/⑨ 글씨크기 (2200)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (인상주의)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림C.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "85",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (85 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "40",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (40 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
"value": "0",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "22",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 인상주의란?",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 인상주의란?)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 인상주의란?",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 인상주의란?)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 인상주의란?",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 인상주의란?)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 인상파 화가",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 인상파 화가)/① 글씨체 (돋움체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 인상파 화가",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 인상파 화가)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 인상파 화가",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 인상파 화가)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "연작",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (연작)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "변화 포착을 위해 같은 풍경을 반복적으로 그림",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (연작)/② 글씨체 (굴림체)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "변화 포착을 위해 같은 풍경을 반복적으로 그림",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (연작)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "변화 포착을 위해 같은 풍경을 반복적으로 그림",
|
||||
"value": "CircledIdeograph",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Expression",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Expression/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": ""
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["규범", "規範"],
|
||||
["관찰", "觀察"],
|
||||
["화가", "畫家"],
|
||||
["탐구", "探究"],
|
||||
["여성", "女性"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 규범(規範), ② 관찰(觀察), ③ 화가(畫家), ④ 탐구(探究), ⑤ 여성(女性)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'화를가져')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…큰 변화를 갖져왔다.…)>'갖' → '가' 글자바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'료로활용')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…문화 상품과 교육 활용되며 자료로 대중문화에도…)>'활용되며 / 자료로' 순서바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "인상파 작품 소장 현황",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (인상파 작품 소장 현황)/① 글씨체 (돋움체)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "인상파 작품 소장 현황",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (인상파 작품 소장 현황)/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "인상파 작품 소장 현황",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (인상파 작품 소장 현황)/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "인상파 작품 소장 현황",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (인상파 작품 소장 현황(단위: 천 명))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "84,207,228",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:84,207,228)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "위쪽 제목 셀/② 진하게",
|
||||
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
|
||||
},
|
||||
"39": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"value": "DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/① 이중실선"
|
||||
},
|
||||
"40": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"value": "0.5mm",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/② 0.5mm"
|
||||
},
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (중고딕)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
|
||||
"value": "1000",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/② 크기 (1000)"
|
||||
},
|
||||
"43": {
|
||||
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "SUM",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
"item": "블록 계산식/합계",
|
||||
"desc": "option값에 합계는 SUM / 평균은 AVG"
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "100% 기준 누적 세로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (100% 기준 누적 세로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
|
||||
"value": "out",
|
||||
"points": 2,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "② 값 축 주 눈금선",
|
||||
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
|
||||
},
|
||||
"47": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-너비 (80 mm)"
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (80 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
|
||||
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "인상파 작품 소장 현황",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (인상파 작품 소장 현황)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "인상파 작품 소장 현황",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (인상파 작품 소장 현황)/② 크기 (1200)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "인상파 작품 소장 현황",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (인상파 작품 소장 현황)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (궁서)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/② 크기 (9pt)"
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (궁서)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/② 크기 (9pt)"
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (궁서)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/② 크기 (9pt)"
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
}
|
||||
}
|
||||
}
|
||||
840
JSON/2604_2/DIW_2604_2A.json
Normal file
840
JSON/2604_2/DIW_2604_2A.json
Normal file
@@ -0,0 +1,840 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Top": 20,
|
||||
"Bottom": 20,
|
||||
"Left": 20,
|
||||
"Right": 20,
|
||||
"Header": 10,
|
||||
"Footer": 10,
|
||||
"Gutter": 0
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "소셜네트워킹전략컨퍼런스",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (소셜네트워킹전략컨퍼런스)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "소셜네트워킹전략컨퍼런스",
|
||||
"value": "201,102,248",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (소셜네트워킹전략컨퍼런스)/② 채우기 : 색상(RGB:201,102,248)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "소셜네트워킹전략컨퍼런스",
|
||||
"value": "120",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (소셜네트워킹전략컨퍼런스)/③ 크기-너비 (120 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "소셜네트워킹전략컨퍼런스",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (소셜네트워킹전략컨퍼런스)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "소셜네트워킹전략컨퍼런스",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (소셜네트워킹전략컨퍼런스)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "소셜네트워킹전략컨퍼런스",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (소셜네트워킹전략컨퍼런스)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "소셜네트워킹전략컨퍼런스",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (소셜네트워킹전략컨퍼런스)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "최",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "어/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "최",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (궁서)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "최",
|
||||
"value": "218,202,48",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:218,202,48)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "최",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "어/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "소셜 네트워킹 서비스",
|
||||
"value": "BOLD",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "소셜 네트워킹 서비스",
|
||||
"value": "ITALIC",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/② ITALIC"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "□",
|
||||
"char2": "□",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① □, ② □, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (□ 행사안내 □)/① 글씨체 (굴림)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "행사안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (□ 행사안내 □)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "서울 강남구 한국정보기술협력센터 3층 대회의장",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (서울 강남구 한국정보기술협력센터 3층 대회의장)/① ITALIC"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "서울 강남구 한국정보기술협력센터 3층 대회의장",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (서울 강남구 한국정보기술협력센터 3층 대회의장)/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 10,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2026. 04. 07.",
|
||||
"value": "1400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 04. 07.)/① 크기 (1400)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2026. 04. 07.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2026. 04. 07.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "한국정보서비스학회장",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (한국정보서비스학회장)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "한국정보서비스학회장",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국정보서비스학회장)/② 크기 (2000)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "한국정보서비스학회장",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한국정보서비스학회장)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (돋움)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "Digit",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
},
|
||||
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
"오른쪽 아래": "BottomRight",
|
||||
"왼쪽 아래": "BottomLeft"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "180",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 180% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점)"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
|
||||
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
|
||||
"value": {
|
||||
"header_inside": true,
|
||||
"all_double_slim": true
|
||||
},
|
||||
"points": 4,
|
||||
"category": "PageBorder",
|
||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||
},
|
||||
"2": {
|
||||
"path": "count(//SECTION)>1",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "① 구역나누기",
|
||||
"desc": "섹션이 1개 이상이면 점수부여"
|
||||
},
|
||||
"3": {
|
||||
"path": "./TEXT/COLDEF/@Count",
|
||||
"value": "2",
|
||||
"points": 3,
|
||||
"category": "TwoColumn",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "70",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (소셜 네트워킹 서비스)/① 크기-너비 (70 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (소셜 네트워킹 서비스)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
"value": {
|
||||
"Style": "DoubleSlim",
|
||||
"Width": "283"
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (소셜 네트워킹 서비스)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (소셜 네트워킹 서비스)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "90,233,53",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (소셜 네트워킹 서비스)/⑤ 채우기 : 색상(RGB:90,233,53)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (소셜 네트워킹 서비스)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (소셜 네트워킹 서비스)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (소셜 네트워킹 서비스)/⑧ 글씨체 (궁서체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "1800",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (소셜 네트워킹 서비스)/⑨ 글씨크기 (1800)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (소셜 네트워킹 서비스)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (80 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "45",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (45 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
"value": "0",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "22",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 소셜 네트워킹 서비스",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 소셜 네트워킹 서비스)/① 글씨체 (굴림체)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 소셜 네트워킹 서비스",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 소셜 네트워킹 서비스)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 소셜 네트워킹 서비스",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 소셜 네트워킹 서비스)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 소셜 네트워킹 서비스 활용",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/① 글씨체 (굴림체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 소셜 네트워킹 서비스 활용",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 소셜 네트워킹 서비스 활용",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 소셜 네트워킹 서비스 활용)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "마이크로블로깅",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (마이크로블로깅)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (마이크로블로깅)/② 글씨체 (돋움)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (마이크로블로깅)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "블로거가 한두 문장 정도의 단편적 정보를 관심이 있는 개인들에게 전달하는 통신방식",
|
||||
"value": "CircledIdeograph",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Marketing",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Marketing/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": ""
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["방식", "方式"],
|
||||
["관계", "關係"],
|
||||
["획득", "獲得"],
|
||||
["정보", "情報"],
|
||||
["절감", "節減"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 방식(方式), ② 관계(關係), ③ 획득(獲得), ④ 정보(情報), ⑤ 절감(節減)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'적인매체')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…대표적의 매체로…)>'의' → '인' 글자바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'인이필요')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…필요한 개인이 정보를…)>'필요한' / '개인이' 순서바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/① 글씨체 (중고딕)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "스마트폰 가입자 수(단위 : 만 명)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (스마트폰 가입자 수(단위 : 만 명))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "248,203,169",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:248,203,169)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "위쪽 제목 셀/② 진하게",
|
||||
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
|
||||
},
|
||||
"39": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"value": "DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/① 이중실선"
|
||||
},
|
||||
"40": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"value": "0.5mm",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/② 0.5mm"
|
||||
},
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (굴림)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
|
||||
"value": "1000",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/② 크기 (1000)"
|
||||
},
|
||||
"43": {
|
||||
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
"item": "블록 계산식/합계",
|
||||
"desc": "option값에 합계는 SUM / 평균은 AVG"
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "꺾은선형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (꺾은선형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
|
||||
"value": "out",
|
||||
"points": 2,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "② 값 축 주 눈금선",
|
||||
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
|
||||
},
|
||||
"47": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-너비 (80 mm)"
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
|
||||
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "스마트폰 가입자 수",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (스마트폰 가입자 수)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "스마트폰 가입자 수",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (스마트폰 가입자 수)/② 크기 (1200)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "스마트폰 가입자 수",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (스마트폰 가입자 수)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (돋움체)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/② 크기 (9pt)"
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (돋움체)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/② 크기 (9pt)"
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (돋움체)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/② 크기 (9pt)"
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -145,7 +145,7 @@
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (대학 퇴출 및 통폐합의 방향과 과제를 주제)/① BOLD"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
@@ -153,7 +153,7 @@
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (대학 퇴출 및 통폐합의 방향과 과제를 주제)/② UNDERLINE"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
@@ -186,20 +186,20 @@
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
|
||||
"searchValue": "2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/① BOLD"
|
||||
"item": "문구 (2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
|
||||
"searchValue": "2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025. 11. 28.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/② ITALIC"
|
||||
"item": "문구 (2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/② ITALIC"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
@@ -215,20 +215,20 @@
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 11. 22.",
|
||||
"searchValue": "2026. 04. 22.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 11. 22.)/① 크기 (1300)",
|
||||
"item": "문구 (2026. 04. 22.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 11. 22.",
|
||||
"searchValue": "2026. 04. 22.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 11. 22.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 04. 22.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
@@ -283,7 +283,7 @@
|
||||
"value": "LatinCapital",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
@@ -325,7 +325,7 @@
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "hyperlink",
|
||||
"item": "문구 (https://www.ihd.or.kr)/하이퍼링크 없이 작성",
|
||||
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
|
||||
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
|
||||
},
|
||||
"31": {
|
||||
@@ -395,7 +395,7 @@
|
||||
"value": "20",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (대학 구조조정)/④ 글상자 모서리 (반원)",
|
||||
"item": "문구 (대학 구조조정)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
@@ -553,9 +553,9 @@
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
|
||||
"value": "CircledHangulJamo",
|
||||
"value": "DecagonCircleHanja",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"category": "PageNumber",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
@@ -579,13 +579,13 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Management')])",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Management",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Management/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
"desc": ""
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
@@ -617,35 +617,35 @@
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "학령인구 변동 추계(단위:천명)",
|
||||
"searchValue": "학령인구 변동 추계(단위: 천 명)",
|
||||
"value": "맑은고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (학령인구 변동 추계(단위:천명))/① 글씨체 (맑은고딕)"
|
||||
"item": "제목 문구 (학령인구 변동 추계(단위: 천 명))/① 글씨체 (맑은고딕)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "학령인구 변동 추계(단위:천명)",
|
||||
"searchValue": "학령인구 변동 추계(단위: 천 명)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (학령인구 변동 추계(단위:천명))/② 크기 (1200)"
|
||||
"item": "제목 문구 (학령인구 변동 추계(단위: 천 명))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "학령인구 변동 추계(단위:천명)",
|
||||
"searchValue": "학령인구 변동 추계(단위: 천 명)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (학령인구 변동 추계(단위:천명))/③ 진하게"
|
||||
"item": "제목 문구 (학령인구 변동 추계(단위: 천 명))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "학령인구 변동 추계(단위:천명)",
|
||||
"searchValue": "학령인구 변동 추계(단위: 천 명)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (학령인구 변동 추계(단위: 천 명))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
@@ -704,7 +704,7 @@
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
@@ -778,7 +778,7 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
@@ -801,7 +801,7 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
@@ -824,7 +824,7 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
@@ -46,65 +46,65 @@
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"value": "궁서체",
|
||||
"searchValue": "대학교육정책포럼",
|
||||
"value": "휴먼옛체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/① 글씨체 (궁서체)"
|
||||
"item": "문구 (대학교육정책포럼)/① 글씨체 (휴먼옛체)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"value": "233,190,46",
|
||||
"searchValue": "대학교육정책포럼",
|
||||
"value": "53,135,145",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/② 채우기 : 색상(RGB:233,190,46)"
|
||||
"item": "문구 (대학교육정책포럼)/② 채우기 : 색상(RGB:53,135,145)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"value": "110",
|
||||
"searchValue": "대학교육정책포럼",
|
||||
"value": "120",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/③ 크기-너비 (110 mm)"
|
||||
"item": "문구 (대학교육정책포럼)/③ 크기-너비 (120 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"searchValue": "대학교육정책포럼",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/④ 크기-높이 (20 mm)"
|
||||
"item": "문구 (대학교육정책포럼)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"searchValue": "대학교육정책포럼",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/⑤ 위치 (글자처럼 취급)"
|
||||
"item": "문구 (대학교육정책포럼)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"searchValue": "대학교육정책포럼",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/⑥ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (대학교육정책포럼)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "생성형 인공지능 세미나 안내",
|
||||
"searchValue": "대학교육정책포럼",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (생성형 인공지능 세미나 안내)/⑦ 글맵시모양 (육안확인)"
|
||||
"item": "문구 (대학교육정책포럼)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "생",
|
||||
"searchValue": "한",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
@@ -116,7 +116,7 @@
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "생",
|
||||
"searchValue": "한",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
@@ -124,15 +124,15 @@
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "생",
|
||||
"value": "221,251,229",
|
||||
"searchValue": "한",
|
||||
"value": "192,204,239",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:221,251,229)"
|
||||
"item": "어/③ 면색 : 색상(RGB:192,204,239)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "생",
|
||||
"searchValue": "한",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
@@ -141,19 +141,19 @@
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "생성형 인공지능",
|
||||
"searchValue": "대학 퇴출 및 통폐합의 방향과 과제를 주제",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (생성형 인공지능)/① BOLD"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "생성형 인공지능",
|
||||
"value": "ITALIC",
|
||||
"searchValue": "대학 퇴출 및 통폐합의 방향과 과제를 주제",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (생성형 인공지능)/② ITALIC"
|
||||
"item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
@@ -186,73 +186,73 @@
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "협회 홈페이지(https://www.ihd.or.kr)",
|
||||
"searchValue": "2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (협회 홈페이지(https://www.ihd.or.kr))/① BOLD"
|
||||
"item": "문구 (2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "협회 홈페이지(https://www.ihd.or.kr)",
|
||||
"value": "UNDERLINE",
|
||||
"searchValue": "2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (협회 홈페이지(https://www.ihd.or.kr))/② UNDERLINE"
|
||||
"item": "문구 (2026. 05. 01.(금) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/② ITALIC"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 13,
|
||||
"Indent": 10
|
||||
"Left": 10,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (13), 내어쓰기 (10)",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 04. 22.",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/① 크기 (1300)",
|
||||
"item": "문구 (2026. 04. 22.)/① 크기 (1300)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"searchValue": "2026. 04. 22.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)"
|
||||
"item": "문구 (2026. 04. 22.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "생성형인공지능협회",
|
||||
"value": "돋움",
|
||||
"searchValue": "한국대학교육협의회",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (생성형인공지능협회)/① 글씨체 (돋움)"
|
||||
"item": "문구 (한국대학교육협의회)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "생성형인공지능협회",
|
||||
"value": "2000",
|
||||
"searchValue": "한국대학교육협의회",
|
||||
"value": "2500",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (생성형인공지능협회)/② 크기 (2000)"
|
||||
"item": "문구 (한국대학교육협의회)/② 크기 (2500)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "생성형인공지능협회",
|
||||
"searchValue": "한국대학교육협의회",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (생성형인공지능협회)/③ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (한국대학교육협의회)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
@@ -283,7 +283,7 @@
|
||||
"value": "LatinCapital",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
@@ -308,10 +308,10 @@
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomRight",
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "왼쪽 아래",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
@@ -331,7 +331,7 @@
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "200",
|
||||
"first_word": "생",
|
||||
"first_word": "한",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 200% 설정",
|
||||
@@ -367,17 +367,17 @@
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"value": "65",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (생성형 인공지능)/① 크기-너비 (60 mm)"
|
||||
"item": "문구 (대학 구조조정)/① 크기-너비 (65 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (생성형 인공지능)/② 크기-높이 (12 mm)"
|
||||
"item": "문구 (대학 구조조정)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
@@ -387,51 +387,51 @@
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (생성형 인공지능)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"item": "문구 (대학 구조조정)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "0",
|
||||
"value": "20",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (생성형 인공지능)/④ 글상자 모서리 (직각)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20 / 직각:0"
|
||||
"item": "문구 (대학 구조조정)/④ 글상자 모서리 (둥근모양)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "153,226,253",
|
||||
"value": "227,220,193",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (생성형 인공지능)/⑤ 채우기 : 색상(RGB:153,226,253)"
|
||||
"item": "문구 (대학 구조조정)/⑤ 채우기 : 색상(RGB:227,220,193)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (생성형 인공지능)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
"item": "문구 (대학 구조조정)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (생성형 인공지능)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
"item": "문구 (대학 구조조정)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "견고딕",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (생성형 인공지능)/⑧ 글씨체 (견고딕)"
|
||||
"item": "문구 (대학 구조조정)/⑧ 글씨체 (궁서체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (생성형 인공지능)/⑨ 글씨크기 (2000)",
|
||||
"item": "문구 (대학 구조조정)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
@@ -439,29 +439,29 @@
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (생성형 인공지능)/⑩ 정렬 (가운데 정렬)"
|
||||
"item": "문구 (대학 구조조정)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림D.jpg\" 삽입",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "85",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (85 mm)"
|
||||
"item": "② 크기-너비 (80 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "40",
|
||||
"value": "35",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (40 mm)"
|
||||
"item": "③ 크기-높이 (35 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
@@ -472,90 +472,90 @@
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "22",
|
||||
"value": "24",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 서비스 현황",
|
||||
"value": "돋움체",
|
||||
"searchValue": "1. 학령인구 감소",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 서비스 현황)/① 글씨체 (돋움체)"
|
||||
"item": "문구① (1. 학령인구 감소)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 서비스 현황",
|
||||
"searchValue": "1. 학령인구 감소",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 서비스 현황)/② 크기 (1200)"
|
||||
"item": "문구① (1. 학령인구 감소)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 서비스 현황",
|
||||
"searchValue": "1. 학령인구 감소",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 서비스 현황)/③ 진하게"
|
||||
"item": "문구① (1. 학령인구 감소)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 활용 분야",
|
||||
"value": "돋움체",
|
||||
"searchValue": "2. 한계대학이란?",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 활용 분야)/① 글씨체 (돋움체)"
|
||||
"item": "문구② (2. 한계대학이란?)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 활용 분야",
|
||||
"searchValue": "2. 한계대학이란?",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 활용 분야)/② 크기 (1200)"
|
||||
"item": "문구② (2. 한계대학이란?)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 활용 분야",
|
||||
"searchValue": "2. 한계대학이란?",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 활용 분야)/③ 진하게"
|
||||
"item": "문구② (2. 한계대학이란?)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "핀테크",
|
||||
"option": "학령인구",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (핀테크)/① 각주 설정 및 문구 입력"
|
||||
"item": "문구 (학령인구)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업",
|
||||
"value": "굴림",
|
||||
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (핀테크)/② 글씨체 (굴림)"
|
||||
"item": "문구 (학령인구)/② 글씨체 (돋움)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업",
|
||||
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (핀테크)/③ 크기 (9pt)"
|
||||
"item": "문구 (학령인구)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업",
|
||||
"value": "CircledLatinCapital",
|
||||
"searchValue": "유치원 : 만 3~5세, 초등학교 : 만 6~11세, 중학교 : 만 12~14세, 고등학교 : 만 15~17세",
|
||||
"value": "DecagonCircleHanja",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"category": "PageNumber",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
@@ -579,81 +579,81 @@
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Generative')])",
|
||||
"ignoreWord": "Generative",
|
||||
"path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])",
|
||||
"ignoreWord": "Management",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Generative/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
"item": "Management/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": ""
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["생성", "生成"],
|
||||
["현재", "現在"],
|
||||
["창조", "創造"],
|
||||
["결함", "缺陷"],
|
||||
["극대", "極大"]
|
||||
["환경", "環境"],
|
||||
["분석", "分析"],
|
||||
["재무구조", "財務構造"],
|
||||
["경영", "經營"],
|
||||
["상태", "狀態"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 생성(生成), ② 현재(現在), ③ 창조(創造), ④ 결함(缺陷), ⑤ 극대(極大)"
|
||||
"item": "① 환경(環境), ② 분석(分析), ③ 재무구조(財務構造), ④ 경영(經營), ⑤ 상태(狀態)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'성형인공')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'덕적해이')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…사용하는 인공지능 생성형 서비스이다…)>'인공지능 / 생성형' 순서바꿈"
|
||||
"item": "문구 (…비위나 해이가 도덕적 대학…)>'해이가 / 도덕적' 순서바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'률검토를')])",
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'증가추이')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…작성 및 법률 검투를 수행…)>'투' → '토' 글자바꿈"
|
||||
"item": "문구 (…향후 증강 추이는 가속화될 전망이다…)>'강 → 가' 글자바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "생성형 인공지능 서비스 이용률 현황",
|
||||
"value": "굴림체",
|
||||
"searchValue": "학령인구 변동 추계(단위: 천 명)",
|
||||
"value": "맑은고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (생성형 인공지능 서비스 이용률 현황)/① 글씨체 (굴림체)"
|
||||
"item": "제목 문구 (학령인구 변동 추계(단위: 천 명))/① 글씨체 (맑은고딕)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "생성형 인공지능 서비스 이용률 현황",
|
||||
"searchValue": "학령인구 변동 추계(단위: 천 명)",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (생성형 인공지능 서비스 이용률 현황)/② 크기 (1200)"
|
||||
"item": "제목 문구 (학령인구 변동 추계(단위: 천 명))/② 크기 (1200)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "생성형 인공지능 서비스 이용률 현황",
|
||||
"searchValue": "학령인구 변동 추계(단위: 천 명)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (생성형 인공지능 서비스 이용률 현황)/③ 진하게"
|
||||
"item": "제목 문구 (학령인구 변동 추계(단위: 천 명))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "생성형 인공지능 서비스 이용률 현황",
|
||||
"searchValue": "학령인구 변동 추계(단위: 천 명)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (생성형 인공지능 서비스 이용률 현황)/④ 정렬 (가운데 정렬)"
|
||||
"item": "제목 문구 (학령인구 변동 추계(단위: 천 명))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "232,250,210",
|
||||
"value": "158,219,98",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:232,250,210)"
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:158,219,98)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
@@ -682,11 +682,11 @@
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "중고딕",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (중고딕)",
|
||||
"item": "글자모양/① 글씨체 (돋움체)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
@@ -704,7 +704,7 @@
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) or boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
@@ -714,11 +714,11 @@
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "묶은 가로 막대형",
|
||||
"chart_type": "꺾은선형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (묶은 가로 막대형)",
|
||||
"item": "① 종류 (꺾은선형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
@@ -738,10 +738,10 @@
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "80",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (80 mm)"
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
@@ -753,36 +753,36 @@
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "생성형 인공지능 이용률 현황",
|
||||
"value": "휴먼옛체",
|
||||
"searchValue": "학령인구 변동 추계",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (생성형 인공지능 이용률 현황)/① 글씨체 (휴먼옛체)"
|
||||
"item": "제목 문구 (학령인구 변동 추계)/① 글씨체 (굴림체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "생성형 인공지능 이용률 현황",
|
||||
"searchValue": "학령인구 변동 추계",
|
||||
"value": "1300",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (생성형 인공지능 이용률 현황)/② 크기 (1300)"
|
||||
"item": "제목 문구 (학령인구 변동 추계)/② 크기 (1300)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "생성형 인공지능 이용률 현황",
|
||||
"searchValue": "학령인구 변동 추계",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (생성형 인공지능 이용률 현황)/③ 기울임",
|
||||
"item": "제목 문구 (학령인구 변동 추계)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface | //c:catAx/c:txPr//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (돋움)"
|
||||
"item": "X축/① 글꼴 (궁서)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -801,11 +801,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface | //c:valAx/c:txPr//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (돋움)"
|
||||
"item": "Y축/① 글꼴 (궁서)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
@@ -824,11 +824,11 @@
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface | //c:legend//a:latin/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (돋움)"
|
||||
"item": "범례/① 글꼴 (궁서)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
@@ -1,52 +0,0 @@
|
||||
import os
|
||||
import shutil
|
||||
import unicodedata
|
||||
|
||||
def copy_dic_subdirs(source_root, target_root_a, target_root_b, target_root_c, target_root_d, target_root_e):
|
||||
for root, dirs, files in os.walk(source_root):
|
||||
for dir_name in dirs:
|
||||
if dir_name.lower() == 'diw': # DIW 디렉토리 탐색
|
||||
parent_dir = os.path.basename(os.path.dirname(os.path.join(root, dir_name)))
|
||||
target_root = None
|
||||
parent_dir = unicodedata.normalize('NFC', parent_dir)
|
||||
|
||||
# 부모 디렉토리가 '2교시'인지, '3교시'인지 확인
|
||||
if parent_dir == '1교시':
|
||||
target_root = target_root_a
|
||||
elif parent_dir == '2교시':
|
||||
target_root = target_root_b
|
||||
elif parent_dir == '3교시':
|
||||
target_root = target_root_c
|
||||
elif parent_dir == '4교시':
|
||||
target_root = target_root_d
|
||||
elif parent_dir == '5교시':
|
||||
target_root = target_root_e
|
||||
|
||||
if target_root:
|
||||
source_dic_path = os.path.join(root, dir_name)
|
||||
target_dir_name = dir_name.upper()
|
||||
target_dic_path = os.path.join(target_root, target_dir_name)
|
||||
|
||||
# DIC 하위 디렉토리와 파일 복사
|
||||
shutil.copytree(source_dic_path, target_dic_path, dirs_exist_ok=True)
|
||||
print(f"Copied {source_dic_path} to {target_dic_path}")
|
||||
|
||||
test_folder_path = os.path.join(target_root, "TEST")
|
||||
os.makedirs(test_folder_path, exist_ok=True)
|
||||
|
||||
|
||||
else:
|
||||
print(f"Skipping {dir_name} under {parent_dir}, as it doesn't match '2교시' or '3교시'.")
|
||||
|
||||
# 사용법
|
||||
# exam_round = "2504_2"
|
||||
exam_round = "2509"
|
||||
source_directory = r"D:\project\HWP\HWP-Scoring\회차별채점자료\2509"
|
||||
|
||||
target_directory_a = f".\\input\\{exam_round}\\A" # '1교시'의 타겟 경로
|
||||
target_directory_b = f".\\input\\{exam_round}\\B" # '2교시'의 타겟 경로
|
||||
target_directory_c = f".\\input\\{exam_round}\\C" # '3교시'의 타겟 경로
|
||||
target_directory_d = f".\\input\\{exam_round}\\D" # '4교시'의 타겟 경로
|
||||
target_directory_e = f".\\input\\{exam_round}\\E" # '5교시'의 타겟 경로
|
||||
|
||||
copy_dic_subdirs(source_directory, target_directory_a, target_directory_b, target_directory_c, target_directory_d, target_directory_e)
|
||||
@@ -1,43 +0,0 @@
|
||||
import base64
|
||||
import re
|
||||
from lxml import etree as ET
|
||||
|
||||
xml_path = r"C:\Users\dra\project\HWP-Scoring\output\워드(한글)-009866-성유나.hml"
|
||||
tree = ET.parse(xml_path)
|
||||
root = tree.getroot()
|
||||
# xpath로 바이너리 부분추출
|
||||
binary_data = root.xpath('//BINDATA[@Id=//BINITEM[@Format="OLE"]/@BinData]/text()')
|
||||
binary_data = binary_data[0].encode('utf-8')
|
||||
# 파일을 읽어들입니다.
|
||||
# with open('./chartBinData2', 'rb') as file:
|
||||
# encoded_data = file.read()
|
||||
# encoded_data 내에 존재하는 <BINDATA ...> ... </BINDATA> 태그를 찾아서 삭제
|
||||
# <BINDATA ...> 태그는 base64 디코딩을 수행할 때 오류가 발생하므로 삭제합니다.
|
||||
|
||||
# <BINDATA ...> 태그와 그 내부 내용을 삭제합니다.
|
||||
encoded_data = re.sub(b'<BINDATA.*?>', b'', binary_data)
|
||||
# encoded_data = re.sub(b'<BINDATA.*?>', b'', encoded_data)
|
||||
# print(encoded_data)
|
||||
encoded_data = encoded_data.replace(b'</BINDATA>', b'')
|
||||
encoded_data = encoded_data.replace(b'\r\n', b'')
|
||||
# print(encoded_data+b'==')
|
||||
|
||||
# base64 디코딩을 수행합니다.
|
||||
|
||||
decoded_data = base64.b64decode(encoded_data+b'==')
|
||||
|
||||
print(decoded_data)
|
||||
|
||||
# 디코딩된 데이터 내용 중 xml 형식만 추출할 때 <c:chartSpace>, </c:chartSpace> 사이의 데이터만 추출.
|
||||
start = decoded_data.find(b'<?xml')
|
||||
print(start)
|
||||
end = decoded_data.find(b'</c:chartSpace>')
|
||||
print(end)
|
||||
xml_data = decoded_data[start:end+len(b'</c:chartSpace>')]
|
||||
|
||||
# 디코딩된 데이터를 파일로 저장합니다.
|
||||
with open('ext_BinData.xml', 'wb') as file:
|
||||
file.write(xml_data)
|
||||
|
||||
|
||||
print("Decoding complete. Decoded data saved to 'decoded_chartBinData'.")
|
||||
@@ -1 +1 @@
|
||||
[{"kind":1,"language":"markdown","value":"# XPath Notebook\nDate: 2025-01-22 Time: 16:12:58"},{"kind":1,"language":"markdown","value":"* mm > pt 변환비율 = 2.83465 \r\n* 283.465"},{"kind":1,"language":"markdown","value":"- 색상 demical 코드 [1-2] [1-10] [2-8] [2-37]"},{"kind":2,"language":"xpath","value":"//TEXTART[@Text='클라우드컴퓨팅컨퍼런스']/descendant::WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//RECTANGLE[.//CHAR[text()='전']]//WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//RECTANGLE//CHAR[text()='클라우드 컴퓨팅']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor"},{"kind":1,"language":"markdown","value":"- [1-10] ① ●, ② ●, ③ ※"},{"kind":2,"language":"xpath","value":"\"path\": \"count(//CHAR[contains(text(),'●')]) + count(//CHAR[contains(text(),'※')])\",\r\n \"path2\": \"string-length(//CHAR[contains(text(),'●')]) - string-length(translate(//CHAR[contains(text(),'●')], '●', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))\","},{"kind":1,"language":"markdown","value":"- [1-28] [2-28] @FormatType 종류\r\n - HangulSyllable : 가나다\r\n - Digit : 123\r\n - DecagonCircle : 갑을병정\r\n - LatinCapital : ABC\r\n - CircledDigit : ①,②,③\r\n - Ideograph : 一,二,三\r\n - CircledHangulJamo : ㉠,㉡,㉢\r\n - CircledLatinSmall : ⓐ,ⓑ,ⓒ\r\n - RomanSmall : i,ii,iii"},{"kind":2,"language":"xpath","value":"//SECTION[1]//PAGENUM/@FormatType"},{"kind":2,"language":"xpath","value":"//P[TEXT[CHAR[contains(text(), '눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함')]]]//AUTONUMFORMAT/@Type"},{"kind":1,"language":"markdown","value":"- [2-30] ① 저감(低減), ② 화석(化石), ③ 투자(投資), ④ 달성(達成), ⑤ 세금(稅金)"},{"kind":2,"language":"xpath","value":"(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"},{"kind":1,"language":"markdown","value":"- [2-37] [2-39] [2-40] @EndColAddr 속성값 \r\n - 표의 열 갯수-1\r\n - 4개=3 / 3개=2 / 2개=1"},{"kind":2,"language":"xpath","value":"@EndColAddr='2'"},{"kind":1,"language":"markdown","value":"- [2-45]\r\n - 꺾은선형 //c:lineChart[c:grouping[@val='standard']]\r\n - 묶은가로막대형 //c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']]\r\n - 묶은세로막대형 //c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]\r\n - 원형 //c:pieChart\r\n - 분산형 //c:scatterChart"},{"kind":1,"language":"markdown","value":"//c:{chart_type}Chart/"},{"kind":2,"language":"xpath","value":"boolean(//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']])"},{"kind":2,"language":"xpath","value":"//c:valAx/c:majorTickMark/@val"}]
|
||||
[{"kind":1,"language":"markdown","value":"# XPath Notebook\nDate: 2025-01-22 Time: 16:12:58"},{"kind":2,"language":"xpath","value":""},{"kind":1,"language":"markdown","value":"* mm > pt 변환비율 = 2.83465 \r\n* 283.465"},{"kind":1,"language":"markdown","value":"- 색상 demical 코드 [1-2] [1-10] [2-8] [2-37]"},{"kind":2,"language":"xpath","value":"//TEXTART[@Text='클라우드컴퓨팅컨퍼런스']/descendant::WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//RECTANGLE[.//CHAR[text()='전']]//WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//RECTANGLE//CHAR[text()='클라우드 컴퓨팅']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor"},{"kind":1,"language":"markdown","value":"- [1-10] ① ●, ② ●, ③ ※"},{"kind":2,"language":"xpath","value":"\"path\": \"count(//CHAR[contains(text(),'●')]) + count(//CHAR[contains(text(),'※')])\",\r\n \"path2\": \"string-length(//CHAR[contains(text(),'●')]) - string-length(translate(//CHAR[contains(text(),'●')], '●', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))\","},{"kind":1,"language":"markdown","value":"- [1-28] [2-28] @FormatType 종류\r\n - HangulSyllable : 가나다\r\n - Digit : 123\r\n - DecagonCircle : 갑을병정\r\n - LatinCapital : ABC\r\n - CircledDigit : ①,②,③\r\n - Ideograph : 一,二,三\r\n - CircledHangulJamo : ㉠,㉡,㉢\r\n - CircledLatinSmall : ⓐ,ⓑ,ⓒ\r\n - RomanSmall : i,ii,iii"},{"kind":2,"language":"xpath","value":"//SECTION[1]//PAGENUM/@FormatType"},{"kind":2,"language":"xpath","value":"//P[TEXT[CHAR[contains(text(), '눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함')]]]//AUTONUMFORMAT/@Type"},{"kind":1,"language":"markdown","value":"- [2-30] ① 저감(低減), ② 화석(化石), ③ 투자(投資), ④ 달성(達成), ⑤ 세금(稅金)"},{"kind":2,"language":"xpath","value":"(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"},{"kind":1,"language":"markdown","value":"- [2-37] [2-39] [2-40] @EndColAddr 속성값 \r\n - 표의 열 갯수-1\r\n - 4개=3 / 3개=2 / 2개=1"},{"kind":2,"language":"xpath","value":"@EndColAddr='2'"},{"kind":1,"language":"markdown","value":"- [2-45]\r\n - 꺾은선형 //c:lineChart[c:grouping[@val='standard']]\r\n - 묶은가로막대형 //c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']]\r\n - 묶은세로막대형 //c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]\r\n - 원형 //c:pieChart\r\n - 분산형 //c:scatterChart"},{"kind":1,"language":"markdown","value":"//c:{chart_type}Chart/"},{"kind":2,"language":"xpath","value":"boolean(//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']])"},{"kind":2,"language":"xpath","value":"//c:valAx/c:majorTickMark/@val"},{"kind":2,"language":"xpath","value":"boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])"},{"kind":2,"language":"xpath","value":"//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '=AVG')]"},{"kind":2,"language":"xpath","value":"//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '=AVG')]"}]
|
||||
659
diwScoring.py
659
diwScoring.py
@@ -1,659 +0,0 @@
|
||||
import tkinter as tk
|
||||
from tkinter import filedialog, messagebox
|
||||
from datetime import datetime
|
||||
import difflib
|
||||
import json
|
||||
from pathlib import Path
|
||||
import os
|
||||
from lxml import etree as ET
|
||||
import re
|
||||
from difflib import SequenceMatcher
|
||||
import pandas as pd
|
||||
import base64
|
||||
# from xpathSearch import XMLPathHandler
|
||||
|
||||
class XMLScorer:
|
||||
# 채점 기준 경로 초기화
|
||||
def __init__(self, scoring_criteria_path):
|
||||
# 채점 기준 로드
|
||||
self.scoring_criteria = self._load_scoring_criteria(scoring_criteria_path)
|
||||
|
||||
def set_typo_score(self, score):
|
||||
self.typo_score = score
|
||||
|
||||
def get_typo_score(self):
|
||||
return self.typo_score
|
||||
|
||||
# 채점 기준파일 로드(JSON 파일)
|
||||
def _load_scoring_criteria(self, file_path):
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
return json.load(f)
|
||||
|
||||
# XML 파일에서 element의 값을 찾아 반환
|
||||
def query_xml(self, root, *args):
|
||||
first_xpath = args[0]
|
||||
second_xpath = args[1]
|
||||
points = args[2]
|
||||
category = args[3]
|
||||
right_answer = args[4]
|
||||
|
||||
if "Hyperlink" in category:
|
||||
is_hyperlink = self.scoring_criteria["1"]["17"]["hyperlink"]
|
||||
hyperlink_xpath = self.scoring_criteria["1"]["17"]["hyperlink_xpath"]
|
||||
right_text = self.scoring_criteria["1"]["17"]["searchValue"].replace(" ","")
|
||||
try:
|
||||
# 하이퍼링크가 포함된 p태그 인지 확인
|
||||
p_elements = root.xpath(is_hyperlink)
|
||||
|
||||
for p in p_elements:
|
||||
text_list = p.xpath(".//CHAR/text()")
|
||||
full_text = ''.join(text_list).replace(" ", "")
|
||||
# right_text의 첫 문자
|
||||
first_char = right_text[0]
|
||||
# full_text에서 첫 문자 위치 찾기
|
||||
index = full_text.find(first_char)
|
||||
|
||||
if index != -1:
|
||||
trimmed_full_text = full_text[index:]
|
||||
else:
|
||||
trimmed_full_text = full_text # 일치 문자 없으면 원본 그대로
|
||||
|
||||
similarity = difflib.SequenceMatcher(None, trimmed_full_text, right_text).ratio()
|
||||
# 두 문자열이 같을 경우만 하이퍼링크 확인
|
||||
if similarity >= 0.7:
|
||||
inside_field = False
|
||||
charshape_values = []
|
||||
|
||||
for elem in p.iter():
|
||||
# 시작 지점 확인
|
||||
if elem.tag == "FIELDBEGIN":
|
||||
inside_field = True
|
||||
elif elem.tag == "FIELDEND":
|
||||
inside_field = False
|
||||
elif inside_field and elem.tag == "TEXT":
|
||||
charshape = elem.get("CharShape")
|
||||
if charshape:
|
||||
charshape_values.append(charshape)
|
||||
|
||||
# 하이퍼링크에 해당하는 P태그 내 존재하는 charshape ID값 모두를 비교해 해당 속성(ITALIC, BOLD, UNDERLINE) 확인
|
||||
if charshape_values:
|
||||
for charshape in charshape_values:
|
||||
result = root.xpath(hyperlink_xpath.replace('{charshape_id}', charshape))
|
||||
# 해당 속성이 하나라도 적용되어있지 않으면 False 반환
|
||||
if not result:
|
||||
return result
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
except ET.XPathEvalError as e:
|
||||
return None
|
||||
|
||||
if ("특수문자" in category) and (second_xpath is not None):
|
||||
try:
|
||||
result = root.xpath(first_xpath)
|
||||
# 결과값이 리스트형인데 내부에 정보가 없는경우
|
||||
# 결과값이 없음
|
||||
if type(result) is list and len(result) == 0:
|
||||
return None
|
||||
elif result < points:
|
||||
result2 = root.xpath(second_xpath)
|
||||
return max(result, result2)
|
||||
else:
|
||||
return result
|
||||
|
||||
except ET.XPathEvalError as e:
|
||||
return None
|
||||
|
||||
# xpath2가 있는 경우
|
||||
elif second_xpath is not None:
|
||||
try:
|
||||
result1 = root.xpath(first_xpath)
|
||||
result2 = root.xpath(second_xpath)
|
||||
if (type(result1) is list and len(result1) == 0) and (type(result2) is list and len(result2) == 0):
|
||||
return None
|
||||
|
||||
# xpath1과 xpath2의 결과값이 모두 리스트인 경우
|
||||
# 두 결과값 중 정답이 포함된 리스트를 반환
|
||||
if type(result1) is list and type(result2) is list:
|
||||
if right_answer in result1:
|
||||
return result1
|
||||
elif right_answer in result2:
|
||||
return result2
|
||||
|
||||
return result1 if result1 else result2
|
||||
|
||||
except ET.XPathEvalError as e:
|
||||
return None
|
||||
|
||||
else:
|
||||
try:
|
||||
result = root.xpath(first_xpath)
|
||||
if type(result) is list and len(result) == 0:
|
||||
return None
|
||||
return result
|
||||
except ET.XPathEvalError as e:
|
||||
return None
|
||||
|
||||
def chart_query_xml(self, tree, xpath, namespaces):
|
||||
|
||||
result = tree.xpath(xpath, namespaces=namespaces)
|
||||
if type(result) is list and len(result) == 0:
|
||||
return None
|
||||
|
||||
return result
|
||||
|
||||
|
||||
# 유사한 텍스트 찾기
|
||||
def find_similar_text(self, root, target_text, threshold=0.7):
|
||||
"""
|
||||
전체 문서에서 유사한 텍스트를 찾아 반환
|
||||
|
||||
Args:
|
||||
root (_type_): xml root element 객체
|
||||
target_text (_type_): 찾을 텍스트
|
||||
threshold (float, optional): 유사도 설정 Defaults to 0.3.
|
||||
|
||||
Returns:
|
||||
str: 유사도 기준을 만족하는 텍스트
|
||||
"""
|
||||
# 전체 텍스트 추출
|
||||
# all_text = root.xpath(f"//CHAR/text()")
|
||||
# all_text.append(root.xpath(f"//TEXTART/@text"))
|
||||
|
||||
namespaces = {
|
||||
|
||||
'a': 'http://schemas.openxmlformats.org/drawingml/2006/main',
|
||||
'c': 'http://schemas.openxmlformats.org/drawingml/2006/chart'
|
||||
}
|
||||
|
||||
if type(root) is str:
|
||||
all_text = root
|
||||
else:
|
||||
all_text = root.xpath(f"//BODY//text() | //TEXTART/@Text | //c:chart//text()", namespaces=namespaces)
|
||||
|
||||
# 유사도 비교
|
||||
max_score = 0
|
||||
similar_text = ''
|
||||
|
||||
for text in all_text:
|
||||
score = SequenceMatcher(None, target_text, text).ratio()
|
||||
|
||||
if score > max_score:
|
||||
max_score = score
|
||||
similar_text = text
|
||||
|
||||
if max_score >= threshold:
|
||||
return similar_text
|
||||
else:
|
||||
return None
|
||||
|
||||
# 하나의 XML 파일 채점
|
||||
def _score_xml_file(self, xml_file, chart_xml):
|
||||
try:
|
||||
tree = ET.parse(xml_file)
|
||||
root = tree.getroot()
|
||||
|
||||
# 네임스페이스 정의
|
||||
namespaces = {
|
||||
'a': 'http://schemas.openxmlformats.org/drawingml/2006/main',
|
||||
'c': 'http://schemas.openxmlformats.org/drawingml/2006/chart'
|
||||
}
|
||||
|
||||
# 차트 XML 파일이 없는 경우 0점 채점을 위헤 빈 XML 생성
|
||||
if chart_xml is None:
|
||||
chart_tree = ET.fromstring('<xml></xml>')
|
||||
else:
|
||||
chart_tree = ET.fromstring(chart_xml)
|
||||
|
||||
# 결과값을 Dictionary로 저장
|
||||
results = {
|
||||
'filename': os.path.basename(xml_file),
|
||||
'score_results': [],
|
||||
'total_score': 0,
|
||||
'partial_scores': []
|
||||
}
|
||||
|
||||
print(f"File name: {results['filename']}")
|
||||
|
||||
total_score = 0
|
||||
for section_id, section in self.scoring_criteria.items():
|
||||
partial_score = 0
|
||||
|
||||
for criterion_id, criterion in section.items():
|
||||
id = criterion_id
|
||||
xpath = criterion['path'] if 'path' in criterion else None
|
||||
xpath2 = criterion['path2'] if 'path2' in criterion else None
|
||||
search_value = criterion['searchValue'] if 'searchValue' in criterion else None
|
||||
right_answer = criterion['value'] if 'value' in criterion else None
|
||||
points = criterion['points'] if 'points' in criterion else None
|
||||
category = criterion['category'] if 'category' in criterion else None
|
||||
item = criterion['item']
|
||||
similar_text = None
|
||||
|
||||
# chart xml 파일에서 채점하는 경우
|
||||
if "chart_xml" in category:
|
||||
if search_value is not None:
|
||||
similar_text = self.find_similar_text(chart_tree, search_value)
|
||||
if similar_text is None:
|
||||
xpath = xpath.replace('{searchValue}', search_value)
|
||||
else:
|
||||
xpath = xpath.replace('{searchValue}', similar_text)
|
||||
|
||||
result = self.chart_query_xml(chart_tree, xpath, namespaces)
|
||||
|
||||
# 그 외의 hml 파일에서 채점하는 경우
|
||||
else:
|
||||
if search_value is not None:
|
||||
similar_text = self.find_similar_text(root, search_value)
|
||||
if similar_text is None:
|
||||
xpath = xpath.replace('{searchValue}', search_value)
|
||||
else:
|
||||
xpath = xpath.replace('{searchValue}', similar_text)
|
||||
|
||||
result = self.query_xml(root, xpath, xpath2, points, category, right_answer)
|
||||
|
||||
# [ boolean 타입 ]
|
||||
# 1. 이텔릭체, 굵게, 밑줄 등 효과가 적용 여부에 따라
|
||||
# [ITALIC] [BOLD] [UNDERLINE] 태그가 있거나 없을 수 있으므로
|
||||
# 존재 유무에 따라 True, False로 판단
|
||||
# 2. 두 가지 이상의 조건을 모두 만족해야 하는 경우 and 연산자로 연결되어
|
||||
# 반환값 True/False로 판단
|
||||
# [ float 타입 ]
|
||||
# 1. 부분점수의 합산으로 반환되는 경우 float 타입으로 반환
|
||||
if type(result) is not list:
|
||||
if type(result) is float and (result > points):
|
||||
actual_answer = float(points)
|
||||
else:
|
||||
actual_answer = result
|
||||
else:
|
||||
if type(right_answer) is int:
|
||||
actual_answer = int(result[0])
|
||||
else:
|
||||
actual_answer = result[0]
|
||||
|
||||
if "오타감점" in category:
|
||||
points = self.get_typo_score()
|
||||
|
||||
scoring = {
|
||||
'section': section_id,
|
||||
'id': id,
|
||||
'category': category, # 채점 분류
|
||||
'item': item, # 채점 항목
|
||||
'right_answer': right_answer, # 정답
|
||||
'actual_answer': actual_answer, # 실제 작성 답안
|
||||
'points': points,
|
||||
'deductions': [] # 각 기준별 감점 내역
|
||||
}
|
||||
|
||||
# 점수 차감 조건
|
||||
# 1. 정답이 실수형으로 반환받은 경우는 채점항목의 부분점수 합산 결과이므로
|
||||
# 반환받은 값 그대로를 점수로 사용
|
||||
# 2. 정답이 정수형(사이즈 비교)의 경우 오차범위를 넘는다면 감점
|
||||
# 3. 그 외의 경우 정답과 실제 작성 답안이 다른 경우 점수 차감
|
||||
if type(actual_answer) is float:
|
||||
scoring['points'] = actual_answer
|
||||
|
||||
elif type(actual_answer) is int:
|
||||
# 오차범위 3 이상이면 감점
|
||||
if abs(actual_answer - right_answer) > 3:
|
||||
scoring['points'] -= points
|
||||
else:
|
||||
# right_answer(JSON파일 내 valuer값) null일 경우 점수감점 없이 진행
|
||||
if right_answer != actual_answer:
|
||||
scoring['points'] -= points
|
||||
|
||||
results['score_results'].append(scoring)
|
||||
total_score += scoring['points']
|
||||
partial_score += scoring['points']
|
||||
|
||||
print(f'scoring: {scoring}')
|
||||
|
||||
results['partial_scores'].append({
|
||||
'section': section_id,
|
||||
'score': partial_score
|
||||
})
|
||||
results['total_score'] = total_score
|
||||
return results
|
||||
|
||||
except ET.ParseError as e:
|
||||
return {
|
||||
'filename': os.path.basename(xml_file),
|
||||
'error': f"XML 파싱 오류: {str(e)}",
|
||||
'total_score': 0
|
||||
}
|
||||
|
||||
def binary_to_chartxml(self, xml_path):
|
||||
tree = ET.parse(xml_path)
|
||||
root = tree.getroot()
|
||||
|
||||
binary_data = root.xpath('//BINDATA[@Id=//BINITEM[@Format="OLE"]/@BinData]/text()')
|
||||
if not binary_data:
|
||||
return None
|
||||
binary_data = binary_data[0].encode('utf-8')
|
||||
|
||||
# <BINDATA ...> 태그와 그 내부 내용을 삭제합니다.
|
||||
encoded_data = re.sub(b'<BINDATA.*?>', b'', binary_data)
|
||||
encoded_data = encoded_data.replace(b'</BINDATA>', b'')
|
||||
encoded_data = encoded_data.replace(b'\r\n', b'')
|
||||
|
||||
# base64 디코딩을 수행합니다.
|
||||
decoded_data = base64.b64decode(encoded_data+b'==')
|
||||
|
||||
# 디코딩된 데이터 내용 중 xml 형식만 추출할 때 <c:chartSpace>, </c:chartSpace> 사이의 데이터만 추출.
|
||||
start = decoded_data.find(b'<?xml')
|
||||
print(start)
|
||||
end = decoded_data.find(b'</c:chartSpace>')
|
||||
print(end)
|
||||
xml_data = decoded_data[start:end+len(b'</c:chartSpace>')]
|
||||
|
||||
# xml 데이터가 없는 경우 None을 반환합니다.
|
||||
if -1 in [start, end]:
|
||||
return None
|
||||
|
||||
# 디코딩된 데이터를 파일로 저장합니다.
|
||||
base_filename = os.path.splitext(xml_path)[0]
|
||||
new_filename = f'{base_filename}.xml'
|
||||
with open(new_filename, 'wb') as file:
|
||||
file.write(xml_data)
|
||||
|
||||
return xml_data
|
||||
|
||||
def typo_check(self, correct_answer_file, user_answer_file, chart_xml):
|
||||
user_answer_tree = ET.parse(user_answer_file)
|
||||
user_answer_root = user_answer_tree.getroot()
|
||||
correct_answer_tree = ET.parse(correct_answer_file)
|
||||
correct_answer_root = correct_answer_tree.getroot()
|
||||
|
||||
# xpath로 바이너리 부분추출
|
||||
user_input_text = user_answer_root.xpath('//CHAR//text()[not(ancestor::HEADER) and not(ancestor::TABLE)]')
|
||||
user_table_text = user_answer_root.xpath('//TABLE//CHAR//text()')
|
||||
user_input_text += user_table_text
|
||||
|
||||
correct_input_text = correct_answer_root.xpath('//CHAR//text()[not(ancestor::HEADER) and not(ancestor::TABLE)]')
|
||||
correct_table_text = correct_answer_root.xpath('//TABLE//CHAR//text()')
|
||||
correct_input_text += correct_table_text
|
||||
|
||||
# 차트 XML에서 제목 추출
|
||||
if chart_xml is not None:
|
||||
chart_xml_tree = ET.fromstring(chart_xml)
|
||||
|
||||
# 차트 제목 추출
|
||||
user_chart_title = chart_xml_tree.xpath('/c:chartSpace/c:chart/c:title/c:tx/c:rich/a:p/a:r/a:t', namespaces={'c': 'http://schemas.openxmlformats.org/drawingml/2006/chart', 'a': 'http://schemas.openxmlformats.org/drawingml/2006/main'})
|
||||
|
||||
# 차트 제목이 존재하는 경우
|
||||
if user_chart_title:
|
||||
user_input_text.append(user_chart_title[0].text)
|
||||
|
||||
# 차트 제목 정답 텍스트 추출
|
||||
correct_chart_title = self.scoring_criteria["2"]["50"]["searchValue"]
|
||||
correct_input_text.append(correct_chart_title)
|
||||
|
||||
# 각 요소에서 공백 제거
|
||||
user_input_text = [text.replace(' ', '') for text in user_input_text]
|
||||
correct_input_text = [text.replace(' ', '') for text in correct_input_text]
|
||||
|
||||
|
||||
# 숫자와 특정 형식 제거 (예: 1., 2., 3., -)
|
||||
user_input_text = [re.sub(r'\d+\.\s*|-', '', text) for text in user_input_text]
|
||||
correct_input_text = [re.sub(r'\d+\.\s*|-', '', text) for text in correct_input_text]
|
||||
|
||||
try :
|
||||
# xpath = self.scoring_criteria["2"]["29"]['path'].split("'")[1]
|
||||
# ignore_word = xpath.split("'")[1]
|
||||
ignore_word = self.scoring_criteria["2"]["29"]["ignoreWord"]
|
||||
# 특정 단어 제거
|
||||
# 오타와 누락의 경우만 판단하면 정상작동하지만
|
||||
# 추가 된 단어의 경우를 채점기준에 추가하면 정확하게 채점 되지 않을 수 있음
|
||||
# [정답] Hybrid [실제작성]
|
||||
user_input_text = [text.replace(ignore_word, '') for text in user_input_text]
|
||||
correct_input_text = [text.replace(ignore_word, '') for text in correct_input_text]
|
||||
except (KeyError, IndexError, AttributeError):
|
||||
ignore_word = None
|
||||
|
||||
print(f"ignore_word: {ignore_word}")
|
||||
|
||||
# 리스트를 하나의 문자열로 변경
|
||||
user_input_text_str = ''.join(user_input_text)
|
||||
currect_input_text_str = ''.join(correct_input_text)
|
||||
|
||||
print("user_input_text as string:")
|
||||
print(user_input_text_str)
|
||||
print("\ncurrect_input_text_answer as string:")
|
||||
print(currect_input_text_str)
|
||||
|
||||
|
||||
# 문자열의 차이를 비교
|
||||
diff = difflib.ndiff(currect_input_text_str, user_input_text_str)
|
||||
diff_list = list(diff)
|
||||
|
||||
# 차이점을 정리하여 result_diff에 저장
|
||||
result_diff = []
|
||||
|
||||
# 누락 된 단어만 따로 리스트로 저장
|
||||
missing_list = []
|
||||
|
||||
# 오타와 누락된 단어 리스트 저장
|
||||
error_missing_list = []
|
||||
|
||||
skip_next = False
|
||||
|
||||
for i, line in enumerate(diff_list):
|
||||
if skip_next:
|
||||
skip_next = False
|
||||
continue
|
||||
# diff_list의 line 시작이 '-'이면서 다음 line이 '+'이면 두 line을 붙여서 맞춤법이 틀린 단어로 판단
|
||||
if line.startswith('- '):
|
||||
# 오타
|
||||
if i + 1 < len(diff_list) and diff_list[i + 1].startswith('+ '):
|
||||
line = line.replace('- ', '-')
|
||||
next = diff_list[i + 1].replace('+ ', '')
|
||||
result_diff.append(line+'=>'+next)
|
||||
error_missing_list.append(line+'=>'+next)
|
||||
skip_next = True
|
||||
# 누락
|
||||
else:
|
||||
line = line.replace('- ', '-')
|
||||
result_diff.append(line)
|
||||
missing_list.append(line)
|
||||
error_missing_list.append(line)
|
||||
# 없어도 되는 글자가 있는 경우 (추가)
|
||||
elif line.startswith('+ '):
|
||||
line = line.replace('+ ', '+')
|
||||
result_diff.append(line)
|
||||
|
||||
# result_diff 출력
|
||||
# print("\nResult Differences:")
|
||||
# for diff in result_diff:
|
||||
# print(diff)
|
||||
|
||||
# result_diff 배열의 길이를 맨 앞에 저장
|
||||
|
||||
# 모든 차이를 계산해 점수 차감
|
||||
# temp = 40 - min(len(result_diff)*2, 40)
|
||||
|
||||
# 누락된 텍스트만 계산해 점수 차감
|
||||
# temp = 40 - min(len(missing_list)*2, 40)
|
||||
|
||||
# 2503회 기준 오타 1개당 [2점]->[1점] 차감
|
||||
temp = 40 - min(len(error_missing_list)*1, 40)
|
||||
|
||||
self.set_typo_score(temp)
|
||||
|
||||
result_diff.insert(0, temp)
|
||||
return result_diff
|
||||
|
||||
# XML 파일 채점
|
||||
def score_directory(self, xml_directory, correct_answer_file):
|
||||
# xml 파일 불러오기
|
||||
xml_files = Path(xml_directory).glob('*.hml')
|
||||
|
||||
# 결과 저장할 리스트
|
||||
results = []
|
||||
|
||||
for user_answer_file in xml_files:
|
||||
result = {}
|
||||
chart_xml = self.binary_to_chartxml(user_answer_file)
|
||||
result['typo'] = self.typo_check(correct_answer_file, user_answer_file, chart_xml)
|
||||
result['score'] = self._score_xml_file(user_answer_file, chart_xml)
|
||||
# result['score']['score_results'][2]['points'] = result['typo'][0]
|
||||
results.append(result)
|
||||
return results
|
||||
|
||||
def parse_filename(self, filename):
|
||||
if isinstance(filename, dict):
|
||||
filename = filename.get('파일명', '')
|
||||
match = re.match(r'.*-(\d+)-(.+)\.hml', filename)
|
||||
if match:
|
||||
number = match.group(1)
|
||||
name = match.group(2)
|
||||
return number, name
|
||||
|
||||
return None, None
|
||||
|
||||
def export_to_excel(self, results, output_path=None):
|
||||
if output_path is None:
|
||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") #연월일_시분초
|
||||
# timestamp = datetime.now().strftime("%Y%m%d") #연월일
|
||||
output_path = f"scoring_results_{timestamp}.xlsx"
|
||||
|
||||
summary_data = []
|
||||
detail_data = []
|
||||
typo_data = []
|
||||
|
||||
for temp in results:
|
||||
# 요약 정보
|
||||
result = temp['score']
|
||||
summary_row = {
|
||||
'파일명': result['filename'],
|
||||
'총점': result.get('total_score', 0)
|
||||
}
|
||||
if 'error' in result:
|
||||
summary_row['오류'] = result['error']
|
||||
|
||||
summary_data.append(summary_row)
|
||||
|
||||
# 상세 정보
|
||||
if 'score_results' in result:
|
||||
filename = {'파일명': result['filename']}
|
||||
number, name = self.parse_filename(filename)
|
||||
if (number or name) is None:
|
||||
detail_row = {'채점항목': result['filename'] }
|
||||
else:
|
||||
detail_row = {'채점항목':f"{number}-{name}"}
|
||||
|
||||
section_num = None
|
||||
row_index = []
|
||||
for i, score_result in enumerate(result['score_results']):
|
||||
current_section = score_result['section']
|
||||
|
||||
if section_num is None:
|
||||
section_num = current_section
|
||||
|
||||
# 다음 섹션(문제0 => 문제1)로 넘어갔을 경우 or 마지막 문제일 경우
|
||||
if current_section != section_num:
|
||||
# 이전 섹션의 부분합을 출력
|
||||
detail_row[f'문제{section_num}'] = result['partial_scores'][int(section_num)]['score']
|
||||
row_index.append(f'문제{section_num}')
|
||||
section_num = current_section
|
||||
|
||||
detail_row[f'{i+1}'] = score_result['points']
|
||||
row_index.append(score_result['id'])
|
||||
|
||||
# 마지막 섹션(문제2)부분합 점수를 출력
|
||||
if i == len(result['score_results']) - 1:
|
||||
detail_row[f'문제{current_section}'] = result['partial_scores'][int(current_section)]['score']
|
||||
row_index.append(f'문제{current_section}')
|
||||
|
||||
detail_row['총점'] = result.get('total_score', 0)
|
||||
row_index.append('총점')
|
||||
detail_data.append(detail_row)
|
||||
|
||||
summary_df = pd.DataFrame(summary_data)
|
||||
detail_df = pd.DataFrame(detail_data).transpose()
|
||||
detail_df.columns = detail_df.iloc[0]
|
||||
detail_df = detail_df[1:]
|
||||
|
||||
detail_df.index = row_index
|
||||
# detail_df = pd.DataFrame(detail_data)
|
||||
|
||||
for temp in results:
|
||||
result = temp['typo']
|
||||
typo_data.append(result)
|
||||
|
||||
typo_df = pd.DataFrame(typo_data).transpose()
|
||||
# detail_df = pd.DataFrame(detail_data)
|
||||
|
||||
# ExcelWriter 객체 생성
|
||||
with pd.ExcelWriter(output_path, engine='openpyxl') as writer:
|
||||
summary_df.to_excel(writer, sheet_name='채점결과요약', index=False)
|
||||
detail_df.to_excel(writer, sheet_name='채점상세내역', index=True)
|
||||
typo_df.to_excel(writer, sheet_name='오타내역', index=False)
|
||||
|
||||
# 열 너비 자동 조정
|
||||
# for sheet_name in writer.sheets:
|
||||
# worksheet = writer.sheets[sheet_name]
|
||||
# for column_cells in worksheet.columns:
|
||||
# max_length = 0
|
||||
# column = column_cells[0].column_letter # 열의 문자
|
||||
# for cell in column_cells:
|
||||
# try:
|
||||
# if cell.value:
|
||||
# max_length = max(max_length, len(str(cell.value)))
|
||||
# except:
|
||||
# pass
|
||||
# adjusted_width = (max_length + 2)
|
||||
# worksheet.column_dimensions[column].width = adjusted_width
|
||||
|
||||
return output_path
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
# 시험회차 및 유형
|
||||
exam_round = '2504'
|
||||
|
||||
# 250429기준 없는 시험 형식(A,B,C..)은 주석처리 하지 않으면 오류 발생
|
||||
exam_types = [
|
||||
'A',
|
||||
# 'B',
|
||||
# 'C',
|
||||
]
|
||||
# test_mode = False
|
||||
test_mode = True
|
||||
|
||||
output_excel_paths = []
|
||||
for exam_type in exam_types:
|
||||
|
||||
# JSON 채점기준표 파일 (예시:DIW_2503A.json)
|
||||
# scoring_criteria_path = f'./DIW_{exam_round}.json'
|
||||
scoring_criteria_path = f'./DIW_{exam_round}{exam_type}.json'
|
||||
|
||||
# xml(hml)파일 디렉토리 경로 (예시:./output/A/DIW)
|
||||
# xml_directory = f'./output/{exam_type}/{"TEST" if test_mode else "DIW"}'
|
||||
|
||||
# 회차가 여러개인 경우
|
||||
xml_directory = f'./output/{exam_round}/{exam_type}/{"TEST" if test_mode else "DIW"}'
|
||||
|
||||
|
||||
# 오탈자 체크를 위한 정답 파일 경로 (예시:./output/A/DIW/DIW_2503A.hml)
|
||||
# correct_answer_file = f'./output/{exam_type}/DIW/DIW_{exam_round}{exam_type}.hml'
|
||||
correct_answer_file = f'./output/{exam_round}/{exam_type}/DIW/DIW_{exam_round}{exam_type}.hml'
|
||||
|
||||
# 엑셀 파일명 (비어있으면 자동생성) (예시:241001_DIW_2503A_채점결과.xlsx)
|
||||
timestamp = datetime.now().strftime("%y%m%d")
|
||||
output_path = f'{timestamp}_DIW_{exam_round}회_{exam_type}형_{"TEST" if test_mode else "채점결과"}.xlsx'
|
||||
|
||||
# 채점 클래스 초기화
|
||||
scorer = XMLScorer(scoring_criteria_path)
|
||||
|
||||
# 폴더 내 모든 xml 파일 채점
|
||||
results = scorer.score_directory(xml_directory, correct_answer_file)
|
||||
|
||||
# 채점 결과 엑셀로 저장
|
||||
output_excel_paths.append(scorer.export_to_excel(results, output_path))
|
||||
|
||||
print(f"채점 결과 엑셀 파일: {output_excel_paths}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -236,6 +236,7 @@ class XMLScorer:
|
||||
category = criterion.get('category', None)
|
||||
item = criterion.get('item', None)
|
||||
option = criterion.get('option', None)
|
||||
ignore_word = criterion.get('ignoreWord', None)
|
||||
similar_text = None
|
||||
|
||||
# search_value가 있는 경우
|
||||
@@ -253,6 +254,9 @@ class XMLScorer:
|
||||
xpath2 = xpath2.replace('{option}', option) if xpath2 else ""
|
||||
chart_xpath = chart_xpath.replace('{option}', option) if chart_xpath else ""
|
||||
|
||||
if ignore_word:
|
||||
xpath = xpath.replace('{ignoreWord}', ignore_word) if xpath else ""
|
||||
|
||||
|
||||
# 문항 별 채점 결과 저장
|
||||
scoring = {
|
||||
@@ -528,6 +532,7 @@ class XMLScorer:
|
||||
|
||||
# 가로 차트일 경우에만 x축과 y축을 바꿔줌
|
||||
# 세로, 꺾은선, 원형 차트의 경우 그대로 사용
|
||||
|
||||
if "가로" in chart_type:
|
||||
if "catAx" in chart_xpath:
|
||||
chart_xpath = chart_xpath.replace("catAx", "valAx")
|
||||
@@ -539,10 +544,13 @@ class XMLScorer:
|
||||
# valAx의 axPos(축의위치) 속성값으로 축의 방향을 구분함
|
||||
elif "분산형" in chart_type:
|
||||
if "catAx" in chart_xpath:
|
||||
# valAx[c:axPos/@val='b'] : 값축의 위치가 bottom (가로,x축)
|
||||
chart_xpath = chart_xpath.replace("catAx", "valAx[c:axPos/@val='b']")
|
||||
# 분산형 차트는 catAx 대신 valAx를 사용하거나,
|
||||
# catAx를 사용하더라도 bottom 위치의 축만 해당
|
||||
xpath_with_valax = chart_xpath.replace("catAx", "valAx[c:axPos/@val='b']")
|
||||
xpath_with_catax = chart_xpath.replace("catAx", "catAx[c:axPos/@val='b']")
|
||||
# 두 경로를 OR 조건으로 결합
|
||||
chart_xpath = xpath_with_valax + " | " + xpath_with_catax
|
||||
elif "valAx" in chart_xpath:
|
||||
# valAx[c:axPos/@val='l'] : 값축의 위치가 left (세로,y축)
|
||||
chart_xpath = chart_xpath.replace("valAx", "valAx[c:axPos/@val='l']")
|
||||
|
||||
chart_items = chart_tree.xpath(chart_xpath, namespaces=namespaces) if chart_xpath else []
|
||||
@@ -1063,13 +1071,16 @@ class XMLScorer:
|
||||
'꺾은선형': "//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='stacked']]",
|
||||
'100%기준누적가로막대형': "//c:barChart[c:barDir[@val='bar'] and c:grouping[@val='percentStacked']]",
|
||||
'원뿔형누적가로막대형': "//c:bar3DChart[c:barDir[@val='bar'] and c:grouping[@val='stacked']]",
|
||||
|
||||
'묶은세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]",
|
||||
'누적세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='stacked']]",
|
||||
'100%기준누적세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='percentStacked']]",
|
||||
'원형': "//c:pieChart",
|
||||
'분산형': "//c:scatterChart",
|
||||
'표식만있는분산형': "//c:scatterChart[c:scatterStyle[@val='marker']]",
|
||||
'곡선이있는분산형': "//c:scatterChart[c:scatterStyle[@val='smooth']]"
|
||||
}
|
||||
chart_type = criterion.get('chart_type').replace(" ","")
|
||||
|
||||
@@ -1331,7 +1342,15 @@ class XMLScorer:
|
||||
# XML 파일 채점
|
||||
def score_directory(self, xml_directory, correct_answer_file):
|
||||
# xml 파일 불러오기
|
||||
xml_files = Path(xml_directory).glob('*.hml')
|
||||
# xml_files = Path(xml_directory).glob('*.hml')
|
||||
|
||||
# 정답파일명(answer_filename)을 기준으로 xml_files 정렬
|
||||
# 정답 파일이 가장 앞에 오도록)
|
||||
answer_filename = Path(correct_answer_file).name # 파일명만 추출
|
||||
xml_files = sorted(
|
||||
Path(xml_directory).glob('*.hml'),
|
||||
key=lambda f: (0 if f.name == answer_filename else 1, f.name)
|
||||
)
|
||||
|
||||
# 채점결과 저장할 리스트
|
||||
score_results = []
|
||||
@@ -1382,10 +1401,11 @@ class XMLScorer:
|
||||
if 'score_results' in result:
|
||||
filename = {'파일명': result['filename']}
|
||||
number, name = self.parse_filename(filename)
|
||||
# 파일명에서 번호와 이름이 추출되지 않는 경우
|
||||
if (number or name) is None:
|
||||
detail_row = {'채점항목': result['filename'] }
|
||||
else:
|
||||
detail_row = {'채점항목':f"{number}-{name}"}
|
||||
detail_row = {'채점항목': f"{number}-{name}"}
|
||||
|
||||
section_num = None
|
||||
row_index = []
|
||||
@@ -1470,15 +1490,16 @@ class XMLScorer:
|
||||
def main():
|
||||
|
||||
# 시험회차 및 유형
|
||||
exam_round = '2512'
|
||||
exam_round = '2604'
|
||||
# exam_round = '2522'
|
||||
|
||||
# 채점하고자 하는 유형은 주석 해제
|
||||
exam_types = [
|
||||
'A',
|
||||
# 'A',
|
||||
# 'B',
|
||||
# 'C',
|
||||
'C',
|
||||
# 'D',
|
||||
# 'E',
|
||||
]
|
||||
|
||||
test_mode = False
|
||||
@@ -1487,17 +1508,18 @@ def main():
|
||||
output_excel_paths = []
|
||||
for exam_type in exam_types:
|
||||
# JSON 채점기준표 파일 (예시:DIW_2503A.json)
|
||||
scoring_criteria_path = f'./DIW_{exam_round}{exam_type}.json'
|
||||
scoring_criteria_path = f'./JSON/{exam_round}/DIW_{exam_round}{exam_type}.json'
|
||||
|
||||
# xml(hml)파일 디렉토리 경로 (예시:./output/2503/A/DIW)
|
||||
xml_directory = f'./output/{exam_round}/{exam_type}/{"TEST" if test_mode else "DIW"}'
|
||||
# 오탈자 체크를 위한 정답 파일 경로 (예시:./output/A/DIW/DIW_2503A.hml)
|
||||
# correct_answer_file = f'./output/{exam_type}/DIW/DIW_{exam_round}{exam_type}.hml'
|
||||
|
||||
# 오탈자 체크를 위한 정답 파일 경로
|
||||
correct_answer_file = f'./output/{exam_round}/{exam_type}/{"TEST" if test_mode else "DIW"}/DIW_{exam_round}{exam_type}.hml'
|
||||
|
||||
# 엑셀 파일명 (비어있으면 자동생성) (예시:241001_DIW_2503A_채점결과.xlsx)
|
||||
timestamp = datetime.now().strftime("%y%m%d")
|
||||
output_path = f'{timestamp}_DIW_{exam_round}{exam_type}_{"TEST" if test_mode else "채점결과"}.xlsx'
|
||||
|
||||
output_path = f'./{timestamp}_DIW_{exam_round}{exam_type}_{"TEST" if test_mode else "채점결과"}.xlsx'
|
||||
|
||||
# 채점 클래스 초기화
|
||||
scorer = XMLScorer(scoring_criteria_path)
|
||||
|
||||
7418
hwp_conversion.log
7418
hwp_conversion.log
File diff suppressed because it is too large
Load Diff
@@ -1,63 +0,0 @@
|
||||
from hanspell import spell_checker
|
||||
from lxml import etree as ET
|
||||
import difflib
|
||||
|
||||
|
||||
# sent = ['서울시 용일동 보건소에서 주최하는 ','즐거운 컬러푸드 영양교실', '은 제8회째 진행하는 행사입니다. 조화로운 식생활과 건강한 삶을 유지하도록 음식 재료의 빛깔만큼이나 다양한 효능이 그 속에 담겨져 있는 컬러푸드에 대한 올바른 영양지식을 제공하고 지역주민들이 직접 참여하여 각각의 맛과 특징을 살펴보고 골고루 먹기의 중요성을 컬러푸드 체험을 통하여 배울 수 있습니다. 이 밖에 아이들을 위한 영양 식단과 고혈압, 당뇨, 비만예방 식단 및 컬러푸드를 이용한 영양 간식 만들기 등 다양한 프로그램이 준비되어 있습니다. 아이들에게는 좋은 경험이 될 수 있는 이번 행사에 많은 참여 부탁드립니다.']
|
||||
# spelled_check=spell_checker.check(sent)
|
||||
xml_path_origin = r"/Users/waterdrw/Works/KAIT/HWP-Scoring/output/정답.hml"
|
||||
xml_path = r"/Users/waterdrw/Works/KAIT/HWP-Scoring/output/워드(한글)-010036-구준호.hml"
|
||||
tree = ET.parse(xml_path)
|
||||
root = tree.getroot()
|
||||
tree_origin = ET.parse(xml_path_origin)
|
||||
root_origin = tree_origin.getroot()
|
||||
|
||||
# xpath로 바이너리 부분추출
|
||||
input_text = root.xpath('//CHAR/text()')
|
||||
input_text_origin = root_origin.xpath('//CHAR/text()')
|
||||
|
||||
# 각 요소에서 공백 제거
|
||||
input_text = [text.replace(' ', '') for text in input_text]
|
||||
input_text_origin = [text.replace(' ', '') for text in input_text_origin]
|
||||
|
||||
|
||||
# 리스트를 하나의 문자열로 변경
|
||||
input_text_str = ''.join(input_text)
|
||||
input_text_origin_str = ''.join(input_text_origin)
|
||||
|
||||
print("input_text as string:")
|
||||
print(input_text_str)
|
||||
print("\ninput_text_origin as string:")
|
||||
print(input_text_origin_str)
|
||||
|
||||
|
||||
# 문자열의 차이를 비교
|
||||
diff = difflib.ndiff(input_text_origin_str, input_text_str)
|
||||
diff_list = list(diff)
|
||||
|
||||
# 차이점을 정리하여 result_diff에 저장
|
||||
result_diff = []
|
||||
skip_next = False
|
||||
|
||||
for i, line in enumerate(diff_list):
|
||||
if skip_next:
|
||||
skip_next = False
|
||||
continue
|
||||
# diff_list의 line 시작이 '-'이면서 다음 line이 '+'이면 두 line을 붙여서 맞춤법이 틀린 단어로 판단
|
||||
if line.startswith('- '):
|
||||
if i + 1 < len(diff_list) and diff_list[i + 1].startswith('+ '):
|
||||
line = line.replace('- ', '-')
|
||||
next = diff_list[i + 1].replace('+ ', '')
|
||||
result_diff.append(line+'=>'+next)
|
||||
skip_next = True
|
||||
else:
|
||||
line = line.replace('- ', '-')
|
||||
result_diff.append(line)
|
||||
elif line.startswith('+ '):
|
||||
line = line.replace('+ ', '+')
|
||||
result_diff.append(line)
|
||||
|
||||
# result_diff 출력
|
||||
print("\nResult Differences:")
|
||||
for diff in result_diff:
|
||||
print(diff)
|
||||
Binary file not shown.
148
xpathSearch.py
148
xpathSearch.py
@@ -1,148 +0,0 @@
|
||||
from lxml import etree
|
||||
from difflib import SequenceMatcher
|
||||
import json
|
||||
|
||||
class XMLPathHandler:
|
||||
def __init__(self, xml_file_path):
|
||||
"""
|
||||
XML 파일을 로드하고 처리하는 핸들러
|
||||
:param xml_file_path: XML 파일 경로
|
||||
"""
|
||||
self.tree = etree.parse(xml_file_path)
|
||||
self.root = self.tree.getroot()
|
||||
|
||||
def similar(self, a, b):
|
||||
"""
|
||||
두 문자열의 유사도를 계산
|
||||
:return: 유사도 점수 (0~1)
|
||||
"""
|
||||
return SequenceMatcher(None, a, b).ratio()
|
||||
|
||||
def find_similar_text(self, search_value, element_name, arg_name, threshold=0.8):
|
||||
"""
|
||||
XML에서 유사한 텍스트를 찾음
|
||||
:param search_value: 찾고자 하는 텍스트
|
||||
:param element_name: 검색할 요소 이름
|
||||
:param arg_name: 검색할 속성 이름
|
||||
:param threshold: 유사도 임계값
|
||||
:return: 가장 유사한 텍스트와 점수
|
||||
"""
|
||||
# 특정 요소의 특정 속성을 가진 모든 요소 검색
|
||||
xpath = f"//{element_name}[@{arg_name}]"
|
||||
elements = self.root.xpath(xpath)
|
||||
best_match = None
|
||||
best_score = 0
|
||||
|
||||
for element in elements:
|
||||
attr_value = element.get(arg_name)
|
||||
if attr_value is not None:
|
||||
score = self.similar(search_value, attr_value)
|
||||
if score > threshold and score > best_score:
|
||||
best_match = attr_value
|
||||
best_score = score
|
||||
|
||||
return best_match, best_score
|
||||
|
||||
def build_xpath(self, item):
|
||||
"""
|
||||
설정 항목을 기반으로 XPath 생성
|
||||
:param item: 설정 항목
|
||||
:return: 구성된 XPath와 매칭된 텍스트, 유사도 점수
|
||||
"""
|
||||
if not all(key in item for key in ['ele', 'arg', 'searchValue']):
|
||||
return None, None, 0
|
||||
|
||||
# 유사 텍스트 검색
|
||||
matched_text, score = self.find_similar_text(
|
||||
item['searchValue'],
|
||||
item['ele'],
|
||||
item['arg']
|
||||
)
|
||||
|
||||
if matched_text:
|
||||
# 기본 XPath 템플릿 구성
|
||||
xpath = f"//{item['ele']}[@{item['arg']}='{matched_text}']"
|
||||
|
||||
# path가 제공된 경우, 해당 path를 기반으로 XPath 구성
|
||||
if 'path' in item and item['path']:
|
||||
xpath = item['path'].replace(f"[@{item['arg']}='']", f"[@{item['arg']}='{matched_text}']")
|
||||
xpath = xpath.replace(f"[@{item['arg']}='searchValue']", f"[@{item['arg']}='{matched_text}']")
|
||||
|
||||
return xpath, matched_text, score
|
||||
|
||||
return None, None, 0
|
||||
|
||||
def process_config(self, config):
|
||||
"""
|
||||
설정된 JSON 설정을 처리
|
||||
:param config: JSON 설정
|
||||
:return: 처리된 XPath 결과들
|
||||
"""
|
||||
results = {}
|
||||
|
||||
for key, item in config.items():
|
||||
results[key] = {
|
||||
'original_config': item,
|
||||
'processed_results': {}
|
||||
}
|
||||
|
||||
xpath, matched_text, score = self.build_xpath(item)
|
||||
|
||||
if xpath:
|
||||
try:
|
||||
xpath_results = self.root.xpath(xpath)
|
||||
results[key]['processed_results'] = {
|
||||
'original_value': item['searchValue'],
|
||||
'matched_value': matched_text,
|
||||
'similarity_score': score,
|
||||
'xpath': xpath,
|
||||
'results': xpath_results
|
||||
}
|
||||
except etree.XPathEvalError as e:
|
||||
results[key]['error'] = f"XPath evaluation error: {str(e)}"
|
||||
else:
|
||||
results[key]['error'] = "Unable to build XPath: missing required configuration"
|
||||
|
||||
return results
|
||||
|
||||
# 사용 예시
|
||||
def main():
|
||||
config = {
|
||||
"0": {
|
||||
"path": "//TEXTART[@Text='']/TEXTARTSHAPE/@FontName",
|
||||
"ele": "TEXTART",
|
||||
"arg": "Text",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "궁서체",
|
||||
"points": 10
|
||||
},
|
||||
"1": {
|
||||
"path": "//PARASHAPE[@Id=//TEXTART[@Text='']/ancestor::P/@ParaShape]/@Align",
|
||||
"ele": "PARASHAPE",
|
||||
"arg": "Align",
|
||||
"searchValue": "Center",
|
||||
"value": "Center",
|
||||
"points": 2
|
||||
}
|
||||
}
|
||||
|
||||
xmlPath = r"C:\Users\dra\project\HWP-Scoring\output\1.hml";
|
||||
handler = XMLPathHandler(xmlPath)
|
||||
results = handler.process_config(config)
|
||||
|
||||
# 결과 출력
|
||||
for key, result in results.items():
|
||||
print(f"\nProcessing config item {key}:")
|
||||
print(f"Original config: {result['original_config']}")
|
||||
|
||||
if 'error' in result:
|
||||
print(f"Error: {result['error']}")
|
||||
else:
|
||||
processed = result['processed_results']
|
||||
print(f"Generated XPath: {processed['xpath']}")
|
||||
print(f"Matched text: {processed['matched_value']}")
|
||||
print(f"Similarity score: {processed['similarity_score']}")
|
||||
print(f"Results found: {processed['results']}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
49
수정사항.txt
49
수정사항.txt
@@ -1,49 +0,0 @@
|
||||
문제2
|
||||
- 글상자-크기(너비,높이) 채점 안됨 (4, 5)
|
||||
- 그림삽입-크기(너비,높이) 채점 안됨 (15, 16)
|
||||
- 그림삽입-위치 (어울림 : 세로-쪽의 위 23mm) 채점 안됨 (18)
|
||||
>> mm에서 포인트로 변환 후 비교하여 채점하는 과정에서 소수점 단위의 오차가 발생
|
||||
>> 너비, 높이 등 길이 채점 시 오차범위 추가
|
||||
- 편집-문구 ("…서로 다른 색과 맛이…") "이" → "을" 글자바꿈 채점 안됨
|
||||
- 편집-문구 ("…튼튼하게 혈관을…") "튼튼하게" / "혈관을" 순서바꿈 채점 안됨
|
||||
>> 채점 방식 수정
|
||||
|
||||
수시5-002294-우시현
|
||||
- 1페이지에 문제2 답안 작성, 2페이지는 빈페이지 => 문제2 채점 제외대상
|
||||
ㄴ> (문제1에 머릿말은 채점해주신대로 점수가 들어가는게 맞을 것 같습니다. 문제2만 채점 점수 없는걸로 해주시면 됩니다)
|
||||
>> 페이지 별 채점 채점 적용
|
||||
|
||||
|
||||
|
||||
<워드프로세서>
|
||||
1. 문제2-쪽테두리 설정은 해당 페이지에 쪽테두리가 지시사항 처럼 설정되어 있으면 정답
|
||||
> (구역이 나뉘어져 있지 않는 경우, 양쪽이 아닌 짝수로 설정한 경우가 있음)
|
||||
>> 특정 페이지만 검사하지 않고 쪽테두리 적용이 되어있으면 정상 채점
|
||||
|
||||
2. 문제2-속성-문구1-크기 배점 1점인데 2점씩 채점
|
||||
>> 채점 기준 수정
|
||||
3. 문제1-특수문자 (009866-성유나) 특수문자 3개 다 있는데 2점
|
||||
>> 채점 기준 수정
|
||||
4. 문제2-다단-구역나누기 (009866-성유나) 구역이 나누어져 있지 않은데 점수 3점받음
|
||||
>> 채점 기준 수정
|
||||
5. 문제2-다단-다단2단 (009866-성유나),(009890-오지은) 다단이 나누이져 있는데 감점
|
||||
>> 채점 기준 수정
|
||||
6. 문제2-속성-문구1,2 (009866-성유나),(009890-오지은) 글씨체(굴림),크기11pt,진하게 다되어있는데 감점
|
||||
>> 채점 기준 수정
|
||||
7. 오타(띄어쓰기 개수만큼 차감)
|
||||
> 문제2의 표내에 오타가 있어서 차트 범주에도 오타가 있더라도, 1번만 차감
|
||||
|
||||
8. 쪽테두리는 구역이 나뉘어져 있지 않더라도 해당 페이지(2페이지)에 쪽테두리가 지시사항처럼 설정되었으면 정답
|
||||
>> 1. 쪽나눔 (한글 내부에서 Control+Enter 혹은 Enter여러번으로 다음 쪽으로 이동)의 경우 SECTION 태그가 생성되지 않음
|
||||
2. Control+Enter
|
||||
|
||||
|
||||
"path": "sum(//CHAR[contains(text(),'♤')]/string-length(text())) - sum(//CHAR[contains(text(),'♤')]/string-length(translate(text(), '♤', '')))+sum(//CHAR[contains(text(),'※')]/string-length(text()))-//CHAR[contains(text(),'※')]/string-length(translate(text(),'※',''))",
|
||||
|
||||
|
||||
|
||||
기존 채점 기준은 오탈자가 나면 채점 기준에서 제외
|
||||
|
||||
현재 개발과정의 채점 기준은 문구의 오탈자를 포함해 유사한 단어를 찾아 채점 하는 방식이므로
|
||||
|
||||
기존 채점방식과 최종 점수가 상이할 가능성이 존재
|
||||
13
오류및문제점.md
13
오류및문제점.md
@@ -1,13 +0,0 @@
|
||||
# 오류 및 문제점
|
||||
|
||||
## 1. 원인 파악이나 해결이 어려운 경우
|
||||
|
||||
### 한글문서(.hwpx)에 수험자가 차트 텍스트 속성을 변경해서 저장했지만 차트 xml파일에 옵션이 적용되지 않는 경우가 있음
|
||||
|
||||
#### (2-50) 문항 차트 제목 굵게 속성만
|
||||
|
||||
1. 정상적으로 텍스트 속성이 적용되는 수험자의 차트를 복사
|
||||
2. 텍스트 속성이 적용되지 않는 수험자의 한글 파일에 차트를 붙여넣을 경우
|
||||
3. 정상적으로 XML파일에 텍스트 속성이 적용
|
||||
|
||||
- 이로 미루어 볼 때, 차트객체의 문제일 것으로 판단되지만 해결 방안은 현재 없음
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,850 +0,0 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Top": 20,
|
||||
"Bottom": 20,
|
||||
"Left": 20,
|
||||
"Right": 20,
|
||||
"Header": 10,
|
||||
"Footer": 10,
|
||||
"Gutter": 0
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"value": "28,61,98",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/② 채우기 : 색상(RGB:28,61,98)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"value": "120",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/③ 크기-너비 (120 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "디지털문서편집컨퍼런스",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (디지털문서편집컨퍼런스)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "디",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "어/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "디",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (중고딕)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "디",
|
||||
"value": "157,92,187",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:157,92,187)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "디",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "어/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "다양한 분야의 세미나와 전시",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (다양한 분야의 세미나와 전시)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "다양한 분야의 세미나와 전시",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (다양한 분야의 세미나와 전시)/② UNDERLINE"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "■",
|
||||
"char2": "■",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ■, ② ■, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (■ 행사안내 ■)/① 글씨체 (굴림)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "행사안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (■ 행사안내 ■)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025.12.24.(수) 18:00까지 전화로 등록 가능(02-1234-5678)",
|
||||
"value": "ITALIC",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025.12.24.(수) 18:00까지 전화로 등록 가능(02-1234-5678))/① ITALIC"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025.12.24.(수) 18:00까지 전화로 등록 가능(02-1234-5678)",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025.12.24.(수) 18:00까지 전화로 등록 가능(02-1234-5678))/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "기타사항",
|
||||
"value": {
|
||||
"Left": 10,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"value": "1400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/① 크기 (1400)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 20.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "사단법인 스마트오피스협의회",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (사단법인 스마트오피스협의회)/① 글씨체 (돋움체)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "사단법인 스마트오피스협의회",
|
||||
"value": "2700",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (사단법인 스마트오피스협의회)/② 크기 (2700)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "사단법인 스마트오피스협의회",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (사단법인 스마트오피스협의회)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (궁서)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "Ideograph",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
},
|
||||
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "왼쪽 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
"오른쪽 아래": "BottomRight",
|
||||
"왼쪽 아래": "BottomLeft"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]",
|
||||
"searchValue": "http",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "hyperlink",
|
||||
"item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성",
|
||||
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
|
||||
},
|
||||
"31": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "190",
|
||||
"first_word": "디",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 190% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
|
||||
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
|
||||
"value": {
|
||||
"header_inside": true,
|
||||
"all_double_slim": true
|
||||
},
|
||||
"points": 4,
|
||||
"category": "PageBorder",
|
||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||
},
|
||||
"2": {
|
||||
"path": "count(//SECTION)>1",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "① 구역나누기",
|
||||
"desc": "섹션이 1개 이상이면 점수부여"
|
||||
},
|
||||
"3": {
|
||||
"path": "./TEXT/COLDEF/@Count",
|
||||
"value": "2",
|
||||
"points": 3,
|
||||
"category": "TwoColumn",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "70",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (된장의 역사와 종류)/① 크기-너비 (70 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (된장의 역사와 종류)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
"value": {
|
||||
"Style": "DoubleSlim",
|
||||
"Width": "283"
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (된장의 역사와 종류)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (된장의 역사와 종류)/④ 글상자 모서리 (반원)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "227,220,193",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (된장의 역사와 종류)/⑤ 채우기 : 색상(RGB:227,220,193)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (된장의 역사와 종류)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (된장의 역사와 종류)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "맑은 고딕",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (된장의 역사와 종류)/⑧ 글씨체 (맑은 고딕)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "2000",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (된장의 역사와 종류)/⑨ 글씨크기 (2000)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (된장의 역사와 종류)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "85",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (85 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "40",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (40 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
"value": "0",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "24",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 디지털 문서 편집 기술",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 디지털 문서 편집 기술)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 디지털 문서 편집 기술",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 디지털 문서 편집 기술)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 디지털 문서 편집 기술",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 디지털 문서 편집 기술)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 문서 자동화 솔루션",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 문서 자동화 솔루션)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 문서 자동화 솔루션",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 문서 자동화 솔루션)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 문서 자동화 솔루션",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 문서 자동화 솔루션)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "전자 서명",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (전자 서명)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "공개키 암호화 방식을 사용하여 본인인증, 혹은 전자문서의 부인 방지를 위해 사용되는 기술",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (전자 서명)/② 글씨체 (돋움)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "공개키 암호화 방식을 사용하여 본인인증, 혹은 전자문서의 부인 방지를 위해 사용되는 기술",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전자 서명)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "공개키 암호화 방식을 사용하여 본인인증, 혹은 전자문서의 부인 방지를 위해 사용되는 기술",
|
||||
"value": "CircledDigit",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Security')])",
|
||||
"ignoreWord": "Security",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Security/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["초안", "草案"],
|
||||
["진위", "眞僞"],
|
||||
["탑재", "搭載"],
|
||||
["자동", "自動"],
|
||||
["극대화", "極大化"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 초안(草案), ② 진위(眞僞), ③ 탑재(搭載), ④ 자동(自動), ⑤ 극대화(極大化)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'간과비용')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…대체하면서 비용이 시간과 절감될…)>'비용이 / 시간과' 순서바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이필요한')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…인력 투입이 필요해 수작업…)>'해' → '한' 글자바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률(단위:%)",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률(단위:%))/① 글씨체 (굴림체)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률(단위:%)",
|
||||
"value": "1100",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률(단위:%))/② 크기 (1100)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률(단위:%)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률(단위:%))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률(단위:%)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률(단위:%))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "233,174,43",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:233,174,43)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "위쪽 제목 셀/② 진하게",
|
||||
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
|
||||
},
|
||||
"39": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"value": "DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/① 이중실선"
|
||||
},
|
||||
"40": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"value": "0.5mm",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/② 0.5mm"
|
||||
},
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (굴림)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
|
||||
"value": "1000",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/② 크기 (1000)"
|
||||
},
|
||||
"43": {
|
||||
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "AVG",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
"item": "블록 계산식/합계",
|
||||
"desc": "option값에 합계는 SUM / 평균은 AVG"
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "묶은 가로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (묶은 가로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
|
||||
"value": "out",
|
||||
"points": 2,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "② 값 축 주 눈금선",
|
||||
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
|
||||
},
|
||||
"47": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-너비 (80 mm)"
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
|
||||
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률",
|
||||
"value": "휴먼옛체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률)/① 글씨체 (휴먼옛체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률)/② 크기 (1200)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "b",
|
||||
"searchValue": "디지털 문서 편집 기술 성장률",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (디지털 문서 편집 기술 성장률)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (궁서)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/② 크기 (9pt)"
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (궁서)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/② 크기 (9pt)"
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (궁서)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/② 크기 (9pt)"
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "i",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,841 +0,0 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Top": 20,
|
||||
"Bottom": 20,
|
||||
"Left": 20,
|
||||
"Right": 20,
|
||||
"Header": 10,
|
||||
"Footer": 10,
|
||||
"Gutter": 0
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "51,69,153",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "110",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "갯",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "어/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "갯",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (굴림)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "갯",
|
||||
"value": "219,207,102",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:219,207,102)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "갯",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "어/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "한산해안 갯벌체험 교실",
|
||||
"value": "BOLD",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한산해안 갯벌체험 교실)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "한산해안 갯벌체험 교실",
|
||||
"value": "ITALIC",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한산해안 갯벌체험 교실)/② ITALIC"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "≪",
|
||||
"char2": "≫",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ≪, ② ≫, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (≪ 행사안내 ≫)/① 글씨체 (돋움)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "행사안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (≪ 행사안내 ≫)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "신청안내",
|
||||
"value": {
|
||||
"Left": 10,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 11.",
|
||||
"value": "1400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 11.)/① 크기 (1400)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 11.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (한산시청해양자원육성과)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "2200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산시청해양자원육성과)/② 크기 (2200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산시청해양자원육성과)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (돋움체)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "DecagonCircle",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
},
|
||||
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
"오른쪽 아래": "BottomRight",
|
||||
"왼쪽 아래": "BottomLeft"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "200",
|
||||
"first_word": "갯",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 200% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
|
||||
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
|
||||
"value": {
|
||||
"header_inside": true,
|
||||
"all_double_slim": true
|
||||
},
|
||||
"points": 4,
|
||||
"category": "PageBorder",
|
||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||
},
|
||||
"2": {
|
||||
"path": "count(//SECTION)>1",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "① 구역나누기",
|
||||
"desc": "섹션이 1개 이상이면 점수부여"
|
||||
},
|
||||
"3": {
|
||||
"path": "./TEXT/COLDEF/@Count",
|
||||
"value": "2",
|
||||
"points": 3,
|
||||
"category": "TwoColumn",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (살아있는 갯벌)/① 크기-너비 (60 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (살아있는 갯벌)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
"value": {
|
||||
"Style": "DoubleSlim",
|
||||
"Width": "283"
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (살아있는 갯벌)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (살아있는 갯벌)/④ 글상자 모서리 (반원)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "249,173,168",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "1700",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (80 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "40",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (40 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
"value": "0",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "23",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 갯벌의 가치)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 갯벌의 가치)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "리아스식 해안",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (리아스식 해안)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (리아스식 해안)/② 글씨체 (돋움체)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (리아스식 해안)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "CircledLatinSmall",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Microorganism')])",
|
||||
"ignoreWord": "Microorganism",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["조수", "潮水"],
|
||||
["유기물", "有機物"],
|
||||
["정화", "淨化"],
|
||||
["조수", "潮水"],
|
||||
["분포", "分布"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 조수(潮水), ② 유기물(有機物), ③ 정화(淨化), ④ 조수(潮水), ⑤ 분포(分布)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'급이원활')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…산소공급은 원활하고…)>'은' → '이' 글자바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면이바다')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/① 글씨체 (굴림)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "1100",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/② 크기 (1100)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "154,235,85",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:154,235,85)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "위쪽 제목 셀/② 진하게",
|
||||
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
|
||||
},
|
||||
"39": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"value": "DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/① 이중실선"
|
||||
},
|
||||
"40": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"value": "0.5mm",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/② 0.5mm"
|
||||
},
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (궁서)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
|
||||
"value": "1000",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/② 크기 (1000)"
|
||||
},
|
||||
"43": {
|
||||
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "SUM",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
"item": "블록 계산식/합계",
|
||||
"desc": "option값에 합계는 SUM / 평균은 AVG"
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "원뿔형 누적 가로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (원뿔형 누적 가로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
|
||||
"value": "out",
|
||||
"points": 2,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "② 값 축 주 눈금선",
|
||||
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
|
||||
},
|
||||
"47": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-너비 (80 mm)"
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
|
||||
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "i",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (돋움)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/② 크기 (9pt)"
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (돋움)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/② 크기 (9pt)"
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (돋움)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/② 크기 (9pt)"
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,841 +0,0 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Top": 20,
|
||||
"Bottom": 20,
|
||||
"Left": 20,
|
||||
"Right": 20,
|
||||
"Header": 10,
|
||||
"Footer": 10,
|
||||
"Gutter": 0
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "51,69,153",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "110",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "갯",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "어/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "갯",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (굴림)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "갯",
|
||||
"value": "219,207,102",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:219,207,102)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "갯",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "어/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "한산해안 갯벌체험 교실",
|
||||
"value": "BOLD",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한산해안 갯벌체험 교실)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "한산해안 갯벌체험 교실",
|
||||
"value": "ITALIC",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한산해안 갯벌체험 교실)/② ITALIC"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "≪",
|
||||
"char2": "≫",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ≪, ② ≫, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (≪ 행사안내 ≫)/① 글씨체 (돋움)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "행사안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (≪ 행사안내 ≫)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "신청안내",
|
||||
"value": {
|
||||
"Left": 10,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 11.",
|
||||
"value": "1400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 11.)/① 크기 (1400)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 11.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (한산시청해양자원육성과)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "2200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산시청해양자원육성과)/② 크기 (2200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산시청해양자원육성과)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (돋움체)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "DecagonCircle",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
},
|
||||
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
"오른쪽 아래": "BottomRight",
|
||||
"왼쪽 아래": "BottomLeft"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "200",
|
||||
"first_word": "갯",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 200% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
|
||||
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
|
||||
"value": {
|
||||
"header_inside": true,
|
||||
"all_double_slim": true
|
||||
},
|
||||
"points": 4,
|
||||
"category": "PageBorder",
|
||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||
},
|
||||
"2": {
|
||||
"path": "count(//SECTION)>1",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "① 구역나누기",
|
||||
"desc": "섹션이 1개 이상이면 점수부여"
|
||||
},
|
||||
"3": {
|
||||
"path": "./TEXT/COLDEF/@Count",
|
||||
"value": "2",
|
||||
"points": 3,
|
||||
"category": "TwoColumn",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (살아있는 갯벌)/① 크기-너비 (60 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (살아있는 갯벌)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
"value": {
|
||||
"Style": "DoubleSlim",
|
||||
"Width": "283"
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (살아있는 갯벌)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (살아있는 갯벌)/④ 글상자 모서리 (반원)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "249,173,168",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "1700",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (80 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "40",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (40 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
"value": "0",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "23",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 갯벌의 가치)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 갯벌의 가치)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "리아스식 해안",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (리아스식 해안)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (리아스식 해안)/② 글씨체 (돋움체)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (리아스식 해안)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "CircledLatinSmall",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Microorganism')])",
|
||||
"ignoreWord": "Microorganism",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["조수", "潮水"],
|
||||
["유기물", "有機物"],
|
||||
["정화", "淨化"],
|
||||
["조수", "潮水"],
|
||||
["분포", "分布"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 조수(潮水), ② 유기물(有機物), ③ 정화(淨化), ④ 조수(潮水), ⑤ 분포(分布)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'급이원활')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…산소공급은 원활하고…)>'은' → '이' 글자바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면이바다')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/① 글씨체 (굴림)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "1100",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/② 크기 (1100)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "154,235,85",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:154,235,85)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "위쪽 제목 셀/② 진하게",
|
||||
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
|
||||
},
|
||||
"39": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"value": "DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/① 이중실선"
|
||||
},
|
||||
"40": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"value": "0.5mm",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/② 0.5mm"
|
||||
},
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (궁서)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
|
||||
"value": "1000",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/② 크기 (1000)"
|
||||
},
|
||||
"43": {
|
||||
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "SUM",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
"item": "블록 계산식/합계",
|
||||
"desc": "option값에 합계는 SUM / 평균은 AVG"
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "원뿔형 누적 가로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (원뿔형 누적 가로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
|
||||
"value": "out",
|
||||
"points": 2,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "② 값 축 주 눈금선",
|
||||
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
|
||||
},
|
||||
"47": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-너비 (80 mm)"
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
|
||||
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "i",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (돋움)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/② 크기 (9pt)"
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (돋움)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/② 크기 (9pt)"
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (돋움)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/② 크기 (9pt)"
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -1,841 +0,0 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Top": 20,
|
||||
"Bottom": 20,
|
||||
"Left": 20,
|
||||
"Right": 20,
|
||||
"Header": 10,
|
||||
"Footer": 10,
|
||||
"Gutter": 0
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "51,69,153",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "110",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "갯",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "어/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "갯",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (굴림)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "갯",
|
||||
"value": "219,207,102",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:219,207,102)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "갯",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "어/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "한산해안 갯벌체험 교실",
|
||||
"value": "BOLD",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한산해안 갯벌체험 교실)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "한산해안 갯벌체험 교실",
|
||||
"value": "ITALIC",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한산해안 갯벌체험 교실)/② ITALIC"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "≪",
|
||||
"char2": "≫",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ≪, ② ≫, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (≪ 행사안내 ≫)/① 글씨체 (돋움)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "행사안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (≪ 행사안내 ≫)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "신청안내",
|
||||
"value": {
|
||||
"Left": 10,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 11.",
|
||||
"value": "1400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 11.)/① 크기 (1400)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 11.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (한산시청해양자원육성과)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "2200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산시청해양자원육성과)/② 크기 (2200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산시청해양자원육성과)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (돋움체)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "DecagonCircle",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
},
|
||||
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
"오른쪽 아래": "BottomRight",
|
||||
"왼쪽 아래": "BottomLeft"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "200",
|
||||
"first_word": "갯",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 200% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
|
||||
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
|
||||
"value": {
|
||||
"header_inside": true,
|
||||
"all_double_slim": true
|
||||
},
|
||||
"points": 4,
|
||||
"category": "PageBorder",
|
||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||
},
|
||||
"2": {
|
||||
"path": "count(//SECTION)>1",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "① 구역나누기",
|
||||
"desc": "섹션이 1개 이상이면 점수부여"
|
||||
},
|
||||
"3": {
|
||||
"path": "./TEXT/COLDEF/@Count",
|
||||
"value": "2",
|
||||
"points": 3,
|
||||
"category": "TwoColumn",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (살아있는 갯벌)/① 크기-너비 (60 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (살아있는 갯벌)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
"value": {
|
||||
"Style": "DoubleSlim",
|
||||
"Width": "283"
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (살아있는 갯벌)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (살아있는 갯벌)/④ 글상자 모서리 (반원)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "249,173,168",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "1700",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (80 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "40",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (40 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
"value": "0",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "23",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 갯벌의 가치)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 갯벌의 가치)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "리아스식 해안",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (리아스식 해안)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (리아스식 해안)/② 글씨체 (돋움체)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (리아스식 해안)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "CircledLatinSmall",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Microorganism')])",
|
||||
"ignoreWord": "Microorganism",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["조수", "潮水"],
|
||||
["유기물", "有機物"],
|
||||
["정화", "淨化"],
|
||||
["조수", "潮水"],
|
||||
["분포", "分布"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 조수(潮水), ② 유기물(有機物), ③ 정화(淨化), ④ 조수(潮水), ⑤ 분포(分布)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'급이원활')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…산소공급은 원활하고…)>'은' → '이' 글자바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면이바다')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/① 글씨체 (굴림)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "1100",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/② 크기 (1100)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "154,235,85",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:154,235,85)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "위쪽 제목 셀/② 진하게",
|
||||
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
|
||||
},
|
||||
"39": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"value": "DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/① 이중실선"
|
||||
},
|
||||
"40": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"value": "0.5mm",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/② 0.5mm"
|
||||
},
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (궁서)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
|
||||
"value": "1000",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/② 크기 (1000)"
|
||||
},
|
||||
"43": {
|
||||
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "SUM",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
"item": "블록 계산식/합계",
|
||||
"desc": "option값에 합계는 SUM / 평균은 AVG"
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "원뿔형 누적 가로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (원뿔형 누적 가로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
|
||||
"value": "out",
|
||||
"points": 2,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "② 값 축 주 눈금선",
|
||||
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
|
||||
},
|
||||
"47": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-너비 (80 mm)"
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
|
||||
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "i",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (돋움)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/② 크기 (9pt)"
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (돋움)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/② 크기 (9pt)"
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (돋움)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/② 크기 (9pt)"
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,841 +0,0 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Top": 20,
|
||||
"Bottom": 20,
|
||||
"Left": 20,
|
||||
"Right": 20,
|
||||
"Header": 10,
|
||||
"Footer": 10,
|
||||
"Gutter": 0
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "51,69,153",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "110",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "20",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"searchValue": "한산해안갯벌체험교실",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"searchValue": "갯",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "어/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "갯",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "어/② 글씨체 (굴림)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "갯",
|
||||
"value": "219,207,102",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "어/③ 면색 : 색상(RGB:219,207,102)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"searchValue": "갯",
|
||||
"value": "3.0",
|
||||
"tolerance": 1,
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "어/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "한산해안 갯벌체험 교실",
|
||||
"value": "BOLD",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한산해안 갯벌체험 교실)/① BOLD"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"searchValue": "한산해안 갯벌체험 교실",
|
||||
"value": "ITALIC",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한산해안 갯벌체험 교실)/② ITALIC"
|
||||
},
|
||||
"14": {
|
||||
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
|
||||
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
|
||||
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
|
||||
"char1": "≪",
|
||||
"char2": "≫",
|
||||
"char3": "※",
|
||||
"value": 3,
|
||||
"points": 3,
|
||||
"category": "SpecialChar",
|
||||
"item": "① ≪, ② ≫, ③ ※"
|
||||
},
|
||||
"15": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "행사안내",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (≪ 행사안내 ≫)/① 글씨체 (돋움)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"match_str": "행사안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Align",
|
||||
"item": "문구 (≪ 행사안내 ≫)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/① BOLD"
|
||||
},
|
||||
"18": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
|
||||
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
|
||||
"value": "UNDERLINE",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (2025년 12월 20일(토) 13:30 ~ 17:30)/② UNDERLINE"
|
||||
},
|
||||
"19": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
|
||||
"searchValue": "신청안내",
|
||||
"value": {
|
||||
"Left": 10,
|
||||
"Indent": 12
|
||||
},
|
||||
"points": 2,
|
||||
"category": "ParaShape",
|
||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
|
||||
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2025. 12. 11.",
|
||||
"value": "1400",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 11.)/① 크기 (1400)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"21": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2025. 12. 11.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "견고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (한산시청해양자원육성과)/① 글씨체 (견고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "2200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산시청해양자원육성과)/② 크기 (2200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "한산시청해양자원육성과",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (한산시청해양자원육성과)/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "DIAT",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "Header.FontName",
|
||||
"item": "문구 (DIAT)/① 글꼴 (돋움체)"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 1,
|
||||
"category": "Header.OneAnswer",
|
||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"value": "DecagonCircle",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
|
||||
"desc1": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
},
|
||||
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
|
||||
},
|
||||
"29": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "PageNumber",
|
||||
"item": "가운데 아래",
|
||||
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
|
||||
"desc2": {
|
||||
"가운데 아래": "BottomCenter",
|
||||
"오른쪽 아래": "BottomRight",
|
||||
"왼쪽 아래": "BottomLeft"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
|
||||
"value": "200",
|
||||
"first_word": "갯",
|
||||
"points": 2,
|
||||
"category": "LineSpacing",
|
||||
"item": "문제 1 줄간격 200% 설정",
|
||||
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
|
||||
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
|
||||
"value": {
|
||||
"header_inside": true,
|
||||
"all_double_slim": true
|
||||
},
|
||||
"points": 4,
|
||||
"category": "PageBorder",
|
||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||
},
|
||||
"2": {
|
||||
"path": "count(//SECTION)>1",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "① 구역나누기",
|
||||
"desc": "섹션이 1개 이상이면 점수부여"
|
||||
},
|
||||
"3": {
|
||||
"path": "./TEXT/COLDEF/@Count",
|
||||
"value": "2",
|
||||
"points": 3,
|
||||
"category": "TwoColumn",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"4": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "60",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (살아있는 갯벌)/① 크기-너비 (60 mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "12",
|
||||
"points": 2,
|
||||
"category": "Rectangle.mmSize",
|
||||
"item": "문구 (살아있는 갯벌)/② 크기-높이 (12 mm)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//RECTANGLE//LINESHAPE",
|
||||
"value": {
|
||||
"Style": "DoubleSlim",
|
||||
"Width": "283"
|
||||
},
|
||||
"points": 2,
|
||||
"category": "Rectangle.LineShape",
|
||||
"item": "문구 (살아있는 갯벌)/③ 테두리 : 이중 실선(1.00mm)",
|
||||
"desc": "1mm = 283pt value['Width']에 pt값 입력"
|
||||
},
|
||||
"7": {
|
||||
"path": "//RECTANGLE/@Ratio",
|
||||
"value": "50",
|
||||
"points": 2,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (살아있는 갯벌)/④ 글상자 모서리 (반원)",
|
||||
"desc": "모서리 비율 반원:50 / 둥근모양:20"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
|
||||
"value": "249,173,168",
|
||||
"points": 2,
|
||||
"category": "Rectangle.Color",
|
||||
"item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"value": "true",
|
||||
"points": 1,
|
||||
"category": "Rectangle.OneAnswer",
|
||||
"item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"11": {
|
||||
"path": ".//RECTANGLE//TEXT/@CharShape",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontName",
|
||||
"item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
|
||||
"value": "1700",
|
||||
"points": 1,
|
||||
"category": "Rectangle.FontSize",
|
||||
"item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)",
|
||||
"desc": "1pt당 100"
|
||||
},
|
||||
"13": {
|
||||
"path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "Rectangle.TextBoxAlign",
|
||||
"item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"14": {
|
||||
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "① 파일명 \"그림A.jpg\" 삽입",
|
||||
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
|
||||
},
|
||||
"15": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "② 크기-너비 (80 mm)"
|
||||
},
|
||||
"16": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
|
||||
"value": "40",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-높이 (40 mm)"
|
||||
},
|
||||
"17": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
|
||||
"value": "0",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
|
||||
},
|
||||
"18": {
|
||||
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
|
||||
"value": "23",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
|
||||
},
|
||||
"19": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"20": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구① (1. 갯벌의 가치)/② 크기 (1200)"
|
||||
},
|
||||
"21": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "1. 갯벌의 가치",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구① (1. 갯벌의 가치)/③ 진하게"
|
||||
},
|
||||
"22": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "중고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/① 글씨체 (중고딕)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/② 크기 (1200)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "2. 우리나라의 갯벌",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구② (2. 우리나라의 갯벌)/③ 진하게"
|
||||
},
|
||||
"25": {
|
||||
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
|
||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||
"option": "리아스식 해안",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (리아스식 해안)/① 각주 설정 및 문구 입력"
|
||||
},
|
||||
"26": {
|
||||
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "돋움체",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "문구 (리아스식 해안)/② 글씨체 (돋움체)"
|
||||
},
|
||||
"27": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (리아스식 해안)/③ 크기 (9pt)"
|
||||
},
|
||||
"28": {
|
||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
|
||||
"value": "CircledLatinSmall",
|
||||
"points": 2,
|
||||
"category": "OneAnswer",
|
||||
"item": "문구 (전당)/④ 각주 번호모양",
|
||||
"desc": {
|
||||
"가,나,다": "HangulSyllable",
|
||||
"1,2,3": "Digit",
|
||||
"일,이,삼": "HangulPhonetic",
|
||||
"갑,을,병": "DecagonCircle",
|
||||
"A,B,C": "LatinCapital",
|
||||
"a,b,c": "LatinSmall",
|
||||
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
|
||||
"①,②,③": "CircledDigit",
|
||||
"一,二,三": "Ideograph",
|
||||
"㉠,㉡,㉢": "CircledHangulJamo",
|
||||
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
|
||||
"㊀,㊁,㊂": "CircledIdeograph",
|
||||
"i,ii,iii": "RomanSmall",
|
||||
"I,II,III": "RomanCapital",
|
||||
"甲,乙,丙": "DecagonCircleHanja",
|
||||
"+,++,+++": "UserChar",
|
||||
"*,**,***": "UserChar",
|
||||
"정답에 맞는 값 value에 입력": ""
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"path": "boolean(//CHAR[contains(text(),'Microorganism')])",
|
||||
"ignoreWord": "Microorganism",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점",
|
||||
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
|
||||
},
|
||||
"30": {
|
||||
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
|
||||
"word": [
|
||||
["조수", "潮水"],
|
||||
["유기물", "有機物"],
|
||||
["정화", "淨化"],
|
||||
["조수", "潮水"],
|
||||
["분포", "分布"]
|
||||
],
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "Hanja",
|
||||
"item": "① 조수(潮水), ② 유기물(有機物), ③ 정화(淨化), ④ 조수(潮水), ⑤ 분포(分布)"
|
||||
},
|
||||
"31": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'급이원활')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…산소공급은 원활하고…)>'은' → '이' 글자바꿈"
|
||||
},
|
||||
"32": {
|
||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면이바다')])",
|
||||
"value": true,
|
||||
"points": 3,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈"
|
||||
},
|
||||
"33": {
|
||||
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "굴림",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/① 글씨체 (굴림)"
|
||||
},
|
||||
"34": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "1100",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/② 크기 (1100)"
|
||||
},
|
||||
"35": {
|
||||
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/③ 진하게"
|
||||
},
|
||||
"36": {
|
||||
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
|
||||
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (핀테크 산업 성장률(단위 : g))/④ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"37": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"value": "154,235,85",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "위쪽 제목 셀/① 색상(RGB:154,235,85)"
|
||||
},
|
||||
"38": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
|
||||
"value": "BOLD",
|
||||
"points": 1,
|
||||
"category": "FontAttribute",
|
||||
"item": "위쪽 제목 셀/② 진하게",
|
||||
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
|
||||
},
|
||||
"39": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
|
||||
"value": "DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/① 이중실선"
|
||||
},
|
||||
"40": {
|
||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
|
||||
"value": "0.5mm",
|
||||
"points": 2,
|
||||
"category": "TableAnswer",
|
||||
"item": "제목 셀 아래선/② 0.5mm"
|
||||
},
|
||||
"41": {
|
||||
"path": "//TABLE//TEXT/@CharShape",
|
||||
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "TableFontName",
|
||||
"category_tmp": "FontName",
|
||||
"item": "글자모양/① 글씨체 (궁서)",
|
||||
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
|
||||
},
|
||||
"42": {
|
||||
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
|
||||
"value": "1000",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/② 크기 (1000)"
|
||||
},
|
||||
"43": {
|
||||
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "TableAnswer",
|
||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"44": {
|
||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
|
||||
"option": "SUM",
|
||||
"value": true,
|
||||
"points": 4,
|
||||
"category": "Boolean",
|
||||
"item": "블록 계산식/합계",
|
||||
"desc": "option값에 합계는 SUM / 평균은 AVG"
|
||||
},
|
||||
"45": {
|
||||
"chart_xpath": "",
|
||||
"chart_type": "원뿔형 누적 가로 막대형",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "ChartType",
|
||||
"item": "① 종류 (원뿔형 누적 가로 막대형)",
|
||||
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
|
||||
},
|
||||
"46": {
|
||||
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
|
||||
"value": "out",
|
||||
"points": 2,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "② 값 축 주 눈금선",
|
||||
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
|
||||
},
|
||||
"47": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
|
||||
"value": "80",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "③ 크기-너비 (80 mm)"
|
||||
},
|
||||
"48": {
|
||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
|
||||
"value": "90",
|
||||
"points": 2,
|
||||
"category": "mmSize",
|
||||
"item": "④ 크기-높이 (90 mm)"
|
||||
},
|
||||
"49": {
|
||||
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
|
||||
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
|
||||
},
|
||||
"50": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "궁서체",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/① 글씨체 (궁서체)"
|
||||
},
|
||||
"51": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "1200",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)"
|
||||
},
|
||||
"52": {
|
||||
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
|
||||
"option": "i",
|
||||
"searchValue": "지역별 갯벌 면적",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "제목 문구 (지역별 갯벌 면적)/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"53": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/① 글꼴 (돋움)"
|
||||
},
|
||||
"54": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/② 크기 (9pt)"
|
||||
},
|
||||
"55": {
|
||||
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "X축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"56": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/① 글꼴 (돋움)"
|
||||
},
|
||||
"57": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/② 크기 (9pt)"
|
||||
},
|
||||
"58": {
|
||||
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "ChartOneAnswer",
|
||||
"item": "Y축/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
},
|
||||
"59": {
|
||||
"chart_xpath": "//c:legend//a:ea/@typeface",
|
||||
"value": "돋움",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/① 글꼴 (돋움)"
|
||||
},
|
||||
"60": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@sz",
|
||||
"value": "900",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/② 크기 (9pt)"
|
||||
},
|
||||
"61": {
|
||||
"chart_xpath": "//c:legend//a:defRPr/@{option}",
|
||||
"option": "b",
|
||||
"value": "1",
|
||||
"points": 1,
|
||||
"category": "OneAnswer",
|
||||
"item": "범례/③ 기울임",
|
||||
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user