2506회 정기 채점기준표 업데이트

This commit is contained in:
2025-07-02 17:02:50 +09:00
parent a0de6cf10b
commit b6a2d1af88
18 changed files with 17998 additions and 406 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -366,14 +366,16 @@
"item": "문구 (자원순환)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "자원순환",
"value": ["DoubleSlim", "283"],
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "DoubleAnswer",
"category": "LineShape",
"item": "문구 (자원순환)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt 입력"
"desc": "1mm = 283pt value['Width']에 pt 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",

View File

@@ -366,14 +366,16 @@
"item": "문구 (동물등록제)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "동물등록제",
"value": ["DoubleSlim", "283"],
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "DoubleAnswer",
"category": "LineShape",
"item": "문구 (동물등록제)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt 입력"
"desc": "1mm = 283pt value['Width']에 pt 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",

View File

@@ -310,7 +310,8 @@
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
@@ -367,14 +368,16 @@
"item": "문구 (인공지능의 영향)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "인공지능의 영향",
"value": ["DoubleSlim", "283"],
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "DoubleAnswer",
"category": "LineShape",
"item": "문구 (인공지능의 영향)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt 입력"
"desc": "1mm = 283pt value['Width']에 pt 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",

View File

@@ -46,65 +46,65 @@
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "한국골프박람회",
"value": "돋움체",
"searchValue": "태국문화체험페스티벌안내",
"value": "궁서",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국골프박람회)/① 글씨체 (돋움체)"
"item": "문구 (태국문화체험페스티벌안내)/① 글씨체 (궁서)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "한국골프박람회",
"value": "49,95,151",
"searchValue": "태국문화체험페스티벌안내",
"value": "79,156,22",
"points": 2,
"category": "Color",
"item": "문구 (한국골프박람회)/② 채우기 : 색상(RGB:49,95,151)"
"item": "문구 (태국문화체험페스티벌안내)/② 채우기 : 색상(RGB:79,156,22)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "한국골프박람회",
"value": "100",
"searchValue": "태국문화체험페스티벌안내",
"value": "130",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한국골프박람회)/③ 크기-너비 (110 mm)"
"item": "문구 (태국문화체험페스티벌안내)/③ 크기-너비 (130 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "한국골프박람회",
"searchValue": "태국문화체험페스티벌안내",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한국골프박람회)/④ 크기-높이 (20mm)"
"item": "문구 (태국문화체험페스티벌안내)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "한국골프박람회",
"searchValue": "태국문화체험페스티벌안내",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한국골프박람회)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (태국문화체험페스티벌안내)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "한국골프박람회",
"searchValue": "태국문화체험페스티벌안내",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한국골프박람회)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (태국문화체험페스티벌안내)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "한국골프박람회",
"searchValue": "태국문화체험페스티벌안내",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (한국골프박람회)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (태국문화체험페스티벌안내)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -112,68 +112,68 @@
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "/① 모양 (2줄)"
"item": "/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "굴림체",
"searchValue": "",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "/② 글씨체 (굴림체)"
"item": "/② 글씨체 (맑은 고딕)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "236,162,142",
"searchValue": "",
"value": "244,212,29",
"points": 2,
"category": "Color",
"item": "/③ 면색 : 색상(RGB:236,162,142)"
"item": "/③ 면색 : 색상(RGB:244,212,29)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "/④ 본문과의 간격 : 3.0mm"
"item": "/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "ITALIC",
"searchValue": "태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!",
"value": "BOLD",
"points": 2,
"category": "FontAttribute",
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/① ITALIC"
"item": "문구 (태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "UNDERLINE",
"searchValue": "태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/② UNDERLINE"
"item": "문구 (태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "궁서",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 ( 행사안내 )/① 글씨체 (궁서)"
"item": "문구 ( 행사안내 )/① 글씨체 (돋움)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
@@ -181,31 +181,31 @@
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"value": "BOLD",
"searchValue": "오전/오후 총 2회",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/① BOLD"
"item": "문구 (오전/오후 총 2회)/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"searchValue": "오전/오후 총 2회",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/② UNDERLINE"
"item": "문구 (오전/오후 총 2회)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 10,
"Left": 15,
"Indent": 12
},
"points": 2,
@@ -215,52 +215,52 @@
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 06. 18.",
"value": "1400",
"searchValue": "2025. 06. 28.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 18.)/① 크기 (1400)",
"item": "문구 (2025. 06. 28.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 06. 18.",
"searchValue": "2025. 06. 28.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 18.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 06. 28.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "한국골프연맹",
"value": "궁서체",
"searchValue": "광진다문화체험관",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 (한국골프연맹)/① 글씨체 (궁서체)"
"item": "문구 (광진다문화체험관)/① 글씨체 (돋움체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "한국골프연맹",
"searchValue": "광진다문화체험관",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국골프연맹)/② 크기 (2400)"
"item": "문구 (광진다문화체험관)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "한국골프연맹",
"searchValue": "광진다문화체험관",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국골프연맹)/③ 정렬 (가운데 정렬)"
"item": "문구 (광진다문화체험관)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움)"
"item": "문구 (DIAT)/① 글꼴 (굴림)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -280,10 +280,10 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "RomanCapital",
"value": "CircledDigit",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
"item": "① 쪽 번호 매기기 (①,②,③ 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
@@ -296,29 +296,31 @@
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"value": "BottomLeft",
"points": 2,
"category": "PageNumber",
"item": "오른쪽 아래",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "180",
"first_word": "",
"value": "200",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 180% 설정",
"item": "문제 1 줄간격 200% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
@@ -351,87 +353,89 @@
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "골프",
"value": "50",
"searchValue": "미소의 나라, 태국",
"value": "70",
"points": 2,
"category": "mmSize",
"item": "문구 (골프)/① 크기-너비 (50 mm)"
"item": "문구 (미소의 나라, 태국)/① 크기-너비 (70 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "골프",
"searchValue": "미소의 나라, 태국",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (골프)/② 크기-높이 (12 mm)"
"item": "문구 (미소의 나라, 태국)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "골프",
"value": ["DoubleSlim", "283"],
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "미소의 나라, 태국",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (골프)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt 입력"
"category": "LineShape",
"item": "문구 (미소의 나라, 태국)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "골프",
"value": "20",
"searchValue": "미소의 나라, 태국",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (골프)/④ 글상자 모서리 (둥근모양)",
"desc": "모서리 비율 50이면 반원 / 20이면 둥근모양"
"item": "문구 (미소의 나라, 태국)/④ 글상자 모서리 (직각)",
"desc": "모서리 비율 반원:50 / 둥근모양:20 / 직각:0"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "골프",
"value": "147,194,80",
"searchValue": "미소의 나라, 태국",
"value": "61,164,73",
"points": 2,
"category": "Color",
"item": "문구 (골프)/⑤ 채우기 : 색상(RGB:147,194,80)"
"item": "문구 (미소의 나라, 태국)/⑤ 채우기 : 색상(RGB:61,164,73)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "골프",
"searchValue": "미소의 나라, 태국",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (미소의 나라, 태국)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "골프",
"searchValue": "미소의 나라, 태국",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (미소의 나라, 태국)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "골프",
"value": "견고딕",
"searchValue": "미소의 나라, 태국",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 (골프)/⑧ 글씨체 (견고딕)"
"item": "문구 (미소의 나라, 태국)/⑧ 글씨체 (굴림체)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "골프",
"value": "2200",
"searchValue": "미소의 나라, 태국",
"value": "2000",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑨ 글씨크기 (2200)",
"item": "문구 (미소의 나라, 태국)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "골프",
"searchValue": "미소의 나라, 태국",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (미소의 나라, 태국)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
@@ -439,7 +443,7 @@
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입"
"item": "① 파일명 \"그림D.jpg\" 삽입"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
@@ -464,88 +468,88 @@
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"value": "22",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 골프란?",
"value": "굴림체",
"searchValue": "1. 태국의 환경",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구① (1. 골프란?)/① 글씨체 (굴림체)"
"item": "문구① (1. 태국의 환경)/① 글씨체 (돋움체)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 골프란?",
"searchValue": "1. 태국의 환경",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 골프란?)/② 크기 (12pt)"
"item": "문구① (1. 태국의 환경)/② 크기 (12pt)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 골프란?",
"searchValue": "1. 태국의 환경",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 골프란?)/③ 진하게"
"item": "문구① (1. 태국의 환경)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 국의 골프 역사",
"value": "굴림체",
"searchValue": "2. 국의 주요 도시",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구② (2. 국의 골프 역사)/① 글씨체 (굴림체)"
"item": "문구② (2. 국의 주요 도시)/① 글씨체 (돋움체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 국의 골프 역사",
"searchValue": "2. 국의 주요 도시",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 자원순환 실천 방법)/② 크기 (1200)"
"item": "문구② (2. 태국의 주요 도시)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 국의 골프 역사",
"searchValue": "2. 국의 주요 도시",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 국의 골프 역사)/③ 진하게"
"item": "문구② (2. 국의 주요 도시)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "전당",
"option": "카오소이",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (전당)/① 각주 설정 및 문구 입력"
"item": "문구 (카오소이)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "한 분야에서 뛰어난 활약을 보인 사람들을 기념하기 위해 설립된 박물관, 단체, 모임을 말한다.",
"value": "돋움체",
"searchValue": "커리와 면, 토핑으로 이루어진 태국의 전통 국수",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (전당)/② 글씨체 (돋움체)"
"item": "문구 (카오소이)/② 글씨체 (굴림)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "한 분야에서 뛰어난 활약을 보인 사람들을 기념하기 위해 설립된 박물관, 단체, 모임을 말한다.",
"searchValue": "커리와 면, 토핑으로 이루어진 태국의 전통 국수",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (전당)/③ 크기 (9pt)"
"item": "문구 (카오소이)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "한 분야에서 뛰어난 활약을 보인 사람들을 기념하기 위해 설립된 박물관, 단체, 모임을 말한다.",
"value": "LatinSmall",
"searchValue": "커리와 면, 토핑으로 이루어진 태국의 전통 국수",
"value": "DecagonCircle",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
@@ -561,85 +565,86 @@
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Fairway')])",
"ignoreWord": "Fairway",
"path": "boolean(//CHAR[contains(text(),'Temple')])",
"ignoreWord": "Temple",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Fairway/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Temple/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["승부", "勝負"],
["초목", "草木"],
["설치", "設置"],
["인정", "認定"],
["유학", "留學"]
["절벽", "絶壁"],
["산림", "山林"],
["서식", "棲息"],
["비옥", "肥沃"],
["매력", "魅力"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 승부(勝負), ② 초목(草木), ③ 설치(設置), ④ 인정(認定), ⑤ 유학(留學)"
"item": "① 절벽(絶壁), ② 산림(山林), ③ 서식(棲息), ④ 비옥(肥沃), ⑤ 매력(魅力)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이있는')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'대성기후')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…초목(草木)은 있는…) / 은 → 이 글자바꿈"
"item": "문구 (…따뜻한 열대강 기후를 가진…)>'강' → '성' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'초의프로')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'타낸표현')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…프로 골프 최초의 선수…)/프로 골프 / 최초의 순서바꿈"
"item": "문구 (…특성을 가장 잘 표현이기도 나타낸 하다…)>'표현이기도 / 나타낸' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "골프 관련 체육시설업 현황",
"value": "고딕",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (골프 관련 체육시설업 현황)/① 글씨체 (고딕)"
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/① 글씨체 (맑은 고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "골프 관련 체육시설업 현황",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/② 크기 (1200)"
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "골프 관련 체육시설업 현황",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (골프 관련 체육시설업 현황)/③ 진하게"
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "골프 관련 체육시설업 현황",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "233,174,61",
"value": "144,231,53",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:233,174,61)"
"item": "위쪽 제목 셀/① 색상(RGB:144,231,53)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -668,11 +673,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "굴림",
"value": "돋움",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (굴림)",
"item": "글자모양/① 글씨체 (돋움)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -680,7 +685,7 @@
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (10pt)"
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
@@ -700,11 +705,11 @@
},
"45": {
"chart_xpath": "",
"chart_type": "묶은로막대형",
"chart_type": "묶은로막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (묶은로막대형)",
"item": "① 종류 (묶은로막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
@@ -739,36 +744,36 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "골프 관련 체육시설업 현황",
"value": "궁서체",
"searchValue": "지역별 관광객 수",
"value": "돋움",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/① 글씨체 (궁서체)"
"item": "제목 문구 (지역별 관광객 수)/① 글씨체 (돋움)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "골프 관련 체육시설업 현황",
"searchValue": "지역별 관광객 수",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/② 크기 (1200)"
"item": "제목 문구 (지역별 관광객 수)/② 크기 (1200)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "골프 관련 체육시설업 현황",
"searchValue": "지역별 관광객 수",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/③ 진하게",
"item": "제목 문구 (지역별 관광객 수)/③ 진하게",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "돋움",
"value": "굴림",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움)"
"item": "X축/① 글꼴 (굴림)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -788,10 +793,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움",
"value": "굴림",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움)"
"item": "Y축/① 글꼴 (굴림)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -811,10 +816,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움",
"value": "굴림",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움)"
"item": "범례/① 글꼴 (굴림)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

