2512회 채점완료

This commit is contained in:
2025-12-30 16:59:36 +09:00
parent d00d7056ac
commit 7d7916519e
93 changed files with 10788 additions and 23317 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,830 +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": "202,86,167",
"points": 2,
"category": "Color",
"item": "문구 (새콤달콤토마토축제)/② 채우기 : 색상(RGB:202,86,167)"
},
"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": "241,218,75",
"points": 2,
"category": "Color",
"item": "토/③ 면색 : 색상(RGB:241,218,75)"
},
"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": "세계 10대 건강식품",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (세계 10대 건강식품)/① ITALIC"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "세계 10대 건강식품",
"value": "UNDERLINE",
"points": 2,
"category": "FontAttribute",
"item": "문구 (세계 10대 건강식품)/② 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": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (다양한 유기농 농산물(토마토, 블루베리, 새싹 등))/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 13,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (13pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 09. 27.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 09. 27.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "한국유기농토마토협회",
"value": "견고딕",
"points": 1,
"category": "FontName",
"item": "문구 (한국유기농토마토협회)/① 글씨체 (견고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "한국유기농토마토협회",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국유기농토마토협회)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "한국유기농토마토협회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국유기농토마토협회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//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",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
}
},
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "200",
"first_word": "토",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
"1": {
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
"value": {
"header_inside": true,
"all_double_slim": true
},
"points": 4,
"category": "PageBorder",
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
},
"2": {
"path": "count(//SECTION)>1",
"value": true,
"points": 3,
"category": "Boolean",
"item": "① 구역나누기",
"desc": "섹션이 1개 이상이면 점수부여"
},
"3": {
"path": "./TEXT/COLDEF/@Count",
"value": "2",
"points": 3,
"category": "TwoColumn",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE/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": "202,86,167",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (슈퍼푸드 토마토)/⑤ 채우기 : 색상(RGB:202,86,167)"
},
"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']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림C.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "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. 토마토의 종류)/② 크기 (12pt)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 토마토의 종류",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 토마토의 종류)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 토마토의 효능",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구② (2. 토마토의 효능)/① 글씨체 (굴림체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 토마토의 효능",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 토마토의 효능)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 토마토의 효능",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 토마토의 효능)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "혈관",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (혈관)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "혈액을 온몸으로 순환시키는 통로",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (혈관)/② 글씨체 (굴림)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "혈액을 온몸으로 순환시키는 통로",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (혈관)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "혈액을 온몸으로 순환시키는 통로",
"value": "CircledLatinSmall",
"points": 2,
"category": "OneAnswer",
"item": "문구 (혈관)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Fluoride')])",
"ignoreWord": "Fluoride",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Fluoride/영단어 미입력, 대소문자/오타 시 전체 감점",
"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(), ' ', ''),'토와15')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…후(前後)인 방울토마토가 150g 이상인…)>'가'→'와' 글자바꿈"
},
"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": "53,135,145",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:53,135,145)"
},
"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": "1400",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (연령별 축제 만족도)/② 크기 (1400)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "연령별 축제 만족도",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (연령별 축제 만족도)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "바탕체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (바탕체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "바탕체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (바탕체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "바탕체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (바탕체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,850 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "디지털문서편집컨퍼런스",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (디지털문서편집컨퍼런스)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "디지털문서편집컨퍼런스",
"value": "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.

View File

@@ -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": "209,85,73",
"searchValue": "청소년창작음악페스티벌",
"value": "48,117,97",
"points": 2,
"category": "Color",
"item": "문구 (안면도꽃지해수욕장노을축제)/② 채우기 : 색상(RGB:209,85,73)"
"item": "문구 (청소년창작음악페스티벌)/② 채우기 : 색상(RGB:48,117,97)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "안면도꽃지해수욕장노을축제",
"value": "80",
"searchValue": "청소년창작음악페스티벌",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (안면도꽃지해수욕장노을축제)/③ 크기-너비 (80 mm)"
"item": "문구 (청소년창작음악페스티벌)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "안면도꽃지해수욕장노을축제",
"searchValue": "청소년창작음악페스티벌",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (안면도꽃지해수욕장노을축제)/④ 크기-높이 (20 mm)"
"item": "문구 (청소년창작음악페스티벌)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "안면도꽃지해수욕장노을축제",
"searchValue": "청소년창작음악페스티벌",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (안면도꽃지해수욕장노을축제)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (청소년창작음악페스티벌)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "안면도꽃지해수욕장노을축제",
"searchValue": "청소년창작음악페스티벌",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (안면도꽃지해수욕장노을축제)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (청소년창작음악페스티벌)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "안면도꽃지해수욕장노을축제",
"searchValue": "청소년창작음악페스티벌",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (안면도꽃지해수욕장노을축제)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (전통주페어링특강안내)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -116,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": "218,148,216",
"searchValue": "",
"value": "248,132,58",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:218,148,216)"
"item": "어/③ 면색 : 색상(RGB:248,132,58)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
@@ -141,126 +141,126 @@
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "안면도저녁놀축제를 개최",
"searchValue": "행사의 주제는 ‘음악, 꿈을 노래하다’",
"value": "BOLD",
"points": 2,
"points": 1,
"category": "FontAttribute",
"item": "문구 (안면도저녁놀축제를 개최)/① BOLD"
"item": "문구 (행사의 주제는 ‘음악, 꿈을 노래하다’)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "안면도저녁놀축제를 개최",
"value": "ITALIC",
"points": 2,
"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",
"searchValue": "행사개요",
"value": "돋움체",
"searchValue": "행사안내",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구 ( 행사개요 □)/① 글씨체 (돋움체)"
"item": "문구 ( 행사안내 ★)/① 글씨체 (중고딕)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align",
"match_str": "행사개요",
"match_str": "행사안내",
"value": "Center",
"points": 1,
"category": "Align",
"item": "문구 ( 행사개요 □)/② 정렬 (가운데 정렬)"
"item": "문구 ( 행사안내 ★)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "안면도 꽂지해수욕장 대형주차장(국제꽃박람회 개최지)",
"value": "ITALIC",
"searchValue": "자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (안면도 꽂지해수욕장 대형주차장(국제꽃박람회 개최지))/① ITALIC"
"item": "문구 (자세한 내용은 홈페이지(http://www.ihd.or.kr)에서 확인)/① 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)에서 확인",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (안면도 꽂지해수욕장 대형주차장(국제꽃박람회 개최지))/② 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": 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. 09. 27.",
"searchValue": "2025. 12. 20.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/① 크기 (1300)",
"item": "문구 (2025. 12. 20.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 09. 27.",
"searchValue": "2025. 12. 20.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)"
},
"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": "2700",
"points": 1,
"category": "OneAnswer",
"item": "문구 (안면도축제추진위원회)/② 크기 (2400)"
"item": "문구 (청소년 창작 음악 사무국)/② 크기 (2700)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "안면도축제추진위원회",
"searchValue": "청소년 창작 음악 사무국",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (안면도축제추진위원회)/③ 정렬 (가운데 정렬)"
"item": "문구 (청소년 창작 음악 사무국)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "궁서",
"value": "굴림",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (궁서)"
"item": "문구 (DIAT)/① 글꼴 (굴림)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -282,21 +282,27 @@
"path": "//PAGENUM/@FormatType",
"value": "HangulSyllable",
"points": 2,
"category": "RomanCapital",
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
@@ -309,16 +315,26 @@
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
"오른쪽 아래": "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": "210",
"first_word": "",
"value": "180",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 210% 설정",
"item": "문제 1 줄간격 180% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
@@ -354,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",
@@ -371,7 +387,7 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (안면도자연휴양림)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (청소년 음악 창작)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
@@ -379,43 +395,43 @@
"value": "20",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (안면도자연휴양림)/④ 글상자 모서리 (반원)",
"item": "문구 (청소년 음악 창작)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "204,208,9",
"value": "53,135,145",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (안면도자연휴양림)/⑤ 채우기 : 색상(RGB:204,208,9)"
"item": "문구 (청소년 음악 창작)/⑤ 채우기 : 색상(RGB:53,135,145)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (안면도자연휴양림)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (청소년 음악 창작)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (안면도자연휴양림)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (청소년 음악 창작)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "휴먼옛체",
"value": "궁서체",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (안면도자연휴양림)/⑧ 글씨체 (휴먼옛체)"
"item": "문구 (청소년 음악 창작)/⑧ 글씨체 (궁서체)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "1600",
"value": "2000",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (안면도자연휴양림)/⑨ 글씨크기 (1600)",
"item": "문구 (청소년 음악 창작)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
@@ -423,39 +439,39 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (안면도자연휴양림)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (청소년 음악 창작)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"item": "① 파일명 \"그림B.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"points": 2,
"category": "mmSize",
@@ -463,87 +479,88 @@
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 안면도자연휴양림 소개",
"value": "궁서체",
"searchValue": "1. 청소년 음악 창작",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구① (1. 안면도자연휴양림 소개)/① 글씨체 (궁서체)"
"item": "문구① (1. 청소년 음악 창작)/① 글씨체 (돋움체)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 안면도자연휴양림 소개",
"value": "1100",
"searchValue": "1. 청소년 음악 창작",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 안면도자연휴양림 소개)/② 크기 (1100)"
"item": "문구① (1. 청소년 음악 창작)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 안면도자연휴양림 소개",
"searchValue": "1. 청소년 음악 창작",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 안면도자연휴양림 소개)/③ 진하게"
"item": "문구① (1. 청소년 음악 창작)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2.주요 노인일자리사업",
"value": "궁서체",
"searchValue": "2. 청소년 음악 산업",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구② (2.주요 노인일자리사업)/① 글씨체 (궁서체)"
"item": "문구② (2. 청소년 음악 산업)/① 글씨체 (돋움체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2.주요 노인일자리사업",
"value": "1100",
"searchValue": "2. 청소년 음악 산업",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2.주요 노인일자리사업)/② 크기 (1100)"
"item": "문구② (2. 청소년 음악 산업)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2.주요 노인일자리사업",
"searchValue": "2. 청소년 음악 산업",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2.주요 노인일자리사업)/③ 진하게"
"item": "문구② (2. 청소년 음악 산업)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "만기요람",
"option": "스트리밍",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (만기요람)/① 각주 설정 및 문구 입력"
"item": "문구 (스트리밍)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "1808년 서영보, 심상규 등이 왕명에 의해 찬진한 책",
"value": "굴림",
"searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (만기요람)/② 글씨체 (굴림)"
"item": "문구 (스트리밍)/② 글씨체 (굴림)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "1808년 서영보, 심상규 등이 왕명에 의해 찬진한 책",
"searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (만기요람)/③ 크기 (9pt)"
"item": "문구 (스트리밍)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "1808년 서영보, 심상규 등이 왕명에 의해 찬진한 책",
"value": "CircledLatinCapital",
"searchValue": "인터넷에 연결된 장치에서 동영상이나 음악 등의 콘텐츠를 재생하는 기술을 의미함",
"value": "CircledHangulJamo",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"item": "문구 (스트리밍)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
@@ -552,89 +569,91 @@
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Umbrella')])",
"ignoreWord": "Umbrella",
"path": "boolean(//CHAR[contains(text(),'Artist')])",
"ignoreWord": "Artist",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Umbrella/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Artist/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "12,239,20",
"value": "202,86,167",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:12,239,20)"
"item": "위쪽 제목 셀/① 색상(RGB:202,86,167)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -663,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": {
@@ -686,7 +705,7 @@
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "SUM",
"option": "AVG",
"value": true,
"points": 4,
"category": "Boolean",
@@ -695,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": {
@@ -734,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": "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": "돋움",
"value": "바탕",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움)"
"item": "X축/① 글꼴 (바탕)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -783,10 +802,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움",
"value": "바탕",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움)"
"item": "Y축/① 글꼴 (바탕)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -806,10 +825,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움",
"value": "바탕",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움)"
"item": "범례/① 글꼴 (바탕)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

