01
제출·검증SUBMISSION
14편 전체 보기 →

C3R XML 등록 검사 항목(별표12)

스키마 검사를 통과한 파일도 등록 단계에서 반려될 수 있습니다. 등록할 때에는 스키마 검사와 별도로 별표12의 검사 항목을 함께 확인합니다.

스키마 검사와 별표12 검사의 범위

조달청 공사원가호환규정에 따른 파일 규격의 기본 검사는 배포 스키마(validationcheck.xsd)로 합니다. 다만 XML 스키마로는 표현할 수 없는 규칙이 있습니다. 같은 코드를 두 번 정의하지 않을 것, 구성 상세가 없는 일위대가에 금액만 산출하지 않을 것 같은 규칙은 스키마 문법으로 적을 수 없습니다.

이런 항목은 현행 규정서의 (별표12) 「설계내역서 데이터의 체크 항목」에 따로 정리되어 있습니다. 구판인 2011년 등록체크리스트는 서두에서, 이 문서가 스키마 규정 외에 파일 등록 시 시스템에서 체크하는 항목을 정리한 것이라고 밝히고 있습니다.

별표12는 스키마 1.0.3(2015년)부터 규정 본문에 포함되었습니다. 그 전에는 별도 문서로 배포되었으며, 검사 항목은 현행 별표12가 더 많습니다.

코드 검사 항목

코드의 최대 길이는 자원 종류마다 다릅니다.

구분코드 최대 길이
일위대가, 중기단가산출, 실적단가12자리
자재, 노무, 경비항목16자리
기계경비17자리

위 길이는 2011년 등록체크리스트(구판)에 적힌 값입니다. 현행 별표12는 「코드 최대 길이」를 검사한다고만 적고 수치를 따로 두지 않으므로, 현행 규정서의 코드 체계와 함께 확인해 주세요.

코드 길이와 함께 다음 두 항목을 검사합니다.

코드 중복
일위대가, 중기단가산출, 기계경비, 실적단가, 노무, 자재, 경비항목마다 코드 중복을 검사합니다. 한 일위대가 안에서 손료코드가 중복되는 경우도 따로 검사합니다.
RENT로 시작하는 코드 정의
구판 기준으로 손료코드는 RENT 뒤에 16자리를 붙인 형태입니다. 별표12는 손료코드와 비슷한 형태의 코드를 따로 정의한 경우를 검사합니다. 자재 코드에 RENT로 시작하는 사내 코드를 쓰고 있다면 이 항목에서 반려됩니다.

별표12의 검사 항목은 아니지만, 표준공사코드의 세부공종코드는 영문 대문자와 숫자로 이루어진 12자리입니다. 엑셀에서 옮겨 붙이는 과정에서 사내 구분 기호(|, -)나 한글이 코드에 섞이는 경우가 있으니 함께 확인해 주세요.

상세 없이 금액만 산출된 일위대가·기계경비

별표12는 일위대가상세 없이 금액이 산출된 일위대가와 기계경비상세 없이 금액이 산출된 기계경비를 따로 검사합니다.

다른 프로그램에서 내역만 가져오거나 발주처 자료의 금액만 옮겨 적으면 이런 상태가 됩니다. 작성 화면에서는 금액이 정상으로 보이므로 작성자가 알아차리기 어렵습니다. 이 경우 등록 단계에서 금액의 산출 근거가 없다는 이유로 반려됩니다.

손료 계산 오류

손료 계산에서는 계산 대상이 없는 경우, 자기 자신을 계산에 포함한 경우, A가 B를 참조하고 B가 다시 A를 참조하는 순환(계산 루핑)을 검사합니다.

이 가운데 순환은 작성자가 직접 찾기 어렵습니다. 두 단계의 순환은 쉽게 보이지만, 서너 단계를 거쳐 처음 항목으로 돌아오는 순환은 작성 화면에서 확인하기 어렵습니다.

중기단가산출식 검사 항목(22종)

별표12는 별표9 문법으로 작성한 산출식을 22종의 항목으로 검사합니다. 주요 항목을 성격별로 나누면 다음과 같습니다.

변수 선언과 이름
선언하지 않은 변수나 금액 변수를 사용한 경우, 같은 금액 변수를 두 번 선언한 경우, 변수 이름이 명명 규칙에 맞지 않는 경우입니다.
금액과 수량의 혼용
상수와 금액을 더하거나 뺀 경우, 금액으로 나눈 경우, 숫자를 금액 변수에 할당하거나 금액을 일반 수량 변수에 할당한 경우입니다. 규정은 금액과 수량을 서로 다른 형식으로 취급합니다.
소수처리
금액이나 금액 수식에 소수처리를 적용한 경우, 규정에 없는 소수처리 방법을 쓴 경우, 소수처리 구문의 결과를 잘못 할당한 경우입니다.
구문·연산자·함수
좌변할당 연산자를 두 번 이상 쓴 경우, 다중할당 구문 오류, 주석 처리 오류, 정의되지 않은 연산자나 함수를 쓴 경우, 함수의 인자 수나 형식이 맞지 않는 경우입니다.

시간당손료 산출식과 시간당노임 산출식은 쓸 수 있는 변수와 함수가 다릅니다. 2011년 등록체크리스트(구판) 기준으로 시간당손료 산출식에는 정해진 변수(SANG, JUNG, KWAN)와 INT() 함수를 쓸 수 있고, 시간당노임 산출식에는 상수와 연산자만 쓸 수 있습니다.

QTM은 별표9 문법을 조달청 공사원가통합관리시스템에 공개된 국도·하천·항만 설계 단가산출서 전산파일의 중기단가산출식 1,296건으로 검산했습니다. 1,295건이 원자료의 계산값과 일치했고, 나머지 한 건은 정의되지 않은 변수를 참조한 원자료의 오류였습니다. 할당 기호 하나로 금액이 달라지는 사례는 중기단가산출식(별표9) 계산 규칙과 검산 결과에 정리했습니다.

작성 중에 확인하기 어려운 항목

위 항목은 대부분 내역서 작성을 마치고 파일로 내보낸 뒤에야 드러납니다. 이 시점에는 고칠 곳을 찾기가 어렵습니다. 코드가 중복되었다는 결과를 받아도 일위대가가 많은 내역서에서는 해당 행을 다시 찾아야 합니다.

스키마 검사만 하는 도구로 확인하면 검사는 통과했으나 등록에서 반려되는 경우가 생깁니다. 스키마 검사와 별표12 검사는 범위가 서로 다릅니다.

C3R XML 자가진단

C3R XML 자가진단은 코드 길이와 중복, RENT 형태 코드, 상세 없이 금액만 있는 일위대가, 중기단가산출식 오류를 XML 파일에서 검사합니다. 가입 없이 무료로 쓰실 수 있으며, 파일은 검사에만 쓰고 저장하지 않습니다. 손료 계산 순환처럼 아직 검사하지 않는 항목은 결과 화면에 따로 표시합니다.

C3R XML 자가진단 다른 가이드 보기