View File

@@ -38,10 +38,16 @@ class XMLScorer:
# mm to pt
def convert_mm_to_pt(self, mm):
one_mm_per_pt = 2.83465
hwp_internal_conversion_method = 100
pt = math.trunc(mm * one_mm_per_pt * hwp_internal_conversion_method)
hwp_scale = 100
pt = math.trunc(mm * one_mm_per_pt * hwp_scale)
return pt
def convert_pt_to_mm(self, pt):
one_mm_per_pt = 2.83465
hwp_scale = 100
mm = round(pt / (one_mm_per_pt * hwp_scale), 1)
return mm
# 유사한 텍스트 찾기
def find_similar_text(self, root, target_text, xml_type, threshold=0.7):
"""
@@ -172,7 +178,7 @@ class XMLScorer:
# XML문서 페이지 파싱 전처리
pages = parse_pages_by_bookmark(root)
print("🚩Pages : ", pages)
# print("🚩Pages : ", pages)
# 네임스페이스 정의
namespaces = {
@@ -398,15 +404,21 @@ class XMLScorer:
if scoring['points'] > 0:
break
# 정답이 두개인 경우
elif (category or "") == "DoubleAnswer":
items1 = root.xpath(xpath) if xpath else []
items2 = root.xpath(xpath2) if xpath2 else []
# [2-6] 테두리 이중실선 1.00mm
elif (category or "") == "LineShape":
line_shapes = root.xpath(xpath) if xpath else []
user_answer = []
for item1, item2 in zip(items1, items2):
user_answer.append(item1)
user_answer.append(item2)
user_answer = {
'Style': None,
'Width': None
}
for line_shape in line_shapes:
style = line_shape.get("Style")
width = line_shape.get("Width")
user_answer['Style'] = style
user_answer['Width'] = width
self.evaluate_answer(scoring, user_answer, right_answer, points)
if scoring['points'] > 0:
@@ -526,7 +538,9 @@ class XMLScorer:
all_match = False
continue
user_answer = font_name[0].replace(" ", "") # 공백 제거
# 공백 제거
user_answer = font_name[0].replace(" ", "")
right_answer = right_answer.replace(" ","")
# 접두어 제거
if right_answer in ["견고딕", "중고딕"]:
@@ -1217,7 +1231,7 @@ def main():
'A',
'B',
'C',
# 'D',
'D',
]
test_mode = False

View File

@@ -1 +1 @@
[{"kind":2,"language":"xpath","value":"//a:t[text()='클라우드 보안투자']/ancestor::a:r//a:ea/@typeface"},{"kind":2,"language":"xpath","value":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕'"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"/HWPML/BODY/SECTION/P[19]"},{"kind":2,"language":"xpath","value":"//SECTION"},{"kind":2,"language":"xpath","value":"//P"},{"kind":2,"language":"xpath","value":"//P[.//FIELDBEGIN[@Type='Hyperlink'] and .//CHAR[contains(., 'http')]]"},{"kind":2,"language":"xpath","value":"//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true')]/@HorzOffset"},{"kind":2,"language":"xpath","value":"//P//COLDEF/@Count"},{"kind":2,"language":"xpath","value":"//P[.//BOOKMARK/@Name=\"Page_2_start\"]"}]
[{"kind":2,"language":"xpath","value":"//a:t[text()='클라우드 보안투자']/ancestor::a:r//a:ea/@typeface"},{"kind":2,"language":"xpath","value":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕'"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')"},{"kind":2,"language":"xpath","value":"//TEXT[CHAR[text()='태']]/@CharShape"},{"kind":2,"language":"xpath","value":"//SECTION"},{"kind":2,"language":"xpath","value":"//P"},{"kind":2,"language":"xpath","value":"//P[.//FIELDBEGIN[@Type='Hyperlink'] and .//CHAR[contains(., 'http')]]"},{"kind":2,"language":"xpath","value":"//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true')]/@HorzOffset"},{"kind":2,"language":"xpath","value":"//P//COLDEF/@Count"},{"kind":2,"language":"xpath","value":"//P[.//BOOKMARK/@Name=\"Page_2_start\"]"}]

File diff suppressed because one or more lines are too long

View File

@@ -305,7 +305,7 @@
"value": "BottomCenter",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"item": "오른쪽 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
@@ -315,7 +315,7 @@
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "180",
"first_word": "",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 180% 설정",
@@ -366,14 +366,16 @@
"item": "문구 (자원순환)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "자원순환",
"value": ["DoubleSlim", "283"],
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "DoubleAnswer",
"category": "LineShape",
"item": "문구 (자원순환)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt 입력"
"desc": "1mm = 283pt value['Width']에 pt 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
@@ -561,7 +563,6 @@
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"정답에 맞는 값 value에 입력": ""
}
},

View File

@@ -296,7 +296,6 @@
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
@@ -367,14 +366,16 @@
"item": "문구 (동물등록제)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "동물등록제",
"value": ["DoubleSlim", "283"],
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "DoubleAnswer",
"category": "LineShape",
"item": "문구 (동물등록제)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt 입력"
"desc": "1mm = 283pt value['Width']에 pt 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",

View File

@@ -310,7 +310,8 @@
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
@@ -367,14 +368,16 @@
"item": "문구 (인공지능의 영향)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "인공지능의 영향",
"value": ["DoubleSlim", "283"],
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "DoubleAnswer",
"category": "LineShape",
"item": "문구 (인공지능의 영향)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt 입력"
"desc": "1mm = 283pt value['Width']에 pt 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",

View File

@@ -46,65 +46,65 @@
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "한국골프박람회",
"value": "돋움체",
"searchValue": "태국문화체험페스티벌안내",
"value": "궁서",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국골프박람회)/① 글씨체 (돋움체)"
"item": "문구 (태국문화체험페스티벌안내)/① 글씨체 (궁서)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "한국골프박람회",
"value": "49,95,151",
"searchValue": "태국문화체험페스티벌안내",
"value": "79,156,22",
"points": 2,
"category": "Color",
"item": "문구 (한국골프박람회)/② 채우기 : 색상(RGB:49,95,151)"
"item": "문구 (태국문화체험페스티벌안내)/② 채우기 : 색상(RGB:79,156,22)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "한국골프박람회",
"value": "100",
"searchValue": "태국문화체험페스티벌안내",
"value": "130",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한국골프박람회)/③ 크기-너비 (110mm)"
"item": "문구 (태국문화체험페스티벌안내)/③ 크기-너비 (130 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "한국골프박람회",
"searchValue": "태국문화체험페스티벌안내",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (한국골프박람회)/④ 크기-높이 (20mm)"
"item": "문구 (태국문화체험페스티벌안내)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "한국골프박람회",
"searchValue": "태국문화체험페스티벌안내",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한국골프박람회)/⑤ 위치 (글자처럼 취급)"
"item": "문구 (태국문화체험페스티벌안내)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "한국골프박람회",
"searchValue": "태국문화체험페스티벌안내",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (한국골프박람회)/⑥ 정렬 (가운데 정렬)"
"item": "문구 (태국문화체험페스티벌안내)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "한국골프박람회",
"searchValue": "태국문화체험페스티벌안내",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (한국골프박람회)/⑦ 글맵시모양 (육안확인)"
"item": "문구 (태국문화체험페스티벌안내)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "",
"searchValue": "",
"value": {
"Height": 2800,
"Width": 2800
@@ -112,68 +112,68 @@
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "/① 모양 (2줄)"
"item": "/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "",
"value": "굴림체",
"searchValue": "",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "/② 글씨체 (굴림체)"
"item": "/② 글씨체 (맑은 고딕)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "",
"value": "236,162,142",
"searchValue": "",
"value": "244,212,29",
"points": 2,
"category": "Color",
"item": "/③ 면색 : 색상(RGB:236,162,142)"
"item": "/③ 면색 : 색상(RGB:244,212,29)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "",
"searchValue": "",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "/④ 본문과의 간격 : 3.0mm"
"item": "/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "ITALIC",
"searchValue": "태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!",
"value": "BOLD",
"points": 2,
"category": "FontAttribute",
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/① ITALIC"
"item": "문구 (태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온",
"value": "UNDERLINE",
"searchValue": "태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (그 시작부터 지금까지 줄곧 한국골프산업의 성장과 함께해 온)/② UNDERLINE"
"item": "문구 (태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"char1": "",
"char2": "",
"char1": "",
"char2": "",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① , ② , ③ ※"
"item": "① , ② , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "궁서",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 ( 행사안내 )/① 글씨체 (궁서)"
"item": "문구 ( 행사안내 )/① 글씨체 (돋움)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
@@ -181,31 +181,31 @@
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
"item": "문구 ( 행사안내 )/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"value": "BOLD",
"searchValue": "오전/오후 총 2회",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/① BOLD"
"item": "문구 (오전/오후 총 2회)/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨",
"searchValue": "오전/오후 총 2회",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (스크린 골프 체험 및 장타대회, 프로골퍼 원포인트 레슨)/② UNDERLINE"
"item": "문구 (오전/오후 총 2회)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 10,
"Left": 15,
"Indent": 12
},
"points": 2,
@@ -215,52 +215,52 @@
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 06. 18.",
"value": "1400",
"searchValue": "2025. 06. 28.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 18.)/① 크기 (14pt)",
"item": "문구 (2025. 06. 28.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 06. 18.",
"searchValue": "2025. 06. 28.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 18.)/② 정렬 (가운데 정렬)"
"item": "문구 (2025. 06. 28.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "한국골프연맹",
"value": "궁서체",
"searchValue": "광진다문화체험관",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 (한국골프연맹)/① 글씨체 (궁서체)"
"item": "문구 (광진다문화체험관)/① 글씨체 (돋움체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "한국골프연맹",
"searchValue": "광진다문화체험관",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국골프연맹)/② 크기 (2400)"
"item": "문구 (광진다문화체험관)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "한국골프연맹",
"searchValue": "광진다문화체험관",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (한국골프연맹)/③ 정렬 (가운데 정렬)"
"item": "문구 (광진다문화체험관)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "돋움",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (돋움)"
"item": "문구 (DIAT)/① 글꼴 (굴림)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
@@ -280,10 +280,10 @@
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "RomanCapital",
"value": "CircledDigit",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (A,B,C 순으로)",
"item": "① 쪽 번호 매기기 (①,②,③ 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
@@ -296,29 +296,31 @@
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"정답에 맞는 값 value에 입력": ""
"甲,乙,丙": "DecagonCircleHanja",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomCenter",
"value": "BottomLeft",
"points": 2,
"category": "PageNumber",
"item": "오른쪽 아래",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight"
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "180",
"first_word": "",
"value": "200",
"first_word": "",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 180% 설정",
"item": "문제 1 줄간격 200% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
@@ -351,90 +353,89 @@
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "골프",
"value": "50",
"searchValue": "미소의 나라, 태국",
"value": "70",
"points": 2,
"category": "mmSize",
"item": "문구 (골프)/① 크기-너비 (50 mm)"
"item": "문구 (미소의 나라, 태국)/① 크기-너비 (70 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "골프",
"searchValue": "미소의 나라, 태국",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (골프)/② 크기-높이 (12 mm)"
"item": "문구 (미소의 나라, 태국)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Style",
"path2": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE/@Width",
"searchValue": "골프",
"value": [
"DoubleSlim",
"283"
],
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "미소의 나라, 태국",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "DoubleAnswer",
"item": "문구 (골프)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value값은 283pt 입력"
"category": "LineShape",
"item": "문구 (미소의 나라, 태국)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "골프",
"value": "20",
"searchValue": "미소의 나라, 태국",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (골프)/④ 글상자 모서리 (둥근모양)",
"desc": "모서리 비율 50이면 반원 / 20이면 둥근모양"
"item": "문구 (미소의 나라, 태국)/④ 글상자 모서리 (직각)",
"desc": "모서리 비율 반원:50 / 둥근모양:20 / 직각:0"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "골프",
"value": "147,194,80",
"searchValue": "미소의 나라, 태국",
"value": "61,164,73",
"points": 2,
"category": "Color",
"item": "문구 (골프)/⑤ 채우기 : 색상(RGB:147,194,80)"
"item": "문구 (미소의 나라, 태국)/⑤ 채우기 : 색상(RGB:61,164,73)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "골프",
"searchValue": "미소의 나라, 태국",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑥ 글상자 위치 (글자처럼 취급)"
"item": "문구 (미소의 나라, 태국)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "골프",
"searchValue": "미소의 나라, 태국",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑦ 글상자 정렬 (가운데 정렬)"
"item": "문구 (미소의 나라, 태국)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "골프",
"value": "견고딕",
"searchValue": "미소의 나라, 태국",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 (골프)/⑧ 글씨체 (견고딕)"
"item": "문구 (미소의 나라, 태국)/⑧ 글씨체 (굴림체)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "골프",
"value": "2200",
"searchValue": "미소의 나라, 태국",
"value": "2000",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑨ 글씨크기 (2200)",
"item": "문구 (미소의 나라, 태국)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "골프",
"searchValue": "미소의 나라, 태국",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (골프)/⑩ 정렬 (가운데 정렬)"
"item": "문구 (미소의 나라, 태국)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
@@ -442,7 +443,7 @@
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림A.jpg\" 삽입"
"item": "① 파일명 \"그림D.jpg\" 삽입"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
@@ -467,88 +468,88 @@
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "24",
"value": "22",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)"
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 골프란?",
"value": "굴림체",
"searchValue": "1. 태국의 환경",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구① (1. 골프란?)/① 글씨체 (굴림체)"
"item": "문구① (1. 태국의 환경)/① 글씨체 (돋움체)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 골프란?",
"searchValue": "1. 태국의 환경",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 골프란?)/② 크기 (12pt)"
"item": "문구① (1. 태국의 환경)/② 크기 (12pt)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 골프란?",
"searchValue": "1. 태국의 환경",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 골프란?)/③ 진하게"
"item": "문구① (1. 태국의 환경)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 국의 골프 역사",
"value": "굴림체",
"searchValue": "2. 국의 주요 도시",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구② (2. 국의 골프 역사)/① 글씨체 (굴림체)"
"item": "문구② (2. 국의 주요 도시)/① 글씨체 (돋움체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 국의 골프 역사",
"searchValue": "2. 국의 주요 도시",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 국의 골프 역사)/② 크기 (12pt)"
"item": "문구② (2. 국의 주요 도시)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 국의 골프 역사",
"searchValue": "2. 국의 주요 도시",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 국의 골프 역사)/③ 진하게"
"item": "문구② (2. 국의 주요 도시)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "전당",
"option": "카오소이",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (전당)/① 각주 설정 및 문구 입력"
"item": "문구 (카오소이)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "한 분야에서 뛰어난 활약을 보인 사람들을 기념하기 위해 설립된 박물관, 단체, 모임을 말한다.",
"value": "돋움체",
"searchValue": "커리와 면, 토핑으로 이루어진 태국의 전통 국수",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (전당)/② 글씨체 (돋움체)"
"item": "문구 (카오소이)/② 글씨체 (굴림)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "한 분야에서 뛰어난 활약을 보인 사람들을 기념하기 위해 설립된 박물관, 단체, 모임을 말한다.",
"searchValue": "커리와 면, 토핑으로 이루어진 태국의 전통 국수",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (전당)/③ 크기 (9pt)"
"item": "문구 (카오소이)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "한 분야에서 뛰어난 활약을 보인 사람들을 기념하기 위해 설립된 박물관, 단체, 모임을 말한다.",
"value": "LatinSmall",
"searchValue": "커리와 면, 토핑으로 이루어진 태국의 전통 국수",
"value": "DecagonCircle",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
@@ -564,100 +565,86 @@
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Fairway')])",
"ignoreWord": "Fairway",
"path": "boolean(//CHAR[contains(text(),'Temple')])",
"ignoreWord": "Temple",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Fairway/영단어 미입력, 대소문자/오타 시 전체 감점",
"item": "Temple/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
[
"승부",
"勝負"
],
[
"초목",
"草木"
],
[
"설치",
"設置"
],
[
"인정",
"認定"
],
[
"유학",
"留學"
]
["절벽", "絶壁"],
["산림", "山林"],
["서식", "棲息"],
["비옥", "肥沃"],
["매력", "魅力"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 승부(勝負), ② 초목(草木), ③ 설치(設置), ④ 인정(認定), ⑤ 유학(留學)"
"item": "① 절벽(絶壁), ② 산림(山林), ③ 서식(棲息), ④ 비옥(肥沃), ⑤ 매력(魅力)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'이있는')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'대성기후')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…초목(草木)은 있는…) / 은 → 이 글자바꿈"
"item": "문구 (…따뜻한 열대강 기후를 가진…)>'강' → '성' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'초의프로')])",
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'타낸표현')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…프로 골프 최초의 선수…)/프로 골프 / 최초의 순서바꿈"
"item": "문구 (…특성을 가장 잘 표현이기도 나타낸 하다…)>'표현이기도 / 나타낸' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "골프 관련 체육시설업 현황",
"value": "고딕",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (골프 관련 체육시설업 현황)/① 글씨체 (고딕)"
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/① 글씨체 (맑은 고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "골프 관련 체육시설업 현황",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/② 크기 (12pt)"
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "골프 관련 체육시설업 현황",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (골프 관련 체육시설업 현황)/③ 진하게"
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "골프 관련 체육시설업 현황",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/④ 정렬 (가운데 정렬)"
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "233,174,61",
"value": "144,231,53",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:233,174,61)"
"item": "위쪽 제목 셀/① 색상(RGB:144,231,53)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
@@ -686,11 +673,11 @@
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "굴림",
"value": "돋움",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (굴림)",
"item": "글자모양/① 글씨체 (돋움)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
@@ -698,7 +685,7 @@
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (10pt)"
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
@@ -718,11 +705,11 @@
},
"45": {
"chart_xpath": "",
"chart_type": "묶은로막대형",
"chart_type": "묶은로막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (묶은로막대형)",
"item": "① 종류 (묶은로막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
@@ -757,36 +744,36 @@
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "골프 관련 체육시설업 현황",
"value": "궁서체",
"searchValue": "지역별 관광객 수",
"value": "돋움",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/① 글씨체 (궁서체)"
"item": "제목 문구 (지역별 관광객 수)/① 글씨체 (돋움)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "골프 관련 체육시설업 현황",
"searchValue": "지역별 관광객 수",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/② 크기 (1200)"
"item": "제목 문구 (지역별 관광객 수)/② 크기 (1200)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "골프 관련 체육시설업 현황",
"searchValue": "지역별 관광객 수",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (골프 관련 체육시설업 현황)/③ 진하게",
"item": "제목 문구 (지역별 관광객 수)/③ 진하게",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "돋움",
"value": "굴림",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (돋움)"
"item": "X축/① 글꼴 (굴림)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
@@ -806,10 +793,10 @@
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "돋움",
"value": "굴림",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (돋움)"
"item": "Y축/① 글꼴 (굴림)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
@@ -829,10 +816,10 @@
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "돋움",
"value": "굴림",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (돋움)"
"item": "범례/① 글꼴 (굴림)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",

View File

@@ -0,0 +1,841 @@
{
"0": {
"0": {
"path": "",
"path2": "",
"points": 0,
"category": "파일저장",
"item": "파일명 (수검번호.hwp/hwpx)"
},
"1": {
"path": "//PAGEMARGIN",
"value": {
"Top": 20,
"Bottom": 20,
"Left": 20,
"Right": 20,
"Header": 10,
"Footer": 10,
"Gutter": 0
},
"tolerance": 1,
"points": 4,
"category": "PageSetting",
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
},
"2": {
"path": "",
"value": {
"FontName": "바탕",
"FontSize": "1000",
"Alignment": "Justify",
"LineSpacing": "160"
},
"points": 4,
"category": "BasicSetting",
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
},
"3": {
"path": "",
"value": null,
"points": 40,
"category": "오타감점",
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
}
},
"1": {
"1": {
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
"searchValue": "태국문화체험페스티벌안내",
"value": "궁서",
"points": 1,
"category": "OneAnswer",
"item": "문구 (태국문화체험페스티벌안내)/① 글씨체 (궁서)"
},
"2": {
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
"searchValue": "태국문화체험페스티벌안내",
"value": "79,156,22",
"points": 2,
"category": "Color",
"item": "문구 (태국문화체험페스티벌안내)/② 채우기 : 색상(RGB:79,156,22)"
},
"3": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
"searchValue": "태국문화체험페스티벌안내",
"value": "130",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (태국문화체험페스티벌안내)/③ 크기-너비 (130 mm)"
},
"4": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
"searchValue": "태국문화체험페스티벌안내",
"value": "20",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "문구 (태국문화체험페스티벌안내)/④ 크기-높이 (20 mm)"
},
"5": {
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "태국문화체험페스티벌안내",
"value": "true",
"points": 2,
"category": "OneAnswer",
"item": "문구 (태국문화체험페스티벌안내)/⑤ 위치 (글자처럼 취급)"
},
"6": {
"path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "태국문화체험페스티벌안내",
"value": "Center",
"points": 2,
"category": "OneAnswer",
"item": "문구 (태국문화체험페스티벌안내)/⑥ 정렬 (가운데 정렬)"
},
"7": {
"path": "//TEXTART[@Text='{searchValue}']",
"searchValue": "태국문화체험페스티벌안내",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (태국문화체험페스티벌안내)/⑦ 글맵시모양 (육안확인)"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
"searchValue": "태",
"value": {
"Height": 2800,
"Width": 2800
},
"tolerance": 200,
"points": 1,
"category": "TwoLineSize",
"item": "태/① 모양 (2줄)"
},
"9": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "태",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "태/② 글씨체 (맑은 고딕)"
},
"10": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "태",
"value": "244,212,29",
"points": 2,
"category": "Color",
"item": "태/③ 면색 : 색상(RGB:244,212,29)"
},
"11": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
"searchValue": "태",
"value": "3.0",
"tolerance": 1,
"points": 2,
"category": "mmSize",
"item": "태/④ 본문과의 간격 : 3.0mm"
},
"12": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!",
"value": "BOLD",
"points": 2,
"category": "FontAttribute",
"item": "문구 (태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!)/① BOLD"
},
"13": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
"searchValue": "태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!",
"value": "ITALIC",
"points": 2,
"category": "FontAttribute",
"item": "문구 (태국의 아름다운 문화와 함께 잊지 못할 추억을 만들어보세요!)/② ITALIC"
},
"14": {
"path": "//CHAR[contains(text(),'{char1}')]",
"path2": "//CHAR[contains(text(),'{char2}')]",
"path3": "//CHAR[contains(text(),'{char3}')]",
"char1": "◇",
"char2": "◇",
"char3": "※",
"value": 3,
"points": 3,
"category": "SpecialChar",
"item": "① ◇ , ② ◇ , ③ ※"
},
"15": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "행사안내",
"value": "돋움",
"points": 1,
"category": "FontName",
"item": "문구 (◇ 행사안내 ◇)/① 글씨체 (돋움)"
},
"16": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "행사안내",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (◇ 행사안내 ◇)/② 정렬 (가운데 정렬)"
},
"17": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "오전/오후 총 2회",
"value": "ITALIC",
"points": 1,
"category": "FontAttribute",
"item": "문구 (오전/오후 총 2회)/① ITALIC"
},
"18": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]",
"searchValue": "오전/오후 총 2회",
"value": "UNDERLINE",
"points": 1,
"category": "FontAttribute",
"item": "문구 (오전/오후 총 2회)/② UNDERLINE"
},
"19": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN",
"searchValue": "기타사항",
"value": {
"Left": 15,
"Indent": 12
},
"points": 2,
"category": "ParaShape",
"item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10pt), 내어쓰기 (12pt)",
"desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력"
},
"20": {
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
"searchValue": "2025. 06. 28.",
"value": "1300",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 28.)/① 크기 (1300)",
"desc": "1pt당 100"
},
"21": {
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
"searchValue": "2025. 06. 28.",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (2025. 06. 28.)/② 정렬 (가운데 정렬)"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "광진다문화체험관",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구 (광진다문화체험관)/① 글씨체 (돋움체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "광진다문화체험관",
"value": "2400",
"points": 1,
"category": "OneAnswer",
"item": "문구 (광진다문화체험관)/② 크기 (2400)"
},
"24": {
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align",
"searchValue": "광진다문화체험관",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (광진다문화체험관)/③ 정렬 (가운데 정렬)"
},
"25": {
"path": "//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "DIAT",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (DIAT)/① 글꼴 (굴림)"
},
"26": {
"path": "//CHARSHAPE[@Id=//SECTION[1]//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "DIAT",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/② 크기 (9pt)"
},
"27": {
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
"searchValue": "DIAT",
"value": "Right",
"points": 1,
"category": "OneAnswer",
"item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)"
},
"28": {
"path": "//PAGENUM/@FormatType",
"value": "CircledDigit",
"points": 2,
"category": "PageNumber",
"item": "① 쪽 번호 매기기 (①,②,③ 순으로)",
"desc1": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"desc": "정답에 맞는 값 value에 입력"
},
"desc2": "1, 2페이지 모두 정답이어야 점수 부여"
},
"29": {
"path": "//PAGENUM/@Pos",
"value": "BottomLeft",
"points": 2,
"category": "PageNumber",
"item": "가운데 아래",
"desc": "1, 2페이지 모두 정답이어야 점수 부여",
"desc2": {
"가운데 아래": "BottomCenter",
"오른쪽 아래": "BottomRight",
"왼쪽 아래": "BottomLeft"
}
},
"30": {
"path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing",
"value": "200",
"first_word": "태",
"points": 2,
"category": "LineSpacing",
"item": "문제 1 줄간격 200% 설정",
"desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다."
}
},
"2": {
"1": {
"path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside",
"path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]",
"value": {
"header_inside": true,
"all_double_slim": true
},
"points": 4,
"category": "PageBorder",
"item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정"
},
"2": {
"path": "count(//SECTION)>1",
"value": true,
"points": 3,
"category": "Boolean",
"item": "① 구역나누기",
"desc": "섹션이 1개 이상이면 점수부여"
},
"3": {
"path": "TEXT/COLDEF/@Count",
"value": "2",
"points": 3,
"category": "TwoColumn",
"item": "② 다단 2단"
},
"4": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
"searchValue": "미소의 나라, 태국",
"value": "70",
"points": 2,
"category": "mmSize",
"item": "문구 (미소의 나라, 태국)/① 크기-너비 (70 mm)"
},
"5": {
"path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
"searchValue": "미소의 나라, 태국",
"value": "12",
"points": 2,
"category": "mmSize",
"item": "문구 (미소의 나라, 태국)/② 크기-높이 (12 mm)"
},
"6": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//LINESHAPE",
"searchValue": "미소의 나라, 태국",
"value": {
"Style": "DoubleSlim",
"Width": "283"
},
"points": 2,
"category": "LineShape",
"item": "문구 (미소의 나라, 태국)/③ 테두리 : 이중 실선(1.00mm)",
"desc": "1mm = 283pt value['Width']에 pt값 입력"
},
"7": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/@Ratio",
"searchValue": "미소의 나라, 태국",
"value": "50",
"points": 2,
"category": "OneAnswer",
"item": "문구 (미소의 나라, 태국)/④ 글상자 모서리 (직각)",
"desc": "모서리 비율 반원:50 / 둥근모양:20 / 직각:0"
},
"8": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
"searchValue": "미소의 나라, 태국",
"value": "61,164,73",
"points": 2,
"category": "Color",
"item": "문구 (미소의 나라, 태국)/⑤ 채우기 : 색상(RGB:61,164,73)"
},
"9": {
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/POSITION/@TreatAsChar",
"searchValue": "미소의 나라, 태국",
"value": "true",
"points": 1,
"category": "OneAnswer",
"item": "문구 (미소의 나라, 태국)/⑥ 글상자 위치 (글자처럼 취급)"
},
"10": {
"path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
"searchValue": "미소의 나라, 태국",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (미소의 나라, 태국)/⑦ 글상자 정렬 (가운데 정렬)"
},
"11": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "미소의 나라, 태국",
"value": "굴림체",
"points": 1,
"category": "FontName",
"item": "문구 (미소의 나라, 태국)/⑧ 글씨체 (굴림체)"
},
"12": {
"path": "//CHARSHAPE[@Id=//RECTANGLE//TEXT[./CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "미소의 나라, 태국",
"value": "2000",
"points": 1,
"category": "OneAnswer",
"item": "문구 (미소의 나라, 태국)/⑨ 글씨크기 (2000)",
"desc": "1pt당 100"
},
"13": {
"path": "//PARASHAPE[@Id=//RECTANGLE//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "미소의 나라, 태국",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "문구 (미소의 나라, 태국)/⑩ 정렬 (가운데 정렬)"
},
"14": {
"path": "boolean(//PICTURE//SHAPECOMMENT[contains(text(),'{searchValue}')])",
"searchValue": "원본 그림의 이름: 그림",
"value": true,
"points": 2,
"category": "Boolean",
"item": "① 파일명 \"그림D.jpg\" 삽입"
},
"15": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Width",
"value": "85",
"points": 2,
"category": "mmSize",
"item": "② 크기-너비 (85 mm)"
},
"16": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/SIZE/@Height",
"value": "40",
"points": 2,
"category": "mmSize",
"item": "③ 크기-높이 (40 mm)"
},
"17": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset",
"value": "0",
"points": 2,
"category": "mmSize",
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
},
"18": {
"path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset",
"value": "22",
"points": 2,
"category": "mmSize",
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)"
},
"19": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "1. 태국의 환경",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구① (1. 태국의 환경)/① 글씨체 (돋움체)"
},
"20": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "1. 태국의 환경",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구① (1. 태국의 환경)/② 크기 (12pt)"
},
"21": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "1. 태국의 환경",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구① (1. 태국의 환경)/③ 진하게"
},
"22": {
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
"searchValue": "2. 태국의 주요 도시",
"value": "돋움체",
"points": 1,
"category": "FontName",
"item": "문구② (2. 태국의 주요 도시)/① 글씨체 (돋움체)"
},
"23": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "2. 태국의 주요 도시",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "문구② (2. 태국의 주요 도시)/② 크기 (1200)"
},
"24": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "2. 태국의 주요 도시",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "문구② (2. 태국의 주요 도시)/③ 진하게"
},
"25": {
"path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)",
"path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)",
"option": "카오소이",
"value": true,
"points": 2,
"category": "Boolean",
"item": "문구 (카오소이)/① 각주 설정 및 문구 입력"
},
"26": {
"path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape",
"searchValue": "커리와 면, 토핑으로 이루어진 태국의 전통 국수",
"value": "굴림",
"points": 1,
"category": "FontName",
"item": "문구 (카오소이)/② 글씨체 (굴림)"
},
"27": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height",
"searchValue": "커리와 면, 토핑으로 이루어진 태국의 전통 국수",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "문구 (카오소이)/③ 크기 (9pt)"
},
"28": {
"path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type",
"searchValue": "커리와 면, 토핑으로 이루어진 태국의 전통 국수",
"value": "DecagonCircle",
"points": 2,
"category": "OneAnswer",
"item": "문구 (전당)/④ 각주 번호모양",
"desc": {
"가,나,다": "HangulSyllable",
"1,2,3": "Digit",
"갑,을,병": "DecagonCircle",
"A,B,C": "LatinCapital",
"a,b,c": "LatinSmall",
"①,②,③": "CircledDigit",
"一,二,三": "Ideograph",
"㉠,㉡,㉢": "CircledHangulJamo",
"ⓐ,ⓑ,ⓒ": "CircledLatinSmall",
"i,ii,iii": "RomanSmall",
"I,II,III": "RomanCapital",
"甲,乙,丙": "DecagonCircleHanja",
"정답에 맞는 값 value에 입력": ""
}
},
"29": {
"path": "boolean(//CHAR[contains(text(),'Temple')])",
"ignoreWord": "Temple",
"value": true,
"points": 3,
"category": "Boolean",
"item": "Temple/영단어 미입력, 대소문자/오타 시 전체 감점",
"desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요"
},
"30": {
"path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]",
"word": [
["절벽", "絶壁"],
["산림", "山林"],
["서식", "棲息"],
["비옥", "肥沃"],
["매력", "魅力"]
],
"value": 10,
"points": 10,
"category": "Hanja",
"item": "① 절벽(絶壁), ② 산림(山林), ③ 서식(棲息), ④ 비옥(肥沃), ⑤ 매력(魅力)"
},
"31": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'대성기후')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…따뜻한 열대강 기후를 가진…)>'강' → '성' 글자바꿈"
},
"32": {
"path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'타낸표현')])",
"value": true,
"points": 3,
"category": "Boolean",
"item": "문구 (…특성을 가장 잘 표현이기도 나타낸 하다…)>'표현이기도 / 나타낸' 순서바꿈"
},
"33": {
"path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "맑은 고딕",
"points": 1,
"category": "FontName",
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/① 글씨체 (맑은 고딕)"
},
"34": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/② 크기 (1200)"
},
"35": {
"path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/③ 진하게"
},
"36": {
"path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align",
"searchValue": "지역별 관광객 수(단위:만 명)",
"value": "Center",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 관광객 수(단위:만 명))/④ 정렬 (가운데 정렬)"
},
"37": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
"value": "144,231,53",
"points": 2,
"category": "Color",
"item": "위쪽 제목 셀/① 색상(RGB:144,231,53)"
},
"38": {
"path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]",
"value": "BOLD",
"points": 1,
"category": "FontAttribute",
"item": "위쪽 제목 셀/② 진하게",
"desc": "글자 속성이라 CELLZONE으로 적용 되지 않음"
},
"39": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type",
"value": "DoubleSlim",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/① 이중실선"
},
"40": {
"path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width",
"path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width",
"value": "0.5mm",
"points": 2,
"category": "TableAnswer",
"item": "제목 셀 아래선/② 0.5mm"
},
"41": {
"path": "//TABLE//TEXT/@CharShape",
"path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
"value": "돋움",
"points": 1,
"category": "TableFontName",
"category_tmp": "FontName",
"item": "글자모양/① 글씨체 (돋움)",
"desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경"
},
"42": {
"path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height",
"value": "1000",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/② 크기 (1000)"
},
"43": {
"path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align",
"value": "Center",
"points": 1,
"category": "TableAnswer",
"item": "글자모양/③ 정렬 (가운데 정렬)"
},
"44": {
"path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])",
"option": "SUM",
"value": true,
"points": 4,
"category": "Boolean",
"item": "블록 계산식/합계",
"desc": "option값에 합계는 SUM / 평균은 AVG"
},
"45": {
"chart_xpath": "",
"chart_type": "묶은세로막대형",
"value": true,
"points": 2,
"category": "ChartType",
"item": "① 종류 (묶은세로막대형)",
"desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)"
},
"46": {
"chart_xpath": "//c:valAx/c:majorTickMark/@val",
"value": "out",
"points": 2,
"category": "OneAnswer",
"item": "② 값 축 주 눈금선",
"desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다"
},
"47": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width",
"value": "80",
"points": 2,
"category": "mmSize",
"item": "③ 크기-너비 (80 mm)"
},
"48": {
"path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height",
"value": "90",
"points": 2,
"category": "mmSize",
"item": "④ 크기-높이 (90 mm)"
},
"49": {
"chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))",
"value": true,
"points": 2,
"category": "Boolean",
"item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)",
"desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리"
},
"50": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface",
"searchValue": "지역별 관광객 수",
"value": "돋움",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 관광객 수)/① 글씨체 (돋움)"
},
"51": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz",
"searchValue": "지역별 관광객 수",
"value": "1200",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 관광객 수)/② 크기 (1200)"
},
"52": {
"chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}",
"option": "b",
"searchValue": "지역별 관광객 수",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "제목 문구 (지역별 관광객 수)/③ 진하게",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"53": {
"chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/① 글꼴 (굴림)"
},
"54": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/② 크기 (9pt)"
},
"55": {
"chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "X축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"56": {
"chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface",
"value": "굴림",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/① 글꼴 (굴림)"
},
"57": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/② 크기 (9pt)"
},
"58": {
"chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "ChartOneAnswer",
"item": "Y축/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
},
"59": {
"chart_xpath": "//c:legend//a:ea/@typeface",
"value": "굴림",
"points": 1,
"category": "OneAnswer",
"item": "범례/① 글꼴 (굴림)"
},
"60": {
"chart_xpath": "//c:legend//a:defRPr/@sz",
"value": "900",
"points": 1,
"category": "OneAnswer",
"item": "범례/② 크기 (9pt)"
},
"61": {
"chart_xpath": "//c:legend//a:defRPr/@{option}",
"option": "i",
"value": "1",
"points": 1,
"category": "OneAnswer",
"item": "범례/③ 기울임",
"desc": "option값 - 기울임(Italic):i / 굵게(Bold):b"
}
}
}