Binary file not shown.

Binary file not shown.

View File

@@ -46,61 +46,61 @@
"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": "202,86,167",
"searchValue": "한국전통공예박람회",
"value": "28,61,98",
"points": 2,
"category": "Color",
"item": "문구 (반려동물산업의미래)/② 채우기 : 색상(RGB:202,86,167)"
"item": "문구 (한국전통공예박람회)/② 채우기 : 색상(RGB:28,61,98)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "반려동물산업의미래",
"searchValue": "한국전통공예박람회",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (반려동물산업의미래)/③ 크기-너비 (110 mm)"
"item": "문구 (한국전통공예박람회)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "반려동물산업의미래",
"searchValue": "한국전통공예박람회",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (반려동물산업의미래)/④ 크기-높이 (20 mm)"
"item": "문구 (한국전통공예박람회)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "반려동물산업의미래",
"searchValue": "한국전통공예박람회",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (반려동물산업의미래)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (한국전통공예박람회)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "반려동물산업의미래",
"searchValue": "한국전통공예박람회",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (반려동물산업의미래)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (한국전통공예박람회)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "반려동물산업의미래",
"searchValue": "한국전통공예박람회",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (반려동물산업의미래)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (한국전통공예박람회)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
@@ -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,229,88",
"value": "236,217,74",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:252,229,88)"
"item": "어/③ 면색 : 색상(RGB:236,217,74)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
@@ -141,31 +141,31 @@
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "제1회 반려동물 산업의 미래",
"searchValue": "다양한 분야의 장인과 예술가들이 참여",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (제1회 반려동물 산업의 미래)/① BOLD"
"item": "문구 (다양한 분야의 장인과 예술가들이 참여)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "제1회 반려동물 산업의 미래",
"searchValue": "다양한 분야의 장인과 예술가들이 참여",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (제1회 반려동물 산업의 미래)/② UNDERLINE"
"item": "문구 (다양한 분야의 장인과 예술가들이 참여)/② UNDERLINE"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
"path2": "//CHAR[contains(string(.),'{char2}')]/text()",
"path3": "//CHAR[contains(string(.),'{char3}')]/text()",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
@@ -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": "반려동물 산업 종사자, 단체 및 학계, 언론 관계자 등",
"value": "BOLD",
"searchValue": "한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr)",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (반려동물 산업 종사자, 단체 및 학계, 언론 관계자 등)/① BOLD"
"item": "문구 (한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr))/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "반려동물 산업 종사자, 단체 및 학계, 언론 관계자 등",
"value": "ITALIC",
"searchValue": "한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr)",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (반려동물 산업 종사자, 단체 및 학계, 언론 관계자 등)/② ITALIC"
"item": "문구 (한국 전통공예 박람회 홈페이지 (http://www.ihd.or.kr))/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
@@ -215,52 +215,52 @@
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 10. 25.",
"value": "1300",
"searchValue": "2025. 12. 20.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/① 크기 (1300)",
"item": "문구 (2025. 12. 20.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 10. 25.",
"searchValue": "2025. 12. 20.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "한국반려동물산업협회",
"value": "궁서체",
"searchValue": "한국 전통공예 협의회",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (한국반려동물산업협회)/① 글씨체 (궁서체)"
"item": "문구 (한국 전통공예 협의회)/① 글씨체 (굴림)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "한국반려동물산업협회",
"value": "2400",
"searchValue": "한국 전통공예 협의회",
"value": "2600",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국반려동물산업협회)/② 크기 (2400)"
"item": "문구 (한국 전통공예 협의회)/② 크기 (2600)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "한국반려동물산업협회",
"searchValue": "한국 전통공예 협의회",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국반려동물산업협회)/③ 정렬 (가운데 정렬)"
"item": "문구 (한국 전통공예 협의회)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "굴림",
"value": "궁서",
"points": 1,
"category": "Header.FontName",
"item": "문구 (DIAT)/① 글꼴 (굴림)"
"item": "문구 (DIAT)/① 글꼴 (궁서)"
},
"26": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -283,26 +283,32 @@
"value": "LatinCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"item": "① 쪽 번호 매기기",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"value": "BottomRight",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
@@ -361,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",
@@ -381,7 +387,7 @@
},
"points": 2,
"category": "Rectangle.LineShape",
"item": "문구 (반려동물 시장)/③ 테두리 : 이중 실선(1.00mm)",
"item": "문구 (한국 전통공예)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
@@ -389,43 +395,43 @@
"value": "50",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (반려동물 시장)/④ 글상자 모서리 (반원)",
"item": "문구 (한국 전통공예)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "233,174,43",
"value": "202,86,167",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (반려동물 시장)/⑤ 채우기 : 색상(RGB:233,174,43)"
"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": "견고딕",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (반려동물 시장)/⑧ 글씨체 (견고딕)"
"item": "문구 (한국 전통공예)/⑧ 글씨체 (견고딕)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "1800",
"value": "2000",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (반려동물 시장)/⑨ 글씨크기 (1800)",
"item": "문구 (한국 전통공예)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
@@ -433,127 +439,128 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (반려동물 시장)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (한국 전통공예)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림B.jpg\" 삽입",
"item": "① 파일명 \"그림C.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "22",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 펫 휴머니제이션",
"value": "돋움",
"searchValue": "1. 전통공예",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구① (1. 펫 휴머니제이션)/① 글씨체 (돋움)"
"item": "문구① (1. 전통공예)/① 글씨체 (굴림체)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 펫 휴머니제이션",
"searchValue": "1. 전통공예",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 펫 휴머니제이션)/② 크기 (1200)"
"item": "문구① (1. 전통공예)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 펫 휴머니제이션",
"searchValue": "1. 전통공예",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 펫 휴머니제이션)/③ 진하게"
"item": "문구① (1. 전통공예)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 반려동물 산업의 미래",
"value": "돋움",
"searchValue": "2. 전통 공예 산업",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구② (2. 반려동물 산업의 미래)/① 글씨체 (돋움)"
"item": "문구② (2. 전통 공예 산업)/① 글씨체 (굴림체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 반려동물 산업의 미래",
"searchValue": "2. 전통 공예 산업",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 반려동물 산업의 미래)/② 크기 (1200)"
"item": "문구② (2. 전통 공예 산업)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 반려동물 산업의 미래",
"searchValue": "2. 전통 공예 산업",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 반려동물 산업의 미래)/③ 진하게"
"item": "문구② (2. 전통 공예 산업)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "펫팸족",
"option": "업사이클링",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (펫팸족)/① 각주 설정 및 문구 입력"
"item": "문구 (업사이클링)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "반려동물을 가족처럼 여기는 사람들",
"searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구 (펫팸족)/② 글씨체 (중고딕)"
"item": "문구 (업사이클링)/② 글씨체 (중고딕)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "반려동물을 가족처럼 여기는 사람들",
"searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (펫팸족)/③ 크기 (9pt)"
"item": "문구 (업사이클링)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "반려동물을 가족처럼 여기는 사람들",
"value": "DecagonCircleHanja",
"searchValue": "이미 쓸모없거나 버려지는 자원을 재활용해 새로운 가치를 부여하는 것을 의미함",
"value": "CircledIdeograph",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
@@ -562,6 +569,7 @@
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
@@ -571,81 +579,81 @@
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Solution')])",
"ignoreWord": "Solution",
"path": "boolean(//CHAR[contains(text(),'Upcycling')])",
"ignoreWord": "Upcycling",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Solution/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Upcycling/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["의미", "意味"],
["문화", "文化"],
["추세", "趨勢"],
["확대", "擴大"],
["전망", "展望"]
["차원", "次元"],
["사례", "事例"],
["주목", "注目"],
["소비", "消費"],
["명장", "名匠"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 의미(意味), ② 문화(文化), ③ 추세(趨勢), ④ 확대(擴大), ⑤ 전망(展望)"
"item": "① 차원(次元), ② 사례(事例), ③ 주목(注目), ④ 소비(消費), ⑤ 명장(名匠)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'어가등장')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'국인관광')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…신조어는 등장하는 것처럼…)>'는' → '가' 글자바꿈"
"item": "문구 (...활성화되면서 관광객과 외국인 일반...)>'관광객과 / 외국인' 순서바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'출산,고령')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'예품등이')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…경제 수준 향상, 고령화, 저출산, 1인 가구…)>'고령화, / 저출산, ' 순서바꿈"
"item": "문구 (...디지털 아트 공예품 통이...)>'통' → '등' 글자바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "국내 반려동물 시장 규모(단위:십억 원)",
"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": "166,220,112",
"value": "138,194,217",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:166,220,112)"
"item": "위쪽 제목 셀/① 색상(RGB:138,194,217)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -674,11 +682,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "돋움",
"value": "중고딕",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (돋움)",
"item": "글자모양/① 글씨체 (중고딕)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -745,36 +753,36 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "국내 반려동물 시장 규모",
"value": "궁서체",
"searchValue": "전통 공예 산업 성장률(단위: %)",
"value": "굴림",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (국내 반려동물 시장 규모)/① 글씨체 (궁서체)"
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/① 글씨체 (굴림)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "국내 반려동물 시장 규모",
"searchValue": "전통 공예 산업 성장률(단위: %)",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (국내 반려동물 시장 규모)/② 크기 (1300)"
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/② 크기 (1300)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "국내 반려동물 시장 규모",
"searchValue": "전통 공예 산업 성장률(단위: %)",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (국내 반려동물 시장 규모)/③ 기울임",
"item": "제목 문구 (전통 공예 산업 성장률(단위: %))/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (굴림)"
"item": "X축/① 글꼴 (돋움체)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -794,10 +802,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"value": "돋움체",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (굴림)"
"item": "Y축/① 글꼴 (돋움체)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -817,10 +825,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "굴림",
"value": "돋움체",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (굴림)"
"item": "범례/① 글꼴 (돋움체)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

