|
|
|
<!ELEMENT pack (header, contents)> <!ATTLIST pack filename CDATA #REQUIRED >
<!ELEMENT header (send-orgcode, send-id, send-name, receive-id, date, title, doc-id, doc-type, send-gw, dtd-version, xsl-version)> <!ELEMENT send-orgcode (#PCDATA)> <!ELEMENT send-id (#PCDATA)> <!ELEMENT send-name (#PCDATA)> <!ELEMENT receive-id (#PCDATA)> <!ELEMENT date (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT doc-id (#PCDATA)> <!ELEMENT doc-type EMPTY> <!ATTLIST doc-type type (send|fail|arrive|receive|accept|return|resend) #REQUIRED> <!ATTLIST doc-type dept CDATA #REQUIRED> <!ATTLIST doc-type name CDATA #REQUIRED> <!ELEMENT send-gw (#PCDATA)> <!ELEMENT dtd-version (#PCDATA)> <!ELEMENT xsl-version (#PCDATA)> <!ELEMENT contents (content)*> <!ELEMENT content (#PCDATA)> <!ATTLIST content content-role CDATA #REQUIRED > <!ATTLIST content content-transfer-encoding CDATA "base64" > <!ATTLIST content filename CDATA #REQUIRED > <!ATTLIST content content-type CDATA #REQUIRED > <!ATTLIST content charset CDATA #REQUIRED > |
* base64로 Encoding 해야할 부분
- header의 send-name, title, send-gw 의 내용(#PCDATA) 및
doc-type의 어트리뷰트 dept, name의 내용(#PCDATA)
- content의 내용(#PCDATA) 및 어트리뷰트 filename의 내용(#PCDATA)
(1) 전송용 통합파일 개별 엘리먼트
|
엘리먼트 |
설명 |
비고 |
속성 사용 |
|
pack |
전송용 통합파일의 최상위 엘리먼트 |
필수 |
O |
|
header |
헤더정보를 포함하는 엘리먼트 |
필수 |
X |
|
send-orgcode |
발신기관의 기관코드(7자리) |
필수 |
X |
|
send-id |
발신부서의 부서코드(7자리) |
필수 |
X |
|
send-name |
발신기관의 기관명 |
필수 |
X |
|
receive-id |
수신부서의 부서코드(7자리) |
필수 |
X |
|
date |
발송시간,도달시간,수신시간,접수시간,반송시간, 재전송시간(YYYY-MM-DD hh:mm:ss) |
필수 |
X |
|
title |
문서의 제목 |
필수 |
X |
|
doc-id |
문서 고유ID |
필수 |
X |
|
doc-type |
문서 종류 (발송,발송실패,도달,수신,접수,반송,재전송) |
필수 |
O |
|
send-gw |
발신기관 그룹웨어 및 버전 |
필수 |
X |
|
dtd-version |
문서 XML 본문이 참조한 DTD 버전 |
필수 |
X |
|
xsl-version |
문서 XML 본문이 참조한 XSL 버전 |
필수 |
X |
|
contents |
전송본문을 포함하는 엘리먼트 |
필수 |
X |
|
content |
개별파일에 해당하는 엘리먼트로 예를 들면 붙임파일 하나는 하나의 content 엘리먼트로 표시된다.(본문XML, 전자이미지관인, 전자 이미지서명, 붙임파일 등) |
선택 |
O |
* doc-type에 따른 전송용 통합파일 생성주체 및 시점
|
doc-type |
설 명 |
|
발송(send) |
전자문서시스템이 문서를 발송할 때 생성 |
|
발송실패(fail) |
중계모듈이 문서 발송에 실패할 때 생성 |
|
도달(arrive) |
중계모듈이 전송용 통합파일을 지정된 위치에 저장한 후 생성 |
|
수신(receive) |
전송용 통합파일을 지정된 위치에서 전자문서시스템이 가져갈 때 생성 |
|
접수(accept) |
문서담당자가 문서 접수시 전자문서시스템에서 생성 |
|
반송(return) |
문서담당자가 문서 반송시 전자문서시스템에서 생성 |
|
재전송(resend) |
문서담당자가 문서 재발송시 전자문서시스템에서 생성 |
(2) 개별 어트리뷰트
|
어트리뷰트 |
상위 엘리먼트 |
내용 |
필수여부 |
기본값 |
|
filename |
pack |
전송용 통합파일의 파일명 |
O |
없음 |
|
type |
doc-type |
문서의 종류(발송,발송실패, 도달,수신,접수,반송,재전송) |
O |
없음 |
|
dept |
doc-type |
발송자 및 접수자의 부서명 |
O |
없음 |
|
name |
doc-type |
발송자 및 접수자 성명 |
O |
없음 |
|
content-role |
content |
content내용의 의미를 나타냄 |
O |
없음 |
|
content-transefer-encoding |
content |
인코딩 방식 |
O |
base64 |
|
filename |
content |
파일이름 |
O |
없음 |
|
content-type |
content |
내용의 형식(MIME) |
O |
없음 |
|
charset |
content |
내용의 charset |
O |
없음 |
※ 발송실패, 수신, 반송에 대해서는 dept, name을 공백처리할 수 있다
(3) content-role의 값에 따른 content 의미
|
content-role 값 |
content 의미 |
|
pubdoc |
발송문서(XML) |
|
return |
반송내용(text) |
|
attach |
일반 붙임파일 |
|
attach_body |
본문부 붙임파일(표제부, 본문부 사용 서식일 경우) |
|
seal |
전자이미지관인 |
|
gpki |
전자관인이 적용된 암호화 |
|
fail |
중계모듈에서 발송실패내용(text) |
|
sign |
결재자,협조자 전자이미지서명 파일 |
|
symbol |
기관의 심볼 이미지파일 |
|
logo |
기관의 로고 이미지파일 |
* content-role 값이 sign일 경우 어트리뷰트 filename 값과 발송문서(xml) signimage의 img 어트리뷰트 src 값이 일치하여야 한다.(붙임2 공문서 문서형정의 참조)
예) 어트리뷰트 filename 값이 “position1image.gif" 일 경우
<signimage>
<img src="position1image.gif" />
</signimage>
3. 전송용 통합파일 헤더 내용
중계서버를 이용하여 문서유통을 할 경우에, XML정의가 필요한 헤더정보는 발신기관, 수신기관 등의 수․발신 관련 정보이다.
○ 발신기관코드(send-orgcode)
정부디렉토리시스템에서 사용되는 기관코드(7자리)로서
발신기관을 위한 엘리먼트이다.
○ 발신부서코드(send-id)
정부디렉토리시스템에서 사용되는 부서코드(7자리)로서
발신부서를 위한 엘리먼트이다.
○ 발신기관명(send-name)
발신기관의 기관명을 위한 엘리먼트이다.
○ 수신부서코드(receive-id)
정부디렉토리시스템에서 사용되는 부서코드(7자리)로서
수신부서를 위한 엘리먼트이다
○ 날짜(date)
전송용 통합파일을 발송할 때에는 발송시각, 도달할 때에는 도달시각,수신할 때에는 수신시각, 접수할 때에는 접수시각, 반송할 때에는 반송시각을 위한 엘리먼트이다.
(YYYY-MM-DD hh:mm:ss)
○ 문서제목(title)
문서의 제목을 나타내는 엘리먼트이다.
○ 문서고유번호(doc-id)
문서의 고유번호를 위한 엘리먼트이다.
발신기관의 전자문서시스템에서 생성되는 문서의 고유ID이다
○ 문서종류(doc-type)
문서종류를 나타내는 엘리먼트이다.
발송:"send", 발송실패 :"fail", 도달:"arrive", 수신:“receive",
접수:"accept", 반송:"return", 재발송:"resend"
○ 발신기관 그룹웨어명 및 버전(send-gw)
발신기관의 그룹웨어명 및 버전을 위한 엘리먼트이다.
○ DTD 버전(dtd-version)
문서 XML 본문이 참조한 DTD 버전을 위한 엘리먼트이다.
○ XSL 버전(xsl-version)
문서 XML 본문이 참조한 XSL 버전을 위한 엘리먼트이다.
4. 전송용 통합파일 본문 내용
전송용 통합파일 본문내용은 두문,본문,결문,붙임으로 구성된다.
◆ 두문
○ 기관명 <organ>
기관명을 위한 엘리먼트이다. #PCDATA
○ 수신자 및 참조 <recipient>
수신자 및 참조를 위한 엘리먼트이다.
수신자 및 참조를 나타내는 <rec>로 구성된다.
○ 경유 <via>
경유를 위한 엘리먼트이다. #PCDATA
◆ 본문
사용서식(통합서식, 표제부․본문부 서식)을 나타내기 위한
separate 속성을 가지며, 값은 true와 false 중 선택하여야
하고, 기본값으로 false를 갖는다. true 값은 표제부․본문부
서식, false 값은 통합서식을 위한 값이다. 또한 true 값일 경우에는
본문내용(content)은 없다.
○ 제목 <title>
문서제목을 위한 엘리먼트이다. #PCDATA
○ 본문내용 <content>
본문을 위한 엘리먼트이다. 목록을 위한 <list>, 표를 위한 <table>, 글자의 속성을 나타내는 <b>, <i>, <u>, <sup>, <sub>,
문단을 위한 <p>로 구성된다.
◆ 결문
○ 발신명의 <sendername>
발신명의를 위한 엘리먼트이다, #PCDATA
○ 전자이미지관인날인 <seal>
전자이미지관인날인을 위한 엘리먼트이다. 기관의 전자이미지 관인이 들어가며, 이미지로 처리한다. 관인생략을 위한 omit
속성을 가지며, 값은 true와 false 중 선택하여야 하고,
기본값으로 관인을 생략하지 않는 false를 갖는다.
○ 결재자 <approval>
결재자를 위한 엘리먼트이다. 결재자순위(1,2,3,...final)를 나타
내는 <order>, 결재유형(기안,검토,협조,결재,대결,전결)을 나타
내는 <type>, 결재자 직위직급을 나타내는 <signposition>,
전자이미지서명을 나타내는 <signimage>, 문자서명을 나타
내는<name>, 결재일자를 나타내는 <date> 와 결재시간을
나타내는 <time>로 구성된다.
○ 협조자 <assist>
협조자를 위한 엘리먼트이다.
<order><type><signposition><signimage><name><date>
<time>로 구성된다.
○ 등록번호 <regnumber>
등록번호(생산부서명+“-”+일련번호)를 위한 엘리먼트이다.#PCDATA
처리기관코드가 포함된 등록번호를 위한 속성<regnumbercode>
으로 구성된다.(처리기관코드7자리+일련번호)
○ 시행일자 <enforcedate>
시행일자를 위한 엘리먼트이다. #PCDATA
○ 접수 <receipt>
문서접수를 위한 엘리먼트이다. 접수일자를 위한 <date>,
접수시간을 위한 <time>, 접수번호를 위한 <number>등으로
구성된다.
○ 우편번호 <zipcode>
우편번호를 위한 엘리먼트이다. #PCDATA
○ 주소 <address>
주소를 위한 엘리먼트이다. #PCDATA
○ 홈페이지주소 <homeurl>
홈페이지 주소를 위한 엘리먼트이다. #PCDATA
○ 전화번호 <telephone>
전화번호를 위한 엘리먼트이다. #PCDATA
○ 전송 <fax>
전송번호를 위한 엘리먼트이다. #PCDATA
○ 담당자 E-mail <email>
담당자 E-mail을 위한 엘리먼트이다. #PCDATA
○ 공개여부 <publication>
공개여부를 위한 엘리먼트이다. #PCDATA
내부 공개여부 코드를 위한 속성<code>으로 구성된다.
○ 심볼 <symbol>
심볼 이미지를 나타내기 위한 엘리먼트이다. 이미지를 위한
<img> 엘리먼트로 구성된다.
○ 로고 <logo>
로고 이미지를 나타내기 위한 엘리먼트이다. 이미지를 위한
<img> 엘리먼트로 구성된다.
○ 머리표제 <headcampaign>
종이문서상 문서의 상단에 위치한 표제를 위한 엘리먼트이다.
#PCDATA
○ 바닥표제 <footcampaign>
종이문서상 문서의 하단에 위치한 표제를 위한 엘리먼트이다.
#PCDATA
◆ 붙임
○ 붙임 <attach>
붙임을 위한 엘리먼트이다. 문서제목을 위한 <title>의
반복으로 구성된다.
4.1 공문서 정의 DTD 구조 테이블
○ 1 : 반드시 한번 사용(필수)
○ 0..1 : 한번 사용하거나 사용하지 않아도 됨(선택)
○ 1..n : 반드시 한번이상 사용(필수)
○ 0..n : 사용하지 않아도 되나 횟수제한 없음(선택)
5. 전송용 통합파일 명명
전송용 통합파일은 전자문서시스템의 지정된 폴더에 Packing된 형태로 저장된다. 이때 Packing된 문서는 지정된 폴더내에서 다른 파일 이름과 중복되지 않는 유일한 이름으로 저장되어야 한다. 유일한 이름으로 파일 이름을 지정하기 위해 아래와 같은 파일 명명(Naming)규칙을 적용한다.
명명규칙
발신부서코드+수신부서코드 + 시간스탬프 + 일련번호 +확장자
(7자리) (7자리)(YYYYMMDDhhmmss)(2자리) (.xml)
예) 발신 : 1310011(행정자치부 행정정보화담당관실)
수신 : 1440032(정보통신부 정보화기획실)
발신일자 : 2002년 3월 30일 오후 2시 30분 21초
⇒ 131001114400322002033014302101.xml
6. XML DTD 유지 관리
XML DTD를 각 기관의 전자문서시스템에서 관리할 경우 XML 파싱관련 오류가 발생할 수 있으므로, 이를 방지하기 위하여 행정자치부에서는 XML DTD 변경절차를 통하여 확정된 DTD를 모든 전자문서시스템에서 공통적으로 반영할 수 있도록 통합 관리한다.
이와 관련하여 XML DTD의 오류를 검증할 수 있는 XML Parser는 중계모듈에 탑재하여 행정자치부에서 제작 및 보급한다.
<XML DTD 변경절차>

Ⅲ. 중계시스템 구성
1. 시스템 구성도
2. 중계시스템 기능
중계시스템은 행정기관간 전자문서 유통 및 송․수신 내역의 확인, 송․수신 가능 상태를 확인하는 기능 등을 수행한다.
○ 문서중계
○ 송․수신 확인
○ 전송용 통합파일의 보관 관리
○ 계정관리
○ 신․구전자문서 변환
○ 장애감지 및 처리
○ 통계관리
2.1 문서중계
중계시스템을 통하여 행정기관간 전자문서가 유통되는 과정은 다음과 같다.
가. 각 기관의 전자문서시스템은 전송용 통합파일을 지정된 디렉토리에 위치시킨다.
나. 전자문서시스템에 탑재된 중계모듈은 전송용 통합파일을 GPKI 기반의 전자관인(행정전자서명)이 적용된 전송용 통합파일로 변환 및 암호화한 후에 중계서버로 전송한다.
다. 중계서버로 전송된 전송용 통합파일은 중계시스템의 수신 Queue에 위치한다.
라. 중계시스템은 GPKI 기반의 전자관인 검증 및 복호화 작업을 수행하여 전송용 통합파일 헤더정보의 송수신 내역을 확인한다.
마. 중계시스템은 전송용 통합파일의 송․수신 확인을 위한 로그를 기록하고 전송용 통합파일을 일정기간 동안 저장한다.
바. 중계시스템은 GPKI 기반의 전자관인(행정전자서명)이 적용된 전송용 통합파일로 변환 및 암호화하는 작업을 수행한다.
사. 중계시스템은 전송용 통합파일을 중계시스템의 수신기관 문서함 Queue로 이동시키며 이에 대한 로그를 기록한다.
아. 수신기관의 전자문서시스템에 탑재된 중계모듈은 중계시스템과 주기적으로 폴링(Polling)하면서 전송용 통합파일을 중계시스템의 해당 기관 문서함 Queue에서 수신기관 서버의 지정된 디렉토리로 가져가며, 중계시스템은 이에 대한 로그를 기록한다.
자. 수신기관에 탑재된 중계모듈은 전자문서시스템으로부터 접수정보 로그를 받아 중계시스템으로 전송한다
차. 중계시스템은 수신받은 접수정보 로그를 기록하고 송신기관에 전송한다
카. 송신기관에 탑재된 중계모듈은 수신한 접수정보 로그를 전자문서시스템으로 전송한다.
2.2 송․수신 확인
전송용 통합파일의 송․수신 확인을 위하여 다음과 같은 기준으로 송․수신 관련정보를 기록하고 관리한다.
가. 발송(send)정보는 송신기관의 전자문서시스템이 문서를 발송할 때를 기준으로 작성된다.
나. 도달(arrive)정보는 수신기관의 중계모듈이 중계시스템으로 부터 전송용 통합파일을 가져가서 수신기관 서버의 지정된 디렉토리에 저장할 때를 기준으로 작성된다.
다. 수신(receive)정보는 수신기관 서버의 지정된 디렉토리에 있는 전송용 통합파일을 전자문서시스템이 가져갈 때를 기준으로 작성된다.
라. 접수(accept)정보는 수신기관의 문서담당자가 문서를 접수하는 시각을 기준으로 작성된다.
2.3 전송용 통합파일의 보관 관리
중계시스템은 전송용 통합파일의 송․수신 내역을 기록, 관리함과 동시에 전송용 통합파일 자체를 일정기간 동안 보관할 수도 있다.
※ 관련근거 : 사무관리규정 및 동 시행규칙 개정 전문(2002. 10)
2.4 계정관리
중계시스템은 정부디렉토리시스템의 계정정보 관리 기능을 제공한다. 정부디렉토리시스템의 문서유통관련 계정정보는 다음과 같다.
<정부디렉토리시스템내의 계정정보>
|
구분 |
설명 |
|
기관 코드 |
- 각 기관의 코드 7자리 |
|
중계모듈 ID |
- 각 기관이 사용하고 있는 전자문서시스템에 탑재되어 있는 표준송수신 중계 모듈의 고유 ID - 중계모듈이 없는 기관(구 전자문서시스템 사용기관)은 중계모듈 ID가 존재하지 않음 |
|
SMTP Mail Address |
- 각 처리과의 SMTP 메일 주소 - 중계모듈이 없는 기관의 경우에, SMTP 메일 주소를 이용하여 메일로 변환 후에 전송 |
|
처리과 유형 구분 |
- 각 처리과의 구분 O : 중계모듈을 사용하는 기관의 처리과 Y : 중계모듈이 아닌 메일서버로 문서유통을 하고 있는 기관의 처리과 N : 처리과 아님 |
|
분산중계서버 ID |
- 기관이 속한 분산중계서버의 ID - 중앙중계 서버에서만 필요함 |
|
서버 인증서용 CN |
- 문서유통시 헤더 암호화를 위한 서버 인증서용 CN(Common Name) |
2.5 신․구 전자문서 변환
중계시스템은 신전자문서시스템이 동시에 모든 행정기관에 도입되기 어려운 점을 고려하여, 신․구 전자문서시스템 사용기관간 원활한 문서유통을 위한 신․구 전자문서 변환 기능을 수행한다.
가. 신전자문서시스템 ⇒ 구전자문서시스템으로의 변환 기능
신전자문서시스템이 서버내의 특정 디렉토리에 전송용 통합파일을 위치시키면, 중계모듈이 중계서버로 전송용 통합파일을 전달하며(①), 계정을 확인하고, 수신기관의 신․구 전자문서시스템 여부를 판단하여(②) 구전자문서시스템을 사용할 경우에는 구 XML DTD로 변환하고(③) 계정 정보 중 SMTP mail address를 이용하여 메일로 만든다(④). 수신 기관에서는 메일로 온 문서를 현재의 방식대로 수신 및 접수한다(⑤).

신전자문서 구전자문서
시스템 시스템
나. 구전자문서시스템 ⇒ 신전자문서시스템으로의 변환 기능
구전자문서시스템은 현재와 같이 메일형태로 중계서버로 문서를 발송하며(①), 중계서버에서는 메일형태로 전송용 통합파일을 전달 받아(②) 수신기관의 계정정보를 확인하고, 신․구 전자문서시스템 설치여부를 판단하여(③) 수신기관이 신전자문서시스템을 사용할 경우에는 구 XML DTD를 신 XML DTD로 변환한다(④). 중계시스템은 해당 기관의 문서함에 전송용 통합파일을 위치시켜 수신 기관의 중계모듈이 문서를 가져갈 수 있도록 한다(⑤).
구전자문서 신전자문서
시스템 시스템
2.6 장애감지 및 처리
중계시스템은 모니터링 기능을 통하여 각 기관의 전자문서 송․수신 가능 여부를 확인할 수 있는 기능을 제공한다. 장애 발생시에는 장애 관련 로그를 기록하고 기관 담당자에게 통보한다.
2.7 통계관리
중계시스템은 행정기관간 문서유통현황 및 전자문서시스템의 장애현황을 체계적으로 관리하기 위하여 통계관리 기능을 제공한다.
※ 중계시스템이 제공하는 통계정보의 예
○ 기관별/기간별 송수신 내역 현황
○ 기관별/기간별 문서 유통량
○ 기관별/기간별 장애 현황 및 이력
○ 기관별 송신대비 수신율
3. 전자문서시스템 기능
3.1 표준 송․수신 중계모듈 탑재
각 기관의 전자문서시스템은 행정기관간 문서유통을 위하여 행정자치부에서 제작하여 보급하는 표준 송·수신 중계모듈을 탑재하여야 한다. 표준 송·수신 중계모듈은 행정기관의 전자문서시스템과 중계시스템을 연결하여 전자문서의 송수신 기능을 수행한다.
3.2 수신처 지정 기능
행정기관간 전자문서 유통시 전자문서시스템에서 수신기관의 정보를 지정하기 위하여 정부표준 LDAP API(행정자치부 제공) 또는 공개된 LDAP API를 이용하여 디렉토리시스템으로 직접 접근하여 조직정보를 가져온다.
<디렉토리시스템의 조직정보 이용처리 절차>
3.3 전자관인(행정전자서명) 적용 기능
행정기관간 전자문서 유통시 전자관인을 적용하기 위해서는 ‘정부전자서명인증 표준 보안API’(행정자치부 제공)를 이용하며, 상세 사항은 ‘정부전자서명인증 표준 보안API 사용지침(행정자치부, 2000.10)’을 따른다.
또한 전자문서시스템에서는 전자서명만을 적용하거나, 문서의 보안 유지 등의 목적으로 암호화를 같이 적용하는 것에 대한 사용자의 선택 기능을 제공하여야 한다.
3.4 전자문서시스템 기능 분류표
|
기 능 별 |
세 부 기 능 항 목 |
구 분 | |
|
문 서
유 통 |
표준 송수신 중계 모듈 |
- 중계모듈 탑재 - 중계모듈에서 지정한 특정위치로 문서 전달 - 중계모듈에서 지정한 특정 위치로부터 문서를 수신 - 중계서버로부터 송․수신 및 접수 정보를 수신 후 해당 문서의 수・발신 상태 변경 - 전자문서시스템에서 문서를 수신할 경우 수신정보를 생성하여 특정위치에 저장 - 문서접수자가 문서를 접수할 경우 접수 정보를 생성하여 특정위치에 저장 |
필수 |
|
수신처 지정 |
- 정부표준 LDAP API 또는 공개된 LDAP API |
필수 | |
|
전자관인 적용 |
- 행정전자서명인증관리센터에서 제공하는 GPKI 기반의 API 적용 - 전자관인만 또는 전자관인과 암호화를 선택할 수 있는 기능 |
필수 | |
Ⅳ. 기타
○ 정부내 행정기관에서 사용할 전자문서시스템은 사무관리규정 및 동 규정 시행규칙을 따라야 하며, 또한 본 표준과「행정기관의 전자문서시스템 규격」,「전자문서시스템과 행정정보시스템간 연계표준」을 준수해야 함.
- 단, 본 표준의 개정은 2002년 10월 현재 법제처에서 심의중인 사무관리규정 및 동 규정 시행규칙 개정(안)을 전제로 한 것이며, 향후 확정․공포시까지 일부 변동사항이 있을 경우에는 본 표준을 일부 수정․보완하여 고시함
○ 본 표준 및「행정기관의 전자문서시스템 규격」,「전자문서시스템과 행정정보시스템간 연계표준」에 따라 정부용 표준 전자문서시스템으로서의 적합여부에 대한 인증시험을 실시하게 되며, 인증시험 과정에서 본 표준의 일부내용이 변경될 수 있음
<붙임 1>
전송용 통합파일 정의 (pack.dtd, version : 1.0)
<!--
filename: pack.dtd
Typical usage:
<?XML version="1.0" encoding="euc-kr" ?>
<!DOCTYPE pack SYSTEM "pack.dtd">
<pack> ... </pack>
-->
<!ELEMENT pack (header, contents)>
<!ATTLIST pack filename CDATA #REQUIRED >
<!ELEMENT header (send-orgcode, send-id, send-name, receive-id,
date, title, doc-id, doc-type, send-gw, dtd-version, xsl-version)>
<!ELEMENT send-orgcode (#PCDATA)>
<!ELEMENT send-id (#PCDATA)>
<!ELEMENT send-name (#PCDATA)>
<!ELEMENT receive-id (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT doc-id (#PCDATA)>
<!ELEMENT doc-type EMPTY>
<!ATTLIST doc-type type (send|fail|arrive|receive|accept|return|resend) #REQUIRED>
<!ATTLIST doc-type dept CDATA #REQUIRED>
<!ATTLIST doc-type name CDATA #REQUIRED>
<!ELEMENT send-gw (#PCDATA)>
<!ELEMENT dtd-version (#PCDATA)>
<!ELEMENT xsl-version (#PCDATA)>
<!ELEMENT contents (content)*>
<!ELEMENT content (#PCDATA)>
<!ATTLIST content content-role CDATA #REQUIRED >
<!ATTLIST content content-transfer-encoding CDATA "base64" >
<!ATTLIST content filename CDATA #REQUIRED >
<!ATTLIST content content-type CDATA #REQUIRED >
<!ATTLIST content charset CDATA #REQUIRED >
<붙임 2>
공문서 문서형 정의
1. 일반 문서형 정의(pubdoc.dtd, version : 2.0)
<?xml version="1.0" encoding="euc-kr"?>
<!--
대한민국 정부 공문서 문서형 정의
This DTD module is identified by the PUBLIC and SYSTEM identifiers:
PUBLIC "-//KORGOVERN//DTD PUBDOC 2.0//EN"
SYSTEM "pubdoc.dtd"
-->
<!-- XHTML 1.0 for pubdoc -->
<!ENTITY % xhtml4pubdoc.mod PUBLIC "-//KORGOVERN//ENTITIES XHTML 1.0 for pubdoc//EN"
"xhtml4pubdoc.mod">
%xhtml4pubdoc.mod;
<!--============================================================-->
<!--===== 공문서 공통 엘리먼트 집합 정의 =====-->
<!--============================================================-->
<!-- 공통 엘리먼트 정의 -->
<!-- 번호 -->
<!ELEMENT number (#PCDATA)>
<!-- 시간 -->
<!ELEMENT time (#PCDATA)>
<!-- 날짜,일자,연도 -->
<!ELEMENT date (#PCDATA)>
<!-- 등록번호 -->
<!ELEMENT regnumber (#PCDATA)>
<!ATTLIST regnumber regnumbercode CDATA #REQUIRED>
<!-- 시행일자 -->
<!ELEMENT enforcedate (#PCDATA)>
<!-- 공개여부 -->
<!ELEMENT publication (#PCDATA)>
<!ATTLIST publication code CDATA #REQUIRED>
<!-- 제목 -->
<!ELEMENT title (#PCDATA)>
<!-- 머리표제 -->
<!ELEMENT headcampaign (#PCDATA)>
<!-- 바닥표제 -->
<!ELEMENT footcampaign (#PCDATA)>
<!-- 성명, 이름 -->
<!ELEMENT name (#PCDATA)>
<!-- 기관, 기관명 -->
<!ELEMENT organ (#PCDATA)>
<!-- 직위, 직급 -->
<!ELEMENT position (#PCDATA)>
<!-- 우편번호 -->
<!ELEMENT zipcode (#PCDATA)>
<!-- 주소 -->
<!ELEMENT address (#PCDATA)>
<!-- 전화번호 -->
<!ELEMENT telephone (#PCDATA)>
<!-- 전송 -->
<!ELEMENT fax (#PCDATA)>
<!-- 수신, 참조 -->
<!ELEMENT recipient (rec)>
<!-- 수신자 참조 -->
<!ATTLIST recipient
refer (true | false) "false"
>
<!-- 수신자 및 참조 -->
<!ELEMENT rec (#PCDATA)>
<!-- 경유 -->
<!ELEMENT via (#PCDATA)>
<!-- 발신명의 -->
<!ELEMENT sendername (#PCDATA)>
<!-- 결재 유형 -->
<!ELEMENT type (#PCDATA)>
<!-- 붙임 -->
<!ELEMENT attach (title)+>
<!-- 관인날인 -->
<!ELEMENT seal (img?)>
<!-- 관인생략 -->
<!ATTLIST seal
omit (true | false) "false"
>
<!-- 본문 -->
<!ELEMENT content (%flow;)*>
<!-- 홈페이지주소 -->
<!ELEMENT homeurl (#PCDATA)>
<!-- 담당자 E-mail -->
<!ELEMENT email (#PCDATA)>
<!-- 결재자 -->
<!ELEMENT approval (signposition, type, (signimage | name)?, date, time?)>
<!-- 결재순서 -->
<!ATTLIST approval
order CDATA #REQUIRED
>
<!-- 결재의견 -->
<!ATTLIST approval
opinion (yes | no) "no"
>
<!-- 협조자 -->
<!ELEMENT assist (signposition, type, (signimage | name)?, date, time?)>
<!-- 결재자협조자 직위직급 -->
<!ELEMENT signposition (#PCDATA)>
<!-- 결재자협조자 이미지서명 -->
<!ELEMENT signimage (img)>
<!-- 기관의 심볼이미지 -->
<!ELEMENT symbol (img)>
<!-- 기관의 로고이미지 -->
<!ELEMENT logo (img)>
<!--==============================================================-->
<!--===== 기안문(시행문 겸용) =====-->
<!--==============================================================-->
<!-- 공문서 -->
<!ELEMENT pubdoc (head, body, foot, attach?)>
<!-- 두문 -->
<!ELEMENT head (organ, receiptinfo)>
<!-- 본문 -->
<!ELEMENT body (title, content)>
<!-- 결문 -->
<!ELEMENT foot (sendername, seal?, approvalinfo, processinfo, sendinfo, campaign?)>
<!-- 수신정보 -->
<!ELEMENT receiptinfo (recipient, via?)>
<!-- 결재정보 -->
<!ELEMENT approvalinfo (approval+, assist*)>
<!-- 처리정보 -->
<!ELEMENT processinfo (regnumber, enforcedate, receipt?)>
<!-- 발신정보 -->
<!ELEMENT sendinfo (zipcode, address, homeurl?, telephone, fax, email?, publication, symbol?, logo?)>
<!-- 접수정보 -->
<!ELEMENT receipt (number, date, time?)>
<!-- 캠페인정보-->
<!ELEMENT campaign (headcampaign?, footcampaign?)>
2. 공문서 본문구조 정의(xhtml4pubdoc.mod)
<?xml version="1.0" encoding="euc-kr"?>
<!ENTITY % HTMLlat1 PUBLIC
"-//W3C//ENTITIES Latin 1 for XHTML//EN"
"xhtml-lat1.ent">
%HTMLlat1;
<!ENTITY % HTMLsymbol PUBLIC
"-//W3C//ENTITIES Symbols for XHTML//EN"
"xhtml-symbol.ent">
%HTMLsymbol;
<!ENTITY % HTMLspecial PUBLIC
"-//W3C//ENTITIES Special for XHTML//EN"
"xhtml-special.ent">
%HTMLspecial;
<!ENTITY % coreattrs
"id ID #IMPLIED
class CDATA #IMPLIED"
>
<!ENTITY % lists "ul | ol">
<!ENTITY % inline "#PCDATA | a | img | i | b | u | sub | sup">
<!ENTITY % block "p | %lists; | table ">
<!ENTITY % flow "%inline; | %block;">
<!ELEMENT sub (%inline;)*>
<!ATTLIST sub %coreattrs;>
<!ELEMENT sup (%inline;)*>
<!ATTLIST sup %coreattrs;>
<!ELEMENT i (%inline;)*>
<!ATTLIST i %coreattrs;>
<!ELEMENT b (%inline;)*>
<!ATTLIST b %coreattrs;>
<!ELEMENT u (%inline;)*>
<!ATTLIST u %coreattrs;>
<!ELEMENT p (%flow;)*>
<!ATTLIST p
%coreattrs;
style CDATA #IMPLIED
align (left|center|right|adjust) #IMPLIED
>
<!--=================== Lists ============================================-->
<!-- Unordered list -->
<!ELEMENT ul (li)+>
<!ATTLIST ul
%coreattrs;
>
<!-- Ordered (numbered) list -->
<!ELEMENT ol (li)+>
<!ATTLIST ol
%coreattrs;
>
<!-- list item -->
<!ELEMENT li (%flow;)*>
<!ATTLIST li
%coreattrs;
>
<!--================== The Anchor Element ================================-->
<!ELEMENT a (#PCDATA | img | i | b | u | sub | sup)*>
<!ATTLIST a
%coreattrs;
name CDATA #IMPLIED
href CDATA #IMPLIED
rel CDATA #IMPLIED
rev CDATA #IMPLIED
>
<!--=================== Images ===========================================-->
<!ELEMENT img EMPTY>
<!ATTLIST img
%coreattrs;
src CDATA #REQUIRED
alt CDATA #REQUIRED
name CDATA #IMPLIED
longdesc CDATA #IMPLIED
height CDATA #IMPLIED
width CDATA #IMPLIED
align (top|middle|bottom|left|right) #IMPLIED
border CDATA #IMPLIED
hspace CDATA #IMPLIED
vspace CDATA #IMPLIED
>
<!--======================= Tables =======================================-->
<!ENTITY % cellhalign
"align (left|center|right|justify|char) #IMPLIED
char CDATA #IMPLIED
charoff CDATA #IMPLIED"
>
<!ENTITY % cellvalign
"valign (top|middle|bottom|baseline) #IMPLIED"
>
<!ELEMENT table (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
<!ELEMENT caption (%inline;)*>
<!ELEMENT thead (tr)+>
<!ELEMENT tfoot (tr)+>
<!ELEMENT tbody (tr)+>
<!ELEMENT colgroup (col)*>
<!ELEMENT col EMPTY>
<!ELEMENT tr (th|td)+>
<!ELEMENT th (%flow;)*>
<!ELEMENT td (%flow;)*>
<!ATTLIST table
%coreattrs;
summary CDATA #IMPLIED
width CDATA #IMPLIED
height CDATA #IMPLIED
border CDATA #IMPLIED
cellspacing CDATA #IMPLIED
cellpadding CDATA #IMPLIED
align (left|center|right|adjust) #IMPLIED
>
<!ATTLIST caption
%coreattrs;
align (top|bottom|left|right) #IMPLIED
>
<!ATTLIST colgroup
%coreattrs;
span CDATA "1"
width CDATA #IMPLIED
%cellhalign;
%cellvalign;
>
<!ATTLIST col
%coreattrs;
span CDATA "1"
width CDATA #IMPLIED
%cellhalign;
%cellvalign;
>
<!ATTLIST thead
%coreattrs;
%cellhalign;
%cellvalign;
>
<!ATTLIST tfoot
%coreattrs;
%cellhalign;
%cellvalign;
>
<!ATTLIST tbody
%coreattrs;
%cellhalign;
%cellvalign;
>
<!ATTLIST tr
%coreattrs;
%cellhalign;
%cellvalign;
>
<!ATTLIST th
%coreattrs;
abbr CDATA #IMPLIED
axis CDATA #IMPLIED
headers IDREFS #IMPLIED
scope (row|col|rowgroup|colgroup) #IMPLIED
rowspan CDATA "1"
colspan CDATA "1"
%cellhalign;
%cellvalign;
nowrap (nowrap) #IMPLIED
width CDATA #IMPLIED
height CDATA #IMPLIED
>
<!ATTLIST td
%coreattrs;
abbr CDATA #IMPLIED
axis CDATA #IMPLIED
headers IDREFS #IMPLIED
scope (row|col|rowgroup|colgroup) #IMPLIED
rowspan CDATA "1"
colspan CDATA "1"
%cellhalign;
%cellvalign;
nowrap (nowrap) #IMPLIED
width CDATA #IMPLIED
height CDATA #IMPLIED
>
<!-- End of Definition -->
3. 기안문/시행문을 위한 외형정보(siheng.xsl, version : 2.0)
<?xml version="1.0" encoding="euc-kr"?>
<!--=========================-->
<!-- 시행문 -->
<!--=========================-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<DIV STYLE="width:175mm">
<table width="100%" border="0" height="20">
<tr>
<td rowspan="2" width="10%"> <!-- sendinfo / logo -->
<xsl:if test="pubdoc/foot/sendinfo/logo/img/@src[.!='']">
<IMG>
<xsl:attribute name="src"><xsl:value-of select="pubdoc/foot/sendinfo/logo/img/@src"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="pubdoc/foot/sendinfo/logo/img/@alt"/></xsl:attribute>
<xsl:attribute name="style">width:<xsl:value-of select="pubdoc/foot/sendinfo/logo/img/@width"/>;height:
<xsl:value-of select="pubdoc/foot/sendinfo/logo/img/@height"/>;</xsl:attribute>
</IMG>
</xsl:if>
</td>
<td width="80%"> <!-- 머리 표제 -->
<xsl:if test="pubdoc/foot/campaign/headcampaign[.!='']">
<DIV STYLE="font-size:10pt; font-family:바탕체; width:100%; margin-bottom:2mm">
<P ALIGN="CENTER"><xsl:value-of select="pubdoc/foot/campaign/headcampaign"/></P>
</DIV>
</xsl:if>
</td>
<td rowspan="2" width="10%"> <!-- symbol -->
<xsl:if test="pubdoc/foot/sendinfo/symbol/img/@src[.!='']">
<IMG>
<xsl:attribute name="src"><xsl:value-of select="pubdoc/foot/sendinfo/symbol/img/@src"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="pubdoc/foot/sendinfo/symbol/img/@alt"/></xsl:attribute>
<xsl:attribute name="style">width:<xsl:value-of select="pubdoc/foot/sendinfo/symbol/img/@width"/>;height:
<xsl:value-of select="pubdoc/foot/sendinfo/symbol/img/@height"/>;</xsl:attribute>
</IMG>
</xsl:if>
</td>
</tr>
<tr><td>
<!-- 행정 기관명 -->
<DIV STYLE="font-size:20pt; font-family:바탕체; width:100%; margin-bottom:2mm">
<P ALIGN="CENTER"><xsl:value-of select="pubdoc/head/organ"/></P>
</DIV>
</td></tr>
</table>
<!-- 수신 -->
<table width="100%">
<TR>
<TD VALIGN="BOTTOM" align="left" WIDTH="60" STYLE="font-size:12pt; font-family:바탕체">수신자</TD>
<TD VALIGN="BOTTOM" align="left" STYLE="font-size:12pt; font-family:바탕체">
<xsl:choose>
<xsl:when test="pubdoc/head/receiptinfo/recipient/@refer[.='false']">
<xsl:value-of select="pubdoc/head/receiptinfo/recipient/rec"/>
</xsl:when>
<xsl:otherwise>
수신자 참조
</xsl:otherwise>
</xsl:choose>
</TD>
</TR>
<!-- 경유(via) -->
<xsl:if test="pubdoc/head/receiptinfo/via[.!='']">
<TR>
<TD VALIGN="BOTTOM" align="left" WIDTH="60" STYLE="font-size:12pt; font-family:바탕체">(경유)</TD>
<TD VALIGN="BOTTOM" align="left" STYLE="font-size:12pt; font-family:바탕체">
<xsl:value-of select="pubdoc/head/receiptinfo/via"/>
</TD>
</TR>
</xsl:if>
<!-- 제목(title) -->
<TR>
<TD VALIGN="BOTTOM" align="left" WIDTH="60" STYLE="font-size:12pt; font-family:바탕체">제<font color="white">--</font>목</TD>
<TD VALIGN="BOTTOM" align="left" STYLE="font-size:12pt; font-family:바탕체">
<xsl:value-of select="pubdoc/body/title"/>
</TD>
</TR>
</table>
<HR width="100%" ></HR>
<!-- 본문 -->
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr><td height="450" valign="top" >
<xsl:if test="pubdoc/body/@separate[.='true']">
<center><br/><p STYLE="font-size:12pt; font-family:바탕체">(본문 내용) 본문부 참조</p></center>
</xsl:if>
<xsl:if test="pubdoc/body/@separate[.='false']">
<xsl:apply-templates select="pubdoc/body/content"/>
</xsl:if>
</td></tr>
</table>
<table width="100%">
<tr><td width="28%" align="left" valign="top"></td>
<td width="44%" valign="center" align="center" height="40">
<!-- 발신명의 -->
<DIV STYLE="font-size:20pt; font-family:바탕체;">
<xsl:value-of select="pubdoc/foot/sendername"/>
</DIV>
</td>
<td width="28%" align="left" valign="top">
<!-- seal -->
<xsl:if test="pubdoc/foot/seal/@omit[.='true']">
<DIV STYLE="font-size:12pt; font-family:바탕체; width:100%; margin-bottom:2mm" ALIGN="CENTER">
<P STYLE="border:1px solid black; padding:1pt 1pt 1pt 1pt;width:40mm" ALIGN="CENTER" VALIGN="MIDDLE">관 인 생 략</P>
</DIV>
</xsl:if>
<xsl:if test="pubdoc/foot/seal/@omit[.='false']">
<IMG>
<xsl:attribute name="src"><xsl:value-of select="pubdoc/foot/seal/img/@src"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="pubdoc/foot/seal/img/@alt"/></xsl:attribute>
<xsl:attribute name="style">width:<xsl:value-of select="pubdoc/foot/seal/img/@width"/>;height:
<xsl:value-of select="pubdoc/foot/seal/img/@height"/>;</xsl:attribute>
</IMG>
</xsl:if>
</td></tr>
<tr>
<td VALIGN="middle" align="left" colspan="3" STYLE="font-size:12pt; font-family:바탕체">
<xsl:if test="pubdoc/head/receiptinfo/recipient/@refer[.='true']">
수신자: <xsl:value-of select="pubdoc/head/receiptinfo/recipient/rec"/>
</xsl:if>
</td>
</tr>
</table>
<TABLE width="100%">
<TR>
<TD colspan="2"><HR noshade="noshade" size="4"></HR></TD>
</TR>
<TR><td colspan="2">
<!-- 결재 정보 -->
<xsl:for-each select="pubdoc/foot/approvalinfo/approval">
<xsl:apply-templates />
<xsl:choose>
<xsl:when test="@order[.='1']">
<xsl:value-of select="signposition"/>
<xsl:choose>
<xsl:when test="signimage/img/@src[.!='']">
<IMG>
<xsl:attribute name="src"><xsl:value-of select="signimage/img/@src"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="signimage/img/@alt"/></xsl:attribute>
<xsl:attribute name="style">width:<xsl:value-of select="signimage/img/@width"/>;height:
<xsl:value-of select="signimage/img/@height"/>;</xsl:attribute>
</IMG>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name"/>
</xsl:otherwise>
</xsl:choose>
<font color="white">-</font>
</xsl:when>
<xsl:when test="@order[.='final']">
<xsl:value-of select="signposition"/>
<xsl:if test="type[.='대결']">
<b><xsl:value-of select="type"/></b>
</xsl:if>
<xsl:if test="type[.='전결']">
<b><xsl:value-of select="type"/></b>
</xsl:if>
<xsl:if test="@opinion[.='yes']">
의견붙임
</xsl:if>
<xsl:choose>
<xsl:when test="signimage/img/@src[.!='']">
<IMG>
<xsl:attribute name="src"><xsl:value-of select="signimage/img/@src"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="signimage/img/@alt"/></xsl:attribute>
<xsl:attribute name="style">width:<xsl:value-of select="signimage/img/@width"/>;height:
<xsl:value-of select="signimage/img/@height"/>;</xsl:attribute>
</IMG>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="@order[.='4']">
<xsl:value-of select="signposition"/>
<xsl:if test="type[.='대결']">
<b><xsl:value-of select="type"/></b>
</xsl:if>
<xsl:if test="type[.='전결']">
<b><xsl:value-of select="type"/></b>
</xsl:if>
<xsl:if test="@opinion[.='yes']">
의견붙임
</xsl:if>
<xsl:choose>
<xsl:when test="signimage/img/@src[.!='']">
<IMG>
<xsl:attribute name="src"><xsl:value-of select="signimage/img/@src"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="signimage/img/@alt"/></xsl:attribute>
<xsl:attribute name="style">width:<xsl:value-of select="signimage/img/@width"/>;height:
<xsl:value-of select="signimage/img/@height"/>;</xsl:attribute>
</IMG>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name"/>
</xsl:otherwise>
</xsl:choose>
<br/>
</xsl:when>
<xsl:when test="@order[.='8']">
<xsl:value-of select="signposition"/>
<xsl:if test="type[.='대결']">
<b><xsl:value-of select="type"/></b>
</xsl:if>
<xsl:if test="type[.='전결']">
<b><xsl:value-of select="type"/></b>
</xsl:if>
<xsl:if test="@opinion[.='yes']">
의견붙임
</xsl:if>
<xsl:choose>
<xsl:when test="signimage/img/@src[.!='']">
<IMG>
<xsl:attribute name="src"><xsl:value-of select="signimage/img/@src"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="signimage/img/@alt"/></xsl:attribute>
<xsl:attribute name="style">width:<xsl:value-of select="signimage/img/@width"/>;height:
<xsl:value-of select="signimage/img/@height"/>;</xsl:attribute>
</IMG>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name"/>
</xsl:otherwise>
</xsl:choose>
<br/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="signposition"/>
<xsl:if test="type[.='대결']">
<b><xsl:value-of select="type"/></b>
</xsl:if>
<xsl:if test="type[.='전결']">
<b><xsl:value-of select="type"/></b>
</xsl:if>
<xsl:if test="@opinion[.='yes']">
의견붙임
</xsl:if>
<xsl:choose>
<xsl:when test="signimage/img/@src[.!='']">
<IMG>
<xsl:attribute name="src"><xsl:value-of select="signimage/img/@src"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="signimage/img/@alt"/></xsl:attribute>
<xsl:attribute name="style">width:<xsl:value-of select="signimage/img/@width"/>;height:
<xsl:value-of select="signimage/img/@height"/>;</xsl:attribute>
</IMG>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name"/>
</xsl:otherwise>
</xsl:choose>
<font color="white">-</font>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</td></TR>
<!-- 결재 정보 끝 -->
<TR>
<TD colspan="2">협조자
<xsl:for-each select="pubdoc/foot/approvalinfo/assist">
<xsl:apply-templates />
<xsl:value-of select="signposition"/>
<xsl:choose>
<xsl:when test="signimage/img/@src[.!='']">
<IMG>
<xsl:attribute name="src"><xsl:value-of select="signimage/img/@src"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="signimage/img/@alt"/></xsl:attribute>
<xsl:attribute name="style">width:<xsl:value-of select="signimage/img/@width"/>;height:
<xsl:value-of select="signimage/img/@height"/>;</xsl:attribute>
</IMG>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name"/>
</xsl:otherwise>
</xsl:choose>
<font color="white">-</font>
</xsl:for-each>
</TD>
</TR>
<TR>
<TD>시행
<xsl:value-of select="pubdoc/foot/processinfo/regnumber"/>
(<xsl:value-of select="pubdoc/foot/processinfo/enforcedate"/>)</TD>
<TD>
<!-- 접수정보 -->
<xsl:if test="pubdoc/foot/processinfo/receipt[.!='']">
접수 <xsl:value-of select="pubdoc/foot/processinfo/receipt/number"/>
(<xsl:value-of select="pubdoc/foot/processinfo/receipt/date"/>)
</xsl:if>
</TD>
</TR>
<TR>
<TD colspan="2">우
<xsl:value-of select="pubdoc/foot/sendinfo/zipcode"/>
<xsl:value-of select="pubdoc/foot/sendinfo/address"/>
/ <xsl:value-of select="pubdoc/foot/sendinfo/homeurl"/></TD>
</TR>
<TR>
<TD colspan="2">전화 <xsl:value-of select="pubdoc/foot/sendinfo/telephone"/>
<font color="white">--</font>전송 <xsl:value-of select="pubdoc/foot/sendinfo/fax"/>
/ <xsl:value-of select="pubdoc/foot/sendinfo/email"/>
/ <xsl:value-of select="pubdoc/foot/sendinfo/publication"/></TD>
</TR>
</TABLE>
<BR/>
<table width="100%"><tr><td>
<!-- 꼬리 표제 -->
<xsl:if test="pubdoc/foot/campaign/footcampaign[.!='']">
<DIV STYLE="font-size:10pt; font-family:바탕체; width:100%; margin-bottom:2mm">
<P ALIGN="CENTER"><xsl:value-of select="pubdoc/foot/campaign/footcampaign"/></P>
</DIV>
</xsl:if>
</td></tr></table>
</DIV>
</xsl:template>
<!-- pubdoc Body -->
<xsl:template match="pubdoc/body/content">
<DIV STYLE="padding-top:20px; margin-bottom:2em; color:black; width:100%;">
<xsl:apply-templates/>
</DIV>
</xsl:template>
<xsl:template match="p">
<P>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="style">margin:0cm;<xsl:value-of select="./@style"/></xsl:attribute>
<xsl:apply-templates/>
</P>
</xsl:template>
<xsl:template match="b">
<B>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:apply-templates/>
</B>
</xsl:template>
<xsl:template match="i">
<I>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:apply-templates/>
</I>
</xsl:template>
<xsl:template match="u">
<U>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:apply-templates/>
</U>
</xsl:template>
<xsl:template match="sub">
<SUB>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:apply-templates/>
</SUB>
</xsl:template>
<xsl:template match="sup">
<SUP>
<xsl:apply-templates/>
</SUP>
</xsl:template>
<xsl:template match="ol">
<DIV STYLE="font-size:14pt; font-family:바탕체">
<OL>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:for-each select="li">
<LI>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:apply-templates/>
</LI>
</xsl:for-each>
</OL>
</DIV>
</xsl:template>
<xsl:template match="ul">
<DIV STYLE="font-size:14pt; font-family:바탕체">
<UL>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:for-each select="li">
<LI>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:apply-templates/>
</LI>
</xsl:for-each>
</UL>
</DIV>
</xsl:template>
<!-- Image -->
<xsl:template match="img">
<DIV STYLE="margin-top:1em; margin-bottom:1em;">
<IMG>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="src"><xsl:value-of select="./@src"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="./@alt"/></xsl:attribute>
<xsl:attribute name="name"><xsl:value-of select="./@name"/></xsl:attribute>
<xsl:attribute name="longdesc"><xsl:value-of select="./@longdesc"/></xsl:attribute>
<xsl:attribute name="style">width:<xsl:value-of select="./@width"/>;height:<xsl:value-of select="./@height"/>;</xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="border"><xsl:value-of select="./@border"/></xsl:attribute>
<xsl:attribute name="hspace"><xsl:value-of select="./@hspace"/></xsl:attribute>
<xsl:attribute name="vspace"><xsl:value-of select="./@vspace"/></xsl:attribute>
</IMG>
</DIV>
</xsl:template>
<!-- HTML Table -->
<xsl:template match="table">
<TABLE>
<xsl:attribute name="style">width:<xsl:value-of select="./@width"/>;height:<xsl:value-of select="./@height"/>;margin-top:1em; margin-bottom:1em; color:black; font-size:14pt; font-family:바탕체;</xsl:attribute>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="summary"><xsl:value-of select="./@summary"/></xsl:attribute>
<xsl:attribute name="border"><xsl:value-of select="./@border"/></xsl:attribute>
<xsl:attribute name="cellspacing"><xsl:value-of select="./@cellspacing"/></xsl:attribute>
<xsl:attribute name="cellpadding"><xsl:value-of select="./@cellpadding"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:for-each select="caption">
<CAPTION>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:apply-templates/>
</CAPTION>
</xsl:for-each>
<xsl:for-each select="col">
<COL>
<xsl:attribute name="style">width:<xsl:value-of select="./@width"/>;</xsl:attribute>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="span"><xsl:value-of select="./@span"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="char"><xsl:value-of select="./@char"/></xsl:attribute>
<xsl:attribute name="charoff"><xsl:value-of select="./@charoff"/></xsl:attribute>
<xsl:attribute name="valign"><xsl:value-of select="./@valign"/></xsl:attribute>
</COL>
</xsl:for-each>
<xsl:for-each select="colgroup">
<COLGROUP>
<xsl:attribute name="style">width:<xsl:value-of select="./@width"/>;</xsl:attribute>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="span"><xsl:value-of select="./@span"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="char"><xsl:value-of select="./@char"/></xsl:attribute>
<xsl:attribute name="charoff"><xsl:value-of select="./@charoff"/></xsl:attribute>
<xsl:attribute name="valign"><xsl:value-of select="./@valign"/></xsl:attribute>
</COLGROUP>
</xsl:for-each>
<xsl:for-each select="thead">
<THEAD>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="char"><xsl:value-of select="./@char"/></xsl:attribute>
<xsl:attribute name="charoff"><xsl:value-of select="./@charoff"/></xsl:attribute>
<xsl:attribute name="valign"><xsl:value-of select="./@valign"/></xsl:attribute>
<xsl:for-each select="tr">
<TR>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="char"><xsl:value-of select="./@char"/></xsl:attribute>
<xsl:attribute name="charoff"><xsl:value-of select="./@charoff"/></xsl:attribute>
<xsl:attribute name="valign"><xsl:value-of select="./@valign"/></xsl:attribute>
<xsl:apply-templates/>
</TR>
</xsl:for-each>
</THEAD>
</xsl:for-each>
<xsl:for-each select="tfoot">
<TFOOT>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="char"><xsl:value-of select="./@char"/></xsl:attribute>
<xsl:attribute name="charoff"><xsl:value-of select="./@charoff"/></xsl:attribute>
<xsl:attribute name="valign"><xsl:value-of select="./@valign"/></xsl:attribute>
<xsl:for-each select="tr">
<TR>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="char"><xsl:value-of select="./@char"/></xsl:attribute>
<xsl:attribute name="charoff"><xsl:value-of select="./@charoff"/></xsl:attribute>
<xsl:attribute name="valign"><xsl:value-of select="./@valign"/></xsl:attribute>
<xsl:apply-templates/>
</TR>
</xsl:for-each>
</TFOOT>
</xsl:for-each>
<xsl:for-each select="tbody">
<TBODY>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="char"><xsl:value-of select="./@char"/></xsl:attribute>
<xsl:attribute name="charoff"><xsl:value-of select="./@charoff"/></xsl:attribute>
<xsl:attribute name="valign"><xsl:value-of select="./@valign"/></xsl:attribute>
<xsl:for-each select="tr">
<TR>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="char"><xsl:value-of select="./@char"/></xsl:attribute>
<xsl:attribute name="charoff"><xsl:value-of select="./@charoff"/></xsl:attribute>
<xsl:attribute name="valign"><xsl:value-of select="./@valign"/></xsl:attribute>
<xsl:apply-templates/>
</TR>
</xsl:for-each>
</TBODY>
</xsl:for-each>
</TABLE>
</xsl:template>
<xsl:template match="td">
<TD>
<xsl:attribute name="style">width:<xsl:value-of select="./@width"/>;height:<xsl:value-of select="./@height"/>;padding:0cm;</xsl:attribute>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="abbr"><xsl:value-of select="./@abbr"/></xsl:attribute>
<xsl:attribute name="axis"><xsl:value-of select="./@axis"/></xsl:attribute>
<xsl:attribute name="headers"><xsl:value-of select="./@headers"/></xsl:attribute>
<xsl:attribute name="scope"><xsl:value-of select="./@scope"/></xsl:attribute>
<xsl:attribute name="rowspan"><xsl:value-of select="./@rowspan"/></xsl:attribute>
<xsl:attribute name="colspan"><xsl:value-of select="./@colspan"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="char"><xsl:value-of select="./@char"/></xsl:attribute>
<xsl:attribute name="charoff"><xsl:value-of select="./@charoff"/></xsl:attribute>
<xsl:attribute name="valign"><xsl:value-of select="./@valign"/></xsl:attribute>
<xsl:attribute name="nowrap"><xsl:value-of select="./@nowrap"/></xsl:attribute>
<xsl:apply-templates/>
</TD>
</xsl:template>
<xsl:template match="th">
<TH>
<xsl:attribute name="style">width:<xsl:value-of select="./@width"/>;height:<xsl:value-of select="./@height"/>;</xsl:attribute>
<xsl:attribute name="id"><xsl:value-of select="./@id"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="./@class"/></xsl:attribute>
<xsl:attribute name="abbr"><xsl:value-of select="./@abbr"/></xsl:attribute>
<xsl:attribute name="axis"><xsl:value-of select="./@axis"/></xsl:attribute>
<xsl:attribute name="headers"><xsl:value-of select="./@headers"/></xsl:attribute>
<xsl:attribute name="scope"><xsl:value-of select="./@scope"/></xsl:attribute>
<xsl:attribute name="rowspan"><xsl:value-of select="./@rowspan"/></xsl:attribute>
<xsl:attribute name="colspan"><xsl:value-of select="./@colspan"/></xsl:attribute>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<xsl:attribute name="char"><xsl:value-of select="./@char"/></xsl:attribute>
<xsl:attribute name="charoff"><xsl:value-of select="./@charoff"/></xsl:attribute>
<xsl:attribute name="valign"><xsl:value-of select="./@valign"/></xsl:attribute>
<xsl:attribute name="nowrap"><xsl:value-of select="./@nowrap"/></xsl:attribute>
<xsl:apply-templates/>
</TH>
</xsl:template>
<xsl:template match="text()"><xsl:value-of /></xsl:template>
</xsl:stylesheet>
<붙임 3>
전자문서시스템의 정부디렉토리시스템 적용 지침
1. 정부디렉토리시스템 접근 표준
행정기관간 전자문서 유통 시 전자문서시스템에서 수신기관의 정보를 지정하기 위하여 행정자치부에서 제공하는 정부표준 LDAP API나 공개 LDAP API를 이용하여 디렉토리시스템으로부터 실시간으로 조직 정보를 가져오도록 한다.
1.1 전자문서시스템에서 정부디렉토리시스템 조직정보 이용절차
디렉토리시스템에서 조직 정보를 이용하려고 하는 전자문서 시스템은 다음의 사항을 준수하여야 한다.
○ 행정자치부에서 제공하는 정부표준 LDAP API 사용을 권장한다.
○ 행정기관간 전자문서 유통 시 전자문서시스템에서 수신기관의 정보를 지정하기 위하여 디렉토리 정보를 전자문서시스템의 DB에 캐싱해서 사용할 수 없다.(정부디렉토리시스템으로 실시간 접근하도록 한다.)
○ 각 기관의 전자문서시스템은 지역별로 분산하여 해당 디렉토리시스템(중앙청사, 대전청사)으로 설정, 접근하도록 한다.
<정부디렉토리시스템 조직정보 이용절차>
① 사용자가 전자문서시스템에서 타 기관으로 문서를 전송하기 위해 수신처 지정을 요구함
② 수신처 지정 요구시 디렉토리시스템에 접근하기 위해 LDAP API를 호출함
③ 각 기관이 지역별로 설정된 디렉토리시스템으로 접속함
④ 디렉토리시스템으로 연결 접속함
⑤ 디렉토리시스템에서 조직 정보를 검색함
⑥ 검색된 조직정보 중 해당 기관의 담당부서를 수신처로 지정할 수 있는 경우 ⑦을 수행
검색된 조직정보 중 해당 기관의 담당부서를 수신처로 지정할 수 없는 경우 ①을 다시 수행
⑦ 검색된 조직 정보가 전자문서시스템에서 조직도 창으로 디스플레이 됨
⑧ 해당 기관의 담당부서를 지정한 후 문서 발송함
⑨ 문서 발송 후 표준 LDAP API는 디렉토리시스템과 접속을 해제함
1.2 행정기관간 조직정보 변경 절차
각 기관의 조직 정보가 변경이 이루어질 경우 변경 정보를 최종적으로 정부디렉토리시스템에 자동 반영 후 해당 기관의 전자문서시스템에서 실시간으로 이용
<조직정보 변경시 반영처리 절차>
① 각 부처 조직담당자가 조직 변경 사항이 발생할 경우 조직 변경 사항을 정부조직관리정보시스템에 입력함
각 시도, 시군구 조직담당자가 조직 변경 사항이 발생할 경우 조직 변경 사항을 지방행정정보은행시스템에 입력함
② 정부조직관리정보시스템에 입력 된 조직 변경 정보를 행자부 조직정책과에서 승인함
③ 입력된 조직 변경 정보가 행정표준코드관리시스템으로 자동 반영됨
④ 행정표준코드관리시스템에 자동 반영된 조직 변경 정보는 디렉토리시스템으로 1일1회 자동 전송됨
⑤ 각 기관 디렉토리 담당자는 자동 반영된 조직 변경 정보에 문서유통에 필요한 부서정보(mail address 등)를 추가하여 사전승인함
⑥ 자료변경 사항이 설정된 시간을 기준으로 디렉토리시스템에 자동 반영됨
⑦ 디렉토리시스템에 변경 반영된 조직 정보를 전자문서시스템에서 실시간으로 이용함
1.3 표준 LDAP API 변경처리 절차
행정자치부에서 각 기관 및 전자문서시스템 개발업체에 제공하는 표준 LDAP API에 대한 변경 사항 발생 시 다음과 같은 절차를 통하여 변경 관리하도록 한다.
<표준 LDAP API 변경처리 절차>
① 표준으로 제공된 LDAP API에 대한 기능 추가 등 변경 발생함
② 변경 적용된 표준 LDAP API 및 지침 등을 각 기관및 관련 개발업체에 통보함
③ 통보 받은 각 기관은 전자문서시스템 개발업체에 변경된 LDAP API 적용을 요청함
④ 전자문서시스템 개발업체는 변경된 LDAP API를 전자문서시스템에 적용하며, 적용 후 ⑦을 수행함
⑤ 추가 개발이 필요할 경우 변경 표준 API 적용을 위하여 전자문서 시스템을 추가 개발함
⑥ 추가 개발을 완료한 후 변경된 표준 LDAP API를 적용하여 테스트 수행함
⑦ 추가 개발을 완료한 후 변경된 표준 LDAP API를 적용하여 전자문서시스템에 반영함
⑧ 변경된 표준 LDAP API를 전자문서시스템에 적용하였음을 GCC에 통보함
⑨ GCC에서는 변경되는 LDAP API에 대한 이력을 관리함
2. 정부디렉토리시스템과 자체 구축 디렉토리시스템과 동기화 표준
정부고속망 외부 기관의 자체 구축한 디렉토리시스템과 정부디렉토리시스템간 조직 및 사용자 정보 동기화 시 변경된 정보만을 자체 구축 디렉토리시스템에서 정부디렉토리시스템으로 단방향 동기화 하도록 한다.
\
<붙임 4>
행정기관간 전자문서유통을 위한 전자관인 적용지침
1. GPKI 적용흐름
가. 송신 전자문서시스템

나. 송신측 중계모듈

다. 문서중계시스템
![]()
라. 수신측 중계모듈

마. 수신 전자문서시스템

바. GPKI 적용범위
문서유통 구조(Packing)는 Header와 Contents로 구성되어있다.
전자문서시스템에서는 헤더를 암호화 하지 않고 Content 부분에 대해서만 암호화를 적용하고 헤더의 암호화는 중계모듈과 중계서버에서 수행한다.
|
------------------전송용 통합파일 헤더 ---------------------- |
|
<?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE pack SYSTEM "pack.dtd"> <pack filename="131001199900012002082719002101.xml"> <header> <send-orgcode>1310000</send-orgcode> <send-id>1310011</send-id> <send-name>행정자치부</send-name> <receive-id>9990001</receive-id> <date>2002-08-27 19:00:21</date> <title>유통테스트</title> <doc-id>05B679A1EB24A36E</doc-id> <doc-type type=“send” dept="행정정보화담당관실" name=“홍길동”/> <send-gw>GroupwareName(v3.3)</send-gw> <dtd-version>2.0</dtd-version> <xsl-version>2.0</xsl-version> |
|
-------------- 전송용 통합파일 Content ------------- <contents> |
|
<content content-role="pubdoc" filename="pubdoc.xml" content-transfer-encoding="base64"> PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iZXVjLWtyIj8+Cjw/eG1sOnN0eWxlc2hlZXQg dHlwZT0idGV4dC94c2wiIGhyZWY9InNpaGVuZy54c2wiPz4KPCFET0NUWVBFIHB1YmRvYyBTWVNU RU0gInB1YmRvYy5kdGQiPgo8cHViZG9jPiJlbmZvcmNlIj4KIDxwcm9jZXNzaW5mbz4gCgk8cmVn //중간생략 PgogICAgPC9ib2R5PgogPC9jb250ZW50PgogPGNhbXBhaWduPgogCTxoZWFkY2FtcGFpZ24+LSDI sLHiwvkgu/3IsCAtPC9oZWFkY2FtcGFpZ24+CiAJPGZvb3RjYW1wYWlnbj4tIMfUsrLHz7TCIC08 L2Zvb3RjYW1wYWlnbj4KIDwvY2FtcGFpZ24+CjwvcHViZG9jPgo= </content> <content content-role="attach" filename="attach.bmp" content-transfer-encoding="base64"> PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iZXVjLWtyIj8+Cjw/eG1sOnN0eWxlc2hlZXQg dHlwZT0idGV4dC94c2wiIGhyZWY9InNpaGVuZy54c2wiPz4KPCFET0NUWVBFIHB1YmRvYyBTWVNU RU0gInB1YmRvYy5kdGQiPgo8cHViZG9jPiJlbmZvcmNlIj4KIDxwcm9jZXNzaW5mbz4gCgk8cmVn //중간생략 PgogICAgPC9ib2R5PgogPC9jb250ZW50PgogPGNhbXBhaWduPgogCTxoZWFkY2FtcGFpZ24+LSDI sLHiwvkgu/3IsCAtPC9oZWFkY2FtcGFpZ24+CiAJPGZvb3RjYW1wYWlnbj4tIMfUsrLHz7TCIC08 L2Zvb3RjYW1wYWlnbj4KIDwvY2FtcGFpZ24+CjwvcHViZG9jPgo= </content> |
|
</contents> |
※
|
|
: 암호화 영역 |
|
: 비암호화 영역 |
2. GPKI 적용된 전자문서유통 구조
가. content-role
- content-role=gpki : GPKI 적용
나. content-type
- 전자관인 적용 : application/gcc-mime;smime-type=signed-data;
- 전자관인 + 암호화 : application/gcc-mime;smime-type=signedandenveloped-data;
다. 사용되는 파일의 확장자는 p7m
라. 전자관인 전자문서유통 예제
|
<?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE pack SYSTEM "pack.dtd"> <pack filename="131001199900012002082719002101.xml"> <header> <send-orgcode>1310000</send-orgcode> <send-id>1310011</send-id> <send-name>행정자치부</send-name> <receive-id>9990001</receive-id> <date>20020827190021</date> <title>유통테스트</title> <doc-id>05B679A1EB24A36E</doc-id> <doc-type type=“send” dept="행정정보화담당관실" name=“홍길동”/> <send-gw>GroupwareName(v3.3)</send-gw> <dtd-version>2.0</dtd-version> <xsl-version>2.0</xsl-version> <contents> <content content-role="gpki" filename="smime.p7m" content-transfer-encoding="base64" content-type:application/gcc-mime;smime-type=signedandenveloped-data; > PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iZXVjLWtyIj8+Cjw/eG1sOnN0eWxlc2hlZXQg sLHiwvkgu/3IsCAtPC9oZWFkY2FtcGFpZ24+CiAJPGZvb3RjYW1wYWlnbj4tIMfUsrLHz7TCIC08 L2Zvb3RjYW1wYWlnbj4KIDwvY2FtcGFpZ24+CjwvcHViZG9jPgo= </content> </contents> |
※ 위의 사항을 최종메시지 형태에서 파일의 등록정보로 확인가능 해야한다.
3. 기타사항
가. 디렉토리에서의 해당기관/과의 인증서 저장장소
- ObjectClass : ucOrg2
- Attribute : UserCertificate
- 인증서 저장여부를 확인하여 전자관인적용/암호화 여부를 판단한다.
나. 전자관인생성/검증, 암호화/복호화 작업관련은 WEB 버전과 C/S 버전 모두 클라이언트에서 수행한다.
다. 송신기관의 인증서의 유효기간을 확인하여 만료일로부터 100일 이내면 인증서 갱신 안내 메시지 표시한다. 이를 위하여 표준보안 API를 적용한다.
라. 위에 언급되지 않은 사항은 ‘정부전자서명인증표준 보안 API사용지침’ 및 '행정전자서명 사용관리지침'을 따른다.