한글채점 소스코드 개선버전 추가/수정 진행중
This commit is contained in:
@@ -1,855 +0,0 @@
|
|||||||
{
|
|
||||||
"0-0": {
|
|
||||||
"path": "",
|
|
||||||
"path2": "",
|
|
||||||
"points": 0,
|
|
||||||
"category": "파일저장",
|
|
||||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
|
||||||
},
|
|
||||||
"0-1": {
|
|
||||||
"path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 4,
|
|
||||||
"category": "용지설정",
|
|
||||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
|
||||||
},
|
|
||||||
"0-2": {
|
|
||||||
"path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 4,
|
|
||||||
"category": "기본설정",
|
|
||||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
|
||||||
},
|
|
||||||
"0-3": {
|
|
||||||
"path": "",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": null,
|
|
||||||
"points": 40,
|
|
||||||
"category": "오타감점",
|
|
||||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
|
||||||
},
|
|
||||||
"1-1": {
|
|
||||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경이동수단컨퍼런스",
|
|
||||||
"value": "견고딕",
|
|
||||||
"points": 1,
|
|
||||||
"category": "글맵시",
|
|
||||||
"item": "문구 (친환경이동수단컨퍼런스)/① 글씨체 (견고딕)"
|
|
||||||
},
|
|
||||||
"1-2": {
|
|
||||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경이동수단컨퍼런스",
|
|
||||||
"value": "9920305",
|
|
||||||
"points": 2,
|
|
||||||
"category": "글맵시",
|
|
||||||
"item": "문구 (친환경이동수단컨퍼런스)/② 채우기 : 색상(RGB:49,95,151)"
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경이동수단컨퍼런스",
|
|
||||||
"value": 28346,
|
|
||||||
"points": 2,
|
|
||||||
"category": "글맵시",
|
|
||||||
"item": "문구 (친환경이동수단컨퍼런스)/③ 크기-너비 (100mm)"
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경이동수단컨퍼런스",
|
|
||||||
"value": 5669,
|
|
||||||
"points": 2,
|
|
||||||
"category": "글맵시",
|
|
||||||
"item": "문구 (친환경이동수단컨퍼런스)/④ 크기-높이 (20mm)"
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경이동수단컨퍼런스",
|
|
||||||
"value": "true",
|
|
||||||
"points": 2,
|
|
||||||
"category": "글맵시",
|
|
||||||
"item": "문구 (친환경이동수단컨퍼런스)/⑤ 위치 (글자처럼 취급)"
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경이동수단컨퍼런스",
|
|
||||||
"value": "Center",
|
|
||||||
"points": 2,
|
|
||||||
"category": "글맵시",
|
|
||||||
"item": "문구 (친환경이동수단컨퍼런스)/⑥ 정렬 (가운데 정렬)"
|
|
||||||
},
|
|
||||||
"1-7": {
|
|
||||||
"path": "boolean(//TEXTART[@Text='{searchValue}'])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경이동수단컨퍼런스",
|
|
||||||
"value": true,
|
|
||||||
"points": 2,
|
|
||||||
"category": "글맵시",
|
|
||||||
"item": "문구 (친환경이동수단컨퍼런스)/⑦ 글맵시모양 (육안확인)"
|
|
||||||
},
|
|
||||||
"1-8": {
|
|
||||||
"path": "boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 1,
|
|
||||||
"category": "문단첫글자장식",
|
|
||||||
"item": "지/① 모양 (2줄)"
|
|
||||||
},
|
|
||||||
"1-9": {
|
|
||||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "궁서체",
|
|
||||||
"points": 1,
|
|
||||||
"category": "문단첫글자장식",
|
|
||||||
"item": "지/② 글씨체 (궁서체)"
|
|
||||||
},
|
|
||||||
"1-10": {
|
|
||||||
"path": "//RECTANGLE[.//CHAR[text()='지']]//WINDOWBRUSH/@FaceColor",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "3644265",
|
|
||||||
"points": 2,
|
|
||||||
"category": "문단첫글자장식",
|
|
||||||
"item": "지/③ 면색 : 색상(RGB:105,155,55)"
|
|
||||||
},
|
|
||||||
"1-11": {
|
|
||||||
"path": "//RECTANGLE[.//CHAR[text()='지']]//OUTSIDEMARGIN/@Right",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "850",
|
|
||||||
"points": 2,
|
|
||||||
"category": "문단첫글자장식",
|
|
||||||
"item": "지/④ 본문과의 간격 : 3.0mm"
|
|
||||||
},
|
|
||||||
"1-12": {
|
|
||||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][ITALIC])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대",
|
|
||||||
"value": true,
|
|
||||||
"points": 2,
|
|
||||||
"category": "글꼴 속성",
|
|
||||||
"item": "문구 (전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대)/① 기울임"
|
|
||||||
},
|
|
||||||
"1-13": {
|
|
||||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대",
|
|
||||||
"value": true,
|
|
||||||
"points": 2,
|
|
||||||
"category": "글꼴 속성",
|
|
||||||
"item": "문구 (전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대)/② 밑줄"
|
|
||||||
},
|
|
||||||
"1-14": {
|
|
||||||
"path": "count(//CHAR[contains(text(),'☆')]) + count(//CHAR[contains(text(),'※')])",
|
|
||||||
"path2": "string-length(//CHAR[contains(text(),'☆')]) - string-length(translate(//CHAR[contains(text(),'☆')], '☆', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))",
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 3,
|
|
||||||
"points": 3,
|
|
||||||
"category": "특수문자",
|
|
||||||
"item": "① ☆, ② ☆, ③ ※"
|
|
||||||
},
|
|
||||||
"1-15": {
|
|
||||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "☆ 행사안내 ☆",
|
|
||||||
"value": "궁서",
|
|
||||||
"points": 1,
|
|
||||||
"category": "글꼴 속성",
|
|
||||||
"item": "문구 (☆ 행사안내 ☆)/① 글씨체 (궁서)"
|
|
||||||
},
|
|
||||||
"1-16": {
|
|
||||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "☆ 행사안내 ☆",
|
|
||||||
"value": "Center",
|
|
||||||
"points": 1,
|
|
||||||
"category": "글꼴 속성",
|
|
||||||
"item": "문구 (☆ 행사안내 ☆)/② 정렬 (가운데 정렬)"
|
|
||||||
},
|
|
||||||
"1-17": {
|
|
||||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][BOLD])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "2025. 03. 27.(목) 24:00까지",
|
|
||||||
"value": true,
|
|
||||||
"points": 1,
|
|
||||||
"category": "글꼴 속성",
|
|
||||||
"item": "문구 (2025. 03. 27.(목) 24:00까지)/① 진하게"
|
|
||||||
},
|
|
||||||
"1-18": {
|
|
||||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "2025. 03. 27.(목) 24:00까지",
|
|
||||||
"value": true,
|
|
||||||
"points": 1,
|
|
||||||
"category": "글꼴 속성",
|
|
||||||
"item": "문구 (2025. 03. 27.(목) 24:00까지)/② 밑줄"
|
|
||||||
},
|
|
||||||
"1-19": {
|
|
||||||
"path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "기타사항",
|
|
||||||
"value": true,
|
|
||||||
"points": 2,
|
|
||||||
"category": "문단모양",
|
|
||||||
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)"
|
|
||||||
},
|
|
||||||
"1-20": {
|
|
||||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "2025. 03. 22.",
|
|
||||||
"value": 1300,
|
|
||||||
"points": 1,
|
|
||||||
"category": "글꼴 속성",
|
|
||||||
"item": "문구 (2025. 03. 22.)/① 크기 (13pt)"
|
|
||||||
},
|
|
||||||
"1-21": {
|
|
||||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "2025. 03. 22.",
|
|
||||||
"value": "Center",
|
|
||||||
"points": 1,
|
|
||||||
"category": "글꼴 속성",
|
|
||||||
"item": "문구 (2025. 03. 22.)/② 정렬 (가운데 정렬)"
|
|
||||||
},
|
|
||||||
"1-22": {
|
|
||||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "한국육상운송협회",
|
|
||||||
"value": "굴림체",
|
|
||||||
"points": 1,
|
|
||||||
"category": "글꼴 속성",
|
|
||||||
"item": "문구 (한국육상운송협회)/① 글씨체 (굴림체)"
|
|
||||||
},
|
|
||||||
"1-23": {
|
|
||||||
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "한국육상운송협회",
|
|
||||||
"value": 2400,
|
|
||||||
"points": 1,
|
|
||||||
"category": "글꼴 속성",
|
|
||||||
"item": "문구 (한국육상운송협회)/② 크기 (24pt)"
|
|
||||||
},
|
|
||||||
"1-24": {
|
|
||||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "한국육상운송협회",
|
|
||||||
"value": "Center",
|
|
||||||
"points": 1,
|
|
||||||
"category": "글꼴 속성",
|
|
||||||
"item": "문구 (한국육상운송협회)/③ 정렬 (가운데 정렬)"
|
|
||||||
},
|
|
||||||
"1-25": {
|
|
||||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "DIAT",
|
|
||||||
"value": "돋움",
|
|
||||||
"points": 1,
|
|
||||||
"category": "머리말",
|
|
||||||
"item": "문구 (DIAT)/① 글꼴 (돋움)"
|
|
||||||
},
|
|
||||||
"1-26": {
|
|
||||||
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "DIAT",
|
|
||||||
"value": 900,
|
|
||||||
"points": 1,
|
|
||||||
"category": "머리말",
|
|
||||||
"item": "문구 (DIAT)/② 크기 (9pt)"
|
|
||||||
},
|
|
||||||
"1-27": {
|
|
||||||
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "DIAT",
|
|
||||||
"value": "Right",
|
|
||||||
"points": 1,
|
|
||||||
"category": "머리말",
|
|
||||||
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
|
||||||
},
|
|
||||||
"1-28": {
|
|
||||||
"path": "//PAGENUM/@FormatType",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "LatinCapital",
|
|
||||||
"points": 2,
|
|
||||||
"category": "쪽번호",
|
|
||||||
"item": "① 쪽 번호 매기기 (A,B,C 순으로)"
|
|
||||||
},
|
|
||||||
"1-29": {
|
|
||||||
"path": "//PAGENUM/@Pos",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "BottomCenter",
|
|
||||||
"points": 2,
|
|
||||||
"category": "쪽번호",
|
|
||||||
"item": "② 가운데 아래"
|
|
||||||
},
|
|
||||||
"1-30": {
|
|
||||||
"path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 2,
|
|
||||||
"category": "줄간격",
|
|
||||||
"item": "문제 1 줄간격 180% 설정"
|
|
||||||
},
|
|
||||||
"2-01": {
|
|
||||||
"path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 4,
|
|
||||||
"category": "쪽 테두리",
|
|
||||||
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
|
||||||
},
|
|
||||||
"2-02": {
|
|
||||||
"path": "count(//SECTION)>1",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 3,
|
|
||||||
"category": "다단",
|
|
||||||
"item": "① 구역나누기"
|
|
||||||
},
|
|
||||||
"2-03": {
|
|
||||||
"path": "//COLDEF/@Count>1",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 3,
|
|
||||||
"category": "다단",
|
|
||||||
"item": "② 다단 2단"
|
|
||||||
},
|
|
||||||
"2-04": {
|
|
||||||
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경 이동수단",
|
|
||||||
"value": 19842,
|
|
||||||
"points": 2,
|
|
||||||
"category": "글상자",
|
|
||||||
"item": "문구 (친환경 이동수단)/① 크기-너비 (70mm)"
|
|
||||||
},
|
|
||||||
"2-05": {
|
|
||||||
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경 이동수단",
|
|
||||||
"value": 3401,
|
|
||||||
"points": 2,
|
|
||||||
"category": "글상자",
|
|
||||||
"item": "문구 (친환경 이동수단)/② 크기-높이 (12mm)"
|
|
||||||
},
|
|
||||||
"2-06": {
|
|
||||||
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경 이동수단",
|
|
||||||
"value": "DoubleSlim",
|
|
||||||
"points": 2,
|
|
||||||
"category": "글상자",
|
|
||||||
"item": "문구 (친환경 이동수단)/③ 테두리 (이중실선(1.00mm))"
|
|
||||||
},
|
|
||||||
"2-07": {
|
|
||||||
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경 이동수단",
|
|
||||||
"value": 50,
|
|
||||||
"points": 2,
|
|
||||||
"category": "글상자",
|
|
||||||
"item": "문구 (친환경 이동수단)/④ 글상자 모서리 (반원)"
|
|
||||||
},
|
|
||||||
"2-08": {
|
|
||||||
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경 이동수단",
|
|
||||||
"value": "9537333",
|
|
||||||
"points": 2,
|
|
||||||
"category": "글상자",
|
|
||||||
"item": "문구 (친환경 이동수단)/⑤ 채우기 : 색상(RGB:53,135,145)"
|
|
||||||
},
|
|
||||||
"2-09": {
|
|
||||||
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경 이동수단",
|
|
||||||
"value": "true",
|
|
||||||
"points": 1,
|
|
||||||
"category": "글상자",
|
|
||||||
"item": "문구 (친환경 이동수단)/⑥ 글상자 위치 (글자처럼 취급)"
|
|
||||||
},
|
|
||||||
"2-10": {
|
|
||||||
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경 이동수단",
|
|
||||||
"value": "Center",
|
|
||||||
"points": 1,
|
|
||||||
"category": "글상자",
|
|
||||||
"item": "문구 (친환경 이동수단)/⑦ 글상자 정렬 (가운데 정렬)"
|
|
||||||
},
|
|
||||||
"2-11": {
|
|
||||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경 이동수단",
|
|
||||||
"value": "맑은 고딕",
|
|
||||||
"points": 1,
|
|
||||||
"category": "글상자",
|
|
||||||
"item": "문구 (친환경 이동수단)/⑧ 글씨체 (맑은 고딕)"
|
|
||||||
},
|
|
||||||
"2-12": {
|
|
||||||
"path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2400')",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경 이동수단",
|
|
||||||
"value": true,
|
|
||||||
"points": 1,
|
|
||||||
"category": "글상자",
|
|
||||||
"item": "문구 (친환경 이동수단)/⑨ 글씨크기 (24pt)"
|
|
||||||
},
|
|
||||||
"2-13": {
|
|
||||||
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "친환경 이동수단",
|
|
||||||
"value": "Center",
|
|
||||||
"points": 1,
|
|
||||||
"category": "글상자",
|
|
||||||
"item": "문구 (친환경 이동수단)/⑩ 정렬 (가운데 정렬)"
|
|
||||||
},
|
|
||||||
"2-14": {
|
|
||||||
"path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "원본 그림의 이름: 그림",
|
|
||||||
"value": true,
|
|
||||||
"points": 2,
|
|
||||||
"category": "그림삽입",
|
|
||||||
"item": "① 파일명 \"그림A.jpg\" 삽입"
|
|
||||||
},
|
|
||||||
"2-15": {
|
|
||||||
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 24094,
|
|
||||||
"points": 2,
|
|
||||||
"category": "그림삽입",
|
|
||||||
"item": "② 크기-너비 (85mm)"
|
|
||||||
},
|
|
||||||
"2-16": {
|
|
||||||
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 11338,
|
|
||||||
"points": 2,
|
|
||||||
"category": "그림삽입",
|
|
||||||
"item": "③ 크기-높이 (40mm)"
|
|
||||||
},
|
|
||||||
"2-17": {
|
|
||||||
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 0,
|
|
||||||
"points": 2,
|
|
||||||
"category": "그림삽입",
|
|
||||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
|
|
||||||
},
|
|
||||||
"2-18": {
|
|
||||||
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 6236,
|
|
||||||
"points": 2,
|
|
||||||
"category": "그림삽입",
|
|
||||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22mm)"
|
|
||||||
},
|
|
||||||
"2-19": {
|
|
||||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "1. 친환경 자동차",
|
|
||||||
"value": "궁서",
|
|
||||||
"points": 1,
|
|
||||||
"category": "속성",
|
|
||||||
"item": "문구① (1. 친환경 자동차)/① 글씨체 (궁서)"
|
|
||||||
},
|
|
||||||
"2-20": {
|
|
||||||
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "1. 친환경 자동차",
|
|
||||||
"value": 1200,
|
|
||||||
"points": 1,
|
|
||||||
"category": "속성",
|
|
||||||
"item": "문구① (1. 친환경 자동차)/② 크기 (12pt)"
|
|
||||||
},
|
|
||||||
"2-21": {
|
|
||||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "1. 친환경 자동차",
|
|
||||||
"value": true,
|
|
||||||
"points": 1,
|
|
||||||
"category": "속성",
|
|
||||||
"item": "문구① (1. 친환경 자동차)/③ 진하게"
|
|
||||||
},
|
|
||||||
"2-22": {
|
|
||||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "2. 친환경 자동차 보급 추이",
|
|
||||||
"value": "궁서",
|
|
||||||
"points": 1,
|
|
||||||
"category": "속성",
|
|
||||||
"item": "문구② (2. 친환경 자동차 보급 추이)/① 글씨체 (궁서)"
|
|
||||||
},
|
|
||||||
"2-23": {
|
|
||||||
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "2. 친환경 자동차 보급 추이",
|
|
||||||
"value": 1200,
|
|
||||||
"points": 1,
|
|
||||||
"category": "속성",
|
|
||||||
"item": "문구② (2. 친환경 자동차 보급 추이)/② 크기 (12pt)"
|
|
||||||
},
|
|
||||||
"2-24": {
|
|
||||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "2. 친환경 자동차 보급 추이",
|
|
||||||
"value": true,
|
|
||||||
"points": 1,
|
|
||||||
"category": "속성",
|
|
||||||
"item": "문구② (2. 친환경 자동차 보급 추이)/③ 진하게"
|
|
||||||
},
|
|
||||||
"2-25": {
|
|
||||||
"path":"boolean(//CHAR[contains(text(),'자동차 탄소발자국')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)",
|
|
||||||
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('자동차 탄소발자국') + 1) = '자동차 탄소발자국']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 2,
|
|
||||||
"category": "각주",
|
|
||||||
"item": "문구 (자동차 탄소발자국)/① 각주 설정 및 문구 입력"
|
|
||||||
},
|
|
||||||
"2-26": {
|
|
||||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량",
|
|
||||||
"value": "굴림",
|
|
||||||
"points": 1,
|
|
||||||
"category": "각주",
|
|
||||||
"item": "문구 (자동차 탄소발자국)/② 글씨체 (굴림)"
|
|
||||||
},
|
|
||||||
"2-27": {
|
|
||||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량",
|
|
||||||
"value": 900,
|
|
||||||
"points": 1,
|
|
||||||
"category": "각주",
|
|
||||||
"item": "문구 (자동차 탄소발자국)/③ 크기 (9pt)"
|
|
||||||
},
|
|
||||||
"2-28": {
|
|
||||||
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량",
|
|
||||||
"value": "CircledHangulSyllable",
|
|
||||||
"points": 2,
|
|
||||||
"category": "각주",
|
|
||||||
"item": "문구 (자동차 탄소발자국)/④ 각주 번호모양"
|
|
||||||
},
|
|
||||||
"2-29": {
|
|
||||||
"path": "boolean(//CHAR[contains(text(),'Hybrid')])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 3,
|
|
||||||
"category": "영단어",
|
|
||||||
"item": "Hybrid/영단어 미입력, 대소문자/오타 시 전체 감점"
|
|
||||||
},
|
|
||||||
"2-30": {
|
|
||||||
"path": "(count(//CHAR[contains(text(),'전지')][contains(text(),'電池')])+count(//CHAR[contains(text(),'유해')][contains(text(),'有害')])+count(//CHAR[contains(text(),'내연')][contains(text(),'內燃')])+count(//CHAR[contains(text(),'이륜차')][contains(text(),'二輪車')])+count(//CHAR[contains(text(),'기타')][contains(text(),'其他')]))*2",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 10,
|
|
||||||
"points": 10,
|
|
||||||
"category": "한자",
|
|
||||||
"item": "① 전지(電池), ② 유해(有害), ③내연(內燃), ④ 이륜차(二輪車), ⑤ 기타(其他)"
|
|
||||||
},
|
|
||||||
"2-31": {
|
|
||||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'터를독립')])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 3,
|
|
||||||
"category": "편집",
|
|
||||||
"item": "문구 (…내장된 전기모터이 독립적으로 또는 병행해서…)/\"이\" → \"를\" 글자바꿈"
|
|
||||||
},
|
|
||||||
"2-32": {
|
|
||||||
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면서환경')])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 3,
|
|
||||||
"category": "편집",
|
|
||||||
"item": "문구 (…주행하는 방식으로 환경에 주행하면서 유해(有害)한 물질을…)/\"환경에\" / \"주행하면서\" 순서바꿈"
|
|
||||||
},
|
|
||||||
"2-33": {
|
|
||||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "자동차 증가 추이",
|
|
||||||
"value": "돋움",
|
|
||||||
"points": 1,
|
|
||||||
"category": "표",
|
|
||||||
"item": "제목 문구 (자동차 증가 추이)/① 글씨체 (돋움)"
|
|
||||||
},
|
|
||||||
"2-34": {
|
|
||||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "자동차 증가 추이",
|
|
||||||
"value": 1200,
|
|
||||||
"points": 1,
|
|
||||||
"category": "표",
|
|
||||||
"item": "제목 문구 (자동차 증가 추이)/② 크기 (12pt)"
|
|
||||||
},
|
|
||||||
"2-35": {
|
|
||||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "자동차 증가 추이",
|
|
||||||
"value": true,
|
|
||||||
"points": 1,
|
|
||||||
"category": "표",
|
|
||||||
"item": "제목 문구 (자동차 증가 추이)/③ 진하게"
|
|
||||||
},
|
|
||||||
"2-36": {
|
|
||||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "자동차 증가 추이",
|
|
||||||
"value": "Center",
|
|
||||||
"points": 1,
|
|
||||||
"category": "표",
|
|
||||||
"item": "제목 문구 (자동차 증가 추이)/④ 정렬 (가운데 정렬)"
|
|
||||||
},
|
|
||||||
"2-37": {
|
|
||||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
|
||||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "7034570",
|
|
||||||
"points": 2,
|
|
||||||
"category": "표",
|
|
||||||
"item": "위쪽 제목 셀/① 색상(RGB:202,86,107)"
|
|
||||||
},
|
|
||||||
"2-38": {
|
|
||||||
"path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 1,
|
|
||||||
"category": "표",
|
|
||||||
"item": "위쪽 제목 셀/② 진하게"
|
|
||||||
},
|
|
||||||
"2-39": {
|
|
||||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
|
||||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Type",
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "DoubleSlim",
|
|
||||||
"points": 2,
|
|
||||||
"category": "표",
|
|
||||||
"item": "제목 셀 아래선/① 이중실선"
|
|
||||||
},
|
|
||||||
"2-40": {
|
|
||||||
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
|
||||||
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Width",
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "0.5mm",
|
|
||||||
"points": 2,
|
|
||||||
"category": "표",
|
|
||||||
"item": "제목 셀 아래선/② 0.5mm"
|
|
||||||
},
|
|
||||||
"2-41": {
|
|
||||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "궁서체",
|
|
||||||
"points": 1,
|
|
||||||
"category": "표",
|
|
||||||
"item": "글자모양/① 글씨체 (궁서체)"
|
|
||||||
},
|
|
||||||
"2-42": {
|
|
||||||
"path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 1000,
|
|
||||||
"points": 1,
|
|
||||||
"category": "표",
|
|
||||||
"item": "글자모양/② 크기 (10pt)"
|
|
||||||
},
|
|
||||||
"2-43": {
|
|
||||||
"path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "Center",
|
|
||||||
"points": 1,
|
|
||||||
"category": "표",
|
|
||||||
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
|
||||||
},
|
|
||||||
"2-44": {
|
|
||||||
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '290'] and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '190'])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 4,
|
|
||||||
"category": "표",
|
|
||||||
"item": "블록계산식/합계"
|
|
||||||
},
|
|
||||||
"2-45": {
|
|
||||||
"path": "boolean(//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 2,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "① 종류 (묶은세로막대형)"
|
|
||||||
},
|
|
||||||
"2-46": {
|
|
||||||
"path": "//c:valAx/c:majorTickMark/@val",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "out",
|
|
||||||
"points": 2,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "② 값 축 주 눈금선"
|
|
||||||
},
|
|
||||||
"2-47": {
|
|
||||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 22677,
|
|
||||||
"points": 2,
|
|
||||||
"category": "차트",
|
|
||||||
"item": "③ 크기-너비 (80mm)"
|
|
||||||
},
|
|
||||||
"2-48": {
|
|
||||||
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 25511,
|
|
||||||
"points": 2,
|
|
||||||
"category": "차트",
|
|
||||||
"item": "④ 크기-높이 (90mm)"
|
|
||||||
},
|
|
||||||
"2-49": {
|
|
||||||
"path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": true,
|
|
||||||
"points": 2,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)"
|
|
||||||
},
|
|
||||||
"2-50": {
|
|
||||||
"path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "자동차 증가 추이",
|
|
||||||
"value": "바탕체",
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/① 글씨체 (바탕체)"
|
|
||||||
},
|
|
||||||
"2-51": {
|
|
||||||
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "자동차 증가 추이",
|
|
||||||
"value": 1300,
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/② 크기 (13pt)"
|
|
||||||
},
|
|
||||||
"2-52": {
|
|
||||||
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": "자동차 증가 추이",
|
|
||||||
"value": 1,
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/③ 진하게"
|
|
||||||
},
|
|
||||||
"2-53": {
|
|
||||||
"path": "//c:catAx//a:ea/@typeface",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "굴림",
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "X축/① 글꼴 (굴림)"
|
|
||||||
},
|
|
||||||
"2-54": {
|
|
||||||
"path": "//c:catAx//a:defRPr/@sz",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 900,
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "X축/② 크기 (9pt)"
|
|
||||||
},
|
|
||||||
"2-55": {
|
|
||||||
"path": "//c:catAx//a:defRPr/@i",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 1,
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "X축/③ 기울임"
|
|
||||||
},
|
|
||||||
"2-56": {
|
|
||||||
"path": "//c:valAx//a:ea/@typeface",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "굴림",
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "Y축/① 글꼴 (굴림)"
|
|
||||||
},
|
|
||||||
"2-57": {
|
|
||||||
"path": "//c:valAx//a:defRPr/@sz",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 900,
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "Y축/② 크기 (9pt)"
|
|
||||||
},
|
|
||||||
"2-58": {
|
|
||||||
"path": "//c:valAx//a:defRPr/@i",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 1,
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "Y축/③ 기울임"
|
|
||||||
},
|
|
||||||
"2-59": {
|
|
||||||
"path": "//c:legend//a:ea/@typeface",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": "굴림",
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "범례/① 글꼴 (굴림)"
|
|
||||||
},
|
|
||||||
"2-60": {
|
|
||||||
"path": "//c:legend//a:defRPr/@sz",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 900,
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "범례/② 크기 (9pt)"
|
|
||||||
},
|
|
||||||
"2-61": {
|
|
||||||
"path": "//c:legend//a:defRPr/@i",
|
|
||||||
"path2": null,
|
|
||||||
"searchValue": null,
|
|
||||||
"value": 1,
|
|
||||||
"points": 1,
|
|
||||||
"category": "chart_xml",
|
|
||||||
"item": "범례/③ 기울임"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
155
DIW_2503A_test.json
Normal file
155
DIW_2503A_test.json
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"0": {
|
||||||
|
"path": "",
|
||||||
|
"path2": "",
|
||||||
|
"points": 0,
|
||||||
|
"category": "파일저장",
|
||||||
|
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"path": "//PAGEMARGIN",
|
||||||
|
"value": {
|
||||||
|
"Bottom": 5669,
|
||||||
|
"Footer": 2834,
|
||||||
|
"Gutter": 0,
|
||||||
|
"Header": 2834,
|
||||||
|
"Left": 5669,
|
||||||
|
"Right": 5669,
|
||||||
|
"Top": 5669
|
||||||
|
},
|
||||||
|
"tolerance": 1,
|
||||||
|
"points": 4,
|
||||||
|
"category": "PageSetting",
|
||||||
|
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"path": "//STYLE[@Name='바탕글']",
|
||||||
|
"value": {
|
||||||
|
"FontName": "바탕",
|
||||||
|
"FontSize": "1000",
|
||||||
|
"Alignment": "Justify",
|
||||||
|
"LineSpacing": "160"
|
||||||
|
},
|
||||||
|
"points": 4,
|
||||||
|
"category": "BasicSetting",
|
||||||
|
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"path": "",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": null,
|
||||||
|
"points": 40,
|
||||||
|
"category": "오타감점",
|
||||||
|
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": "견고딕",
|
||||||
|
"points": 1,
|
||||||
|
"category": "SingleAnswer",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/① 글씨체 (견고딕)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": "49,95,151",
|
||||||
|
"points": 2,
|
||||||
|
"category": "Color",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/② 채우기 : 색상(RGB:49,95,151)"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": "28346",
|
||||||
|
"points": 2,
|
||||||
|
"category": "SingleAnswer",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/③ 크기-너비 (100mm)"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": "5669",
|
||||||
|
"points": 2,
|
||||||
|
"category": "SingleAnswer",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/④ 크기-높이 (20mm)"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": "true",
|
||||||
|
"points": 2,
|
||||||
|
"category": "SingleAnswer",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/⑤ 위치 (글자처럼 취급)"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 2,
|
||||||
|
"category": "SingleAnswer",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/⑥ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "Boolean",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/⑦ 글맵시모양 (육안확인)"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "지",
|
||||||
|
"value": {
|
||||||
|
"Height": 2800,
|
||||||
|
"Width": 2800
|
||||||
|
},
|
||||||
|
"tolerance": 200,
|
||||||
|
"points": 1,
|
||||||
|
"category": "TwoLineSize",
|
||||||
|
"item": "지/① 모양 (2줄)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "지",
|
||||||
|
"value": "궁서체",
|
||||||
|
"points": 1,
|
||||||
|
"category": "FontName",
|
||||||
|
"item": "지/② 글씨체 (궁서체)"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "지",
|
||||||
|
"value": "105,155,55",
|
||||||
|
"points": 2,
|
||||||
|
"category": "Color",
|
||||||
|
"item": "지/③ 면색 : 색상(RGB:105,155,55)"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "지",
|
||||||
|
"value": "850",
|
||||||
|
"points": 2,
|
||||||
|
"category": "SingleAnswer",
|
||||||
|
"item": "지/④ 본문과의 간격 : 3.0mm"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][ITALIC])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대)/① 기울임"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -160,10 +160,42 @@ class XMLScorer:
|
|||||||
search_value = criterion['searchValue'] if 'searchValue' in criterion else None
|
search_value = criterion['searchValue'] if 'searchValue' in criterion else None
|
||||||
right_answer = criterion['value'] if 'value' in criterion else None
|
right_answer = criterion['value'] if 'value' in criterion else None
|
||||||
points = criterion['points'] if 'points' in criterion else None
|
points = criterion['points'] if 'points' in criterion else None
|
||||||
category = criterion['category']
|
category = criterion['category'] if 'category' in criterion else None
|
||||||
item = criterion['item']
|
item = criterion['item']
|
||||||
similar_text = None
|
similar_text = None
|
||||||
|
|
||||||
|
# if "pageSetting" in (format or ""):
|
||||||
|
# results = root.xpath("//PAGEMARGIN")
|
||||||
|
# matched = False
|
||||||
|
|
||||||
|
# for i, user_answer in enumerate(results):
|
||||||
|
# bottom = int(user_answer.get("Bottom"), 0)
|
||||||
|
# footer = int(user_answer.get("Footer"), 0)
|
||||||
|
# gutter = int(user_answer.get("Gutter"), 0)
|
||||||
|
# header = int(user_answer.get("Header"), 0)
|
||||||
|
# left = int(user_answer.get("Left"), 0)
|
||||||
|
# right = int(user_answer.get("Right"), 0)
|
||||||
|
# top = int(user_answer.get("Top"), 0)
|
||||||
|
# error_range = 1
|
||||||
|
|
||||||
|
# if abs(right_answer['Bottom'] - bottom) <= error_range and \
|
||||||
|
# abs(right_answer['Footer'] - footer) <= error_range and \
|
||||||
|
# abs(right_answer['Gutter'] - gutter) <= error_range and \
|
||||||
|
# abs(right_answer['Header'] - header) <= error_range and \
|
||||||
|
# abs(right_answer['Left'] - left) <= error_range and \
|
||||||
|
# abs(right_answer['Right'] - right) <= error_range and \
|
||||||
|
# abs(right_answer['Top'] - top) <= error_range:
|
||||||
|
# matched = True
|
||||||
|
|
||||||
|
# total_score += points
|
||||||
|
# partial_score += points
|
||||||
|
# scoring['points'] = points
|
||||||
|
# break
|
||||||
|
|
||||||
|
# if not matched:
|
||||||
|
# scoring['points'] = 0
|
||||||
|
|
||||||
|
|
||||||
# chart xml 파일에서 채점하는 경우
|
# chart xml 파일에서 채점하는 경우
|
||||||
if "chart_xml" in category:
|
if "chart_xml" in category:
|
||||||
if search_value is not None:
|
if search_value is not None:
|
||||||
@@ -531,8 +563,8 @@ def main():
|
|||||||
exam_round = '2503'
|
exam_round = '2503'
|
||||||
exam_types = [
|
exam_types = [
|
||||||
'A',
|
'A',
|
||||||
'B',
|
# 'B',
|
||||||
'C',
|
# 'C',
|
||||||
]
|
]
|
||||||
# test_mode = False
|
# test_mode = False
|
||||||
test_mode = True
|
test_mode = True
|
||||||
|
|||||||
650
diwScoring2.py
Normal file
650
diwScoring2.py
Normal file
@@ -0,0 +1,650 @@
|
|||||||
|
import tkinter as tk
|
||||||
|
from tkinter import filedialog, messagebox
|
||||||
|
from datetime import datetime
|
||||||
|
import difflib
|
||||||
|
import json
|
||||||
|
from pathlib import Path
|
||||||
|
import os
|
||||||
|
from lxml import etree as ET
|
||||||
|
import re
|
||||||
|
from difflib import SequenceMatcher
|
||||||
|
import pandas as pd
|
||||||
|
import base64
|
||||||
|
# from xpathSearch import XMLPathHandler
|
||||||
|
|
||||||
|
class XMLScorer:
|
||||||
|
# 채점 기준 경로 초기화
|
||||||
|
def __init__(self, scoring_criteria_path):
|
||||||
|
# 채점 기준 로드
|
||||||
|
self.scoring_criteria = self._load_scoring_criteria(scoring_criteria_path)
|
||||||
|
self.total_score = 0
|
||||||
|
self.partial_score = 0
|
||||||
|
self.typo_score = 0
|
||||||
|
|
||||||
|
def set_typo_score(self, score):
|
||||||
|
self.typo_score = score
|
||||||
|
|
||||||
|
def get_typo_score(self):
|
||||||
|
return self.typo_score
|
||||||
|
|
||||||
|
# 채점 기준파일 로드(JSON 파일)
|
||||||
|
def _load_scoring_criteria(self, file_path):
|
||||||
|
with open(file_path, 'r', encoding='utf-8') as f:
|
||||||
|
return json.load(f)
|
||||||
|
|
||||||
|
# XML 파일에서 element의 값을 찾아 반환
|
||||||
|
def query_xml(self, root, *args):
|
||||||
|
first_xpath = args[0]
|
||||||
|
second_xpath = args[1]
|
||||||
|
points = args[2]
|
||||||
|
category = args[3]
|
||||||
|
|
||||||
|
if ("특수문자" in category) and (second_xpath is not None):
|
||||||
|
try:
|
||||||
|
result = root.xpath(first_xpath)
|
||||||
|
# 결과값이 리스트형인데 내부에 정보가 없는경우
|
||||||
|
# 결과값이 없음
|
||||||
|
if type(result) is list and len(result) == 0:
|
||||||
|
return None
|
||||||
|
elif result < points:
|
||||||
|
result = root.xpath(second_xpath)
|
||||||
|
return result
|
||||||
|
else:
|
||||||
|
return result
|
||||||
|
|
||||||
|
except ET.XPathEvalError as e:
|
||||||
|
return None
|
||||||
|
|
||||||
|
elif second_xpath is not None:
|
||||||
|
try:
|
||||||
|
result1 = root.xpath(first_xpath)
|
||||||
|
result2 = root.xpath(second_xpath)
|
||||||
|
if (type(result1) is list and len(result1) == 0) and (type(result2) is list and len(result2) == 0):
|
||||||
|
return None
|
||||||
|
return result1 if result1 else result2
|
||||||
|
|
||||||
|
except ET.XPathEvalError as e:
|
||||||
|
return None
|
||||||
|
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
result = root.xpath(first_xpath)
|
||||||
|
if type(result) is list and len(result) == 0:
|
||||||
|
return None
|
||||||
|
return result
|
||||||
|
except ET.XPathEvalError as e:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def chart_query_xml(self, tree, xpath, namespaces):
|
||||||
|
result = tree.xpath(xpath, namespaces=namespaces)
|
||||||
|
if type(result) is list and len(result) == 0:
|
||||||
|
return None
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
# 유사한 텍스트 찾기
|
||||||
|
def find_similar_text(self, root, target_text, threshold=0.7):
|
||||||
|
"""
|
||||||
|
전체 문서에서 유사한 텍스트를 찾아 반환
|
||||||
|
|
||||||
|
Args:
|
||||||
|
root (_type_): xml root element 객체
|
||||||
|
target_text (_type_): 찾을 텍스트
|
||||||
|
threshold (float, optional): 유사도 설정 Defaults to 0.3.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
str: 유사도 기준을 만족하는 텍스트
|
||||||
|
"""
|
||||||
|
# 전체 텍스트 추출
|
||||||
|
# all_text = root.xpath(f"//CHAR/text()")
|
||||||
|
# all_text.append(root.xpath(f"//TEXTART/@text"))
|
||||||
|
|
||||||
|
namespaces = {
|
||||||
|
'a': 'http://schemas.openxmlformats.org/drawingml/2006/main',
|
||||||
|
'c': 'http://schemas.openxmlformats.org/drawingml/2006/chart'
|
||||||
|
}
|
||||||
|
|
||||||
|
all_text = root.xpath(f"//BODY//text() | //TEXTART/@Text | //c:chart//text()", namespaces=namespaces)
|
||||||
|
|
||||||
|
# 유사도 비교
|
||||||
|
max_score = 0
|
||||||
|
similar_text = ''
|
||||||
|
|
||||||
|
for text in all_text:
|
||||||
|
score = SequenceMatcher(None, target_text, text).ratio()
|
||||||
|
|
||||||
|
if score > max_score:
|
||||||
|
max_score = score
|
||||||
|
similar_text = text
|
||||||
|
|
||||||
|
if max_score >= threshold:
|
||||||
|
return similar_text
|
||||||
|
else:
|
||||||
|
return target_text
|
||||||
|
|
||||||
|
# 정답 비교 및 점수 계산
|
||||||
|
def evaluate_answer(self, scoring, user_answer, right_answer, points,
|
||||||
|
method="equal", tolerance=0):
|
||||||
|
|
||||||
|
scoring['user_answer'] = user_answer
|
||||||
|
|
||||||
|
is_correct = False
|
||||||
|
|
||||||
|
if method == "equal":
|
||||||
|
is_correct = (user_answer == right_answer)
|
||||||
|
elif method == "tolerance":
|
||||||
|
if isinstance(user_answer, dict) and isinstance(right_answer, dict):
|
||||||
|
is_correct = all(abs(user_answer[k] - right_answer[k]) <= tolerance for k in right_answer)
|
||||||
|
else:
|
||||||
|
is_correct = abs(user_answer - right_answer) <= tolerance
|
||||||
|
elif method == "in":
|
||||||
|
is_correct = user_answer in right_answer
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Unknown comparison method: {method}")
|
||||||
|
|
||||||
|
if is_correct:
|
||||||
|
scoring['points'] = points
|
||||||
|
self.total_score += points
|
||||||
|
self.partial_score += points
|
||||||
|
else:
|
||||||
|
scoring['points'] = 0
|
||||||
|
|
||||||
|
# 하나의 XML 파일 채점
|
||||||
|
def _score_xml_file(self, xml_file, chart_xml):
|
||||||
|
try:
|
||||||
|
tree = ET.parse(xml_file)
|
||||||
|
root = tree.getroot()
|
||||||
|
|
||||||
|
# 네임스페이스 정의
|
||||||
|
namespaces = {
|
||||||
|
'a': 'http://schemas.openxmlformats.org/drawingml/2006/main',
|
||||||
|
'c': 'http://schemas.openxmlformats.org/drawingml/2006/chart'
|
||||||
|
}
|
||||||
|
|
||||||
|
# 차트 XML 파일이 없는 경우 0점 채점을 위헤 빈 XML 생성
|
||||||
|
if chart_xml is None:
|
||||||
|
chart_tree = ET.fromstring('<xml></xml>')
|
||||||
|
else:
|
||||||
|
chart_tree = ET.fromstring(chart_xml)
|
||||||
|
|
||||||
|
# 결과값을 Dictionary로 저장
|
||||||
|
# 하나의 xml파일 = 수험생 한명의 답안지
|
||||||
|
onePersonResult = {
|
||||||
|
'filename': os.path.basename(xml_file),
|
||||||
|
'score_results': [],
|
||||||
|
'total_score': 0,
|
||||||
|
'partial_scores': []
|
||||||
|
}
|
||||||
|
print(f"File name: {onePersonResult['filename']}")
|
||||||
|
|
||||||
|
self.total_score = 0
|
||||||
|
for section_id, section in self.scoring_criteria.items():
|
||||||
|
self.partial_score = 0
|
||||||
|
for criterion_id, criterion in section.items():
|
||||||
|
id = criterion_id
|
||||||
|
xpath = criterion.get('path', None)
|
||||||
|
xpath2 = criterion.get('path2', None)
|
||||||
|
search_value = criterion.get('searchValue', None)
|
||||||
|
right_answer = criterion.get('value', None)
|
||||||
|
points = criterion.get('points', 0)
|
||||||
|
category = criterion.get('category', None)
|
||||||
|
item = criterion.get('item', None)
|
||||||
|
similar_text = None
|
||||||
|
|
||||||
|
# search_value가 있는 경우
|
||||||
|
if search_value is not None:
|
||||||
|
# search_value를 포함하는 텍스트 찾기
|
||||||
|
similar_text = self.find_similar_text(root, search_value)
|
||||||
|
xpath = xpath.replace('{searchValue}', similar_text)
|
||||||
|
|
||||||
|
# 문항 별 채점 결과 저장
|
||||||
|
scoring = {
|
||||||
|
'section': section_id,
|
||||||
|
'id': id,
|
||||||
|
'category': category, # 채점 분류
|
||||||
|
'item': item, # 채점 항목
|
||||||
|
'right_answer': right_answer, # 정답
|
||||||
|
'user_answer': None, # 실제 작성 답안
|
||||||
|
'points': 0, # 점수
|
||||||
|
'deductions': [] # 각 기준별 감점 내역
|
||||||
|
}
|
||||||
|
|
||||||
|
if "PageSetting" in (category or ""):
|
||||||
|
items = root.xpath(xpath)
|
||||||
|
error_range = criterion.get('tolerance', 0)
|
||||||
|
|
||||||
|
for item in items:
|
||||||
|
user_answer = {
|
||||||
|
'Bottom' : int(item.get("Bottom", 0)),
|
||||||
|
'Footer' : int(item.get("Footer", 0)),
|
||||||
|
'Gutter' : int(item.get("Gutter", 0)),
|
||||||
|
'Header' : int(item.get("Header", 0)),
|
||||||
|
'Left' : int(item.get("Left", 0)),
|
||||||
|
'Right' : int(item.get("Right", 0)),
|
||||||
|
'Top' : int(item.get("Top", 0)),
|
||||||
|
}
|
||||||
|
|
||||||
|
self.evaluate_answer(scoring, user_answer, right_answer, points, method="tolerance", tolerance=error_range)
|
||||||
|
|
||||||
|
if scoring['points'] > 0:
|
||||||
|
break
|
||||||
|
|
||||||
|
elif "BasicSetting" in (category or ""):
|
||||||
|
# 바탕글(기본설정) 요소
|
||||||
|
normal_style = root.xpath("//STYLE[@Name='바탕글']")
|
||||||
|
|
||||||
|
# CHARSHAPE, PARASHAPE, FONTID 속성값 추출
|
||||||
|
charshape_id = normal_style[0].get("CharShape")
|
||||||
|
parashape_id = normal_style[0].get("ParaShape")
|
||||||
|
font_id = root.xpath(f"//CHARSHAPE[@Id='{charshape_id}']/FONTID/@Hangul")
|
||||||
|
|
||||||
|
# 필요한 속성값을 이용하여 정답과 비교
|
||||||
|
font_name = root.xpath(f"//FONT[@Id='{font_id[0]}']/@Name")
|
||||||
|
font_size = root.xpath(f"//CHARSHAPE[@Id='{charshape_id}']/@Height")
|
||||||
|
alignment = root.xpath(f"//PARASHAPE[@Id='{parashape_id}']/@Align")
|
||||||
|
line_spacing = root.xpath(f"//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing")
|
||||||
|
|
||||||
|
# 수험자 답안
|
||||||
|
user_answer = {
|
||||||
|
'FontName': font_name[0],
|
||||||
|
'FontSize': font_size[0],
|
||||||
|
'Alignment': alignment[0],
|
||||||
|
'LineSpacing': line_spacing[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
self.evaluate_answer(scoring, user_answer, right_answer, points, method="equal")
|
||||||
|
|
||||||
|
# 오타 감점 부분은 미리 계산 하고, 이후 점수만 계산
|
||||||
|
elif "오타감점" in (category or ""):
|
||||||
|
points = self.get_typo_score()
|
||||||
|
self.total_score += points
|
||||||
|
self.partial_score += points
|
||||||
|
scoring['points'] = points
|
||||||
|
|
||||||
|
# 정답이 하나인 경우
|
||||||
|
elif "SingleAnswer" in (category or ""):
|
||||||
|
items = root.xpath(xpath)
|
||||||
|
|
||||||
|
for item in items:
|
||||||
|
user_answer = item
|
||||||
|
|
||||||
|
self.evaluate_answer(scoring, user_answer, right_answer, points)
|
||||||
|
|
||||||
|
if scoring['points'] > 0:
|
||||||
|
break
|
||||||
|
|
||||||
|
# Boolean 타입 정답인 경우
|
||||||
|
elif "Boolean" in (category or ""):
|
||||||
|
items = root.xpath(xpath)
|
||||||
|
user_answer = True if items else False
|
||||||
|
|
||||||
|
self.evaluate_answer(scoring, user_answer, right_answer, points)
|
||||||
|
|
||||||
|
# 채점기준표 파일에 작성된 rgb값을 그대로 읽어와 HML파일 요소의 int형 rgb값과 비교
|
||||||
|
elif "Color" in (category or ""):
|
||||||
|
items = root.xpath(xpath)
|
||||||
|
|
||||||
|
rgb_text = right_answer
|
||||||
|
r, g, b = map(int, rgb_text.split(','))
|
||||||
|
rgb_int = (b << 16) + (g << 8) + r
|
||||||
|
|
||||||
|
for item in items:
|
||||||
|
user_answer = int(item)
|
||||||
|
|
||||||
|
self.evaluate_answer(scoring, user_answer, rgb_int, points, method="equal")
|
||||||
|
|
||||||
|
if scoring['points'] > 0:
|
||||||
|
break
|
||||||
|
|
||||||
|
elif "TwoLineSize" in (category or ""):
|
||||||
|
items = root.xpath(xpath)
|
||||||
|
error_range = criterion.get('tolerance', 0)
|
||||||
|
for item in items:
|
||||||
|
user_answer = {
|
||||||
|
"Height": int(item.get('Height', 0)),
|
||||||
|
"Width": int(item.get('Width', 0))
|
||||||
|
}
|
||||||
|
self.evaluate_answer(scoring, user_answer, right_answer, points, method="tolerance", tolerance=error_range)
|
||||||
|
|
||||||
|
if scoring['points'] > 0:
|
||||||
|
break
|
||||||
|
|
||||||
|
elif "FontName" in (category or ""):
|
||||||
|
charshape_id = root.xpath(xpath)
|
||||||
|
if not charshape_id:
|
||||||
|
charshape_id = None
|
||||||
|
else:
|
||||||
|
font_id = root.xpath(f"//CHARSHAPE[@Id='{charshape_id[0]}']/FONTID/@Hangul")
|
||||||
|
font_name = root.xpath(f"//FONTFACE[@Lang='Hangul']/FONT[@Id='{font_id[0]}']/@Name")
|
||||||
|
|
||||||
|
user_answer = font_name[0]
|
||||||
|
|
||||||
|
self.evaluate_answer(scoring, user_answer, right_answer, points, method="equal")
|
||||||
|
|
||||||
|
onePersonResult['score_results'].append(scoring)
|
||||||
|
print(f'scoring: {scoring}')
|
||||||
|
onePersonResult['partial_scores'].append({
|
||||||
|
'section': section_id,
|
||||||
|
'score': self.partial_score
|
||||||
|
})
|
||||||
|
onePersonResult['total_score'] = self.total_score
|
||||||
|
return onePersonResult
|
||||||
|
|
||||||
|
except ET.ParseError as e:
|
||||||
|
return {
|
||||||
|
'filename': os.path.basename(xml_file),
|
||||||
|
'error': f"XML 파싱 오류: {str(e)}",
|
||||||
|
'total_score': 0
|
||||||
|
}
|
||||||
|
|
||||||
|
def binary_to_chartxml(self, xml_path):
|
||||||
|
tree = ET.parse(xml_path)
|
||||||
|
root = tree.getroot()
|
||||||
|
|
||||||
|
binary_data = root.xpath('//BINDATA[@Id=//BINITEM[@Format="OLE"]/@BinData]/text()')
|
||||||
|
if not binary_data:
|
||||||
|
return None
|
||||||
|
binary_data = binary_data[0].encode('utf-8')
|
||||||
|
|
||||||
|
# <BINDATA ...> 태그와 그 내부 내용을 삭제합니다.
|
||||||
|
encoded_data = re.sub(b'<BINDATA.*?>', b'', binary_data)
|
||||||
|
encoded_data = encoded_data.replace(b'</BINDATA>', b'')
|
||||||
|
encoded_data = encoded_data.replace(b'\r\n', b'')
|
||||||
|
|
||||||
|
# base64 디코딩을 수행합니다.
|
||||||
|
decoded_data = base64.b64decode(encoded_data+b'==')
|
||||||
|
|
||||||
|
# 디코딩된 데이터 내용 중 xml 형식만 추출할 때 <c:chartSpace>, </c:chartSpace> 사이의 데이터만 추출.
|
||||||
|
start = decoded_data.find(b'<?xml')
|
||||||
|
print(start)
|
||||||
|
end = decoded_data.find(b'</c:chartSpace>')
|
||||||
|
print(end)
|
||||||
|
xml_data = decoded_data[start:end+len(b'</c:chartSpace>')]
|
||||||
|
|
||||||
|
# xml 데이터가 없는 경우 None을 반환합니다.
|
||||||
|
if -1 in [start, end]:
|
||||||
|
return None
|
||||||
|
|
||||||
|
# 디코딩된 데이터를 파일로 저장합니다.
|
||||||
|
base_filename = os.path.splitext(xml_path)[0]
|
||||||
|
new_filename = f'{base_filename}.xml'
|
||||||
|
with open(new_filename, 'wb') as file:
|
||||||
|
file.write(xml_data)
|
||||||
|
|
||||||
|
return xml_data
|
||||||
|
|
||||||
|
def typo_check(self, correct_answer_file, user_answer_file):
|
||||||
|
user_answer_tree = ET.parse(user_answer_file)
|
||||||
|
user_answer_root = user_answer_tree.getroot()
|
||||||
|
correct_answer_tree = ET.parse(correct_answer_file)
|
||||||
|
correct_answer_root = correct_answer_tree.getroot()
|
||||||
|
|
||||||
|
# xpath로 바이너리 부분추출
|
||||||
|
user_input_text = user_answer_root.xpath('//CHAR//text()[not(ancestor::HEADER) and not(ancestor::TABLE)]')
|
||||||
|
user_table_text = user_answer_root.xpath('//TABLE//CHAR//text()')
|
||||||
|
user_input_text += user_table_text
|
||||||
|
|
||||||
|
correct_input_text = correct_answer_root.xpath('//CHAR//text()[not(ancestor::HEADER) and not(ancestor::TABLE)]')
|
||||||
|
correct_table_text = correct_answer_root.xpath('//TABLE//CHAR//text()')
|
||||||
|
correct_input_text += correct_table_text
|
||||||
|
|
||||||
|
# 각 요소에서 공백 제거
|
||||||
|
user_input_text = [text.replace(' ', '') for text in user_input_text]
|
||||||
|
correct_input_text = [text.replace(' ', '') for text in correct_input_text]
|
||||||
|
|
||||||
|
|
||||||
|
# 숫자와 특정 형식 제거 (예: 1., 2., 3., -)
|
||||||
|
user_input_text = [re.sub(r'\d+\.\s*|-', '', text) for text in user_input_text]
|
||||||
|
correct_input_text = [re.sub(r'\d+\.\s*|-', '', text) for text in correct_input_text]
|
||||||
|
|
||||||
|
try :
|
||||||
|
xpath = self.scoring_criteria["2-29"]['path'].split("'")[1]
|
||||||
|
ignore_word = xpath.split("'")[1]
|
||||||
|
# 특정 단어 제거
|
||||||
|
# 오타와 누락의 경우만 판단하면 정상작동하지만
|
||||||
|
# 추가 된 단어의 경우를 채점기준에 추가하면 정확하게 채점 되지 않을 수 있음
|
||||||
|
# [정답] Hybrid [실제작성]
|
||||||
|
user_input_text = [text.replace(ignore_word, '') for text in user_input_text]
|
||||||
|
correct_input_text = [text.replace(ignore_word, '') for text in correct_input_text]
|
||||||
|
except (KeyError, IndexError, AttributeError):
|
||||||
|
ignore_word = None
|
||||||
|
|
||||||
|
print(f"ignore_word: {ignore_word}")
|
||||||
|
|
||||||
|
# 리스트를 하나의 문자열로 변경
|
||||||
|
user_input_text_str = ''.join(user_input_text)
|
||||||
|
currect_input_text_str = ''.join(correct_input_text)
|
||||||
|
|
||||||
|
print("user_input_text as string:")
|
||||||
|
print(user_input_text_str)
|
||||||
|
print("\ncurrect_input_text_answer as string:")
|
||||||
|
print(currect_input_text_str)
|
||||||
|
|
||||||
|
|
||||||
|
# 문자열의 차이를 비교
|
||||||
|
diff = difflib.ndiff(currect_input_text_str, user_input_text_str)
|
||||||
|
diff_list = list(diff)
|
||||||
|
|
||||||
|
# 차이점을 정리하여 result_diff에 저장
|
||||||
|
result_diff = []
|
||||||
|
|
||||||
|
# 누락 된 단어만 따로 리스트로 저장
|
||||||
|
missing_list = []
|
||||||
|
|
||||||
|
# 오타와 누락된 단어 리스트 저장
|
||||||
|
error_missing_list = []
|
||||||
|
|
||||||
|
skip_next = False
|
||||||
|
|
||||||
|
for i, line in enumerate(diff_list):
|
||||||
|
if skip_next:
|
||||||
|
skip_next = False
|
||||||
|
continue
|
||||||
|
# diff_list의 line 시작이 '-'이면서 다음 line이 '+'이면 두 line을 붙여서 맞춤법이 틀린 단어로 판단
|
||||||
|
if line.startswith('- '):
|
||||||
|
# 오타
|
||||||
|
if i + 1 < len(diff_list) and diff_list[i + 1].startswith('+ '):
|
||||||
|
line = line.replace('- ', '-')
|
||||||
|
next = diff_list[i + 1].replace('+ ', '')
|
||||||
|
result_diff.append(line+'=>'+next)
|
||||||
|
error_missing_list.append(line+'=>'+next)
|
||||||
|
skip_next = True
|
||||||
|
# 누락
|
||||||
|
else:
|
||||||
|
line = line.replace('- ', '-')
|
||||||
|
result_diff.append(line)
|
||||||
|
missing_list.append(line)
|
||||||
|
error_missing_list.append(line)
|
||||||
|
# 없어도 되는 글자가 있는 경우 (추가)
|
||||||
|
elif line.startswith('+ '):
|
||||||
|
line = line.replace('+ ', '+')
|
||||||
|
result_diff.append(line)
|
||||||
|
|
||||||
|
# result_diff 출력
|
||||||
|
# print("\nResult Differences:")
|
||||||
|
# for diff in result_diff:
|
||||||
|
# print(diff)
|
||||||
|
|
||||||
|
# result_diff 배열의 길이를 맨 앞에 저장
|
||||||
|
|
||||||
|
# 모든 차이를 계산해 점수 차감
|
||||||
|
# temp = 40 - min(len(result_diff)*2, 40)
|
||||||
|
|
||||||
|
# 누락된 텍스트만 계산해 점수 차감
|
||||||
|
# temp = 40 - min(len(missing_list)*2, 40)
|
||||||
|
|
||||||
|
# 2503회 기준 오타 1개당 [2점]->[1점] 차감
|
||||||
|
temp = 40 - min(len(error_missing_list)*1, 40)
|
||||||
|
|
||||||
|
self.set_typo_score(temp)
|
||||||
|
|
||||||
|
result_diff.insert(0, temp)
|
||||||
|
return result_diff
|
||||||
|
|
||||||
|
# XML 파일 채점
|
||||||
|
def score_directory(self, xml_directory, correct_answer_file):
|
||||||
|
# xml 파일 불러오기
|
||||||
|
xml_files = Path(xml_directory).glob('*.hml')
|
||||||
|
|
||||||
|
# 채점결과 저장할 리스트
|
||||||
|
score_results = []
|
||||||
|
|
||||||
|
for user_answer_file in xml_files:
|
||||||
|
score_result = {}
|
||||||
|
chart_xml = self.binary_to_chartxml(user_answer_file)
|
||||||
|
score_result['typo'] = self.typo_check(correct_answer_file, user_answer_file)
|
||||||
|
score_result['score'] = self._score_xml_file(user_answer_file, chart_xml)
|
||||||
|
# score_result['score']['score_results'][2]['points'] = score_result['typo'][0]
|
||||||
|
score_results.append(score_result)
|
||||||
|
return score_results
|
||||||
|
|
||||||
|
def parse_filename(self, filename):
|
||||||
|
if isinstance(filename, dict):
|
||||||
|
filename = filename.get('파일명', '')
|
||||||
|
match = re.match(r'.*-(\d+)-(.+)\.hml', filename)
|
||||||
|
if match:
|
||||||
|
number = match.group(1)
|
||||||
|
name = match.group(2)
|
||||||
|
return number, name
|
||||||
|
|
||||||
|
return None, None
|
||||||
|
|
||||||
|
def export_to_excel(self, results, output_path=None):
|
||||||
|
if output_path is None:
|
||||||
|
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") #연월일_시분초
|
||||||
|
# timestamp = datetime.now().strftime("%Y%m%d") #연월일
|
||||||
|
output_path = f"scoring_results_{timestamp}.xlsx"
|
||||||
|
|
||||||
|
summary_data = []
|
||||||
|
detail_data = []
|
||||||
|
typo_data = []
|
||||||
|
|
||||||
|
for temp in results:
|
||||||
|
# 요약 정보
|
||||||
|
result = temp['score']
|
||||||
|
summary_row = {
|
||||||
|
'파일명': result['filename'],
|
||||||
|
'총점': result.get('total_score', 0)
|
||||||
|
}
|
||||||
|
if 'error' in result:
|
||||||
|
summary_row['오류'] = result['error']
|
||||||
|
|
||||||
|
summary_data.append(summary_row)
|
||||||
|
|
||||||
|
# 상세 정보
|
||||||
|
if 'score_results' in result:
|
||||||
|
filename = {'파일명': result['filename']}
|
||||||
|
number, name = self.parse_filename(filename)
|
||||||
|
if (number or name) is None:
|
||||||
|
detail_row = {'채점항목': result['filename'] }
|
||||||
|
else:
|
||||||
|
detail_row = {'채점항목':f"{number}-{name}"}
|
||||||
|
|
||||||
|
section_num = None
|
||||||
|
row_index = []
|
||||||
|
for i, score_result in enumerate(result['score_results']):
|
||||||
|
current_section = score_result['section']
|
||||||
|
|
||||||
|
if section_num is None:
|
||||||
|
section_num = current_section
|
||||||
|
|
||||||
|
# 다음 섹션(문제0 => 문제1)로 넘어갔을 경우 or 마지막 문제일 경우
|
||||||
|
if current_section != section_num:
|
||||||
|
# 이전 섹션의 부분합을 출력
|
||||||
|
detail_row[f'문제{section_num}'] = result['partial_scores'][int(section_num)]['score']
|
||||||
|
row_index.append(f'문제{section_num}')
|
||||||
|
section_num = current_section
|
||||||
|
|
||||||
|
detail_row[f'{i+1}'] = score_result['points']
|
||||||
|
row_index.append(score_result['id'])
|
||||||
|
|
||||||
|
# 마지막 섹션(문제2)부분합 점수를 출력
|
||||||
|
if i == len(result['score_results']) - 1:
|
||||||
|
detail_row[f'문제{current_section}'] = result['partial_scores'][int(current_section)]['score']
|
||||||
|
row_index.append(f'문제{current_section}')
|
||||||
|
|
||||||
|
detail_row['총점'] = result.get('total_score', 0)
|
||||||
|
row_index.append('총점')
|
||||||
|
detail_data.append(detail_row)
|
||||||
|
|
||||||
|
summary_df = pd.DataFrame(summary_data)
|
||||||
|
detail_df = pd.DataFrame(detail_data).transpose()
|
||||||
|
detail_df.columns = detail_df.iloc[0]
|
||||||
|
detail_df = detail_df[1:]
|
||||||
|
|
||||||
|
detail_df.index = row_index
|
||||||
|
# detail_df = pd.DataFrame(detail_data)
|
||||||
|
|
||||||
|
for temp in results:
|
||||||
|
result = temp['typo']
|
||||||
|
typo_data.append(result)
|
||||||
|
|
||||||
|
typo_df = pd.DataFrame(typo_data).transpose()
|
||||||
|
# detail_df = pd.DataFrame(detail_data)
|
||||||
|
|
||||||
|
# ExcelWriter 객체 생성
|
||||||
|
with pd.ExcelWriter(output_path, engine='openpyxl') as writer:
|
||||||
|
summary_df.to_excel(writer, sheet_name='채점결과요약', index=False)
|
||||||
|
detail_df.to_excel(writer, sheet_name='채점상세내역', index=True)
|
||||||
|
typo_df.to_excel(writer, sheet_name='오타내역', index=False)
|
||||||
|
|
||||||
|
# 열 너비 자동 조정
|
||||||
|
# for sheet_name in writer.sheets:
|
||||||
|
# worksheet = writer.sheets[sheet_name]
|
||||||
|
# for column_cells in worksheet.columns:
|
||||||
|
# max_length = 0
|
||||||
|
# column = column_cells[0].column_letter # 열의 문자
|
||||||
|
# for cell in column_cells:
|
||||||
|
# try:
|
||||||
|
# if cell.value:
|
||||||
|
# max_length = max(max_length, len(str(cell.value)))
|
||||||
|
# except:
|
||||||
|
# pass
|
||||||
|
# adjusted_width = (max_length + 2)
|
||||||
|
# worksheet.column_dimensions[column].width = adjusted_width
|
||||||
|
|
||||||
|
return output_path
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
|
||||||
|
# 시험회차 및 유형
|
||||||
|
exam_round = '2503'
|
||||||
|
exam_types = [
|
||||||
|
'A',
|
||||||
|
# 'B',
|
||||||
|
# 'C',
|
||||||
|
]
|
||||||
|
# test_mode = False
|
||||||
|
test_mode = True
|
||||||
|
|
||||||
|
output_excel_paths = []
|
||||||
|
for exam_type in exam_types:
|
||||||
|
scoring_criteria_path = f'./DIW_{exam_round}{exam_type}_test.json'
|
||||||
|
# scoring_criteria_path = f'./DIW_{exam_round}{exam_type}.json'
|
||||||
|
# xml(hml)파일 디렉토리 경로
|
||||||
|
|
||||||
|
xml_directory = f'./output/{exam_type}/{"TEST" if test_mode else "DIW"}'
|
||||||
|
|
||||||
|
|
||||||
|
# 오탈자 체크를 위한 정답 파일 경로 (형식:DIW_2503A.hml)
|
||||||
|
correct_answer_file = f'./output/{exam_type}/DIW/DIW_{exam_round}{exam_type}.hml'
|
||||||
|
|
||||||
|
# 엑셀 파일명 (비어있으면 자동생성)
|
||||||
|
timestamp = datetime.now().strftime("%y%m%d")
|
||||||
|
# output_path = f'{timestamp}_DIW_{exam_round}{exam_type}_{"TEST" if test_mode else "채점결과"}.xlsx'
|
||||||
|
output_path = f'{timestamp}_DIW_{exam_round}{exam_type}_{"TEST" if test_mode else "채점결과"}_2.xlsx'
|
||||||
|
|
||||||
|
# 채점 클래스 초기화
|
||||||
|
scorer = XMLScorer(scoring_criteria_path)
|
||||||
|
|
||||||
|
# 폴더 내 모든 xml 파일 채점
|
||||||
|
results = scorer.score_directory(xml_directory, correct_answer_file)
|
||||||
|
|
||||||
|
# 채점 결과 엑셀로 저장
|
||||||
|
output_excel_paths.append(scorer.export_to_excel(results, output_path))
|
||||||
|
|
||||||
|
print(f"채점 결과 엑셀 파일: {output_excel_paths}")
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
@@ -1 +1 @@
|
|||||||
[{"kind":2,"language":"xpath","value":"boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)"},{"kind":2,"language":"xpath","value":"//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])"}]
|
[{"kind":2,"language":"xpath","value":"boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul][@Name='바탕']"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Name='바탕']/@Id"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id='6']/FONTID/@Hangul"},{"kind":2,"language":"xpath","value":"//PARASHAPE[@Id='0']/@Align"},{"kind":2,"language":"xpath","value":"boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id={charshape_id}]/FONTID/@Hangul]/@Name"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id={font_id}]/@Name"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id=//CHAR[contains(text()[1],'전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대')]/parent::TEXT/@CharShape][ITALIC]"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id=//CHAR[contains(text()[1],'전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대')]/parent::TEXT/@CharShape][ITALIC]"}]
|
||||||
862
회차별채점자료/2503/json_채점기준표/0418/DIW_2503A.json
Normal file
862
회차별채점자료/2503/json_채점기준표/0418/DIW_2503A.json
Normal file
@@ -0,0 +1,862 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"0": {
|
||||||
|
"path": "",
|
||||||
|
"path2": "",
|
||||||
|
"points": 0,
|
||||||
|
"category": "파일저장",
|
||||||
|
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"format": "pageSetting",
|
||||||
|
"category": "용지설정",
|
||||||
|
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"category": "기본설정",
|
||||||
|
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"path": "",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": null,
|
||||||
|
"points": 40,
|
||||||
|
"category": "오타감점",
|
||||||
|
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": "견고딕",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/① 글씨체 (견고딕)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": "9920305",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/② 채우기 : 색상(RGB:49,95,151)"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": 28346,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/③ 크기-너비 (100mm)"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": 5669,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/④ 크기-높이 (20mm)"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": "true",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/⑤ 위치 (글자처럼 취급)"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/⑥ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"path": "boolean(//TEXTART[@Text='{searchValue}'])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경이동수단컨퍼런스",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (친환경이동수단컨퍼런스)/⑦ 글맵시모양 (육안확인)"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"path": "boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "지/① 모양 (2줄)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "궁서체",
|
||||||
|
"points": 1,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "지/② 글씨체 (궁서체)"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"path": "//RECTANGLE[.//CHAR[text()='지']]//WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "3644265",
|
||||||
|
"points": 2,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "지/③ 면색 : 색상(RGB:105,155,55)"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"path": "//RECTANGLE[.//CHAR[text()='지']]//OUTSIDEMARGIN/@Right",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "850",
|
||||||
|
"points": 2,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "지/④ 본문과의 간격 : 3.0mm"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][ITALIC])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대)/① 기울임"
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대)/② 밑줄"
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"path": "count(//CHAR[contains(text(),'☆')]) + count(//CHAR[contains(text(),'※')])",
|
||||||
|
"path2": "string-length(//CHAR[contains(text(),'☆')]) - string-length(translate(//CHAR[contains(text(),'☆')], '☆', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 3,
|
||||||
|
"points": 3,
|
||||||
|
"category": "특수문자",
|
||||||
|
"item": "① ☆, ② ☆, ③ ※"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "☆ 행사안내 ☆",
|
||||||
|
"value": "궁서",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (☆ 행사안내 ☆)/① 글씨체 (궁서)"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "☆ 행사안내 ☆",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (☆ 행사안내 ☆)/② 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][BOLD])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2025. 03. 27.(목) 24:00까지",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2025. 03. 27.(목) 24:00까지)/① 진하게"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2025. 03. 27.(목) 24:00까지",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2025. 03. 27.(목) 24:00까지)/② 밑줄"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "기타사항",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "문단모양",
|
||||||
|
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2025. 03. 22.",
|
||||||
|
"value": 1300,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2025. 03. 22.)/① 크기 (13pt)"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2025. 03. 22.",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2025. 03. 22.)/② 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한국육상운송협회",
|
||||||
|
"value": "굴림체",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (한국육상운송협회)/① 글씨체 (굴림체)"
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한국육상운송협회",
|
||||||
|
"value": 2400,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (한국육상운송협회)/② 크기 (24pt)"
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한국육상운송협회",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (한국육상운송협회)/③ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "DIAT",
|
||||||
|
"value": "돋움",
|
||||||
|
"points": 1,
|
||||||
|
"category": "머리말",
|
||||||
|
"item": "문구 (DIAT)/① 글꼴 (돋움)"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "DIAT",
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "머리말",
|
||||||
|
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "DIAT",
|
||||||
|
"value": "Right",
|
||||||
|
"points": 1,
|
||||||
|
"category": "머리말",
|
||||||
|
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"path": "//PAGENUM/@FormatType",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "LatinCapital",
|
||||||
|
"points": 2,
|
||||||
|
"category": "쪽번호",
|
||||||
|
"item": "① 쪽 번호 매기기 (A,B,C 순으로)"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"path": "//PAGENUM/@Pos",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "BottomCenter",
|
||||||
|
"points": 2,
|
||||||
|
"category": "쪽번호",
|
||||||
|
"item": "② 가운데 아래"
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "줄간격",
|
||||||
|
"item": "문제 1 줄간격 180% 설정"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"1": {
|
||||||
|
"path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"category": "쪽 테두리",
|
||||||
|
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"path": "count(//SECTION)>1",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "다단",
|
||||||
|
"item": "① 구역나누기"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"path": "//COLDEF/@Count>1",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "다단",
|
||||||
|
"item": "② 다단 2단"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경 이동수단",
|
||||||
|
"value": 19842,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (친환경 이동수단)/① 크기-너비 (70mm)"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경 이동수단",
|
||||||
|
"value": 3401,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (친환경 이동수단)/② 크기-높이 (12mm)"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경 이동수단",
|
||||||
|
"value": "DoubleSlim",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (친환경 이동수단)/③ 테두리 (이중실선(1.00mm))"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경 이동수단",
|
||||||
|
"value": 50,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (친환경 이동수단)/④ 글상자 모서리 (반원)"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경 이동수단",
|
||||||
|
"value": "9537333",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (친환경 이동수단)/⑤ 채우기 : 색상(RGB:53,135,145)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경 이동수단",
|
||||||
|
"value": "true",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (친환경 이동수단)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경 이동수단",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (친환경 이동수단)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경 이동수단",
|
||||||
|
"value": "맑은 고딕",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (친환경 이동수단)/⑧ 글씨체 (맑은 고딕)"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2400')",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경 이동수단",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (친환경 이동수단)/⑨ 글씨크기 (24pt)"
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "친환경 이동수단",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (친환경 이동수단)/⑩ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "원본 그림의 이름: 그림",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "① 파일명 \"그림A.jpg\" 삽입"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 24094,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "② 크기-너비 (85mm)"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 11338,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "③ 크기-높이 (40mm)"
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 0,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 6236,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22mm)"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "1. 친환경 자동차",
|
||||||
|
"value": "궁서",
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구① (1. 친환경 자동차)/① 글씨체 (궁서)"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "1. 친환경 자동차",
|
||||||
|
"value": 1200,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구① (1. 친환경 자동차)/② 크기 (12pt)"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "1. 친환경 자동차",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구① (1. 친환경 자동차)/③ 진하게"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2. 친환경 자동차 보급 추이",
|
||||||
|
"value": "궁서",
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구② (2. 친환경 자동차 보급 추이)/① 글씨체 (궁서)"
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2. 친환경 자동차 보급 추이",
|
||||||
|
"value": 1200,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구② (2. 친환경 자동차 보급 추이)/② 크기 (12pt)"
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2. 친환경 자동차 보급 추이",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구② (2. 친환경 자동차 보급 추이)/③ 진하게"
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"path": "boolean(//CHAR[contains(text(),'자동차 탄소발자국')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)",
|
||||||
|
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('자동차 탄소발자국') + 1) = '자동차 탄소발자국']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (자동차 탄소발자국)/① 각주 설정 및 문구 입력"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량",
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (자동차 탄소발자국)/② 글씨체 (굴림)"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량",
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (자동차 탄소발자국)/③ 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량",
|
||||||
|
"value": "CircledHangulSyllable",
|
||||||
|
"points": 2,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (자동차 탄소발자국)/④ 각주 번호모양"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"path": "boolean(//CHAR[contains(text(),'Hybrid')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "영단어",
|
||||||
|
"item": "Hybrid/영단어 미입력, 대소문자/오타 시 전체 감점"
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"path": "(count(//CHAR[contains(text(),'전지')][contains(text(),'電池')])+count(//CHAR[contains(text(),'유해')][contains(text(),'有害')])+count(//CHAR[contains(text(),'내연')][contains(text(),'內燃')])+count(//CHAR[contains(text(),'이륜차')][contains(text(),'二輪車')])+count(//CHAR[contains(text(),'기타')][contains(text(),'其他')]))*2",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 10,
|
||||||
|
"points": 10,
|
||||||
|
"category": "한자",
|
||||||
|
"item": "① 전지(電池), ② 유해(有害), ③내연(內燃), ④ 이륜차(二輪車), ⑤ 기타(其他)"
|
||||||
|
},
|
||||||
|
"31": {
|
||||||
|
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'터를독립')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "편집",
|
||||||
|
"item": "문구 (…내장된 전기모터이 독립적으로 또는 병행해서…)/\"이\" → \"를\" 글자바꿈"
|
||||||
|
},
|
||||||
|
"32": {
|
||||||
|
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면서환경')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "편집",
|
||||||
|
"item": "문구 (…주행하는 방식으로 환경에 주행하면서 유해(有害)한 물질을…)/\"환경에\" / \"주행하면서\" 순서바꿈"
|
||||||
|
},
|
||||||
|
"33": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "자동차 증가 추이",
|
||||||
|
"value": "돋움",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (자동차 증가 추이)/① 글씨체 (돋움)"
|
||||||
|
},
|
||||||
|
"34": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "자동차 증가 추이",
|
||||||
|
"value": 1200,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (자동차 증가 추이)/② 크기 (12pt)"
|
||||||
|
},
|
||||||
|
"35": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "자동차 증가 추이",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (자동차 증가 추이)/③ 진하게"
|
||||||
|
},
|
||||||
|
"36": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "자동차 증가 추이",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (자동차 증가 추이)/④ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"37": {
|
||||||
|
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "7034570",
|
||||||
|
"points": 2,
|
||||||
|
"category": "표",
|
||||||
|
"item": "위쪽 제목 셀/① 색상(RGB:202,86,107)"
|
||||||
|
},
|
||||||
|
"38": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "위쪽 제목 셀/② 진하게"
|
||||||
|
},
|
||||||
|
"39": {
|
||||||
|
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||||
|
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Type",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "DoubleSlim",
|
||||||
|
"points": 2,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 셀 아래선/① 이중실선"
|
||||||
|
},
|
||||||
|
"40": {
|
||||||
|
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||||
|
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Width",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "0.5mm",
|
||||||
|
"points": 2,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 셀 아래선/② 0.5mm"
|
||||||
|
},
|
||||||
|
"41": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "궁서체",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "글자모양/① 글씨체 (궁서체)"
|
||||||
|
},
|
||||||
|
"42": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1000,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "글자모양/② 크기 (10pt)"
|
||||||
|
},
|
||||||
|
"43": {
|
||||||
|
"path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"44": {
|
||||||
|
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '290'] and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '190'])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"category": "표",
|
||||||
|
"item": "블록계산식/합계"
|
||||||
|
},
|
||||||
|
"45": {
|
||||||
|
"path": "boolean(//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "① 종류 (묶은세로막대형)"
|
||||||
|
},
|
||||||
|
"46": {
|
||||||
|
"path": "//c:valAx/c:majorTickMark/@val",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "out",
|
||||||
|
"points": 2,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "② 값 축 주 눈금선"
|
||||||
|
},
|
||||||
|
"47": {
|
||||||
|
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 22677,
|
||||||
|
"points": 2,
|
||||||
|
"category": "차트",
|
||||||
|
"item": "③ 크기-너비 (80mm)"
|
||||||
|
},
|
||||||
|
"48": {
|
||||||
|
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 25511,
|
||||||
|
"points": 2,
|
||||||
|
"category": "차트",
|
||||||
|
"item": "④ 크기-높이 (90mm)"
|
||||||
|
},
|
||||||
|
"49": {
|
||||||
|
"path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)"
|
||||||
|
},
|
||||||
|
"50": {
|
||||||
|
"path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "자동차 증가 추이",
|
||||||
|
"value": "바탕체",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/① 글씨체 (바탕체)"
|
||||||
|
},
|
||||||
|
"51": {
|
||||||
|
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "자동차 증가 추이",
|
||||||
|
"value": 1300,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/② 크기 (13pt)"
|
||||||
|
},
|
||||||
|
"52": {
|
||||||
|
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "자동차 증가 추이",
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/③ 진하게"
|
||||||
|
},
|
||||||
|
"53": {
|
||||||
|
"path": "//c:catAx//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "X축/① 글꼴 (굴림)"
|
||||||
|
},
|
||||||
|
"54": {
|
||||||
|
"path": "//c:catAx//a:defRPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "X축/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"55": {
|
||||||
|
"path": "//c:catAx//a:defRPr/@i",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "X축/③ 기울임"
|
||||||
|
},
|
||||||
|
"56": {
|
||||||
|
"path": "//c:valAx//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "Y축/① 글꼴 (굴림)"
|
||||||
|
},
|
||||||
|
"57": {
|
||||||
|
"path": "//c:valAx//a:defRPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "Y축/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"58": {
|
||||||
|
"path": "//c:valAx//a:defRPr/@i",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "Y축/③ 기울임"
|
||||||
|
},
|
||||||
|
"59": {
|
||||||
|
"path": "//c:legend//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "범례/① 글꼴 (굴림)"
|
||||||
|
},
|
||||||
|
"60": {
|
||||||
|
"path": "//c:legend//a:defRPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "범례/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"61": {
|
||||||
|
"path": "//c:legend//a:defRPr/@i",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "범례/③ 기울임"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
861
회차별채점자료/2503/json_채점기준표/0418/DIW_2503B.json
Normal file
861
회차별채점자료/2503/json_채점기준표/0418/DIW_2503B.json
Normal file
@@ -0,0 +1,861 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"0": {
|
||||||
|
"path": "",
|
||||||
|
"path2": "",
|
||||||
|
"points": 0,
|
||||||
|
"category": "파일저장",
|
||||||
|
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"category": "용지설정",
|
||||||
|
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"category": "기본설정",
|
||||||
|
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"path": "",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": null,
|
||||||
|
"points": 40,
|
||||||
|
"category": "오타감점",
|
||||||
|
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "건강100세프로젝트행사",
|
||||||
|
"value": "궁서",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (건강100세프로젝트행사)/① 글씨체 (궁서)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "건강100세프로젝트행사",
|
||||||
|
"value": "3644265",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (건강100세프로젝트행사)/② 채우기 : 색상(RGB:105,155,55)"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "건강100세프로젝트행사",
|
||||||
|
"value": 34015,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (건강100세프로젝트행사)/③ 크기-너비 (120mm)"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "건강100세프로젝트행사",
|
||||||
|
"value": 5669,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (건강100세프로젝트행사)/④ 크기-높이 (20mm)"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "건강100세프로젝트행사",
|
||||||
|
"value": "true",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (건강100세프로젝트행사)/⑤ 위치 (글자처럼 취급)"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "건강100세프로젝트행사",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (건강100세프로젝트행사)/⑥ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"path": "boolean(//TEXTART[@Text='{searchValue}'])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "건강100세프로젝트행사",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (건강100세프로젝트행사)/⑦ 글맵시모양 (육안확인)"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"path": "boolean(//RECTANGLE[.//CHAR[text()='인']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "인/① 모양 (2줄)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='인']]/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "돋움",
|
||||||
|
"points": 1,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "인/② 글씨체 (돋움)"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"path": "//RECTANGLE[.//CHAR[text()='인']]//WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "10966730",
|
||||||
|
"points": 2,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "인/③ 면색 : 색상(RGB:202,86,167)"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"path": "//RECTANGLE[.//CHAR[text()='인']]//OUTSIDEMARGIN/@Right",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "850",
|
||||||
|
"points": 2,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "인/④ 본문과의 간격 : 3.0mm"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2023년 경제협력개발기구 보건통계 기준 한국의 기대수명은 83.6년",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2023년 경제협력개발기구 보건통계 기준 한국의 기대수명은 83.6년)/① 진하게"
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2023년 경제협력개발기구 보건통계 기준 한국의 기대수명은 83.6년",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2023년 경제협력개발기구 보건통계 기준 한국의 기대수명은 83.6년)/② 밑줄"
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"path": "count(//CHAR[contains(text(),'■')]) + count(//CHAR[contains(text(),'※')])",
|
||||||
|
"path2": "string-length(//CHAR[contains(text(),'■')]) - string-length(translate(//CHAR[contains(text(),'■')], '■', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 3,
|
||||||
|
"points": 3,
|
||||||
|
"category": "특수문자",
|
||||||
|
"item": "① ■, ② ■, ③ ※"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "■ 행사개요 ■",
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (■ 행사개요 ■)/① 글씨체 (굴림)"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "■ 행사개요 ■",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (■ 행사개요 ■)/② 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][BOLD])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2025. 03. 30.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2025. 03. 30.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/① 진하게"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2025. 03. 30.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2025. 03. 30.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/② 기울임"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "기타사항",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "문단모양",
|
||||||
|
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2025. 03. 22.",
|
||||||
|
"value": 1300,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2025. 03. 22.)/① 크기 (13pt)"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2025. 03. 22.",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2025. 03. 22.)/② 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한국질병관리협회",
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (한국질병관리협회)/① 글씨체 (굴림)"
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한국질병관리협회",
|
||||||
|
"value": 2400,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (한국질병관리협회)/② 크기 (24pt)"
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한국질병관리협회",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (한국질병관리협회)/③ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "DIAT",
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "머리말",
|
||||||
|
"item": "문구 (DIAT)/① 글꼴 (굴림)"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "DIAT",
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "머리말",
|
||||||
|
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "DIAT",
|
||||||
|
"value": "Right",
|
||||||
|
"points": 1,
|
||||||
|
"category": "머리말",
|
||||||
|
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"path": "//PAGENUM/@FormatType",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "LatinCapital",
|
||||||
|
"points": 2,
|
||||||
|
"category": "쪽번호",
|
||||||
|
"item": "① 쪽 번호 매기기 (A,B,C 순으로)"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"path": "//PAGENUM/@Pos",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "BottomCenter",
|
||||||
|
"points": 2,
|
||||||
|
"category": "쪽번호",
|
||||||
|
"item": "② 가운데 아래"
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!=180])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "줄간격",
|
||||||
|
"item": "문제 1 줄간격 180% 설정"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"1": {
|
||||||
|
"path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"category": "쪽 테두리",
|
||||||
|
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"path": "count(//SECTION)>1",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "다단",
|
||||||
|
"item": "① 구역나누기"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"path": "//COLDEF/@Count>1",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "다단",
|
||||||
|
"item": "② 다단 2단"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비만과 비만치료",
|
||||||
|
"value": 19842,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (비만과 비만치료)/① 크기-너비 (70mm)"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비만과 비만치료",
|
||||||
|
"value": 3402,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (비만과 비만치료)/② 크기-높이 (12mm)"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비만과 비만치료",
|
||||||
|
"value": "DoubleSlim",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (비만과 비만치료)/③ 테두리 (이중실선(1.00mm))"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비만과 비만치료",
|
||||||
|
"value": 20,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (비만과 비만치료)/④ 글상자 모서리 (둥근 모양)"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비만과 비만치료",
|
||||||
|
"value": "2862825",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (비만과 비만치료)/⑤ 채우기 : 색상(RGB:233,174,43)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비만과 비만치료",
|
||||||
|
"value": "true",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (비만과 비만치료)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비만과 비만치료",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (비만과 비만치료)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비만과 비만치료",
|
||||||
|
"value": "맑은 고딕",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (비만과 비만치료)/⑧ 글씨체 (맑은 고딕)"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2300')",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비만과 비만치료",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (비만과 비만치료)/⑨ 글씨크기 (23pt)"
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비만과 비만치료",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (비만과 비만치료)/⑩ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "원본 그림의 이름: 그림",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "① 파일명 \"그림B.jpg\" 삽입"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 24094,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "② 크기-너비 (85mm)"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 11338,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "③ 크기-높이 (40mm)"
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 0,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 6520,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23mm)"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "1. 비만",
|
||||||
|
"value": "바탕체",
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구① (1. 비만)/① 글씨체 (바탕체)"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "1. 비만",
|
||||||
|
"value": 1200,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구① (1. 비만)/② 크기 (12pt)"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "1. 비만",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구① (1. 비만)/③ 진하게"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2. 비만치료",
|
||||||
|
"value": "바탕체",
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구② (2. 비만치료)/① 글씨체 (바탕체)"
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2. 비만치료",
|
||||||
|
"value": 1200,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구② (2. 비만치료)/② 크기 (12pt)"
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2. 비만치료",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구② (2. 비만치료)/③ 진하게"
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"path": "boolean(//CHAR[contains(text(),'비만 약물치료')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)",
|
||||||
|
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('비만 약물치료') + 1) = '비만 약물치료']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (비만 약물치료)/① 각주 설정 및 문구 입력"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비약물로 어려운 체질량지수 25 이상인 경우 시행",
|
||||||
|
"value": "돋움",
|
||||||
|
"points": 1,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (비만 약물치료)/② 글씨체 (돋움)"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비약물로 어려운 체질량지수 25 이상인 경우 시행",
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (비만 약물치료)/③ 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "비약물로 어려운 체질량지수 25 이상인 경우 시행",
|
||||||
|
"value": "LatinSmall",
|
||||||
|
"points": 2,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (비만 약물치료)/④ 각주 번호모양"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"path": "boolean(//CHAR[contains(text(),'Obesity')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "영단어",
|
||||||
|
"item": "Obesity/영단어 미입력, 대소문자/오타 시 전체 감점"
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"path": "(count(//CHAR[contains(text(),'비만')][contains(text(),'肥滿')])+count(//CHAR[contains(text(),'복부')][contains(text(),'腹部')])+count(//CHAR[contains(text(),'대사')][contains(text(),'代謝')])+count(//CHAR[contains(text(),'특정')][contains(text(),'特定')])+count(//CHAR[contains(text(),'축적')][contains(text(),'特定')]))*2",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 10,
|
||||||
|
"points": 10,
|
||||||
|
"category": "한자",
|
||||||
|
"item": "① 비만(肥滿), ② 복부(腹部), ③대사(代謝), ④ 특정(特定), ⑤ 축적(特定)"
|
||||||
|
},
|
||||||
|
"31": {
|
||||||
|
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'정의다른')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "편집",
|
||||||
|
"item": "문구 (…비만 측정을 다른 방법으로는…)/\"을\" → \"의\" 글자바꿈"
|
||||||
|
},
|
||||||
|
"32": {
|
||||||
|
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'거나복부')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "편집",
|
||||||
|
"item": "문구 (…허리둘레를 복부(腹部)지방 측정하거나 전산화…)/\"복부지방\" / \"측정하거나\" 순서바꿈"
|
||||||
|
},
|
||||||
|
"33": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "성별 비만 인구수",
|
||||||
|
"value": "궁서체",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (성별 비만 인구수)/① 글씨체 (궁서체)"
|
||||||
|
},
|
||||||
|
"34": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "성별 비만 인구수",
|
||||||
|
"value": 1200,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (성별 비만 인구수)/② 크기 (12pt)"
|
||||||
|
},
|
||||||
|
"35": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "성별 비만 인구수",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (성별 비만 인구수)/③ 진하게"
|
||||||
|
},
|
||||||
|
"36": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "성별 비만 인구수",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (성별 비만 인구수)/④ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"37": {
|
||||||
|
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "5395143",
|
||||||
|
"points": 2,
|
||||||
|
"category": "표",
|
||||||
|
"item": "위쪽 제목 셀/① 색상(RGB:199,82,82)"
|
||||||
|
},
|
||||||
|
"38": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "위쪽 제목 셀/② 진하게"
|
||||||
|
},
|
||||||
|
"39": {
|
||||||
|
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||||
|
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Type",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "DoubleSlim",
|
||||||
|
"points": 2,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 셀 아래선/① 이중실선"
|
||||||
|
},
|
||||||
|
"40": {
|
||||||
|
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||||
|
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Width",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "0.5mm",
|
||||||
|
"points": 2,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 셀 아래선/② 0.5mm"
|
||||||
|
},
|
||||||
|
"41": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "한양중고딕",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "글자모양/① 글씨체 (한양중고딕)"
|
||||||
|
},
|
||||||
|
"42": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1000,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "글자모양/② 크기 (10pt)"
|
||||||
|
},
|
||||||
|
"43": {
|
||||||
|
"path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"44": {
|
||||||
|
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '145'] and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '105'])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"category": "표",
|
||||||
|
"item": "블록계산식/합계"
|
||||||
|
},
|
||||||
|
"45": {
|
||||||
|
"path": "boolean(//c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "① 종류 (묶은가로막대형)"
|
||||||
|
},
|
||||||
|
"46": {
|
||||||
|
"path": "//c:valAx/c:majorTickMark/@val",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "out",
|
||||||
|
"points": 2,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "② 값 축 주 눈금선"
|
||||||
|
},
|
||||||
|
"47": {
|
||||||
|
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 22677,
|
||||||
|
"points": 2,
|
||||||
|
"category": "차트",
|
||||||
|
"item": "③ 크기-너비 (80mm)"
|
||||||
|
},
|
||||||
|
"48": {
|
||||||
|
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 25512,
|
||||||
|
"points": 2,
|
||||||
|
"category": "차트",
|
||||||
|
"item": "④ 크기-높이 (90mm)"
|
||||||
|
},
|
||||||
|
"49": {
|
||||||
|
"path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)"
|
||||||
|
},
|
||||||
|
"50": {
|
||||||
|
"path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "성별 비만 인구수",
|
||||||
|
"value": "궁서",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "제목 문구 (성별 비만 인구수)/① 글씨체 (궁서)"
|
||||||
|
},
|
||||||
|
"51": {
|
||||||
|
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "성별 비만 인구수",
|
||||||
|
"value": 1300,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "제목 문구 (성별 비만 인구수)/② 크기 (13pt)"
|
||||||
|
},
|
||||||
|
"52": {
|
||||||
|
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "성별 비만 인구수",
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "제목 문구 (성별 비만 인구수)/③ 진하게"
|
||||||
|
},
|
||||||
|
"53": {
|
||||||
|
"path": "//c:catAx//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "X축/① 글꼴 (굴림)"
|
||||||
|
},
|
||||||
|
"54": {
|
||||||
|
"path": "//c:catAx//a:defRPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "X축/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"55": {
|
||||||
|
"path": "//c:catAx//a:defRPr/@i",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "X축/③ 기울임"
|
||||||
|
},
|
||||||
|
"56": {
|
||||||
|
"path": "//c:valAx//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "Y축/① 글꼴 (굴림)"
|
||||||
|
},
|
||||||
|
"57": {
|
||||||
|
"path": "//c:valAx//a:defRPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "Y축/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"58": {
|
||||||
|
"path": "//c:valAx//a:defRPr/@i",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "Y축/③ 기울임"
|
||||||
|
},
|
||||||
|
"59": {
|
||||||
|
"path": "//c:legend//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "범례/① 글꼴 (굴림)"
|
||||||
|
},
|
||||||
|
"60": {
|
||||||
|
"path": "//c:legend//a:defRPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "범례/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"61": {
|
||||||
|
"path": "//c:legend//a:defRPr/@i",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "범례/③ 기울임"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
861
회차별채점자료/2503/json_채점기준표/0418/DIW_2503C.json
Normal file
861
회차별채점자료/2503/json_채점기준표/0418/DIW_2503C.json
Normal file
@@ -0,0 +1,861 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"0": {
|
||||||
|
"path": "",
|
||||||
|
"path2": "",
|
||||||
|
"points": 0,
|
||||||
|
"category": "파일저장",
|
||||||
|
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"path": "boolean(//PAGEMARGIN[(@Bottom='5668'or @Bottom='5669') and (@Footer='2834' or @Footer='2835') and @Gutter='0' and (@Header='2834' or @Header='2835') and (@Left='5668' or @Left='5669') and (@Right='5668' or @Right='5669') and (@Top='5668' or @Top='5669')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"category": "용지설정",
|
||||||
|
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"path": "boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"category": "기본설정",
|
||||||
|
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"path": "",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": null,
|
||||||
|
"points": 40,
|
||||||
|
"category": "오타감점",
|
||||||
|
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥마을사생대회안내",
|
||||||
|
"value": "궁서",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (한옥마을사생대회안내)/① 글씨체 (궁서)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥마을사생대회안내",
|
||||||
|
"value": "6072932",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (한옥마을사생대회안내)/② 채우기 : 색상(RGB:100,170,92)"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥마을사생대회안내",
|
||||||
|
"value": 28346,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (한옥마을사생대회안내)/③ 크기-너비 (100mm)"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥마을사생대회안내",
|
||||||
|
"value": 5669,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (한옥마을사생대회안내)/④ 크기-높이 (20mm)"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥마을사생대회안내",
|
||||||
|
"value": "true",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (한옥마을사생대회안내)/⑤ 위치 (글자처럼 취급)"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥마을사생대회안내",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (한옥마을사생대회안내)/⑥ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"path": "boolean(//TEXTART[@Text='{searchValue}'])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥마을사생대회안내",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글맵시",
|
||||||
|
"item": "문구 (한옥마을사생대회안내)/⑦ 글맵시모양 (육안확인)"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"path": "boolean(//RECTANGLE[.//CHAR[text()='자']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "자/① 모양 (2줄)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='자']]/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "맑은 고딕",
|
||||||
|
"points": 1,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "자/② 글씨체 (맑은 고딕)"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"path": "//RECTANGLE[.//CHAR[text()='자']]//WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "9537333",
|
||||||
|
"points": 2,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "자/③ 면색 : 색상(RGB:53,135,145)"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"path": "//RECTANGLE[.//CHAR[text()='자']]//OUTSIDEMARGIN/@Right",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "850",
|
||||||
|
"points": 2,
|
||||||
|
"category": "문단첫글자장식",
|
||||||
|
"item": "자/④ 본문과의 간격 : 3.0mm"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥에 대한 체험과 교육이 준비된 사생대회",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (한옥에 대한 체험과 교육이 준비된 사생대회)/① 진하게"
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥에 대한 체험과 교육이 준비된 사생대회",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (한옥에 대한 체험과 교육이 준비된 사생대회)/② 밑줄"
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"path": "count(//CHAR[contains(text(),'■')]) + count(//CHAR[contains(text(),'※')])",
|
||||||
|
"path2": "string-length(//CHAR[contains(text(),'■')]) - string-length(translate(//CHAR[contains(text(),'■')], '■', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 3,
|
||||||
|
"points": 3,
|
||||||
|
"category": "특수문자",
|
||||||
|
"item": "① ■, ② ■, ③ ※"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "■ 행사안내 ■",
|
||||||
|
"value": "돋움",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (■ 행사안내 ■)/① 글씨체 (돋움)"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "■ 행사안내 ■",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (■ 행사안내 ■)/② 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수)/① 기울임"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수)/② 밑줄"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "기타사항",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "문단모양",
|
||||||
|
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2025. 03. 22.",
|
||||||
|
"value": 1300,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2025. 03. 22.)/① 크기 (13pt)"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2025. 03. 22.",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (2025. 03. 22.)/② 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한국고건축협회",
|
||||||
|
"value": "궁서",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (한국고건축협회)/① 글씨체 (궁서)"
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한국고건축협회",
|
||||||
|
"value": 2400,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (한국고건축협회)/② 크기 (24pt)"
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한국고건축협회",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글꼴 속성",
|
||||||
|
"item": "문구 (한국고건축협회)/③ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "DIAT",
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "머리말",
|
||||||
|
"item": "문구 (DIAT)/① 글꼴 (굴림)"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "DIAT",
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "머리말",
|
||||||
|
"item": "문구 (DIAT)/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "DIAT",
|
||||||
|
"value": "Right",
|
||||||
|
"points": 1,
|
||||||
|
"category": "머리말",
|
||||||
|
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"path": "//PAGENUM/@FormatType",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "HangulSyllable",
|
||||||
|
"points": 2,
|
||||||
|
"category": "쪽번호",
|
||||||
|
"item": "① 쪽 번호 매기기 (가,나,다 순으로)"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"path": "//PAGENUM/@Pos",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "BottomCenter",
|
||||||
|
"points": 2,
|
||||||
|
"category": "쪽번호",
|
||||||
|
"item": "② 가운데 아래"
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "줄간격",
|
||||||
|
"item": "문제 1 줄간격 180% 설정"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"1": {
|
||||||
|
"path": "boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"category": "쪽 테두리",
|
||||||
|
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"path": "count(//SECTION)>1",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "다단",
|
||||||
|
"item": "① 구역나누기"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"path": "//COLDEF/@Count>1",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "다단",
|
||||||
|
"item": "② 다단 2단"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥의 형태와 구조",
|
||||||
|
"value": 19842,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (한옥의 형태와 구조)/① 크기-너비 (70mm)"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥의 형태와 구조",
|
||||||
|
"value": 3401,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (한옥의 형태와 구조)/② 크기-높이 (12mm)"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥의 형태와 구조",
|
||||||
|
"value": "DoubleSlim",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (한옥의 형태와 구조)/③ 테두리 (이중실선(1.00mm))"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥의 형태와 구조",
|
||||||
|
"value": 20,
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (한옥의 형태와 구조)/④ 글상자 모서리 (둥근 모양)"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥의 형태와 구조",
|
||||||
|
"value": "12704995",
|
||||||
|
"points": 2,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (한옥의 형태와 구조)/⑤ 채우기 : 색상(RGB:227,220,193)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥의 형태와 구조",
|
||||||
|
"value": "true",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (한옥의 형태와 구조)/⑥ 글상자 위치 (글자처럼 취급)"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥의 형태와 구조",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (한옥의 형태와 구조)/⑦ 글상자 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥의 형태와 구조",
|
||||||
|
"value": "한양견고딕",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (한옥의 형태와 구조)/⑧ 글씨체 (견고딕)"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥의 형태와 구조",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (한옥의 형태와 구조)/⑨ 글씨크기 (20pt)"
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "한옥의 형태와 구조",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "글상자",
|
||||||
|
"item": "문구 (한옥의 형태와 구조)/⑩ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "원본 그림의 이름: 그림",
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "① 파일명 \"그림C.jpg\" 삽입"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 24094,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "② 크기-너비 (85mm)"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 11338,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "③ 크기-높이 (40mm)"
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 0,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 6236,
|
||||||
|
"points": 2,
|
||||||
|
"category": "그림삽입",
|
||||||
|
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22mm)"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "1. 한옥",
|
||||||
|
"value": "돋움",
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구① (1. 한옥)/① 글씨체 (돋움)"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "1. 한옥",
|
||||||
|
"value": 1200,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구① (1. 한옥)/② 크기 (12pt)"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "1. 한옥",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구① (1. 한옥)/③ 진하게"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2. 한옥의 형태와 구조",
|
||||||
|
"value": "돋움",
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구② (2. 한옥의 형태와 구조)/① 글씨체 (돋움)"
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2. 한옥의 형태와 구조",
|
||||||
|
"value": 1200,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구② (2. 한옥의 형태와 구조)/② 크기 (12pt)"
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "2. 한옥의 형태와 구조",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "속성",
|
||||||
|
"item": "문구② (2. 한옥의 형태와 구조)/③ 진하게"
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"path": "boolean(//CHAR[contains(text(),'기초')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)",
|
||||||
|
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('기초') + 1) = '기초']/following-sibling::FOOTNOTE/descendant::CHAR)",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (기초)/① 각주 설정 및 문구 입력"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "기둥의 침하를 방지하기 위한 지반의 보강 및 개량",
|
||||||
|
"value": "한양중고딕",
|
||||||
|
"points": 1,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (기초)/② 글씨체 (중고딕)"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "기둥의 침하를 방지하기 위한 지반의 보강 및 개량",
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (기초)/③ 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": " 기둥의 침하를 방지하기 위한 지반의 보강 및 개량",
|
||||||
|
"value": "CircledDigit",
|
||||||
|
"points": 2,
|
||||||
|
"category": "각주",
|
||||||
|
"item": "문구 (기초)/④ 각주 번호모양"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"path": "boolean(//CHAR[contains(text(),'cornerstone')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "",
|
||||||
|
"item": "cornerstone/영단어 미입력, 대소문자/오타 시 전체 감점"
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"path": "(count(//CHAR[contains(text(),'한옥')][contains(text(),'韓屋')])+count(//CHAR[contains(text(),'사계절')][contains(text(),'四季節')])+count(//CHAR[contains(text(),'거주')][contains(text(),'居住')])+count(//CHAR[contains(text(),'구조')][contains(text(),'構造')])+count(//CHAR[contains(text(),'골격')][contains(text(),'骨格')]))*2",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 10,
|
||||||
|
"points": 10,
|
||||||
|
"category": "한자",
|
||||||
|
"item": "① 한옥(韓屋), ② 사계절(四季節), ③거주(居住), ④ 구조(構造), ⑤ 골격(骨格)"
|
||||||
|
},
|
||||||
|
"31": {
|
||||||
|
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'철의추운')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "편집",
|
||||||
|
"item": "문구 (…더운 날씨와 겨울철이 추운…)/\"이\" → \"의\" 글자바꿈"
|
||||||
|
},
|
||||||
|
"32": {
|
||||||
|
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'돌과마루')])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 3,
|
||||||
|
"category": "편집",
|
||||||
|
"item": "문구 (…대비해 마루를 온돌과 갖고…)/\"마루를\" / \"온돌과\" 순서바꿈"
|
||||||
|
},
|
||||||
|
"33": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "교육기관별 참가인원",
|
||||||
|
"value": "궁서",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (교육기관별 참가인원)/① 글씨체 (궁서)"
|
||||||
|
},
|
||||||
|
"34": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "교육기관별 참가인원",
|
||||||
|
"value": 1200,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (교육기관별 참가인원)/② 크기 (12pt)"
|
||||||
|
},
|
||||||
|
"35": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "교육기관별 참가인원",
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (교육기관별 참가인원)/③ 진하게"
|
||||||
|
},
|
||||||
|
"36": {
|
||||||
|
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "교육기관별 참가인원",
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 문구 (교육기관별 참가인원)/④ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"37": {
|
||||||
|
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||||
|
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "15616893",
|
||||||
|
"points": 2,
|
||||||
|
"category": "표",
|
||||||
|
"item": "위쪽 제목 셀/① 색상(RGB:125,75,238)"
|
||||||
|
},
|
||||||
|
"38": {
|
||||||
|
"path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "위쪽 제목 셀/② 진하게"
|
||||||
|
},
|
||||||
|
"39": {
|
||||||
|
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
|
||||||
|
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Type",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "DoubleSlim",
|
||||||
|
"points": 2,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 셀 아래선/① 이중실선"
|
||||||
|
},
|
||||||
|
"40": {
|
||||||
|
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
|
||||||
|
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/BOTTOMBORDER/@Width",
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "0.5mm",
|
||||||
|
"points": 2,
|
||||||
|
"category": "표",
|
||||||
|
"item": "제목 셀 아래선/② 0.5mm"
|
||||||
|
},
|
||||||
|
"41": {
|
||||||
|
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "글자모양/① 글씨체 (굴림)"
|
||||||
|
},
|
||||||
|
"42": {
|
||||||
|
"path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1000,
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "글자모양/② 크기 (10pt)"
|
||||||
|
},
|
||||||
|
"43": {
|
||||||
|
"path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "Center",
|
||||||
|
"points": 1,
|
||||||
|
"category": "표",
|
||||||
|
"item": "글자모양/③ 정렬 (가운데 정렬)"
|
||||||
|
},
|
||||||
|
"44": {
|
||||||
|
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '110'] and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '220'])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 4,
|
||||||
|
"category": "표",
|
||||||
|
"item": "블록계산식/합계"
|
||||||
|
},
|
||||||
|
"45": {
|
||||||
|
"path": "//c:lineChart/c:grouping/@val='standard'",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "① 종류 (꺾은선형)"
|
||||||
|
},
|
||||||
|
"46": {
|
||||||
|
"path": "//c:valAx/c:majorTickMark/@val",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "out",
|
||||||
|
"points": 2,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "② 값 축 주 눈금선"
|
||||||
|
},
|
||||||
|
"47": {
|
||||||
|
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 22677,
|
||||||
|
"points": 2,
|
||||||
|
"category": "차트",
|
||||||
|
"item": "③ 크기-너비 (80mm)"
|
||||||
|
},
|
||||||
|
"48": {
|
||||||
|
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 25511,
|
||||||
|
"points": 2,
|
||||||
|
"category": "차트",
|
||||||
|
"item": "④ 크기-높이 (90mm)"
|
||||||
|
},
|
||||||
|
"49": {
|
||||||
|
"path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": true,
|
||||||
|
"points": 2,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)"
|
||||||
|
},
|
||||||
|
"50": {
|
||||||
|
"path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "교육기관별 참가인원",
|
||||||
|
"value": "굴림체",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "제목 문구 (교육기관별 참가인원)/① 글씨체 (굴림체)"
|
||||||
|
},
|
||||||
|
"51": {
|
||||||
|
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "교육기관별 참가인원",
|
||||||
|
"value": 1300,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "제목 문구 (교육기관별 참가인원)/② 크기 (13pt)"
|
||||||
|
},
|
||||||
|
"52": {
|
||||||
|
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": "교육기관별 참가인원",
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "제목 문구 (교육기관별 참가인원)/③ 진하게"
|
||||||
|
},
|
||||||
|
"53": {
|
||||||
|
"path": "//c:catAx//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "X축/① 글꼴 (굴림)"
|
||||||
|
},
|
||||||
|
"54": {
|
||||||
|
"path": "//c:catAx//a:defRPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "X축/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"55": {
|
||||||
|
"path": "//c:catAx//a:defRPr/@i",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "X축/③ 기울임"
|
||||||
|
},
|
||||||
|
"56": {
|
||||||
|
"path": "//c:valAx//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "Y축/① 글꼴 (굴림)"
|
||||||
|
},
|
||||||
|
"57": {
|
||||||
|
"path": "//c:valAx//a:defRPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "Y축/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"58": {
|
||||||
|
"path": "//c:valAx//a:defRPr/@i",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "Y축/③ 기울임"
|
||||||
|
},
|
||||||
|
"59": {
|
||||||
|
"path": "//c:legend//a:ea/@typeface",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": "굴림",
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "범례/① 글꼴 (굴림)"
|
||||||
|
},
|
||||||
|
"60": {
|
||||||
|
"path": "//c:legend//a:defRPr/@sz",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 900,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "범례/② 크기 (9pt)"
|
||||||
|
},
|
||||||
|
"61": {
|
||||||
|
"path": "//c:legend//a:defRPr/@i",
|
||||||
|
"path2": null,
|
||||||
|
"searchValue": null,
|
||||||
|
"value": 1,
|
||||||
|
"points": 1,
|
||||||
|
"category": "chart_xml",
|
||||||
|
"item": "범례/③ 기울임"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user