Binary file not shown.

Binary file not shown.

View File

@@ -46,65 +46,65 @@
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "현대미술비엔날레",
"value": "굴림",
"searchValue": "생성형 인공지능 세미나 안내",
"value": "궁서체",
"points": 1,
"category": "OneAnswer",
"item": "문구 (현대미술비엔날레)/① 글씨체 (굴림)"
"item": "문구 (생성형 인공지능 세미나 안내)/① 글씨체 (궁서체)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "현대미술비엔날레",
"value": "14,214,211",
"searchValue": "생성형 인공지능 세미나 안내",
"value": "233,190,46",
"points": 2,
"category": "Color",
"item": "문구 (현대미술비엔날레)/② 채우기 : 색상(RGB:14,214,211)"
"item": "문구 (생성형 인공지능 세미나 안내)/② 채우기 : 색상(RGB:233,190,46)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "현대미술비엔날레",
"value": "120",
"searchValue": "생성형 인공지능 세미나 안내",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (현대미술비엔날레)/③ 크기-너비 (120 mm)"
"item": "문구 (생성형 인공지능 세미나 안내)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "현대미술비엔날레",
"searchValue": "생성형 인공지능 세미나 안내",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (현대미술비엔날레)/④ 크기-높이 (20 mm)"
"item": "문구 (생성형 인공지능 세미나 안내)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "현대미술비엔날레",
"searchValue": "생성형 인공지능 세미나 안내",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (현대미술비엔날레)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (생성형 인공지능 세미나 안내)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "현대미술비엔날레",
"searchValue": "생성형 인공지능 세미나 안내",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (현대미술비엔날레)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (생성형 인공지능 세미나 안내)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "현대미술비엔날레",
"searchValue": "생성형 인공지능 세미나 안내",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (현대미술비엔날레)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (생성형 인공지능 세미나 안내)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -116,7 +116,7 @@
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"searchValue": "",
"value": "굴림체",
"points": 1,
"category": "FontName",
@@ -124,15 +124,15 @@
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "37,211,143",
"searchValue": "",
"value": "221,251,229",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:37,211,143)"
"item": "어/③ 면색 : 색상(RGB:221,251,229)"
},
"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": "UNDERLINE",
"searchValue": "생성형 인공지능",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (경계를 넘어, 새로운 시선)/② UNDERLINE"
"item": "문구 (생성형 인공지능)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(string(.),'{char1}')]/text()",
@@ -186,81 +186,81 @@
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025. 10. 29.(수) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"searchValue": "협회 홈페이지(https://www.ihd.or.kr)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025. 10. 29.(수) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/① BOLD"
"item": "문구 (협회 홈페이지(https://www.ihd.or.kr))/① BOLD"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "2025. 10. 29.(수) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr)",
"value": "ITALIC",
"searchValue": "협회 홈페이지(https://www.ihd.or.kr)",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (2025. 10. 29.(수) 18:00까지 온라인 사전 등록(http://www.ihd.or.kr))/② ITALIC"
"item": "문구 (협회 홈페이지(https://www.ihd.or.kr))/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 10,
"Indent": 12
"Left": 13,
"Indent": 10
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (13), 내어쓰기 (10)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 10. 25.",
"value": "1400",
"searchValue": "2025. 12. 20.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/① 크기 (1400)",
"item": "문구 (2025. 12. 20.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 10. 25.",
"searchValue": "2025. 12. 20.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 12. 20.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "현대미술발전협의회",
"value": "맑은고딕",
"searchValue": "생성형인공지능협회",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (현대미술발전협의회)/① 글씨체 (맑은고딕)"
"item": "문구 (생성형인공지능협회)/① 글씨체 (돋움)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "현대미술발전협의회",
"value": "2500",
"searchValue": "생성형인공지능협회",
"value": "2000",
"points": 1,
"category": "OneAnswer",
"item": "문구 (현대미술발전협의회)/② 크기 (2500)"
"item": "문구 (생성형인공지능협회)/② 크기 (2000)"
},
"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,29 +283,35 @@
"value": "LatinCapital",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"item": "① 쪽 번호 매기기",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"value": "BottomRight",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"item": "왼쪽 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
@@ -324,8 +330,8 @@
},
"31": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "200",
"first_word": "",
"value": "200",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
@@ -361,17 +367,17 @@
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "55",
"value": "60",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (현대미술 생태계)/① 크기-너비 (55 mm)"
"item": "문구 (생성형 인공지능)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (현대미술 생태계)/② 크기-높이 (12 mm)"
"item": "문구 (생성형 인공지능)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -381,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": "0",
"points": 2,
"category": "Rectangle.OneAnswer",
"item": "문구 (현대미술 생태계)/④ 글상자 모서리 (반원)",
"desc": "모서리 비율 반원:50 / 둥근모양:20"
"item": "문구 (생성형 인공지능)/④ 글상자 모서리 (직각)",
"desc": "모서리 비율 반원:50 / 둥근모양:20 / 직각:0"
},
"8": {
"path": "//RECTANGLE//WINDOWBRUSH/@FaceColor",
"value": "229,233,119",
"value": "153,226,253",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (현대미술 생태계)/⑤ 채우기 : 색상(RGB:229,233,119)"
"item": "문구 (생성형 인공지능)/⑤ 채우기 : 색상(RGB:153,226,253)"
},
"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": {
@@ -433,121 +439,121 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (현대미술 생태계)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (생성형 인공지능)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림C.jpg\" 삽입",
"item": "① 파일명 \"그림D.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"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": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 현대미술 트렌드",
"value": "돋움",
"searchValue": "1. 서비스 현황",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구① (1. 현대미술 트렌드)/① 글씨체 (돋움)"
"item": "문구① (1. 서비스 현황)/① 글씨체 (돋움)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 현대미술 트렌드",
"searchValue": "1. 서비스 현황",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 현대미술 트렌드)/② 크기 (1200)"
"item": "문구① (1. 서비스 현황)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 현대미술 트렌드",
"searchValue": "1. 서비스 현황",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 현대미술 트렌드)/③ 진하게"
"item": "문구① (1. 서비스 현황)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 현대미술의 가치",
"value": "돋움",
"searchValue": "2. 활용 분야",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구② (2. 현대미술의 가치)/① 글씨체 (돋움)"
"item": "문구② (2. 활용 분야)/① 글씨체 (돋움)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 현대미술의 가치",
"searchValue": "2. 활용 분야",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 현대미술의 가치)/② 크기 (1200)"
"item": "문구② (2. 활용 분야)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 현대미술의 가치",
"searchValue": "2. 활용 분야",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 현대미술의 가치)/③ 진하게"
"item": "문구② (2. 활용 분야)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "블록체인(Blockchain)",
"option": "핀테크",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (블록체인(Blockchain))/① 각주 설정 및 문구 입력"
"item": "문구 (핀테크)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "누구라도 임의로 수정할 수 없고, 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술",
"value": "돋움체",
"searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (블록체인(Blockchain))/② 글씨체 (돋움체)"
"item": "문구 (핀테크)/② 글씨체 (굴림)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "누구라도 임의로 수정할 수 없고, 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술",
"searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (블록체인(Blockchain))/③ 크기 (9pt)"
"item": "문구 (핀테크)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "누구라도 임의로 수정할 수 없고, 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술",
"value": "HangulPhonetic",
"searchValue": "금융 서비스의 효율성과 접근성을 혁신하는 신산업",
"value": "CircledLatinCapital",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
@@ -563,6 +569,7 @@
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
@@ -572,81 +579,81 @@
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Blockchain')])",
"ignoreWord": "Blockchain",
"path": "boolean(//CHAR[contains(text(),'Generative')])",
"ignoreWord": "Generative",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Blockchain/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Generative/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "105,155,39",
"value": "232,250,210",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:105,155,39)"
"item": "위쪽 제목 셀/① 색상(RGB:232,250,210)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -675,11 +682,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "굴림",
"value": "중고딕",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (굴림)",
"item": "글자모양/① 글씨체 (중고딕)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -707,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": {
@@ -731,10 +738,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()='평균']))",
@@ -746,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": "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": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"value": "돋움",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (궁서)"
"item": "X축/① 글꼴 (돋움)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -795,10 +802,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "궁서",
"value": "돋움",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (궁서)"
"item": "Y축/① 글꼴 (돋움)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -818,10 +825,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "궁서",
"value": "돋움",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (궁서)"
"item": "범례/① 글꼴 (돋움)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

