score5.py > diwScoring.py 변경 / JSON파일 구조 변경에 따라 일부 소스코드 변경

This commit is contained in:
2025-04-17 17:24:12 +09:00
parent 148437c97a
commit d6ef894fc6
11 changed files with 6595 additions and 2590 deletions

855
DIW_2503A copy.json Normal file
View File

@@ -0,0 +1,855 @@
{
"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": "범례/③ 기울임"
}
}

View File

@@ -1,12 +1,13 @@
{
"0-0": {
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"0-1": {
"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,
@@ -15,7 +16,7 @@
"category": "용지설정",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"0-2": {
"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,
@@ -24,7 +25,7 @@
"category": "기본설정",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"0-3": {
"3": {
"path": "",
"path2": null,
"searchValue": null,
@@ -32,8 +33,10 @@
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1-1": {
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"path2": null,
"searchValue": "친환경이동수단컨퍼런스",
@@ -42,7 +45,7 @@
"category": "글맵시",
"item": "문구 (친환경이동수단컨퍼런스)/① 글씨체 (견고딕)"
},
"1-2": {
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "친환경이동수단컨퍼런스",
@@ -51,7 +54,7 @@
"category": "글맵시",
"item": "문구 (친환경이동수단컨퍼런스)/② 채우기 : 색상(RGB:49,95,151)"
},
"1-3": {
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "친환경이동수단컨퍼런스",
@@ -60,7 +63,7 @@
"category": "글맵시",
"item": "문구 (친환경이동수단컨퍼런스)/③ 크기-너비 (100mm)"
},
"1-4": {
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "친환경이동수단컨퍼런스",
@@ -69,7 +72,7 @@
"category": "글맵시",
"item": "문구 (친환경이동수단컨퍼런스)/④ 크기-높이 (20mm)"
},
"1-5": {
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "친환경이동수단컨퍼런스",
@@ -78,7 +81,7 @@
"category": "글맵시",
"item": "문구 (친환경이동수단컨퍼런스)/⑤ 위치 (글자처럼 취급)"
},
"1-6": {
"6": {
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "친환경이동수단컨퍼런스",
@@ -87,7 +90,7 @@
"category": "글맵시",
"item": "문구 (친환경이동수단컨퍼런스)/⑥ 정렬 (가운데 정렬)"
},
"1-7": {
"7": {
"path": "boolean(//TEXTART[@Text='{searchValue}'])",
"path2": null,
"searchValue": "친환경이동수단컨퍼런스",
@@ -96,7 +99,7 @@
"category": "글맵시",
"item": "문구 (친환경이동수단컨퍼런스)/⑦ 글맵시모양 (육안확인)"
},
"1-8": {
"8": {
"path": "boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])",
"path2": null,
"searchValue": null,
@@ -105,7 +108,7 @@
"category": "문단첫글자장식",
"item": "지/① 모양 (2줄)"
},
"1-9": {
"9": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
@@ -114,7 +117,7 @@
"category": "문단첫글자장식",
"item": "지/② 글씨체 (궁서체)"
},
"1-10": {
"10": {
"path": "//RECTANGLE[.//CHAR[text()='지']]//WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": null,
@@ -123,7 +126,7 @@
"category": "문단첫글자장식",
"item": "지/③ 면색 : 색상(RGB:105,155,55)"
},
"1-11": {
"11": {
"path": "//RECTANGLE[.//CHAR[text()='지']]//OUTSIDEMARGIN/@Right",
"path2": null,
"searchValue": null,
@@ -132,7 +135,7 @@
"category": "문단첫글자장식",
"item": "지/④ 본문과의 간격 : 3.0mm"
},
"1-12": {
"12": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][ITALIC])",
"path2": null,
"searchValue": "전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대",
@@ -141,7 +144,7 @@
"category": "글꼴 속성",
"item": "문구 (전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대)/① 기울임"
},
"1-13": {
"13": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])",
"path2": null,
"searchValue": "전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대",
@@ -150,7 +153,7 @@
"category": "글꼴 속성",
"item": "문구 (전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대)/② 밑줄"
},
"1-14": {
"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,
@@ -159,7 +162,7 @@
"category": "특수문자",
"item": "① ☆, ② ☆, ③ ※"
},
"1-15": {
"15": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "☆ 행사안내 ☆",
@@ -168,7 +171,7 @@
"category": "글꼴 속성",
"item": "문구 (☆ 행사안내 ☆)/① 글씨체 (궁서)"
},
"1-16": {
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "☆ 행사안내 ☆",
@@ -177,7 +180,7 @@
"category": "글꼴 속성",
"item": "문구 (☆ 행사안내 ☆)/② 정렬 (가운데 정렬)"
},
"1-17": {
"17": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][BOLD])",
"path2": null,
"searchValue": "2025. 03. 27.(목) 24:00까지",
@@ -186,7 +189,7 @@
"category": "글꼴 속성",
"item": "문구 (2025. 03. 27.(목) 24:00까지)/① 진하게"
},
"1-18": {
"18": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])",
"path2": null,
"searchValue": "2025. 03. 27.(목) 24:00까지",
@@ -195,7 +198,7 @@
"category": "글꼴 속성",
"item": "문구 (2025. 03. 27.(목) 24:00까지)/② 밑줄"
},
"1-19": {
"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": "기타사항",
@@ -204,7 +207,7 @@
"category": "문단모양",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)"
},
"1-20": {
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2025. 03. 22.",
@@ -213,7 +216,7 @@
"category": "글꼴 속성",
"item": "문구 (2025. 03. 22.)/① 크기 (13pt)"
},
"1-21": {
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "2025. 03. 22.",
@@ -222,7 +225,7 @@
"category": "글꼴 속성",
"item": "문구 (2025. 03. 22.)/② 정렬 (가운데 정렬)"
},
"1-22": {
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "한국육상운송협회",
@@ -231,7 +234,7 @@
"category": "글꼴 속성",
"item": "문구 (한국육상운송협회)/① 글씨체 (굴림체)"
},
"1-23": {
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "한국육상운송협회",
@@ -240,7 +243,7 @@
"category": "글꼴 속성",
"item": "문구 (한국육상운송협회)/② 크기 (24pt)"
},
"1-24": {
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "한국육상운송협회",
@@ -249,7 +252,7 @@
"category": "글꼴 속성",
"item": "문구 (한국육상운송협회)/③ 정렬 (가운데 정렬)"
},
"1-25": {
"25": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "DIAT",
@@ -258,7 +261,7 @@
"category": "머리말",
"item": "문구 (DIAT)/① 글꼴 (돋움)"
},
"1-26": {
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "DIAT",
@@ -267,7 +270,7 @@
"category": "머리말",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"1-27": {
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "DIAT",
@@ -276,7 +279,7 @@
"category": "머리말",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"1-28": {
"28": {
"path": "//PAGENUM/@FormatType",
"path2": null,
"searchValue": null,
@@ -285,7 +288,7 @@
"category": "쪽번호",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)"
},
"1-29": {
"29": {
"path": "//PAGENUM/@Pos",
"path2": null,
"searchValue": null,
@@ -294,7 +297,7 @@
"category": "쪽번호",
"item": "② 가운데 아래"
},
"1-30": {
"30": {
"path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])",
"path2": null,
"searchValue": null,
@@ -302,8 +305,10 @@
"points": 2,
"category": "줄간격",
"item": "문제 1 줄간격 180% 설정"
}
},
"2-01": {
"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,
@@ -312,7 +317,7 @@
"category": "쪽 테두리",
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
},
"2-02": {
"2": {
"path": "count(//SECTION)>1",
"path2": null,
"searchValue": null,
@@ -321,7 +326,7 @@
"category": "다단",
"item": "① 구역나누기"
},
"2-03": {
"3": {
"path": "//COLDEF/@Count>1",
"path2": null,
"searchValue": null,
@@ -330,7 +335,7 @@
"category": "다단",
"item": "② 다단 2단"
},
"2-04": {
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "친환경 이동수단",
@@ -339,7 +344,7 @@
"category": "글상자",
"item": "문구 (친환경 이동수단)/① 크기-너비 (70mm)"
},
"2-05": {
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "친환경 이동수단",
@@ -348,7 +353,7 @@
"category": "글상자",
"item": "문구 (친환경 이동수단)/② 크기-높이 (12mm)"
},
"2-06": {
"6": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
"path2": null,
"searchValue": "친환경 이동수단",
@@ -357,7 +362,7 @@
"category": "글상자",
"item": "문구 (친환경 이동수단)/③ 테두리 (이중실선(1.00mm))"
},
"2-07": {
"7": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio",
"path2": null,
"searchValue": "친환경 이동수단",
@@ -366,7 +371,7 @@
"category": "글상자",
"item": "문구 (친환경 이동수단)/④ 글상자 모서리 (반원)"
},
"2-08": {
"8": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "친환경 이동수단",
@@ -375,7 +380,7 @@
"category": "글상자",
"item": "문구 (친환경 이동수단)/⑤ 채우기 : 색상(RGB:53,135,145)"
},
"2-09": {
"9": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "친환경 이동수단",
@@ -384,7 +389,7 @@
"category": "글상자",
"item": "문구 (친환경 이동수단)/⑥ 글상자 위치 (글자처럼 취급)"
},
"2-10": {
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"path2": null,
"searchValue": "친환경 이동수단",
@@ -393,7 +398,7 @@
"category": "글상자",
"item": "문구 (친환경 이동수단)/⑦ 글상자 정렬 (가운데 정렬)"
},
"2-11": {
"11": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "친환경 이동수단",
@@ -402,7 +407,7 @@
"category": "글상자",
"item": "문구 (친환경 이동수단)/⑧ 글씨체 (맑은 고딕)"
},
"2-12": {
"12": {
"path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2400')",
"path2": null,
"searchValue": "친환경 이동수단",
@@ -411,7 +416,7 @@
"category": "글상자",
"item": "문구 (친환경 이동수단)/⑨ 글씨크기 (24pt)"
},
"2-13": {
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
"path2": null,
"searchValue": "친환경 이동수단",
@@ -420,7 +425,7 @@
"category": "글상자",
"item": "문구 (친환경 이동수단)/⑩ 정렬 (가운데 정렬)"
},
"2-14": {
"14": {
"path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
"path2": null,
"searchValue": "원본 그림의 이름: 그림",
@@ -429,7 +434,7 @@
"category": "그림삽입",
"item": "① 파일명 \"그림A.jpg\" 삽입"
},
"2-15": {
"15": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": null,
@@ -438,7 +443,7 @@
"category": "그림삽입",
"item": "② 크기-너비 (85mm)"
},
"2-16": {
"16": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": null,
@@ -447,7 +452,7 @@
"category": "그림삽입",
"item": "③ 크기-높이 (40mm)"
},
"2-17": {
"17": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
"path2": null,
"searchValue": null,
@@ -456,7 +461,7 @@
"category": "그림삽입",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"2-18": {
"18": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
"path2": null,
"searchValue": null,
@@ -465,7 +470,7 @@
"category": "그림삽입",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22mm)"
},
"2-19": {
"19": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "1. 친환경 자동차",
@@ -474,7 +479,7 @@
"category": "속성",
"item": "문구① (1. 친환경 자동차)/① 글씨체 (궁서)"
},
"2-20": {
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "1. 친환경 자동차",
@@ -483,7 +488,7 @@
"category": "속성",
"item": "문구① (1. 친환경 자동차)/② 크기 (12pt)"
},
"2-21": {
"21": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "1. 친환경 자동차",
@@ -492,7 +497,7 @@
"category": "속성",
"item": "문구① (1. 친환경 자동차)/③ 진하게"
},
"2-22": {
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "2. 친환경 자동차 보급 추이",
@@ -501,7 +506,7 @@
"category": "속성",
"item": "문구② (2. 친환경 자동차 보급 추이)/① 글씨체 (궁서)"
},
"2-23": {
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2. 친환경 자동차 보급 추이",
@@ -510,7 +515,7 @@
"category": "속성",
"item": "문구② (2. 친환경 자동차 보급 추이)/② 크기 (12pt)"
},
"2-24": {
"24": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "2. 친환경 자동차 보급 추이",
@@ -519,8 +524,8 @@
"category": "속성",
"item": "문구② (2. 친환경 자동차 보급 추이)/③ 진하게"
},
"2-25": {
"path":"boolean(//CHAR[contains(text(),'자동차 탄소발자국')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)",
"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,
@@ -528,7 +533,7 @@
"category": "각주",
"item": "문구 (자동차 탄소발자국)/① 각주 설정 및 문구 입력"
},
"2-26": {
"26": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량",
@@ -537,7 +542,7 @@
"category": "각주",
"item": "문구 (자동차 탄소발자국)/② 글씨체 (굴림)"
},
"2-27": {
"27": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량",
@@ -546,7 +551,7 @@
"category": "각주",
"item": "문구 (자동차 탄소발자국)/③ 크기 (9pt)"
},
"2-28": {
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"path2": null,
"searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량",
@@ -555,7 +560,7 @@
"category": "각주",
"item": "문구 (자동차 탄소발자국)/④ 각주 번호모양"
},
"2-29": {
"29": {
"path": "boolean(//CHAR[contains(text(),'Hybrid')])",
"path2": null,
"searchValue": null,
@@ -564,7 +569,7 @@
"category": "영단어",
"item": "Hybrid/영단어 미입력, 대소문자/오타 시 전체 감점"
},
"2-30": {
"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,
@@ -573,7 +578,7 @@
"category": "한자",
"item": "① 전지(電池), ② 유해(有害), ③내연(內燃), ④ 이륜차(二輪車), ⑤ 기타(其他)"
},
"2-31": {
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'터를독립')])",
"path2": null,
"searchValue": null,
@@ -582,7 +587,7 @@
"category": "편집",
"item": "문구 (…내장된 전기모터이 독립적으로 또는 병행해서…)/\"이\" → \"를\" 글자바꿈"
},
"2-32": {
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면서환경')])",
"path2": null,
"searchValue": null,
@@ -591,7 +596,7 @@
"category": "편집",
"item": "문구 (…주행하는 방식으로 환경에 주행하면서 유해(有害)한 물질을…)/\"환경에\" / \"주행하면서\" 순서바꿈"
},
"2-33": {
"33": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "자동차 증가 추이",
@@ -600,7 +605,7 @@
"category": "표",
"item": "제목 문구 (자동차 증가 추이)/① 글씨체 (돋움)"
},
"2-34": {
"34": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "자동차 증가 추이",
@@ -609,7 +614,7 @@
"category": "표",
"item": "제목 문구 (자동차 증가 추이)/② 크기 (12pt)"
},
"2-35": {
"35": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "자동차 증가 추이",
@@ -618,7 +623,7 @@
"category": "표",
"item": "제목 문구 (자동차 증가 추이)/③ 진하게"
},
"2-36": {
"36": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "자동차 증가 추이",
@@ -627,7 +632,7 @@
"category": "표",
"item": "제목 문구 (자동차 증가 추이)/④ 정렬 (가운데 정렬)"
},
"2-37": {
"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,
@@ -636,7 +641,7 @@
"category": "표",
"item": "위쪽 제목 셀/① 색상(RGB:202,86,107)"
},
"2-38": {
"38": {
"path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": null,
@@ -645,7 +650,7 @@
"category": "표",
"item": "위쪽 제목 셀/② 진하게"
},
"2-39": {
"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,
@@ -654,7 +659,7 @@
"category": "표",
"item": "제목 셀 아래선/① 이중실선"
},
"2-40": {
"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,
@@ -663,7 +668,7 @@
"category": "표",
"item": "제목 셀 아래선/② 0.5mm"
},
"2-41": {
"41": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
@@ -672,7 +677,7 @@
"category": "표",
"item": "글자모양/① 글씨체 (궁서체)"
},
"2-42": {
"42": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": null,
@@ -681,7 +686,7 @@
"category": "표",
"item": "글자모양/② 크기 (10pt)"
},
"2-43": {
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align",
"path2": null,
"searchValue": null,
@@ -690,7 +695,7 @@
"category": "표",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"2-44": {
"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,
@@ -699,7 +704,7 @@
"category": "표",
"item": "블록계산식/합계"
},
"2-45": {
"45": {
"path": "boolean(//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']])",
"path2": null,
"searchValue": null,
@@ -708,7 +713,7 @@
"category": "chart_xml",
"item": "① 종류 (묶은세로막대형)"
},
"2-46": {
"46": {
"path": "//c:valAx/c:majorTickMark/@val",
"path2": null,
"searchValue": null,
@@ -717,7 +722,7 @@
"category": "chart_xml",
"item": "② 값 축 주 눈금선"
},
"2-47": {
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
"path2": null,
"searchValue": null,
@@ -726,7 +731,7 @@
"category": "차트",
"item": "③ 크기-너비 (80mm)"
},
"2-48": {
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
"path2": null,
"searchValue": null,
@@ -735,7 +740,7 @@
"category": "차트",
"item": "④ 크기-높이 (90mm)"
},
"2-49": {
"49": {
"path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])",
"path2": null,
"searchValue": null,
@@ -744,7 +749,7 @@
"category": "chart_xml",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)"
},
"2-50": {
"50": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"path2": null,
"searchValue": "자동차 증가 추이",
@@ -753,7 +758,7 @@
"category": "chart_xml",
"item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/① 글씨체 (바탕체)"
},
"2-51": {
"51": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"path2": null,
"searchValue": "자동차 증가 추이",
@@ -762,7 +767,7 @@
"category": "chart_xml",
"item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/② 크기 (13pt)"
},
"2-52": {
"52": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b",
"path2": null,
"searchValue": "자동차 증가 추이",
@@ -771,7 +776,7 @@
"category": "chart_xml",
"item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/③ 진하게"
},
"2-53": {
"53": {
"path": "//c:catAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
@@ -780,7 +785,7 @@
"category": "chart_xml",
"item": "X축/① 글꼴 (굴림)"
},
"2-54": {
"54": {
"path": "//c:catAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
@@ -789,7 +794,7 @@
"category": "chart_xml",
"item": "X축/② 크기 (9pt)"
},
"2-55": {
"55": {
"path": "//c:catAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
@@ -798,7 +803,7 @@
"category": "chart_xml",
"item": "X축/③ 기울임"
},
"2-56": {
"56": {
"path": "//c:valAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
@@ -807,7 +812,7 @@
"category": "chart_xml",
"item": "Y축/① 글꼴 (굴림)"
},
"2-57": {
"57": {
"path": "//c:valAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
@@ -816,7 +821,7 @@
"category": "chart_xml",
"item": "Y축/② 크기 (9pt)"
},
"2-58": {
"58": {
"path": "//c:valAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
@@ -825,7 +830,7 @@
"category": "chart_xml",
"item": "Y축/③ 기울임"
},
"2-59": {
"59": {
"path": "//c:legend//a:ea/@typeface",
"path2": null,
"searchValue": null,
@@ -834,7 +839,7 @@
"category": "chart_xml",
"item": "범례/① 글꼴 (굴림)"
},
"2-60": {
"60": {
"path": "//c:legend//a:defRPr/@sz",
"path2": null,
"searchValue": null,
@@ -843,7 +848,7 @@
"category": "chart_xml",
"item": "범례/② 크기 (9pt)"
},
"2-61": {
"61": {
"path": "//c:legend//a:defRPr/@i",
"path2": null,
"searchValue": null,
@@ -852,4 +857,5 @@
"category": "chart_xml",
"item": "범례/③ 기울임"
}
}
}

View File

@@ -1,12 +1,13 @@
{
"0-0": {
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"0-1": {
"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,
@@ -15,7 +16,7 @@
"category": "용지설정",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"0-2": {
"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,
@@ -24,7 +25,7 @@
"category": "기본설정",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"0-3": {
"3": {
"path": "",
"path2": null,
"searchValue": null,
@@ -32,8 +33,10 @@
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1-1": {
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"path2": null,
"searchValue": "건강100세프로젝트행사",
@@ -42,7 +45,7 @@
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/① 글씨체 (궁서)"
},
"1-2": {
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "건강100세프로젝트행사",
@@ -51,7 +54,7 @@
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/② 채우기 : 색상(RGB:105,155,55)"
},
"1-3": {
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "건강100세프로젝트행사",
@@ -60,7 +63,7 @@
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/③ 크기-너비 (120mm)"
},
"1-4": {
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "건강100세프로젝트행사",
@@ -69,7 +72,7 @@
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/④ 크기-높이 (20mm)"
},
"1-5": {
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "건강100세프로젝트행사",
@@ -78,7 +81,7 @@
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/⑤ 위치 (글자처럼 취급)"
},
"1-6": {
"6": {
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "건강100세프로젝트행사",
@@ -87,7 +90,7 @@
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/⑥ 정렬 (가운데 정렬)"
},
"1-7": {
"7": {
"path": "boolean(//TEXTART[@Text='{searchValue}'])",
"path2": null,
"searchValue": "건강100세프로젝트행사",
@@ -96,7 +99,7 @@
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/⑦ 글맵시모양 (육안확인)"
},
"1-8": {
"8": {
"path": "boolean(//RECTANGLE[.//CHAR[text()='인']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])",
"path2": null,
"searchValue": null,
@@ -105,7 +108,7 @@
"category": "문단첫글자장식",
"item": "인/① 모양 (2줄)"
},
"1-9": {
"9": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='인']]/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
@@ -114,7 +117,7 @@
"category": "문단첫글자장식",
"item": "인/② 글씨체 (돋움)"
},
"1-10": {
"10": {
"path": "//RECTANGLE[.//CHAR[text()='인']]//WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": null,
@@ -123,7 +126,7 @@
"category": "문단첫글자장식",
"item": "인/③ 면색 : 색상(RGB:202,86,167)"
},
"1-11": {
"11": {
"path": "//RECTANGLE[.//CHAR[text()='인']]//OUTSIDEMARGIN/@Right",
"path2": null,
"searchValue": null,
@@ -132,7 +135,7 @@
"category": "문단첫글자장식",
"item": "인/④ 본문과의 간격 : 3.0mm"
},
"1-12": {
"12": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])",
"path2": null,
"searchValue": "2023년 경제협력개발기구 보건통계 기준 한국의 기대수명은 83.6년",
@@ -141,7 +144,7 @@
"category": "글꼴 속성",
"item": "문구 (2023년 경제협력개발기구 보건통계 기준 한국의 기대수명은 83.6년)/① 진하게"
},
"1-13": {
"13": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])",
"path2": null,
"searchValue": "2023년 경제협력개발기구 보건통계 기준 한국의 기대수명은 83.6년",
@@ -150,7 +153,7 @@
"category": "글꼴 속성",
"item": "문구 (2023년 경제협력개발기구 보건통계 기준 한국의 기대수명은 83.6년)/② 밑줄"
},
"1-14": {
"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,
@@ -159,7 +162,7 @@
"category": "특수문자",
"item": "① ■, ② ■, ③ ※"
},
"1-15": {
"15": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "■ 행사개요 ■",
@@ -168,7 +171,7 @@
"category": "글꼴 속성",
"item": "문구 (■ 행사개요 ■)/① 글씨체 (굴림)"
},
"1-16": {
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "■ 행사개요 ■",
@@ -177,7 +180,7 @@
"category": "글꼴 속성",
"item": "문구 (■ 행사개요 ■)/② 정렬 (가운데 정렬)"
},
"1-17": {
"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)",
@@ -186,7 +189,7 @@
"category": "글꼴 속성",
"item": "문구 (2025. 03. 30.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/① 진하게"
},
"1-18": {
"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)",
@@ -195,7 +198,7 @@
"category": "글꼴 속성",
"item": "문구 (2025. 03. 30.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/② 기울임"
},
"1-19": {
"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": "기타사항",
@@ -204,7 +207,7 @@
"category": "문단모양",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)"
},
"1-20": {
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2025. 03. 22.",
@@ -213,7 +216,7 @@
"category": "글꼴 속성",
"item": "문구 (2025. 03. 22.)/① 크기 (13pt)"
},
"1-21": {
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "2025. 03. 22.",
@@ -222,7 +225,7 @@
"category": "글꼴 속성",
"item": "문구 (2025. 03. 22.)/② 정렬 (가운데 정렬)"
},
"1-22": {
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "한국질병관리협회",
@@ -231,7 +234,7 @@
"category": "글꼴 속성",
"item": "문구 (한국질병관리협회)/① 글씨체 (굴림)"
},
"1-23": {
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "한국질병관리협회",
@@ -240,7 +243,7 @@
"category": "글꼴 속성",
"item": "문구 (한국질병관리협회)/② 크기 (24pt)"
},
"1-24": {
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "한국질병관리협회",
@@ -249,7 +252,7 @@
"category": "글꼴 속성",
"item": "문구 (한국질병관리협회)/③ 정렬 (가운데 정렬)"
},
"1-25": {
"25": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "DIAT",
@@ -258,7 +261,7 @@
"category": "머리말",
"item": "문구 (DIAT)/① 글꼴 (굴림)"
},
"1-26": {
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "DIAT",
@@ -267,7 +270,7 @@
"category": "머리말",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"1-27": {
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "DIAT",
@@ -276,7 +279,7 @@
"category": "머리말",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"1-28": {
"28": {
"path": "//PAGENUM/@FormatType",
"path2": null,
"searchValue": null,
@@ -285,7 +288,7 @@
"category": "쪽번호",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)"
},
"1-29": {
"29": {
"path": "//PAGENUM/@Pos",
"path2": null,
"searchValue": null,
@@ -294,7 +297,7 @@
"category": "쪽번호",
"item": "② 가운데 아래"
},
"1-30": {
"30": {
"path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!=180])",
"path2": null,
"searchValue": null,
@@ -302,8 +305,10 @@
"points": 2,
"category": "줄간격",
"item": "문제 1 줄간격 180% 설정"
}
},
"2-01": {
"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,
@@ -312,7 +317,7 @@
"category": "쪽 테두리",
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
},
"2-02": {
"2": {
"path": "count(//SECTION)>1",
"path2": null,
"searchValue": null,
@@ -321,7 +326,7 @@
"category": "다단",
"item": "① 구역나누기"
},
"2-03": {
"3": {
"path": "//COLDEF/@Count>1",
"path2": null,
"searchValue": null,
@@ -330,7 +335,7 @@
"category": "다단",
"item": "② 다단 2단"
},
"2-04": {
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "비만과 비만치료",
@@ -339,7 +344,7 @@
"category": "글상자",
"item": "문구 (비만과 비만치료)/① 크기-너비 (70mm)"
},
"2-05": {
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "비만과 비만치료",
@@ -348,7 +353,7 @@
"category": "글상자",
"item": "문구 (비만과 비만치료)/② 크기-높이 (12mm)"
},
"2-06": {
"6": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
"path2": null,
"searchValue": "비만과 비만치료",
@@ -357,7 +362,7 @@
"category": "글상자",
"item": "문구 (비만과 비만치료)/③ 테두리 (이중실선(1.00mm))"
},
"2-07": {
"7": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio",
"path2": null,
"searchValue": "비만과 비만치료",
@@ -366,7 +371,7 @@
"category": "글상자",
"item": "문구 (비만과 비만치료)/④ 글상자 모서리 (둥근 모양)"
},
"2-08": {
"8": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "비만과 비만치료",
@@ -375,7 +380,7 @@
"category": "글상자",
"item": "문구 (비만과 비만치료)/⑤ 채우기 : 색상(RGB:233,174,43)"
},
"2-09": {
"9": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "비만과 비만치료",
@@ -384,7 +389,7 @@
"category": "글상자",
"item": "문구 (비만과 비만치료)/⑥ 글상자 위치 (글자처럼 취급)"
},
"2-10": {
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"path2": null,
"searchValue": "비만과 비만치료",
@@ -393,7 +398,7 @@
"category": "글상자",
"item": "문구 (비만과 비만치료)/⑦ 글상자 정렬 (가운데 정렬)"
},
"2-11": {
"11": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "비만과 비만치료",
@@ -402,7 +407,7 @@
"category": "글상자",
"item": "문구 (비만과 비만치료)/⑧ 글씨체 (맑은 고딕)"
},
"2-12": {
"12": {
"path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2300')",
"path2": null,
"searchValue": "비만과 비만치료",
@@ -411,7 +416,7 @@
"category": "글상자",
"item": "문구 (비만과 비만치료)/⑨ 글씨크기 (23pt)"
},
"2-13": {
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
"path2": null,
"searchValue": "비만과 비만치료",
@@ -420,7 +425,7 @@
"category": "글상자",
"item": "문구 (비만과 비만치료)/⑩ 정렬 (가운데 정렬)"
},
"2-14": {
"14": {
"path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
"path2": null,
"searchValue": "원본 그림의 이름: 그림",
@@ -429,7 +434,7 @@
"category": "그림삽입",
"item": "① 파일명 \"그림B.jpg\" 삽입"
},
"2-15": {
"15": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": null,
@@ -438,7 +443,7 @@
"category": "그림삽입",
"item": "② 크기-너비 (85mm)"
},
"2-16": {
"16": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": null,
@@ -447,7 +452,7 @@
"category": "그림삽입",
"item": "③ 크기-높이 (40mm)"
},
"2-17": {
"17": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
"path2": null,
"searchValue": null,
@@ -456,7 +461,7 @@
"category": "그림삽입",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"2-18": {
"18": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
"path2": null,
"searchValue": null,
@@ -465,7 +470,7 @@
"category": "그림삽입",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23mm)"
},
"2-19": {
"19": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "1. 비만",
@@ -474,7 +479,7 @@
"category": "속성",
"item": "문구① (1. 비만)/① 글씨체 (바탕체)"
},
"2-20": {
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "1. 비만",
@@ -483,7 +488,7 @@
"category": "속성",
"item": "문구① (1. 비만)/② 크기 (12pt)"
},
"2-21": {
"21": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "1. 비만",
@@ -492,7 +497,7 @@
"category": "속성",
"item": "문구① (1. 비만)/③ 진하게"
},
"2-22": {
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "2. 비만치료",
@@ -501,7 +506,7 @@
"category": "속성",
"item": "문구② (2. 비만치료)/① 글씨체 (바탕체)"
},
"2-23": {
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2. 비만치료",
@@ -510,7 +515,7 @@
"category": "속성",
"item": "문구② (2. 비만치료)/② 크기 (12pt)"
},
"2-24": {
"24": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "2. 비만치료",
@@ -519,8 +524,8 @@
"category": "속성",
"item": "문구② (2. 비만치료)/③ 진하게"
},
"2-25": {
"path":"boolean(//CHAR[contains(text(),'비만 약물치료')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)",
"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,
@@ -528,7 +533,7 @@
"category": "각주",
"item": "문구 (비만 약물치료)/① 각주 설정 및 문구 입력"
},
"2-26": {
"26": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "비약물로 어려운 체질량지수 25 이상인 경우 시행",
@@ -537,7 +542,7 @@
"category": "각주",
"item": "문구 (비만 약물치료)/② 글씨체 (돋움)"
},
"2-27": {
"27": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "비약물로 어려운 체질량지수 25 이상인 경우 시행",
@@ -546,16 +551,16 @@
"category": "각주",
"item": "문구 (비만 약물치료)/③ 크기 (9pt)"
},
"2-28": {
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"path2": null,
"searchValue":"비약물로 어려운 체질량지수 25 이상인 경우 시행",
"searchValue": "비약물로 어려운 체질량지수 25 이상인 경우 시행",
"value": "LatinSmall",
"points": 2,
"category": "각주",
"item": "문구 (비만 약물치료)/④ 각주 번호모양"
},
"2-29": {
"29": {
"path": "boolean(//CHAR[contains(text(),'Obesity')])",
"path2": null,
"searchValue": null,
@@ -564,7 +569,7 @@
"category": "영단어",
"item": "Obesity/영단어 미입력, 대소문자/오타 시 전체 감점"
},
"2-30": {
"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,
@@ -573,7 +578,7 @@
"category": "한자",
"item": "① 비만(肥滿), ② 복부(腹部), ③대사(代謝), ④ 특정(特定), ⑤ 축적(特定)"
},
"2-31": {
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'정의다른')])",
"path2": null,
"searchValue": null,
@@ -582,7 +587,7 @@
"category": "편집",
"item": "문구 (…비만 측정을 다른 방법으로는…)/\"을\" → \"의\" 글자바꿈"
},
"2-32": {
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'거나복부')])",
"path2": null,
"searchValue": null,
@@ -591,7 +596,7 @@
"category": "편집",
"item": "문구 (…허리둘레를 복부(腹部)지방 측정하거나 전산화…)/\"복부지방\" / \"측정하거나\" 순서바꿈"
},
"2-33": {
"33": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "성별 비만 인구수",
@@ -600,7 +605,7 @@
"category": "표",
"item": "제목 문구 (성별 비만 인구수)/① 글씨체 (궁서체)"
},
"2-34": {
"34": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "성별 비만 인구수",
@@ -609,7 +614,7 @@
"category": "표",
"item": "제목 문구 (성별 비만 인구수)/② 크기 (12pt)"
},
"2-35": {
"35": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "성별 비만 인구수",
@@ -618,7 +623,7 @@
"category": "표",
"item": "제목 문구 (성별 비만 인구수)/③ 진하게"
},
"2-36": {
"36": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "성별 비만 인구수",
@@ -627,7 +632,7 @@
"category": "표",
"item": "제목 문구 (성별 비만 인구수)/④ 정렬 (가운데 정렬)"
},
"2-37": {
"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,
@@ -636,7 +641,7 @@
"category": "표",
"item": "위쪽 제목 셀/① 색상(RGB:199,82,82)"
},
"2-38": {
"38": {
"path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": null,
@@ -645,7 +650,7 @@
"category": "표",
"item": "위쪽 제목 셀/② 진하게"
},
"2-39": {
"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,
@@ -654,7 +659,7 @@
"category": "표",
"item": "제목 셀 아래선/① 이중실선"
},
"2-40": {
"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,
@@ -663,7 +668,7 @@
"category": "표",
"item": "제목 셀 아래선/② 0.5mm"
},
"2-41": {
"41": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
@@ -672,7 +677,7 @@
"category": "표",
"item": "글자모양/① 글씨체 (한양중고딕)"
},
"2-42": {
"42": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": null,
@@ -681,7 +686,7 @@
"category": "표",
"item": "글자모양/② 크기 (10pt)"
},
"2-43": {
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align",
"path2": null,
"searchValue": null,
@@ -690,7 +695,7 @@
"category": "표",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"2-44": {
"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,
@@ -699,7 +704,7 @@
"category": "표",
"item": "블록계산식/합계"
},
"2-45": {
"45": {
"path": "boolean(//c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']])",
"path2": null,
"searchValue": null,
@@ -708,7 +713,7 @@
"category": "chart_xml",
"item": "① 종류 (묶은가로막대형)"
},
"2-46": {
"46": {
"path": "//c:valAx/c:majorTickMark/@val",
"path2": null,
"searchValue": null,
@@ -717,7 +722,7 @@
"category": "chart_xml",
"item": "② 값 축 주 눈금선"
},
"2-47": {
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
"path2": null,
"searchValue": null,
@@ -726,7 +731,7 @@
"category": "차트",
"item": "③ 크기-너비 (80mm)"
},
"2-48": {
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
"path2": null,
"searchValue": null,
@@ -735,7 +740,7 @@
"category": "차트",
"item": "④ 크기-높이 (90mm)"
},
"2-49": {
"49": {
"path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])",
"path2": null,
"searchValue": null,
@@ -744,7 +749,7 @@
"category": "chart_xml",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)"
},
"2-50": {
"50": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"path2": null,
"searchValue": "성별 비만 인구수",
@@ -753,7 +758,7 @@
"category": "chart_xml",
"item": "제목 문구 (성별 비만 인구수)/① 글씨체 (궁서)"
},
"2-51": {
"51": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"path2": null,
"searchValue": "성별 비만 인구수",
@@ -762,7 +767,7 @@
"category": "chart_xml",
"item": "제목 문구 (성별 비만 인구수)/② 크기 (13pt)"
},
"2-52": {
"52": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b",
"path2": null,
"searchValue": "성별 비만 인구수",
@@ -771,7 +776,7 @@
"category": "chart_xml",
"item": "제목 문구 (성별 비만 인구수)/③ 진하게"
},
"2-53": {
"53": {
"path": "//c:catAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
@@ -780,7 +785,7 @@
"category": "chart_xml",
"item": "X축/① 글꼴 (굴림)"
},
"2-54": {
"54": {
"path": "//c:catAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
@@ -789,7 +794,7 @@
"category": "chart_xml",
"item": "X축/② 크기 (9pt)"
},
"2-55": {
"55": {
"path": "//c:catAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
@@ -798,7 +803,7 @@
"category": "chart_xml",
"item": "X축/③ 기울임"
},
"2-56": {
"56": {
"path": "//c:valAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
@@ -807,7 +812,7 @@
"category": "chart_xml",
"item": "Y축/① 글꼴 (굴림)"
},
"2-57": {
"57": {
"path": "//c:valAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
@@ -816,7 +821,7 @@
"category": "chart_xml",
"item": "Y축/② 크기 (9pt)"
},
"2-58": {
"58": {
"path": "//c:valAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
@@ -825,7 +830,7 @@
"category": "chart_xml",
"item": "Y축/③ 기울임"
},
"2-59": {
"59": {
"path": "//c:legend//a:ea/@typeface",
"path2": null,
"searchValue": null,
@@ -834,7 +839,7 @@
"category": "chart_xml",
"item": "범례/① 글꼴 (굴림)"
},
"2-60": {
"60": {
"path": "//c:legend//a:defRPr/@sz",
"path2": null,
"searchValue": null,
@@ -843,7 +848,7 @@
"category": "chart_xml",
"item": "범례/② 크기 (9pt)"
},
"2-61": {
"61": {
"path": "//c:legend//a:defRPr/@i",
"path2": null,
"searchValue": null,
@@ -852,4 +857,5 @@
"category": "chart_xml",
"item": "범례/③ 기울임"
}
}
}

View File

@@ -1,12 +1,13 @@
{
"0-0": {
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"0-1": {
"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,
@@ -15,7 +16,7 @@
"category": "용지설정",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"0-2": {
"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,
@@ -24,7 +25,7 @@
"category": "기본설정",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"0-3": {
"3": {
"path": "",
"path2": null,
"searchValue": null,
@@ -32,8 +33,10 @@
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1-1": {
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"path2": null,
"searchValue": "한옥마을사생대회안내",
@@ -42,7 +45,7 @@
"category": "글맵시",
"item": "문구 (한옥마을사생대회안내)/① 글씨체 (궁서)"
},
"1-2": {
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "한옥마을사생대회안내",
@@ -51,7 +54,7 @@
"category": "글맵시",
"item": "문구 (한옥마을사생대회안내)/② 채우기 : 색상(RGB:100,170,92)"
},
"1-3": {
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "한옥마을사생대회안내",
@@ -60,7 +63,7 @@
"category": "글맵시",
"item": "문구 (한옥마을사생대회안내)/③ 크기-너비 (100mm)"
},
"1-4": {
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "한옥마을사생대회안내",
@@ -69,7 +72,7 @@
"category": "글맵시",
"item": "문구 (한옥마을사생대회안내)/④ 크기-높이 (20mm)"
},
"1-5": {
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "한옥마을사생대회안내",
@@ -78,7 +81,7 @@
"category": "글맵시",
"item": "문구 (한옥마을사생대회안내)/⑤ 위치 (글자처럼 취급)"
},
"1-6": {
"6": {
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "한옥마을사생대회안내",
@@ -87,7 +90,7 @@
"category": "글맵시",
"item": "문구 (한옥마을사생대회안내)/⑥ 정렬 (가운데 정렬)"
},
"1-7": {
"7": {
"path": "boolean(//TEXTART[@Text='{searchValue}'])",
"path2": null,
"searchValue": "한옥마을사생대회안내",
@@ -96,7 +99,7 @@
"category": "글맵시",
"item": "문구 (한옥마을사생대회안내)/⑦ 글맵시모양 (육안확인)"
},
"1-8": {
"8": {
"path": "boolean(//RECTANGLE[.//CHAR[text()='자']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])",
"path2": null,
"searchValue": null,
@@ -105,7 +108,7 @@
"category": "문단첫글자장식",
"item": "자/① 모양 (2줄)"
},
"1-9": {
"9": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='자']]/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
@@ -114,7 +117,7 @@
"category": "문단첫글자장식",
"item": "자/② 글씨체 (맑은 고딕)"
},
"1-10": {
"10": {
"path": "//RECTANGLE[.//CHAR[text()='자']]//WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": null,
@@ -123,7 +126,7 @@
"category": "문단첫글자장식",
"item": "자/③ 면색 : 색상(RGB:53,135,145)"
},
"1-11": {
"11": {
"path": "//RECTANGLE[.//CHAR[text()='자']]//OUTSIDEMARGIN/@Right",
"path2": null,
"searchValue": null,
@@ -132,7 +135,7 @@
"category": "문단첫글자장식",
"item": "자/④ 본문과의 간격 : 3.0mm"
},
"1-12": {
"12": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])",
"path2": null,
"searchValue": "한옥에 대한 체험과 교육이 준비된 사생대회",
@@ -141,7 +144,7 @@
"category": "글꼴 속성",
"item": "문구 (한옥에 대한 체험과 교육이 준비된 사생대회)/① 진하게"
},
"1-13": {
"13": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])",
"path2": null,
"searchValue": "한옥에 대한 체험과 교육이 준비된 사생대회",
@@ -150,7 +153,7 @@
"category": "글꼴 속성",
"item": "문구 (한옥에 대한 체험과 교육이 준비된 사생대회)/② 밑줄"
},
"1-14": {
"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,
@@ -159,7 +162,7 @@
"category": "특수문자",
"item": "① ■, ② ■, ③ ※"
},
"1-15": {
"15": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "■ 행사안내 ■",
@@ -168,7 +171,7 @@
"category": "글꼴 속성",
"item": "문구 (■ 행사안내 ■)/① 글씨체 (돋움)"
},
"1-16": {
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "■ 행사안내 ■",
@@ -177,7 +180,7 @@
"category": "글꼴 속성",
"item": "문구 (■ 행사안내 ■)/② 정렬 (가운데 정렬)"
},
"1-17": {
"17": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
"path2": null,
"searchValue": "홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수",
@@ -186,7 +189,7 @@
"category": "글꼴 속성",
"item": "문구 (홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수)/① 기울임"
},
"1-18": {
"18": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])",
"path2": null,
"searchValue": "홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수",
@@ -195,7 +198,7 @@
"category": "글꼴 속성",
"item": "문구 (홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수)/② 밑줄"
},
"1-19": {
"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": "기타사항",
@@ -204,7 +207,7 @@
"category": "문단모양",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15pt), 내어쓰기 (12pt)"
},
"1-20": {
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2025. 03. 22.",
@@ -213,7 +216,7 @@
"category": "글꼴 속성",
"item": "문구 (2025. 03. 22.)/① 크기 (13pt)"
},
"1-21": {
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "2025. 03. 22.",
@@ -222,7 +225,7 @@
"category": "글꼴 속성",
"item": "문구 (2025. 03. 22.)/② 정렬 (가운데 정렬)"
},
"1-22": {
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "한국고건축협회",
@@ -231,7 +234,7 @@
"category": "글꼴 속성",
"item": "문구 (한국고건축협회)/① 글씨체 (궁서)"
},
"1-23": {
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "한국고건축협회",
@@ -240,7 +243,7 @@
"category": "글꼴 속성",
"item": "문구 (한국고건축협회)/② 크기 (24pt)"
},
"1-24": {
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "한국고건축협회",
@@ -249,7 +252,7 @@
"category": "글꼴 속성",
"item": "문구 (한국고건축협회)/③ 정렬 (가운데 정렬)"
},
"1-25": {
"25": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "DIAT",
@@ -258,7 +261,7 @@
"category": "머리말",
"item": "문구 (DIAT)/① 글꼴 (굴림)"
},
"1-26": {
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "DIAT",
@@ -267,7 +270,7 @@
"category": "머리말",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"1-27": {
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "DIAT",
@@ -276,7 +279,7 @@
"category": "머리말",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"1-28": {
"28": {
"path": "//PAGENUM/@FormatType",
"path2": null,
"searchValue": null,
@@ -285,7 +288,7 @@
"category": "쪽번호",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)"
},
"1-29": {
"29": {
"path": "//PAGENUM/@Pos",
"path2": null,
"searchValue": null,
@@ -294,7 +297,7 @@
"category": "쪽번호",
"item": "② 가운데 아래"
},
"1-30": {
"30": {
"path": "not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])",
"path2": null,
"searchValue": null,
@@ -302,8 +305,10 @@
"points": 2,
"category": "줄간격",
"item": "문제 1 줄간격 180% 설정"
}
},
"2-01": {
"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,
@@ -312,7 +317,7 @@
"category": "쪽 테두리",
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
},
"2-02": {
"2": {
"path": "count(//SECTION)>1",
"path2": null,
"searchValue": null,
@@ -321,7 +326,7 @@
"category": "다단",
"item": "① 구역나누기"
},
"2-03": {
"3": {
"path": "//COLDEF/@Count>1",
"path2": null,
"searchValue": null,
@@ -330,7 +335,7 @@
"category": "다단",
"item": "② 다단 2단"
},
"2-04": {
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "한옥의 형태와 구조",
@@ -339,7 +344,7 @@
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/① 크기-너비 (70mm)"
},
"2-05": {
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "한옥의 형태와 구조",
@@ -348,7 +353,7 @@
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/② 크기-높이 (12mm)"
},
"2-06": {
"6": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
"path2": null,
"searchValue": "한옥의 형태와 구조",
@@ -357,7 +362,7 @@
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/③ 테두리 (이중실선(1.00mm))"
},
"2-07": {
"7": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio",
"path2": null,
"searchValue": "한옥의 형태와 구조",
@@ -366,7 +371,7 @@
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/④ 글상자 모서리 (둥근 모양)"
},
"2-08": {
"8": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "한옥의 형태와 구조",
@@ -375,7 +380,7 @@
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/⑤ 채우기 : 색상(RGB:227,220,193)"
},
"2-09": {
"9": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "한옥의 형태와 구조",
@@ -384,7 +389,7 @@
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/⑥ 글상자 위치 (글자처럼 취급)"
},
"2-10": {
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"path2": null,
"searchValue": "한옥의 형태와 구조",
@@ -393,7 +398,7 @@
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/⑦ 글상자 정렬 (가운데 정렬)"
},
"2-11": {
"11": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "한옥의 형태와 구조",
@@ -402,7 +407,7 @@
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/⑧ 글씨체 (견고딕)"
},
"2-12": {
"12": {
"path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')",
"path2": null,
"searchValue": "한옥의 형태와 구조",
@@ -411,7 +416,7 @@
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/⑨ 글씨크기 (20pt)"
},
"2-13": {
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
"path2": null,
"searchValue": "한옥의 형태와 구조",
@@ -420,7 +425,7 @@
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/⑩ 정렬 (가운데 정렬)"
},
"2-14": {
"14": {
"path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
"path2": null,
"searchValue": "원본 그림의 이름: 그림",
@@ -429,7 +434,7 @@
"category": "그림삽입",
"item": "① 파일명 \"그림C.jpg\" 삽입"
},
"2-15": {
"15": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": null,
@@ -438,7 +443,7 @@
"category": "그림삽입",
"item": "② 크기-너비 (85mm)"
},
"2-16": {
"16": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": null,
@@ -447,7 +452,7 @@
"category": "그림삽입",
"item": "③ 크기-높이 (40mm)"
},
"2-17": {
"17": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
"path2": null,
"searchValue": null,
@@ -456,7 +461,7 @@
"category": "그림삽입",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"2-18": {
"18": {
"path": "//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
"path2": null,
"searchValue": null,
@@ -465,7 +470,7 @@
"category": "그림삽입",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22mm)"
},
"2-19": {
"19": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "1. 한옥",
@@ -474,7 +479,7 @@
"category": "속성",
"item": "문구① (1. 한옥)/① 글씨체 (돋움)"
},
"2-20": {
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "1. 한옥",
@@ -483,7 +488,7 @@
"category": "속성",
"item": "문구① (1. 한옥)/② 크기 (12pt)"
},
"2-21": {
"21": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "1. 한옥",
@@ -492,7 +497,7 @@
"category": "속성",
"item": "문구① (1. 한옥)/③ 진하게"
},
"2-22": {
"22": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "2. 한옥의 형태와 구조",
@@ -501,7 +506,7 @@
"category": "속성",
"item": "문구② (2. 한옥의 형태와 구조)/① 글씨체 (돋움)"
},
"2-23": {
"23": {
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "2. 한옥의 형태와 구조",
@@ -510,7 +515,7 @@
"category": "속성",
"item": "문구② (2. 한옥의 형태와 구조)/② 크기 (12pt)"
},
"2-24": {
"24": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "2. 한옥의 형태와 구조",
@@ -519,8 +524,8 @@
"category": "속성",
"item": "문구② (2. 한옥의 형태와 구조)/③ 진하게"
},
"2-25": {
"path":"boolean(//CHAR[contains(text(),'기초')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)",
"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,
@@ -528,7 +533,7 @@
"category": "각주",
"item": "문구 (기초)/① 각주 설정 및 문구 입력"
},
"2-26": {
"26": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "기둥의 침하를 방지하기 위한 지반의 보강 및 개량",
@@ -537,7 +542,7 @@
"category": "각주",
"item": "문구 (기초)/② 글씨체 (중고딕)"
},
"2-27": {
"27": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "기둥의 침하를 방지하기 위한 지반의 보강 및 개량",
@@ -546,7 +551,7 @@
"category": "각주",
"item": "문구 (기초)/③ 크기 (9pt)"
},
"2-28": {
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"path2": null,
"searchValue": " 기둥의 침하를 방지하기 위한 지반의 보강 및 개량",
@@ -555,7 +560,7 @@
"category": "각주",
"item": "문구 (기초)/④ 각주 번호모양"
},
"2-29": {
"29": {
"path": "boolean(//CHAR[contains(text(),'cornerstone')])",
"path2": null,
"searchValue": null,
@@ -564,7 +569,7 @@
"category": "",
"item": "cornerstone/영단어 미입력, 대소문자/오타 시 전체 감점"
},
"2-30": {
"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,
@@ -573,7 +578,7 @@
"category": "한자",
"item": "① 한옥(韓屋), ② 사계절(四季節), ③거주(居住), ④ 구조(構造), ⑤ 골격(骨格)"
},
"2-31": {
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'철의추운')])",
"path2": null,
"searchValue": null,
@@ -582,7 +587,7 @@
"category": "편집",
"item": "문구 (…더운 날씨와 겨울철이 추운…)/\"이\" → \"의\" 글자바꿈"
},
"2-32": {
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'돌과마루')])",
"path2": null,
"searchValue": null,
@@ -591,7 +596,7 @@
"category": "편집",
"item": "문구 (…대비해 마루를 온돌과 갖고…)/\"마루를\" / \"온돌과\" 순서바꿈"
},
"2-33": {
"33": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": "교육기관별 참가인원",
@@ -600,7 +605,7 @@
"category": "표",
"item": "제목 문구 (교육기관별 참가인원)/① 글씨체 (궁서)"
},
"2-34": {
"34": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "교육기관별 참가인원",
@@ -609,7 +614,7 @@
"category": "표",
"item": "제목 문구 (교육기관별 참가인원)/② 크기 (12pt)"
},
"2-35": {
"35": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": "교육기관별 참가인원",
@@ -618,7 +623,7 @@
"category": "표",
"item": "제목 문구 (교육기관별 참가인원)/③ 진하게"
},
"2-36": {
"36": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "교육기관별 참가인원",
@@ -627,7 +632,7 @@
"category": "표",
"item": "제목 문구 (교육기관별 참가인원)/④ 정렬 (가운데 정렬)"
},
"2-37": {
"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,
@@ -636,7 +641,7 @@
"category": "표",
"item": "위쪽 제목 셀/① 색상(RGB:125,75,238)"
},
"2-38": {
"38": {
"path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
"path2": null,
"searchValue": null,
@@ -645,7 +650,7 @@
"category": "표",
"item": "위쪽 제목 셀/② 진하게"
},
"2-39": {
"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,
@@ -654,7 +659,7 @@
"category": "표",
"item": "제목 셀 아래선/① 이중실선"
},
"2-40": {
"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,
@@ -663,7 +668,7 @@
"category": "표",
"item": "제목 셀 아래선/② 0.5mm"
},
"2-41": {
"41": {
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"path2": null,
"searchValue": null,
@@ -672,7 +677,7 @@
"category": "표",
"item": "글자모양/① 글씨체 (굴림)"
},
"2-42": {
"42": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": null,
@@ -681,7 +686,7 @@
"category": "표",
"item": "글자모양/② 크기 (10pt)"
},
"2-43": {
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align",
"path2": null,
"searchValue": null,
@@ -690,7 +695,7 @@
"category": "표",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"2-44": {
"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,
@@ -699,7 +704,7 @@
"category": "표",
"item": "블록계산식/합계"
},
"2-45": {
"45": {
"path": "//c:lineChart/c:grouping/@val='standard'",
"path2": null,
"searchValue": null,
@@ -708,7 +713,7 @@
"category": "chart_xml",
"item": "① 종류 (꺾은선형)"
},
"2-46": {
"46": {
"path": "//c:valAx/c:majorTickMark/@val",
"path2": null,
"searchValue": null,
@@ -717,7 +722,7 @@
"category": "chart_xml",
"item": "② 값 축 주 눈금선"
},
"2-47": {
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
"path2": null,
"searchValue": null,
@@ -726,7 +731,7 @@
"category": "차트",
"item": "③ 크기-너비 (80mm)"
},
"2-48": {
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
"path2": null,
"searchValue": null,
@@ -735,7 +740,7 @@
"category": "차트",
"item": "④ 크기-높이 (90mm)"
},
"2-49": {
"49": {
"path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])",
"path2": null,
"searchValue": null,
@@ -744,7 +749,7 @@
"category": "chart_xml",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)"
},
"2-50": {
"50": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"path2": null,
"searchValue": "교육기관별 참가인원",
@@ -753,7 +758,7 @@
"category": "chart_xml",
"item": "제목 문구 (교육기관별 참가인원)/① 글씨체 (굴림체)"
},
"2-51": {
"51": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"path2": null,
"searchValue": "교육기관별 참가인원",
@@ -762,7 +767,7 @@
"category": "chart_xml",
"item": "제목 문구 (교육기관별 참가인원)/② 크기 (13pt)"
},
"2-52": {
"52": {
"path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b",
"path2": null,
"searchValue": "교육기관별 참가인원",
@@ -771,7 +776,7 @@
"category": "chart_xml",
"item": "제목 문구 (교육기관별 참가인원)/③ 진하게"
},
"2-53": {
"53": {
"path": "//c:catAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
@@ -780,7 +785,7 @@
"category": "chart_xml",
"item": "X축/① 글꼴 (굴림)"
},
"2-54": {
"54": {
"path": "//c:catAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
@@ -789,7 +794,7 @@
"category": "chart_xml",
"item": "X축/② 크기 (9pt)"
},
"2-55": {
"55": {
"path": "//c:catAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
@@ -798,7 +803,7 @@
"category": "chart_xml",
"item": "X축/③ 기울임"
},
"2-56": {
"56": {
"path": "//c:valAx//a:ea/@typeface",
"path2": null,
"searchValue": null,
@@ -807,7 +812,7 @@
"category": "chart_xml",
"item": "Y축/① 글꼴 (굴림)"
},
"2-57": {
"57": {
"path": "//c:valAx//a:defRPr/@sz",
"path2": null,
"searchValue": null,
@@ -816,7 +821,7 @@
"category": "chart_xml",
"item": "Y축/② 크기 (9pt)"
},
"2-58": {
"58": {
"path": "//c:valAx//a:defRPr/@i",
"path2": null,
"searchValue": null,
@@ -825,7 +830,7 @@
"category": "chart_xml",
"item": "Y축/③ 기울임"
},
"2-59": {
"59": {
"path": "//c:legend//a:ea/@typeface",
"path2": null,
"searchValue": null,
@@ -834,7 +839,7 @@
"category": "chart_xml",
"item": "범례/① 글꼴 (굴림)"
},
"2-60": {
"60": {
"path": "//c:legend//a:defRPr/@sz",
"path2": null,
"searchValue": null,
@@ -843,7 +848,7 @@
"category": "chart_xml",
"item": "범례/② 크기 (9pt)"
},
"2-61": {
"61": {
"path": "//c:legend//a:defRPr/@i",
"path2": null,
"searchValue": null,
@@ -852,4 +857,5 @@
"category": "chart_xml",
"item": "범례/③ 기울임"
}
}
}

567
diwScoring.py Normal file
View File

@@ -0,0 +1,567 @@
import tkinter as tk
from tkinter import filedialog, messagebox
from datetime import datetime
import difflib
import json
from pathlib import Path
import os
from lxml import etree as ET
import re
from difflib import SequenceMatcher
import pandas as pd
import base64
# from xpathSearch import XMLPathHandler
class XMLScorer:
# 채점 기준 경로 초기화
def __init__(self, scoring_criteria_path):
# 채점 기준 로드
self.scoring_criteria = self._load_scoring_criteria(scoring_criteria_path)
def set_typo_score(self, score):
self.typo_score = score
def get_typo_score(self):
return self.typo_score
# 채점 기준파일 로드(JSON 파일)
def _load_scoring_criteria(self, file_path):
with open(file_path, 'r', encoding='utf-8') as f:
return json.load(f)
# XML 파일에서 element의 값을 찾아 반환
def query_xml(self, root, *args):
first_xpath = args[0]
second_xpath = args[1]
points = args[2]
category = args[3]
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 None
# 하나의 XML 파일 채점
def _score_xml_file(self, xml_file, chart_xml):
try:
tree = ET.parse(xml_file)
root = tree.getroot()
# 네임스페이스 정의
namespaces = {
'a': 'http://schemas.openxmlformats.org/drawingml/2006/main',
'c': 'http://schemas.openxmlformats.org/drawingml/2006/chart'
}
# 차트 XML 파일이 없는 경우 0점 채점을 위헤 빈 XML 생성
if chart_xml is None:
chart_tree = ET.fromstring('<xml></xml>')
else:
chart_tree = ET.fromstring(chart_xml)
# 결과값을 Dictionary로 저장
results = {
'filename': os.path.basename(xml_file),
'score_results': [],
'total_score': 0,
'partial_scores': []
}
print(f"File name: {results['filename']}")
total_score = 0
for section_id, section in self.scoring_criteria.items():
partial_score = 0
for criterion_id, criterion in section.items():
id = criterion_id
xpath = criterion['path'] if 'path' in criterion else None
xpath2 = criterion['path2'] if 'path2' in criterion else None
search_value = criterion['searchValue'] if 'searchValue' in criterion else None
right_answer = criterion['value'] if 'value' in criterion else None
points = criterion['points'] if 'points' in criterion else None
category = criterion['category']
item = criterion['item']
similar_text = None
# chart xml 파일에서 채점하는 경우
if "chart_xml" in category:
if search_value is not None:
similar_text = self.find_similar_text(chart_tree, search_value)
if similar_text is None:
xpath = xpath.replace('{searchValue}', search_value)
else:
xpath = xpath.replace('{searchValue}', similar_text)
result = self.chart_query_xml(chart_tree, xpath, namespaces)
# 그 외의 hml 파일에서 채점하는 경우
else:
if search_value is not None:
similar_text = self.find_similar_text(root, search_value)
if similar_text is None:
xpath = xpath.replace('{searchValue}', search_value)
else:
xpath = xpath.replace('{searchValue}', similar_text)
result = self.query_xml(root, xpath, xpath2, points, category)
# [ boolean 타입 ]
# 1. 이텔릭체, 굵게, 밑줄 등 효과가 적용 여부에 따라
# [ITALIC] [BOLD] [UNDERLINE] 태그가 있거나 없을 수 있으므로
# 존재 유무에 따라 True, False로 판단
# 2. 두 가지 이상의 조건을 모두 만족해야 하는 경우 and 연산자로 연결되어
# 반환값 True/False로 판단
# [ float 타입 ]
# 1. 부분점수의 합산으로 반환되는 경우 float 타입으로 반환
if type(result) is not list:
if type(result) is float and (result > points):
actual_answer = float(points)
else:
actual_answer = result
else:
if type(right_answer) is int:
actual_answer = int(result[0])
else:
actual_answer = result[0]
if "오타감점" in category:
points = self.get_typo_score()
scoring = {
'section': section_id,
'id': id,
'category': category, # 채점 분류
'item': item, # 채점 항목
'right_answer': right_answer, # 정답
'actual_answer': actual_answer, # 실제 작성 답안
'points': points,
'deductions': [] # 각 기준별 감점 내역
}
# 점수 차감 조건
# 1. 정답이 실수형으로 반환받은 경우는 채점항목의 부분점수 합산 결과이므로
# 반환받은 값 그대로를 점수로 사용
# 2. 정답이 정수형(사이즈 비교)의 경우 오차범위를 넘는다면 감점
# 3. 그 외의 경우 정답과 실제 작성 답안이 다른 경우 점수 차감
if type(actual_answer) is float:
scoring['points'] = actual_answer
elif type(actual_answer) is int:
# 오차범위 3 이상이면 감점
if abs(actual_answer - right_answer) > 3:
scoring['points'] -= points
else:
# right_answer(JSON파일 내 valuer값) null일 경우 점수감점 없이 진행
if right_answer != actual_answer:
scoring['points'] -= points
results['score_results'].append(scoring)
total_score += scoring['points']
partial_score += scoring['points']
print(f'scoring: {scoring}')
results['partial_scores'].append({
'section': section_id,
'score': partial_score
})
results['total_score'] = total_score
return results
except ET.ParseError as e:
return {
'filename': os.path.basename(xml_file),
'error': f"XML 파싱 오류: {str(e)}",
'total_score': 0
}
def binary_to_chartxml(self, xml_path):
tree = ET.parse(xml_path)
root = tree.getroot()
binary_data = root.xpath('//BINDATA[@Id=//BINITEM[@Format="OLE"]/@BinData]/text()')
if not binary_data:
return None
binary_data = binary_data[0].encode('utf-8')
# <BINDATA ...> 태그와 그 내부 내용을 삭제합니다.
encoded_data = re.sub(b'<BINDATA.*?>', b'', binary_data)
encoded_data = encoded_data.replace(b'</BINDATA>', b'')
encoded_data = encoded_data.replace(b'\r\n', b'')
# base64 디코딩을 수행합니다.
decoded_data = base64.b64decode(encoded_data+b'==')
# 디코딩된 데이터 내용 중 xml 형식만 추출할 때 <c:chartSpace>, </c:chartSpace> 사이의 데이터만 추출.
start = decoded_data.find(b'<?xml')
print(start)
end = decoded_data.find(b'</c:chartSpace>')
print(end)
xml_data = decoded_data[start:end+len(b'</c:chartSpace>')]
# xml 데이터가 없는 경우 None을 반환합니다.
if -1 in [start, end]:
return None
# 디코딩된 데이터를 파일로 저장합니다.
base_filename = os.path.splitext(xml_path)[0]
new_filename = f'{base_filename}.xml'
with open(new_filename, 'wb') as file:
file.write(xml_data)
return xml_data
def typo_check(self, correct_answer_file, user_answer_file):
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')
# 결과 저장할 리스트
results = []
for user_answer_file in xml_files:
result = {}
chart_xml = self.binary_to_chartxml(user_answer_file)
result['typo'] = self.typo_check(correct_answer_file, user_answer_file)
result['score'] = self._score_xml_file(user_answer_file, chart_xml)
# result['score']['score_results'][2]['points'] = result['typo'][0]
results.append(result)
return results
def parse_filename(self, filename):
if isinstance(filename, dict):
filename = filename.get('파일명', '')
match = re.match(r'.*-(\d+)-(.+)\.hml', filename)
if match:
number = match.group(1)
name = match.group(2)
return number, name
return None, None
def export_to_excel(self, results, output_path=None):
if output_path is None:
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") #연월일_시분초
# timestamp = datetime.now().strftime("%Y%m%d") #연월일
output_path = f"scoring_results_{timestamp}.xlsx"
summary_data = []
detail_data = []
typo_data = []
for temp in results:
# 요약 정보
result = temp['score']
summary_row = {
'파일명': result['filename'],
'총점': result.get('total_score', 0)
}
if 'error' in result:
summary_row['오류'] = result['error']
summary_data.append(summary_row)
# 상세 정보
if 'score_results' in result:
filename = {'파일명': result['filename']}
number, name = self.parse_filename(filename)
if (number or name) is None:
detail_row = {'채점항목': result['filename'] }
else:
detail_row = {'채점항목':f"{number}-{name}"}
section_num = None
row_index = []
for i, score_result in enumerate(result['score_results']):
current_section = score_result['section']
if section_num is None:
section_num = current_section
# 다음 섹션(문제0 => 문제1)로 넘어갔을 경우 or 마지막 문제일 경우
if current_section != section_num:
# 이전 섹션의 부분합을 출력
detail_row[f'문제{section_num}'] = result['partial_scores'][int(section_num)]['score']
row_index.append(f'문제{section_num}')
section_num = current_section
detail_row[f'{i+1}'] = score_result['points']
row_index.append(score_result['id'])
# 마지막 섹션(문제2)부분합 점수를 출력
if i == len(result['score_results']) - 1:
detail_row[f'문제{current_section}'] = result['partial_scores'][int(current_section)]['score']
row_index.append(f'문제{current_section}')
detail_row['총점'] = result.get('total_score', 0)
row_index.append('총점')
detail_data.append(detail_row)
summary_df = pd.DataFrame(summary_data)
detail_df = pd.DataFrame(detail_data).transpose()
detail_df.columns = detail_df.iloc[0]
detail_df = detail_df[1:]
detail_df.index = row_index
# detail_df = pd.DataFrame(detail_data)
for temp in results:
result = temp['typo']
typo_data.append(result)
typo_df = pd.DataFrame(typo_data).transpose()
# detail_df = pd.DataFrame(detail_data)
# ExcelWriter 객체 생성
with pd.ExcelWriter(output_path, engine='openpyxl') as writer:
summary_df.to_excel(writer, sheet_name='채점결과요약', index=False)
detail_df.to_excel(writer, sheet_name='채점상세내역', index=True)
typo_df.to_excel(writer, sheet_name='오타내역', index=False)
# 열 너비 자동 조정
# for sheet_name in writer.sheets:
# worksheet = writer.sheets[sheet_name]
# for column_cells in worksheet.columns:
# max_length = 0
# column = column_cells[0].column_letter # 열의 문자
# for cell in column_cells:
# try:
# if cell.value:
# max_length = max(max_length, len(str(cell.value)))
# except:
# pass
# adjusted_width = (max_length + 2)
# worksheet.column_dimensions[column].width = adjusted_width
return output_path
def main():
# 시험회차 및 유형
exam_round = '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}.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'
# 채점 클래스 초기화
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()

Binary file not shown.

Binary file not shown.

View File

@@ -308,29 +308,29 @@ class XMLScorer:
return xml_data
def typo_check(self, xml_path_origin, xml_path):
tree = ET.parse(xml_path)
root = tree.getroot()
tree_origin = ET.parse(xml_path_origin)
root_origin = tree_origin.getroot()
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로 바이너리 부분추출
input_text = root.xpath('//CHAR//text()[not(ancestor::HEADER) and not(ancestor::TABLE)]')
table_text = root.xpath('//TABLE//CHAR//text()')
input_text += table_text
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
input_text_origin = root_origin.xpath('//CHAR//text()[not(ancestor::HEADER) and not(ancestor::TABLE)]')
table_text_origin = root_origin.xpath('//TABLE//CHAR//text()')
input_text_origin += table_text_origin
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
# 각 요소에서 공백 제거
input_text = [text.replace(' ', '') for text in input_text]
input_text_origin = [text.replace(' ', '') for text in input_text_origin]
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., -)
input_text = [re.sub(r'\d+\.\s*|-', '', text) for text in input_text]
input_text_origin = [re.sub(r'\d+\.\s*|-', '', text) for text in input_text_origin]
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]
ignore_word = self.scoring_criteria["2-29"]['path'].split("'")[1]
print(f"ignore_word: {ignore_word}")
@@ -338,21 +338,21 @@ class XMLScorer:
# 오타와 누락의 경우만 판단하면 정상작동하지만
# 추가 된 단어의 경우를 채점기준에 추가하면 정확하게 채점 되지 않을 수 있음
# [정답] Hybrid [실제작성]
input_text = [text.replace(ignore_word, '') for text in input_text]
input_text_origin = [text.replace(ignore_word, '') for text in input_text_origin]
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]
# 리스트를 하나의 문자열로 변경
input_text_str = ''.join(input_text)
input_text_origin_str = ''.join(input_text_origin)
user_input_text_str = ''.join(user_input_text)
currect_input_text_str = ''.join(correct_input_text)
print("input_text as string:")
print(input_text_str)
print("\ninput_text_origin as string:")
print(input_text_origin_str)
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(input_text_origin_str, input_text_str)
diff = difflib.ndiff(currect_input_text_str, user_input_text_str)
diff_list = list(diff)
# 차이점을 정리하여 result_diff에 저장
@@ -412,18 +412,18 @@ class XMLScorer:
return result_diff
# XML 파일 채점
def score_directory(self, xml_directory, answer_path):
def score_directory(self, xml_directory, correct_answer_file):
# xml 파일 불러오기
xml_files = Path(xml_directory).glob('*.hml')
# 결과 저장할 리스트
results = []
for xml_file in xml_files:
for user_answer_file in xml_files:
result = {}
chart_xml = self.binary_to_chartxml(xml_file)
result['typo'] = self.typo_check(answer_path, xml_file)
result['score'] = self._score_xml_file(xml_file, chart_xml)
chart_xml = self.binary_to_chartxml(user_answer_file)
result['typo'] = self.typo_check(correct_answer_file, user_answer_file)
result['score'] = self._score_xml_file(user_answer_file, chart_xml)
# result['score']['score_results'][2]['points'] = result['typo'][0]
results.append(result)
return results
@@ -559,7 +559,7 @@ def main():
# 오탈자 체크를 위한 정답 파일 경로 (형식:DIW_2503A.hml)
answer_path = f'./output/{exam_type}/DIW/DIW_{exam_round}{exam_type}.hml'
correct_answer_file = f'./output/{exam_type}/DIW/DIW_{exam_round}{exam_type}.hml'
# 엑셀 파일명 (비어있으면 자동생성)
timestamp = datetime.now().strftime("%y%m%d")
@@ -569,7 +569,7 @@ def main():
scorer = XMLScorer(scoring_criteria_path)
# 폴더 내 모든 xml 파일 채점
results = scorer.score_directory(xml_directory, answer_path)
results = scorer.score_directory(xml_directory, correct_answer_file)
# 채점 결과 엑셀로 저장
output_excel_paths.append(scorer.export_to_excel(results, output_path))

View File

@@ -0,0 +1,855 @@
{
"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": "범례/③ 기울임"
}
}

View File

@@ -0,0 +1,855 @@
{
"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": "건강100세프로젝트행사",
"value": "궁서",
"points": 1,
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/① 글씨체 (궁서)"
},
"1-2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "건강100세프로젝트행사",
"value": "3644265",
"points": 2,
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/② 채우기 : 색상(RGB:105,155,55)"
},
"1-3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"path2": null,
"searchValue": "건강100세프로젝트행사",
"value": 34015,
"points": 2,
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/③ 크기-너비 (120mm)"
},
"1-4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"path2": null,
"searchValue": "건강100세프로젝트행사",
"value": 5669,
"points": 2,
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/④ 크기-높이 (20mm)"
},
"1-5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"path2": null,
"searchValue": "건강100세프로젝트행사",
"value": "true",
"points": 2,
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/⑤ 위치 (글자처럼 취급)"
},
"1-6": {
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"path2": null,
"searchValue": "건강100세프로젝트행사",
"value": "Center",
"points": 2,
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/⑥ 정렬 (가운데 정렬)"
},
"1-7": {
"path": "boolean(//TEXTART[@Text='{searchValue}'])",
"path2": null,
"searchValue": "건강100세프로젝트행사",
"value": true,
"points": 2,
"category": "글맵시",
"item": "문구 (건강100세프로젝트행사)/⑦ 글맵시모양 (육안확인)"
},
"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": "10966730",
"points": 2,
"category": "문단첫글자장식",
"item": "인/③ 면색 : 색상(RGB:202,86,167)"
},
"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][BOLD])",
"path2": null,
"searchValue": "2023년 경제협력개발기구 보건통계 기준 한국의 기대수명은 83.6년",
"value": true,
"points": 2,
"category": "글꼴 속성",
"item": "문구 (2023년 경제협력개발기구 보건통계 기준 한국의 기대수명은 83.6년)/① 진하게"
},
"1-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년)/② 밑줄"
},
"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. 30.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr)",
"value": true,
"points": 1,
"category": "글꼴 속성",
"item": "문구 (2025. 03. 30.(일) 18:00까지 온라인으로 등록(http://www.ihd.or.kr))/① 진하게"
},
"1-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))/② 기울임"
},
"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": 3402,
"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": 20,
"points": 2,
"category": "글상자",
"item": "문구 (비만과 비만치료)/④ 글상자 모서리 (둥근 모양)"
},
"2-08": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "비만과 비만치료",
"value": "2862825",
"points": 2,
"category": "글상자",
"item": "문구 (비만과 비만치료)/⑤ 채우기 : 색상(RGB:233,174,43)"
},
"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='2300')",
"path2": null,
"searchValue": "비만과 비만치료",
"value": true,
"points": 1,
"category": "글상자",
"item": "문구 (비만과 비만치료)/⑨ 글씨크기 (23pt)"
},
"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": "① 파일명 \"그림B.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": 6520,
"points": 2,
"category": "그림삽입",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23mm)"
},
"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": "비약물로 어려운 체질량지수 25 이상인 경우 시행",
"value": "돋움",
"points": 1,
"category": "각주",
"item": "문구 (비만 약물치료)/② 글씨체 (돋움)"
},
"2-27": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"path2": null,
"searchValue": "비약물로 어려운 체질량지수 25 이상인 경우 시행",
"value": 900,
"points": 1,
"category": "각주",
"item": "문구 (비만 약물치료)/③ 크기 (9pt)"
},
"2-28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"path2": null,
"searchValue":"비약물로 어려운 체질량지수 25 이상인 경우 시행",
"value": "LatinSmall",
"points": 2,
"category": "각주",
"item": "문구 (비만 약물치료)/④ 각주 번호모양"
},
"2-29": {
"path": "boolean(//CHAR[contains(text(),'Obesity')])",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "영단어",
"item": "Obesity/영단어 미입력, 대소문자/오타 시 전체 감점"
},
"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": "5395143",
"points": 2,
"category": "표",
"item": "위쪽 제목 셀/① 색상(RGB:199,82,82)"
},
"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) = '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": "블록계산식/합계"
},
"2-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": "① 종류 (묶은가로막대형)"
},
"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": 25512,
"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": "범례/③ 기울임"
}
}

View File

@@ -0,0 +1,855 @@
{
"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": "6072932",
"points": 2,
"category": "글맵시",
"item": "문구 (한옥마을사생대회안내)/② 채우기 : 색상(RGB:100,170,92)"
},
"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": "9537333",
"points": 2,
"category": "문단첫글자장식",
"item": "자/③ 면색 : 색상(RGB:53,135,145)"
},
"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][BOLD])",
"path2": null,
"searchValue": "한옥에 대한 체험과 교육이 준비된 사생대회",
"value": true,
"points": 2,
"category": "글꼴 속성",
"item": "문구 (한옥에 대한 체험과 교육이 준비된 사생대회)/① 진하게"
},
"1-13": {
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])",
"path2": null,
"searchValue": "한옥에 대한 체험과 교육이 준비된 사생대회",
"value": true,
"points": 2,
"category": "글꼴 속성",
"item": "문구 (한옥에 대한 체험과 교육이 준비된 사생대회)/② 밑줄"
},
"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][ITALIC])",
"path2": null,
"searchValue": "홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수",
"value": true,
"points": 1,
"category": "글꼴 속성",
"item": "문구 (홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수)/① 기울임"
},
"1-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)에서 개별 신청, 선착순 접수)/② 밑줄"
},
"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": "HangulSyllable",
"points": 2,
"category": "쪽번호",
"item": "① 쪽 번호 매기기 (가,나,다 순으로)"
},
"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": 20,
"points": 2,
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/④ 글상자 모서리 (둥근 모양)"
},
"2-08": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
"path2": null,
"searchValue": "한옥의 형태와 구조",
"value": "12704995",
"points": 2,
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/⑤ 채우기 : 색상(RGB:227,220,193)"
},
"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='2000')",
"path2": null,
"searchValue": "한옥의 형태와 구조",
"value": true,
"points": 1,
"category": "글상자",
"item": "문구 (한옥의 형태와 구조)/⑨ 글씨크기 (20pt)"
},
"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": "① 파일명 \"그림C.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": "CircledDigit",
"points": 2,
"category": "각주",
"item": "문구 (기초)/④ 각주 번호모양"
},
"2-29": {
"path": "boolean(//CHAR[contains(text(),'cornerstone')])",
"path2": null,
"searchValue": null,
"value": true,
"points": 3,
"category": "",
"item": "cornerstone/영단어 미입력, 대소문자/오타 시 전체 감점"
},
"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": "15616893",
"points": 2,
"category": "표",
"item": "위쪽 제목 셀/① 색상(RGB:125,75,238)"
},
"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) = '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": "블록계산식/합계"
},
"2-45": {
"path": "//c:lineChart/c:grouping/@val='standard'",
"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": "범례/③ 기울임"
}
}