Binary file not shown.

View File

@@ -46,65 +46,65 @@
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "글로벌핀테크컨퍼런스",
"value": "돋움체",
"searchValue": "한산해안갯벌체험교실",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (글로벌핀테크컨퍼런스)/① 글씨체 (궁서체)"
"item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "글로벌핀테크컨퍼런스",
"value": "53,135,145",
"searchValue": "한산해안갯벌체험교실",
"value": "51,69,153",
"points": 2,
"category": "Color",
"item": "문구 (글로벌핀테크컨퍼런스)/② 채우기 : 색상(RGB:53,135,145)"
"item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "글로벌핀테크컨퍼런스",
"searchValue": "한산해안갯벌체험교실",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (글로벌핀테크컨퍼런스)/③ 크기-너비 (110 mm)"
"item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "글로벌핀테크컨퍼런스",
"searchValue": "한산해안갯벌체험교실",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (글로벌핀테크컨퍼런스)/④ 크기-높이 (20 mm)"
"item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "글로벌핀테크컨퍼런스",
"searchValue": "한산해안갯벌체험교실",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (글로벌핀테크컨퍼런스)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "글로벌핀테크컨퍼런스",
"searchValue": "한산해안갯벌체험교실",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (글로벌핀테크컨퍼런스)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "글로벌핀테크컨퍼런스",
"searchValue": "한산해안갯벌체험교실",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (글로벌핀테크컨퍼런스)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -116,23 +116,23 @@
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "맑은 고딕",
"searchValue": "",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "어/② 글씨체 (맑은 고딕)"
"item": "어/② 글씨체 (굴림)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "123,217,167",
"searchValue": "",
"value": "219,207,102",
"points": 2,
"category": "Color",
"item": "어/③ 면색 : 색상(RGB:123,217,167)"
"item": "어/③ 면색 : 색상(RGB:219,207,102)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
@@ -141,39 +141,39 @@
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "디지털 자산, 오픈 뱅킹, 보안 인증, AI 기반 금융 분석",
"value": "ITALIC",
"points": 1,
"searchValue": "한산해안 갯벌체험 교실",
"value": "BOLD",
"points": 2,
"category": "FontAttribute",
"item": "문구 (디지털 자산, 오픈 뱅킹, 보안 인증, AI 기반 금융 분석)/① ITALIC"
"item": "문구 (한산해안 갯벌체험 교실)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "디지털 자산, 오픈 뱅킹, 보안 인증, AI 기반 금융 분석",
"value": "UNDERLINE",
"points": 1,
"searchValue": "한산해안 갯벌체험 교실",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (디지털 자산, 오픈 뱅킹, 보안 인증, AI 기반 금융 분석)/② 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,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": "금융권 종사자, 핀테크 스타트업, 투자자, IT 전문가, 일반인",
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (금융권 종사자, 핀테크 스타트업, 투자자, IT 전문가, 일반인)/① BOLD"
"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": "금융권 종사자, 핀테크 스타트업, 투자자, IT 전문가, 일반인",
"value": "ITALIC",
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (금융권 종사자, 핀테크 스타트업, 투자자, IT 전문가, 일반인)/② ITALIC"
"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": "기타사항",
"searchValue": "신청안내",
"value": {
"Left": 15,
"Left": 10,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 10. 25.",
"searchValue": "2025. 12. 11.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/① 크기 (1400)",
"item": "문구 (2025. 12. 11.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 10. 25.",
"searchValue": "2025. 12. 11.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 10. 25.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "글로벌 핀테크 컨퍼런스",
"value": "굴림",
"searchValue": "한산시청해양자원육성과",
"value": "견고딕",
"points": 1,
"category": "FontName",
"item": "문구 (글로벌 핀테크 컨퍼런스)/① 글씨체 (굴림)"
"item": "문구 (한산시청해양자원육성과)/① 글씨체 (견고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "글로벌 핀테크 컨퍼런스",
"value": "2300",
"searchValue": "한산시청해양자원육성과",
"value": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (글로벌 핀테크 컨퍼런스)/② 크기 (2300)"
"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,32 +280,38 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "RomanCapital",
"value": "DecagonCircle",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomLeft",
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "왼쪽 아래",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
@@ -314,21 +320,12 @@
}
},
"30": {
"path": "//CHAR[contains(text(),'{searchValue}')]",
"searchValue": "http",
"value": true,
"points": 2,
"category": "hyperlink",
"item": "문구 (https://www.ihd.or.kr)/하이퍼링크 없이 작성",
"desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답"
},
"31": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "190",
"first_word": "",
"value": "200",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 190% 설정",
"item": "문제 1 줄간격 200% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
@@ -364,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",
@@ -381,51 +378,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": "227,220,193",
"value": "249,173,168",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (핀테크 산업)/⑤ 채우기 : 색상(RGB:227,220,193)"
"item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (핀테크 산업)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (핀테크 산업)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "견고딕",
"value": "굴림체",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (핀테크 산업)/⑧ 글씨체 (견고딕)"
"item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "2000",
"value": "1700",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (핀테크 산업)/⑨ 글씨크기 (2000)",
"item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
@@ -433,10 +430,10 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (핀테크 산업)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
@@ -444,116 +441,117 @@
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 mm)"
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "22",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "23",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 핀테크 산업",
"value": "돋움",
"searchValue": "1. 갯벌의 가치",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구① (1. 핀테크 산업)/① 글씨체 (돋움)"
"item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 핀테크 산업",
"searchValue": "1. 갯벌의 가치",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 핀테크 산업)/② 크기 (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": "CircledLatinSmall",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
@@ -562,6 +560,7 @@
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
@@ -571,69 +570,69 @@
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'FinTech')])",
"ignoreWord": "FinTech",
"path": "boolean(//CHAR[contains(text(),'Microorganism')])",
"ignoreWord": "Microorganism",
"value": true,
"points": 3,
"category": "Boolean",
"item": "FinTech/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈"
},
"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",
@@ -642,10 +641,10 @@
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "221,141,229",
"value": "154,235,85",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:221,141,229)"
"item": "위쪽 제목 셀/① 색상(RGB:154,235,85)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -674,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": {
@@ -697,7 +696,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",
@@ -706,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": {
@@ -745,28 +744,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": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (핀테크 산업 성장률)/② 크기 (1400)"
"item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "핀테크 산업 성장률",
"option": "i",
"searchValue": "지역별 갯벌 면적",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (핀테크 산업 성장률)/③ 기울임",
"item": "제목 문구 (지역별 갯벌 면적)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
@@ -785,7 +784,7 @@
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"option": "b",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
@@ -808,7 +807,7 @@
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"option": "b",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
@@ -831,7 +830,7 @@
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"option": "b",
"value": "1",
"points": 1,
"category": "OneAnswer",

Binary file not shown.

View File

@@ -46,65 +46,65 @@
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "즐거운컬러푸드영양교실",
"value": "궁서체",
"searchValue": "한산해안갯벌체험교실",
"value": "견고딕",
"points": 1,
"category": "OneAnswer",
"item": "문구 (즐거운컬러푸드영양교실)/① 글씨체 (궁서체)"
"item": "문구 (한산해안갯벌체험교실)/① 글씨체 (견고딕)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "즐거운컬러푸드영양교실",
"value": "51,63,153",
"searchValue": "한산해안갯벌체험교실",
"value": "51,69,153",
"points": 2,
"category": "Color",
"item": "문구 (즐거운컬러푸드영양교실)/② 채우기 : 색상(RGB:51,63,153)"
"item": "문구 (한산해안갯벌체험교실)/② 채우기 : 색상(RGB:51,69,153)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "즐거운컬러푸드영양교실",
"value": "130",
"searchValue": "한산해안갯벌체험교실",
"value": "110",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (즐거운컬러푸드영양교실)/③ 크기-너비 (130 mm)"
"item": "문구 (한산해안갯벌체험교실)/③ 크기-너비 (110 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "즐거운컬러푸드영양교실",
"searchValue": "한산해안갯벌체험교실",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (즐거운컬러푸드영양교실)/④ 크기-높이 (20 mm)"
"item": "문구 (한산해안갯벌체험교실)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "즐거운컬러푸드영양교실",
"searchValue": "한산해안갯벌체험교실",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (즐거운컬러푸드영양교실)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (한산해안갯벌체험교실)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "즐거운컬러푸드영양교실",
"searchValue": "한산해안갯벌체험교실",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (즐거운컬러푸드영양교실)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (한산해안갯벌체험교실)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "즐거운컬러푸드영양교실",
"searchValue": "한산해안갯벌체험교실",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (즐거운컬러푸드영양교실)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (한산해안갯벌체험교실)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -112,68 +112,68 @@
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "2/① 모양 (2줄)"
"item": "/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "맑은 고딕",
"searchValue": "",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "2/② 글씨체 (맑은 고딕)"
"item": "/② 글씨체 (굴림)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "105,231,82",
"searchValue": "",
"value": "219,207,102",
"points": 2,
"category": "Color",
"item": "2/③ 면색 : 색상(RGB:105,231,82)"
"item": "/③ 면색 : 색상(RGB:219,207,102)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "2/④ 본문과의 간격 : 3.0mm"
"item": "/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "즐거운 컬러푸드 영양교실",
"searchValue": "한산해안 갯벌체험 교실",
"value": "BOLD",
"points": 2,
"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": "굴림체",
"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": "홈페이지(http://www.ihd.or.kr)를 통해 선착순 접수",
"value": "ITALIC",
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구 (홈페이지(http://www.ihd.or.kr)를 통해 선착순 접수)/① ITALIC"
"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": "홈페이지(http://www.ihd.or.kr)를 통해 선착순 접수",
"searchValue": "2025년 12월 20일(토) 13:30 ~ 17:30",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (홈페이지(http://www.ihd.or.kr)를 통해 선착순 접수)/② UNDERLINE"
"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": "기타사항",
"searchValue": "신청안내",
"value": {
"Left": 18,
"Left": 10,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (18pt), 내어쓰기 (12pt)",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 09. 27.",
"searchValue": "2025. 12. 11.",
"value": "1400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/① 크기 (1400)",
"item": "문구 (2025. 12. 11.)/① 크기 (1400)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 09. 27.",
"searchValue": "2025. 12. 11.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 09. 27.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 12. 11.)/② 정렬 (가운데 정렬)"
},
"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": "2200",
"points": 1,
"category": "OneAnswer",
"item": "문구 (용일동보건소)/② 크기 (2200)"
"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",
@@ -280,23 +280,29 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "LatinCapital",
"value": "DecagonCircle",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"일,이,삼": "HangulPhonetic",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"desc": "정답에 맞는 값 value에 입력"
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
@@ -309,16 +315,17 @@
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "180",
"first_word": "",
"value": "200",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 180% 설정",
"item": "문제 1 줄간격 200% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
@@ -351,17 +358,17 @@
},
"4": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"value": "55",
"value": "60",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (다양한 컬러푸드)/① 크기-너비 (55 mm)"
"item": "문구 (살아있는 갯벌)/① 크기-너비 (60 mm)"
},
"5": {
"path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"value": "12",
"points": 2,
"category": "Rectangle.mmSize",
"item": "문구 (다양한 컬러푸드)/② 크기-높이 (12 mm)"
"item": "문구 (살아있는 갯벌)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE//LINESHAPE",
@@ -371,51 +378,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": "194,133,195",
"value": "249,173,168",
"points": 2,
"category": "Rectangle.Color",
"item": "문구 (다양한 컬러푸드)/⑤ 채우기 : 색상(RGB:194,133,195)"
"item": "문구 (살아있는 갯벌)/⑤ 채우기 : 색상(RGB:249,173,168)"
},
"9": {
"path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"value": "true",
"points": 1,
"category": "Rectangle.OneAnswer",
"item": "문구 (다양한 컬러푸드)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (살아있는 갯벌)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align",
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (다양한 컬러푸드)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (살아있는 갯벌)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": ".//RECTANGLE//TEXT/@CharShape",
"value": "견고딕",
"value": "굴림체",
"points": 1,
"category": "Rectangle.FontName",
"item": "문구 (다양한 컬러푸드)/⑧ 글씨체 (견고딕)"
"item": "문구 (살아있는 갯벌)/⑧ 글씨체 (굴림체)"
},
"12": {
"path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height",
"value": "1600",
"value": "1700",
"points": 1,
"category": "Rectangle.FontSize",
"item": "문구 (다양한 컬러푸드)/⑨ 글씨크기 (1600)",
"item": "문구 (살아있는 갯벌)/⑨ 글씨크기 (1700)",
"desc": "1pt당 100"
},
"13": {
@@ -423,39 +430,39 @@
"value": "Center",
"points": 1,
"category": "Rectangle.TextBoxAlign",
"item": "문구 (다양한 컬러푸드)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (살아있는 갯벌)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG']",
"path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림B.jpg\" 삽입",
"item": "① 파일명 \"그림A.jpg\" 삽입",
"desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (80 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "2",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 2.0mm)"
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "23",
"points": 2,
"category": "mmSize",
@@ -463,178 +470,181 @@
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 컬러푸드란?",
"value": "굴림",
"searchValue": "1. 갯벌의 가치",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구① (1. 컬러푸드란?)/① 글씨체 (굴림)"
"item": "문구① (1. 갯벌의 가치)/① 글씨체 (중고딕)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 컬러푸드란?",
"value": "1100",
"searchValue": "1. 갯벌의 가치",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 컬러푸드란?)/② 크기 (1100)"
"item": "문구① (1. 갯벌의 가치)/② 크기 (1200)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 컬러푸드란?",
"searchValue": "1. 갯벌의 가치",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 컬러푸드란?)/③ 진하게"
"item": "문구① (1. 갯벌의 가치)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 컬러푸드의 효능",
"value": "굴림",
"searchValue": "2. 우리나라의 갯벌",
"value": "중고딕",
"points": 1,
"category": "FontName",
"item": "문구② (2. 컬러푸드의 효능)/① 글씨체 (굴림)"
"item": "문구② (2. 우리나라의 갯벌)/① 글씨체 (중고딕)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 컬러푸드의 효능",
"value": "1100",
"searchValue": "2. 우리나라의 갯벌",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 컬러푸드의 효능)/② 크기 (1100)"
"item": "문구② (2. 우리나라의 갯벌)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 컬러푸드의 효능",
"searchValue": "2. 우리나라의 갯벌",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 컬러푸드의 효능)/③ 진하게"
"item": "문구② (2. 우리나라의 갯벌)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "항산화 작용",
"option": "리아스식 해안",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (항산화 작용)/① 각주 설정 및 문구 입력"
"item": "문구 (리아스식 해안)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "산화를 억제하는 작용",
"value": "굴림",
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 (항산화 작용)/② 글씨체 (굴림)"
"item": "문구 (리아스식 해안)/② 글씨체 (돋움체)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "산화를 억제하는 작용",
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (항산화 작용)/③ 크기 (9pt)"
"item": "문구 (리아스식 해안)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "산화를 억제하는 작용",
"value": "UserChar",
"searchValue": "하천에 의해 침식된 육지가 침강하거나 해수면이 상승해 만들어진 해안",
"value": "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",
"Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"㊀,㊁,㊂": "CircledIdeograph",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"+,++,+++": "UserChar",
"*,**,***": "UserChar",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Phytochemical')])",
"ignoreWord": "Phytochemical",
"path": "boolean(//CHAR[contains(text(),'Microorganism')])",
"ignoreWord": "Microorganism",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Phytochemical/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Microorganism/영단어 미입력, 대소문자/오타 시 전체 감점",
"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": "문구 (…바다인 3면이 우리나라는…)>'바다인' / '3면이' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"value": "굴림",
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/① 글씨체 (굴림)"
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/① 글씨체 (굴림)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
"value": "1100",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/② 크기 (1100)"
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/② 크기 (1100)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/③ 진하게"
"item": "제목 문구 (지역별 갯벌 면적(단위: 제곱킬로미터))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "과일야채 섭취량 비교(단위 : g)",
"searchValue": "지역별 갯벌 면적(단위: 제곱킬로미터)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (과일야채 섭취량 비교(단위 : g))/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (핀테크 산업 성장률(단위 : 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": "253,164,95",
"value": "154,235,85",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:253,164,95)"
"item": "위쪽 제목 셀/① 색상(RGB:154,235,85)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -686,7 +696,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",
@@ -695,11 +705,11 @@
},
"45": {
"chart_xpath": "",
"chart_type": "묶은 가로 막대형",
"chart_type": "원뿔형 누적 가로 막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (묶은 가로 막대형)",
"item": "① 종류 (원뿔형 누적 가로 막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
@@ -734,28 +744,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": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (과일야채 섭취량 비교)/② 크기 (1400)"
"item": "제목 문구 (지역별 갯벌 면적)/② 크기 (1200)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "과일야채 섭취량 비교",
"option": "i",
"searchValue": "지역별 갯벌 면적",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (과일야채 섭취량 비교)/③ 기울임",
"item": "제목 문구 (지역별 갯벌 면적)/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
@@ -774,7 +784,7 @@
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"option": "b",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
@@ -797,7 +807,7 @@
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"option": "b",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
@@ -820,7 +830,7 @@
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"option": "b",
"value": "1",
"points": 1,
"category": "OneAnswer",

Binary file not shown.

View File

@@ -0,0 +1,841 @@
{
"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.

View File

@@ -0,0 +1,841 @@
{
"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.

View File

@@ -0,0 +1,841 @@
{
"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.