달력

12

« 2008/12 »

  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
2008/12/31 19:05

Good bye 2008~ Thinking2008/12/31 19:05



지난 한 해 세티의 Lonely star 블로그를 방문해 주신 모든 분들에게 감사의 인사를 전합니다.

다가오는 한 해 모든 분들에게 평화와 행복 그리고 기쁨이 가득한 한 해가 되시길 진심으로 기원합니다.

새해 복 많이 받으세요.^^
저작자 표시 비영리 변경 금지

'Thinking' 카테고리의 다른 글

송충이는 솔잎을 먹어야...  (2) 2009/02/03
리더십  (0) 2009/01/01
Good bye 2008~  (0) 2008/12/31
희소성  (0) 2008/12/22
새해에는 메뉴를 개편해 볼까 합니다.  (0) 2008/12/15
My Way  (0) 2008/11/23
Posted by -세티-
2008/12/29 23:35

프로젝트 관리 프로세스 Software Eng.2008/12/29 23:35

프로세스는 '결과를 만들어내는 일종의 행위' 인데 이런 프로세스는 주로 프로젝트를 수행하는 사람에 의해 수행됩니다.
프로젝트의 프로세스는 크게 2가지의 범주를 가집니다.

  • 프로젝트 관리 프로세스
  • 생산지향 프로세스


프로젝트는 사람이 수행하고, 사람이 수행한 결과로 생산물이 나오게 됩니다.
따라서 프로젝트 수행시 프로젝트 관리 프로세스와 생산지향 프로세스는 서로 밀접하게 관련되어 작용합니다.

각각의 프로세스에 대해 알아보겠습니다.

{ 프로젝트 관리 프로세스 }
이 프로세스는 5개의 프로세스 그룹으로 구성되어 있습니다.

  • 착수 프로세스(Initiating processes)
  • 계획 프로세스(Planning processes)
  • 실행 프로세스(Executing processes)
  • 통제 프로세스(Controlling processes)
  • 종료 프로세스(Closing processes)


(이미지 출처 : http://www.shravan.org/)


 

착수 프로세스에서는 주로 착안, 기안, 시작과 같은 것들을 고민합니다. 다시말해 수행할 프로젝트가 시작되어야 한다는 것을 인식하고 그에 맞는 준비를 하는 단계 입니다.
계획 프로세스에서는 프로젝트에 요구된 내용을 만족시키기 위해 실현가능한 계획을 수립하고, 그것을 지속적으로 관리해 나가는 단계 입니다.
실행 프로세스에서는 앞서 준비된 계획들을 실행하기 위해 필요한 인력과 자원을 조정하는 단계 입니다.
통제 프로세스에서는 지속적인 모니터링을 통해 프로젝트를 컨트롤 합니다. 주로 컨트롤 되는 것들은 프로젝트의 목표, 프로젝트의 보장, 프로젝트의 진도 측정, 새로운 요구나 시장변화를 수정하고, 적용하는 단계 입니다.
종료 프로세스에서는 프로젝트의 결과에 대해 승인을 받고, 정리하는 단계 입니다.


위의 각 프로세스에서 만들어지는 결과물은 다음 프로세스를 위한 자료로 사용되며, 그것을 통해 서로 연결되어 실행됩니다.


(이미지 출처 : http://www.inca.no/)

각 프로세스 그룹을 조금더 상세하게 뜯어보면 그 안에는 세분화된 개별적인 프로세스가 또 존재합니다.
아래는 각 프로세스 그룹에 대한 상세 프로세스 입니다.

착수 프로세스의 세부 프로세스

  • Initiation


계획 프로세스의 세부 프로세스

  • Core Processes
    • Scope Planning
    • Scope Defiition
    • Activity Definition
    • Activity Sequencing
    • Activity Duration Estimating
    • Schedule Development
    • Resource Planning
    • Cost Estimating
    • Cost Budgeting
    • Project Plan Development
  • Facilitating Processes
    • Quality Planning
    • Oragnizational Planning
    • Staff Acquisition
    • Communication Planning
    • Risk Identification
    • Risk Quantification
    • Risk Response Development
    • Procurement Planning
    • Solicitation Planning


실행 프로세스의 세부 프로세스

  • Project Plan Execution
  • Scope Verfication
  • Quality Assurance
  • Team Development
  • Information Distribution
  • Solicitation
  • Contract Administration


관리 프로세스의 세부 프로세스

  • Overrall Change Control
  • Scope Change Control
  • Schedule Control
  • Cost Control
  • Quality Control
  • Performance Reporting
  • Risk Response Control


종료 프로세스의 세부 프로세스

  • Administrative Closure
  • Contract Close-out

 

저작자 표시 비영리 변경 금지

'Software Eng.' 카테고리의 다른 글

프로젝트 관리 프로세스  (0) 2008/12/29
일반적인 관리 기술  (4) 2008/12/27
프로세스 엔지니어링  (0) 2008/12/26
개념 설계(Conceptual Design)  (0) 2008/12/22
Posted by -세티-
2008/12/27 06:00

일반적인 관리 기술 Software Eng.2008/12/27 06:00


프로젝트 관리자에게 있어 일반적인 관리 기술은 매우 중요하다고 할 수 있는데 그 이유로 프로젝트 관리 기술을 쌓는 토대를 제공하기 때문이다.



아래에 일반 관리 기술에 대해 나열해 보았다.

  1. Leading
    1. 지휘와 관리가 모두 필요함.
    2. 지휘에 필요한 것
      1. 방향 설정 : 미래의 비전, 그리고 그것을 달성하기 위한 필요한 전략
      2. 타인과 공조 : 회사내에서 비전을 달성하는데 필요한 말과 행동
      3. 동기부여와 사상고취 : 변화에 대한 장애(정치적, 관료적, 자원의 부족 등)를 극복하도록 격려
      4. 프로젝트에서는 다양한 사람들의 리더십이 발휘되어야 한다.(프로젝트 리더십, 기술적 리더십, 팀 리더십)
  2. Communicating
    1. 정보의 교환을 포함
    2. 명확하고 모호하지 않으며, 완전하게 정보를 전달할 책임이 있음(전달자 -> 수신자)
    3. 의사소통의 차원
      1. 문서, 구두, 듣기, 말하기
      2. 내부적인 것과 외부적인 것
      3. 공식적인 것과 비공식적인 것
  3. Negotiating
    1. 협약 또는 계약에 이를수 있도록 하기 위해 타인과 협의하는 것을 의미.
    2. 협상은 직접적이거나 간접적(도움)이거나 해야 가능하다.
      1. 도움을 받는 협상의 2가지 형태
        1. 조정
        2. 중재
    3. 협상은 프로젝트에서 문제, 시기, 수준등에서 발생하며, 다음 항목의 모든 것에서 협상이 발생한다.
      1. 범위, 비용, 일정 목적
      2. 범위, 비용, 일정 변경
      3. 계약 내용, 조건
      4. 할당
      5. 자원
  4. Problem Solving
    1. 문제 해결
      1. 문제 정의와 의사결정 조합 <----> 리스크 관리
      2. 문제 정의는 다음으로 구분된다.
        1. 원인
        2. 징후
      3. 문제는 내부적이거나 외부적일 수 있고, 또 기술적, 관리적, 대인관계 등이 될 수 있다.
    2. 의사결정
      1. 해결을 위해 문제를 분석하고, 하나를 선택하는 의미
      2. 결정을 하거나 얻는다.
      3. 결정이 이루어지고 나면 그 결정은 실행되어야 한다.
      4. 의사결정도 시간적 요소가 있으므로 너무 빠르거나 또는 늦어지면 최선의 결정이 안된다.
  5. Influencing the Oragnization
    1. "일을 잘하는 능력" => 참여한 조직의 공식적, 비공식적 구조 모두를 이해.
    2. 힘과 정책 역학의 이해를 필요.
      1. 힘 - 행동에 영향을 주고, 사상의 과정을 변화시키고, 저항을 극복하고 할수 없는 일을 할 수 있도록 하는 잠재적인 능력
      2. 정책 - 갈등과 불일치를 창조적으로 이용


위의 사진은 뭔가 결속력이 강하고, 외부 충격에 매우 단단한 느낌을 준다.
팀도 마찬가지라고 본다. 관리기술을 가진 팀 매니저는 팀의 능력을 결속력있고, 강하고 단단하게 만들어 팀의 능력을 극대화하고 그것을 자원으로 원하는 결과를 도출해 내겠지만 그 반대로 팀 매니저가 관리기술이 없거나 또는 자신의 팀은 놔두고 엉뚱한 팀에가서 관리기술을 보여준다거나 또는 한 두가지(술과 정치)에 너무 집착한다면 그것은 팀이나 팀원 모두에게 있어 하나의 비극이 될수도 있다.

저작자 표시 비영리 변경 금지

'Software Eng.' 카테고리의 다른 글

프로젝트 관리 프로세스  (0) 2008/12/29
일반적인 관리 기술  (4) 2008/12/27
프로세스 엔지니어링  (0) 2008/12/26
개념 설계(Conceptual Design)  (0) 2008/12/22
Posted by -세티-
2008/12/26 22:40

프로세스 엔지니어링 Software Eng.2008/12/26 22:40

산업에서 운영이 아닌 업무의 대부분은 프로젝트 성격의 업무일 것입니다.
(그것이 서비스업이든 제조업이든 말입니다.)
운영이 아닌 단발성이면서 유니크한 업무는 대부분이 프로젝트라고 정의될만 할텐데요.
프로젝트를 하게되면 팀을 조직하고, 업무를 정의 및 분석하고, 새로운 일인 만큼 프로세스를 만들게 됩니다.
일은 프로세스의 특성을 정의하기 위해 사용되는데 프로세스의 특성은 주요 프로세스 단위를 설계하는데 사용하며, 여기서 얻어진 정보는 프로세스 단위 및 보조적인 시설물의 특성을 정의하는 엔지니어링 설계의 기초가 됩니다.

아래의 그림은 IEEE에서 제공하는 소프트웨어 엔지니어링 프로세스 이미지 입니다.
링크를 클릭해서 들어가면 소프트웨어 엔지니어링 프로세스에 대한 보다 자세히 소개된 내용을 볼 수 있습니다.


(이미지 출처 : IEEE Computer society)


프로세스 엔지니어링 논문
1. Object - oriented Process Engineering for Decentralized Organizations
저작자 표시 비영리 변경 금지

'Software Eng.' 카테고리의 다른 글

프로젝트 관리 프로세스  (0) 2008/12/29
일반적인 관리 기술  (4) 2008/12/27
프로세스 엔지니어링  (0) 2008/12/26
개념 설계(Conceptual Design)  (0) 2008/12/22
Posted by -세티-
2008/12/22 23:46

희소성 Thinking2008/12/22 23:46


사전에서는 희소성에서 대해 "항상 필요보다 모자라는 자원의 특성" 이라고 정의하고 있습니다.
이것은 다시 말해 구하고 싶으나 쉽게 구해지지 않는 무언가를 말하기도 합니다.
희소성을 이야기 할 때 경제적 관점에서 그런 이야기들이 많이 회자된고 합니다.
 
어떤 물건의 가치가 높을려면 여러가치 중에서 희소성이 있어야 합니다.
그것은 사람에게도 해당된다고 봅니다.

사람은 그 어떤 누구든 자기자신에 대해 존엄성과 유일성을 가지고 있습니다.
우리는 우주 전체를 놓고 봤을 때 매우 희소성이 강한 존재인 것이죠.
하지만 지구 속에서의 우리는 그렇지 않습니다.(우리 주변에 너무 많거든요)
 
이 곳에서 사람들은 사회를 이루고 있고,  또 내 주변보다 조금 더 나아지기 위해 자신의 가치를 극대화하는 노력을 합니다.
앞서거니 뒤서거니 끊임없이 경주하지만 그것에 따른 고통의 시간과 인내의 마음이 깊지 못하면 중도에 포기하기도 하고, 사술을 사용하여 편법의 길로 가고자 하기도 합니다. 이런
성급함은 잘못된 판단과 그릇된 정보에 의한 최면으로 그 사람에게 악영향을 끼칩니다.  개인발전 방향과 소중한 시간 투자가 잘못 이뤄지게 되는 안타까운 상황이 발생하게 되는 것이죠.
 
여러가지 변수가 존재하는 사회에서 옳바르게 자신을 지키고, 또 희소성을 극대화 하기 위해 취득하는 정보의 끊임없는 갱신과 열린 마음 그리고 사회를 바라보는 통찰력을 가져야 하고, 또 그것을 키우기 위해 노력해야 합니다.
 
그러한 노력을 통해 사회의 모든 비이성적이고, 위험한 것들로 부터 나 자신을 보호하고, 희소성을 높이세요.^^
저작자 표시 비영리 변경 금지

'Thinking' 카테고리의 다른 글

리더십  (0) 2009/01/01
Good bye 2008~  (0) 2008/12/31
희소성  (0) 2008/12/22
새해에는 메뉴를 개편해 볼까 합니다.  (0) 2008/12/15
My Way  (0) 2008/11/23
좋은 기운, 나쁜 기운  (0) 2008/11/21
Posted by -세티-
2008/12/22 22:41

개념 설계(Conceptual Design) Software Eng.2008/12/22 22:41

이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 11월 05일
옮긴일 : 2008년 12월 22일


목적 - 설계하고자 하는 업무에서 현재사용자가 하는 일이 무엇이고, 비즈니스 요구 사항이 무엇인

         지에 대해 이해허여 업무를 정의하는 데 있다.

 

대표적인 산출물 - 시나리오(AS-IS(현재상황) 뿐만 아니라 TO-BE(청사진) 의 모습을 구분)

 

주요 설계모델 산출물

- Business Context Diagram

- Workflow Process Model

- Use Case Scenario/Elemenatary Process

 

Business Context Diagram

- 개발할 시스템을 기준으로 외부의 모든 요소들과의 관계에 대한 총체적인 괌점을 생성

- 개발할 시스템에 관계된 외부적 변화 요소에 대해 시스템이 어떻게 변경되어야 하는지에 대한

  최초의 접점을 제공

- 이벤트 중심적(비즈니스)이 특징

 

[작성방법]

- 모든 외부(사용자, 프로세스, 시스템, 연관)와의 상호작용을 입/출력 형태로 주고받는 주요 내역

  들을 기술.

- 시스템이나 비즈니스 도메인의 관점에서 내부적으로 처리해야 할 모든 일들에 해당하는 외부

  이벤트들을 포함.

 

Workflow Process Model

- Business Context Diagram으로 부터 정의된 개발 업무의 내부 프로세스를 크게는 부서별 업무

  단위부터 시작하여 작게는 EP(Elementary Process) 단위 까지 각 단계를 Level Down 방식으로

  해나간다.

- 각 프로세스들을 서브 프로세스들로 분해

- 이벤트 지향적 워크플로

 

[작성방법]

- Business Context Diagram 상에 나타난 모든 외부(사용자, 프로세스, 시스템 연관)와의 상호

  작용 사항을 유지하며 단위 프로세스까지 Level-down하여 기술

- 첫 단계는 부서별로 나누어 프로세스를 정의

- 레벨 다운은 3단계까지 한다.

- 최소의 단위는 Use Case(한 사람이 쉬지 않고 한번에 처리하는 일의 단위) 단위이다.

- 하위 프로세스는 별도의 색으로 표시하는 것이 좋다.

 

Use Case Scenario

- Workflow Process Model 마지막 단계에 기술된 각 Elementary Process 들에 대해 각각 상세한

  업무 절차 및 프로세스 로직을 기술

- 모든 설계의 기본

- 사용할 용어의 기준을 정하는 것이 중요.

 

[작성방법]

1. 사전 준비 사항

- 이전 Use Case 들이 수행 완료됨에 따라 발생된 입력 원본 준비

 

2. 업무 처리절차

- 원본으로 부터의 입력 항목들에 의거하여 순서에 입각한 구체적이고 명확한 비즈니스 로직을

  전개

- 출력 항목을 생성 및 편집

- 등록, 변경, 취소 Use Case에 대해 각각 별도의 Use Case로 구분하여 작성

- 외부와의 인터페이스 부분에 대한 참조사항은 비고란에 기술

- 어떤 기준을 가지고 데이터를 처리하는지 구체적으로 기술

- 최대한의 속성과 값을 도출하여 기술

- 일반적인 명사를 최대한 구분하여 구체적인 내용으로 기술

- 육하원칙에 준하여 기술

- 업무 절차상 예외사항을 모두 기술

- 3자가 쉽게 이해하게 기술

 

3. 사후 처리사항

- 연속되는 타 Use Case가 정상적으로 수행되도록 출력의 전달 및 통보와 같은 필요한 행위에 대

  해 기술한다.

 

개념설계(Conceptual Design) 검증사항

- 논리 설계를 위한 유일한 입력으로서 업무 처리절차 중 빠진 부분이 없어야 한다.

- 각 단위 업무절차에서 다른 프로세스를 유발시키는 예외 처리사항이 빠지지 말아야 한다.

- 현업무 담당자의 업무내용에 대한 확인이 필요하다.

- Business Context Diagram에 표현된 외부 이벤트와 관련된 업무가 모두 기술되어야 한다.

- 누구나 이해하기 쉬워야 한다.

저작자 표시 비영리 변경 금지

'Software Eng.' 카테고리의 다른 글

프로젝트 관리 프로세스  (0) 2008/12/29
일반적인 관리 기술  (4) 2008/12/27
프로세스 엔지니어링  (0) 2008/12/26
개념 설계(Conceptual Design)  (0) 2008/12/22
Posted by -세티-
2008/12/22 22:35

26. 레코드 사이 이동하기 General Web2008/12/22 22:35


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

XML 문서는 대부분 하나 이상의 레코드를 가지고 있다.

HTML 엘리먼트는 한번에 하나의 레코드만을 출력하기 때문에 싱글 레코드 데이터 바인딩은 복잡해진다. HTML 엘리먼트에 보여지고 있는 레코드를 현재 레코드(current record)라고한다.

 

XML 문서에 연결된 DSO는 레코드 사이를 이동하기 위해 다음의 메소드 집합을 제공한다.

메소드 현재 레코드가 다음 레코드로 변한다. 예제 호출
moveFirst 문서 내의 첫번째 레코드 dsoBook.recordset.moveFirst()
movePrevious 이전 레코드 dsoBook.recordset.movePrevious()
moveNext 다음 레코드 dsoBook.recordset.moveNext()
moveLast 문서내의 마지막 레코드 dsoBook.recordset.moveLast()
move 지정된 번호의 레코드 dsoBook.recordset.move(5)
6번째 레코드로 이동한다. 레코드 번호는 0부터...

 

버튼은 푸시버튼을 사용하며 다음과 같다.

<BUTTON ONCLICK="dsoBook.recordset.moveFirst()">
First Record
</BUTTON>

 

레코드셋 객체는 BOF와 EOF 프로퍼티를 제공한다.(BOF=true, EOF=true)

 

파일의 시작상태

<BUTTON ONCLICK="dsoBook.recordset.movePrevious();
if (dsoBook.recordset.BOF)
dsoBook.recordset.moveNext()">
Back
</BUTTON>

 

파일의 마지막

<BUTTON ONCLICK="dsoBook.recordset.moveNExt();
if (dsoBook.recordset.EOF)
dsoBook.recordset.movePrevious()">
Forward
</BUTTON>

 

그럼 이제 예제를 통해 이해력을 높여보도록 하겠다.

 

html 파일

<html>
<head>
<title>Book Description</title>
</head>
<body>

<XML ID="dsoBook" src="XMLFile1xml"></XML>

<h2>Book description</h2>

<SPAN style="font-style:italic">Title:</SPAN>
<SPAN style="font-weight:bold" DATASRC="#dsoBook" DATAFLD="TITLE"></SPAN>
<br>
<SPAN style="font-style:italic">Autjor:</SPAN>
<SPAN style="font-weight:bold" DATASRC="#dsoBook" DATAFLD="AUTHOR"></SPAN>
<br>
<SPAN style="font-style:italic">Binding Type:</SPAN>
<SPAN style="font-weight:bold" DATASRC="#dsoBook" DATAFLD="BINDING"></SPAN>
<br>
<SPAN style="font-style:italic">Number of pages:</SPAN>
<SPAN style="font-weight:bold" DATASRC="#dsoBook" DATAFLD="PAGES"></SPAN>
<br>
<SPAN style="font-style:italic">Price:</SPAN>
<SPAN style="font-weight:bold" DATASRC="#dsoBook" DATAFLD="PRICE"></SPAN>
<br>
<hr>
<BUTTON ONCLICK="dsoBook.recordset.movefirst();>
First
</BUTTON>
<BUTTON ONCLICK="dsoBook.recordset.moveprevious();
if (dsoBook.recordset.BOF)
dsoBook.recordset.moveNext()">
back
</BUTTON>
<BUTTON ONCLICK="dsoBook.recordset.movenext();
if (dsoBook.recordset.EOF)
dsoBook.recordset.moveprevious()">
Forward
</BUTTON>
<BUTTON ONCLICK="dsoBook.recordset.movelast()">
Last
</BUTTON>

</body>
</html>
 

 

결과화면


 
 
 
Forward 클릭했을 경우

 
저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-

이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

1. 싱글 레토드 데이터 바인딩 사용하기

이것은 바인딩된 테이블 안에 포함되지 않은 HTML 엘리먼트를 바인딩 하는 것을 의미한다.

다음의 예제를 통해 이해를 높이도록 하자.

 

XML 파일

<?xml version="1.0" ?>
- <BOOK>
  <TITLE>The Adventures of Huckleberry Finn</TITLE>
  <AUTHOR>Mark Twain</AUTHOR>
  <BINDING>mass market paperback</BINDING>
  <PAGES>298</PAGES>
  <PRICE>$5.49</PRICE>
</BOOK>

 

HTML 파일

<html>
<head>
<title>Book Description</title>
</head>
<body>

<XML ID="dsoBook" src="XMLFile3.xml"></XML>

<h2>Book description</h2>

<SPAN style="font-style:italic">Title:</SPAN>
<SPAN style="font-weight:bold" DATASRC="#dsoBook" DATAFLD="TITLE"></SPAN>
<br>
<SPAN style="font-style:italic">Autjor:</SPAN>
<SPAN style="font-weight:bold" DATASRC="#dsoBook" DATAFLD="AUTHOR"></SPAN>
<br>
<SPAN style="font-style:italic">Binding Type:</SPAN>
<SPAN style="font-weight:bold" DATASRC="#dsoBook" DATAFLD="BINDING"></SPAN>
<br>
<SPAN style="font-style:italic">Number of pages:</SPAN>
<SPAN style="font-weight:bold" DATASRC="#dsoBook" DATAFLD="PAGES"></SPAN>
<br>
<SPAN style="font-style:italic">Price:</SPAN>
<SPAN style="font-weight:bold" DATASRC="#dsoBook" DATAFLD="PRICE"></SPAN>
<br>
</body>
</html>

 

 

3. 결과파일


 
저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-

이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

네스팅된 테이블을 사용해서 계층 구조 레코드셋 출력하기

: 테이블안에 테이블을 출력하는 방법...

 

코드를 보는 것이 이해가 더 빠르기 때문에 바로 코드를 보여주겠다.

 

1. XML 문서를 다음과 같이 변경하고 별도의 파일이름으로 저장한다.

  <?xml version="1.0" ?>
- <INVENTORY>
- <CATEGORY>
  <CATNAME>The Canterbury</CATNAME>
- <BOOK>
  <TITLE>The Adventures of Huckleberry Finn</TITLE>
  <AUTHOR>Mark Twain</AUTHOR>
  <BINDING>mass market paperback</BINDING>
  <PAGES>298</PAGES>
  <PRICE>$5.49</PRICE>
  </BOOK>
- <BOOK>
  <TITLE>Leaves of Grass</TITLE>
  <AUTHOR>Walt Whitman</AUTHOR>
  <BINDING>hardcover</BINDING>
  <PAGES>462</PAGES>
  <PRICE>$7.75</PRICE>
  </BOOK>
  </CATEGORY>
- <CATEGORY>
  <CATNAME>Renaissance</CATNAME>
- <BOOK>
  <TITLE>The Legend of sleep Hollow</TITLE>
  <AUTHOR>Washington Irving</AUTHOR>
  <BINDING>mass market paperback</BINDING>
  <PAGES>98</PAGES>
  <PRICE>$2.95</PRICE>
  </BOOK>
- <BOOK>
  <TITLE>The Marble Faun</TITLE>
  <AUTHOR>Nathaniel Hawthorne</AUTHOR>
  <BINDING>trade paperback</BINDING>
  <PAGES>473</PAGES>
  <PRICE>$10.95</PRICE>
  </BOOK>
  </CATEGORY>
- <CATEGORY>
  <CATNAME>18th Century</CATNAME>
- <BOOK>
  <TITLE>Moby-Dick</TITLE>
  <AUTHOR>Herman Melville</AUTHOR>
  <BINDING>hardcover</BINDING>
  <PAGES>724</PAGES>
  <PRICE>$9.95</PRICE>
  </BOOK>
- <BOOK>
  <TITLE>The Portrait of a Lady</TITLE>
  <AUTHOR>Henry James</AUTHOR>
  <BINDING>mass market paperback</BINDING>
  <PAGES>256</PAGES>
  <PRICE>$4.95</PRICE>
  </BOOK>
- <BOOK>
  <TITLE>The Scarlet Letter</TITLE>
  <AUTHOR>Nathaniel Hawthorne</AUTHOR>
  <BINDING>trade paperback</BINDING>
  <PAGES>253</PAGES>
  <PRICE>$4.25</PRICE>
  </BOOK>
- <BOOK>
  <TITLE>The Turn of the Screw</TITLE>
  <AUTHOR>Henry James</AUTHOR>
  <BINDING>trade paperback</BINDING>
  <PAGES>384</PAGES>
  <PRICE>$3.35</PRICE>
  </BOOK>
- <BOOK>
  <TITLE>The Adventures of Huckleberry Finn</TITLE>
  <AUTHOR>Mark Twain</AUTHOR>
  <BINDING>mass market paperback</BINDING>
  <PAGES>298</PAGES>
  <PRICE>$5.49</PRICE>
  </BOOK>
- <BOOK>
  <TITLE>Leaves of Grass</TITLE>
  <AUTHOR>Walt Whitman</AUTHOR>
  <BINDING>hardcover</BINDING>
  <PAGES>462</PAGES>
  <PRICE>$7.75</PRICE>
  </BOOK>
  </CATEGORY>
- <CATEGORY>
  <CATNAME>19th Century</CATNAME>
- <BOOK>
  <TITLE>The Legend of sleep Hollow</TITLE>
  <AUTHOR>Washington Irving</AUTHOR>
  <BINDING>mass market paperback</BINDING>
  <PAGES>98</PAGES>
  <PRICE>$2.95</PRICE>
  </BOOK>
- <BOOK>
  <TITLE>The Marble Faun</TITLE>
  <AUTHOR>Nathaniel Hawthorne</AUTHOR>
  <BINDING>trade paperback</BINDING>
  <PAGES>473</PAGES>
  <PRICE>$10.95</PRICE>
  </BOOK>
- <BOOK>
  <TITLE>Moby-Dick</TITLE>
  <AUTHOR>Herman Melville</AUTHOR>
  <BINDING>hardcover</BINDING>
  <PAGES>724</PAGES>
  <PRICE>$9.95</PRICE>
  </BOOK>
- <BOOK>
  <TITLE>The Portrait of a Lady</TITLE>
  <AUTHOR>Henry James</AUTHOR>
  <BINDING>mass market paperback</BINDING>
  <PAGES>256</PAGES>
  <PRICE>$4.95</PRICE>
  </BOOK>
  </CATEGORY>
  </INVENTORY>

 

 

2.HTML을 다음과 같이 변경하고 새로운 이름으로 저장한다.

  새롭게 추가된 부분을 주의 깊게 살펴본다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body>

<xml id="dsoXMLFile2" src="XMLFile2.xml"></xml>

<table datasrc="#dsoXMLFile2" border="1">
<thead>Classic English Literature</thead>
<tr>
<td><span datafld="CATNAME"></span></td>
</tr>
<tr>
<td>


<table datasrc="#dsoXMLFile2" datafld="BOOK" border="0" cellpadding="10">
<thead>
<th>Title</th>
<th>Author</th>
<th>Binding</th>
<th>Pages</th>
<th>Price</th>
</thead>
<tr align="center">
<td><span datafld="TITLE" style="font-style:italic"></span></td>
<td><span datafld="AUTHOR"></span></td>
<td><span datafld="BINDING"></span></td>
<td><span datafld="PAGES"></span></td>
<td><span datafld="PRICE"></span></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

 

 

3. 결과화면.


 

저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-

이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 18일
옮긴일 : 2008년 12월 22일

페이징 사용하기

 

1. 바인딩된 TABLE 엘리먼트의 DATAPAGESIZE 속성을 한번에 출력하기 원하는 레코드의 최대 개수로 설정한다.

 

 <table datasrc="#dsoXMLFile1" DATAPAGESIZE="5" border="1" cellpadding="5">

 

2. TABLE 엘리먼트 메소드를 호출한다.

TABLE 엘리먼트 메소드 효과 예제호출
firstPage 레코드의 첫 페이지를 보여준다. InventoryTable.firstPage()
previousPage 레코드의 이전 페이지를 보여준다. InventoryTable.previousPage()
nextPage 레코드의 다음 페이지를 보여준다. InventoryTable.nextPage()
lastPage 레코드의 마지막 페이지를 보여준다. InventoryTable.lastPage()

 

 

3. BUTTON HTML 엘리먼트의 ONCLICK 속성을 메소드로 지정한다.

<body>
   <xml id="dsoXMLFile1" src="XMLFile1.xml"></xml>
   <h2>Book Inverntory</h2>
   <button onclick="dsoXMLFile1.firstPage()">|&lt; 첫 페이지</button>
   <button onclick="dsoXMLFile1.previousPage()" ID="Button1">&lt; 이전 페이지</button>
   <button onclick="dsoXMLFile1.nextPage()" ID="Button2">다음 페이지&gt;</button>
   <button onclick="dsoXMLFile1.lastPage()" ID="Button3">마지막 페이지 &gt;|</button>

   <table datasrc="#dsoXMLFile1" datapagesize="5" border="1" cellpadding="5">
      <thead>
         <th>Title</th>
         <th>Author</th>
         <th>Binding</th>
         <th>Pages</th>
         <th>Price</th>
      </thead>
      <tr align="center">
         <td><span datafld="TITLE" style="font-style:italic"></span></td>
         <td><span datafld="AUTHOR"></span></td>
         <td><span datafld="BINDING"></span></td>
         <td><span datafld="PAGES"></span></td>
         <td><span datafld="PRICE"></span></td>
      </tr>
   </table>
</body>

 

 

4. 결과화면.


 

저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-

이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 18일
옮긴일 : 2008년 12월 22일

5. XML 엘리먼트에 HTML 엘리먼트 바인딩하기

 

2가지 기본적인 방법으로 XML 엘리먼트에 HTML 엘리먼트를 바인딩 할 수 있다.

■ 테이블 데이터 바인딩(table data binding) - 테이블 이라는 이름의 HTML 엘리먼트를 XML 데이터로 바인딩해서 테이블(표)이 XML 문서에 속한 전체 레코드셋을 출력하도록 하는 것

 

■ 싱글 레코드 데이터 바인딩(Single-record data binding) - 이는 테이블이 아닌 HTML 엘리먼트(예를 들면, SPAN 엘리먼트)를 XML 엘리먼트로 바인딩해서 한 번에 하나의 레코드만이 출력되도록 하는 것

 

1) 테이블 데이터 바인딩 사용하기

다음의 예제를 참고한다.

<?xml version="1.0"?>
<INVENTORY>
   <BOOK>
      <TITLE>The Adventures of Huckleberry Finn</TITLE>
      <AUTHOR>Mark Twain</AUTHOR>
      <BINDING>mass market paperback</BINDING>
      <PAGES>298</PAGES>
      <PRICE>$5.49</PRICE>
   </BOOK>
   <BOOK>
      <TITLE>Leaves of Grass</TITLE>
      <AUTHOR>Walt Whitman</AUTHOR>
      <BINDING>hardcover</BINDING>
      <PAGES>462</PAGES>
      <PRICE>$7.75</PRICE>
   </BOOK>
   <BOOK>
      <TITLE>The Legend of sleep Hollow</TITLE>
      <AUTHOR>Washington Irving</AUTHOR>
      <BINDING>mass market paperback</BINDING>
      <PAGES>98</PAGES>
      <PRICE>$2.95</PRICE>
   </BOOK>
   <BOOK>
      <TITLE>The Marble Faun</TITLE>
      <AUTHOR>Nathaniel Hawthorne</AUTHOR>
      <BINDING>trade paperback</BINDING>
      <PAGES>473</PAGES>
      <PRICE>$10.95</PRICE>
   </BOOK>
   <BOOK>
      <TITLE>Moby-Dick</TITLE>
      <AUTHOR>Herman Melville</AUTHOR>
      <BINDING>hardcover</BINDING>
      <PAGES>724</PAGES>
      <PRICE>$9.95</PRICE>
   </BOOK>
   <BOOK>
      <TITLE>The Portrait of a Lady</TITLE>
      <AUTHOR>Henry James</AUTHOR>
      <BINDING>mass market paperback</BINDING>
      <PAGES>256</PAGES>
      <PRICE>$4.95</PRICE>
   </BOOK>
   <BOOK>
      <TITLE>The Scarlet Letter</TITLE>
      <AUTHOR>Nathaniel Hawthorne</AUTHOR>
      <BINDING>trade paperback</BINDING>
      <PAGES>253</PAGES>
      <PRICE>$4.25</PRICE>
   </BOOK>
   <BOOK>
      <TITLE>The Turn of the Screw</TITLE>
      <AUTHOR>Henry James</AUTHOR>
      <BINDING>trade paperback</BINDING>
      <PAGES>384</PAGES>
      <PRICE>$3.35</PRICE>
   </BOOK>
</INVENTORY>

 

그 다음으로 아래와 같은 HTML 파일을 만든다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
   <html>
      <head>
      <title></title>
      <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
      <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
      </head>
      <body>
         <xml id="dsoXMLFile1" src="XMLFile1.xml"></xml>
         <h2>Book Inverntory</h2>
         <table datasrc="#dsoXMLFile1" border="1" cellpadding="5">
            <thead>
               <th>Title</th>
               <th>Author</th>
               <th>Binding</th>
               <th>Pages</th>
               <th>Price</th>
            </thead>
            <tr align="center">
               <td><span datafld="TITLE" style="font-style:italic"></span></td>
               <td><span datafld="AUTHOR"></span></td>
               <td><span datafld="BINDING"></span></td>
               <td><span datafld="PAGES"></span></td>
               <td><span datafld="PRICE"></span></td>
            </tr>
         </table>
      </body>
   </html>

 

이것을 웹 브라우저를 통해서 보면 다음과 같은 결과를 확인할 수 있다.

 

저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-

이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 18일
옮긴일 : 2008년 12월 22일

1. 데이터를 바인딩 하기 위한 두 가지 메인 과정

1) XML 데이터를 출력하기 원하는 HTML 페이지로 XML 문서를 링크한다.

    HTML 페이지에 XML 이라는 이름의 HTML 엘리먼트를 삽입함으로써 이루어진다.

   <XML ID="dsoBook" SRC="Book.xml"></XML>

 

2) HTML 엘리먼트를 XML 엘리먼트로 바인딩한다. HTML 엘리먼트를 XML 엘리먼트로 바인딩 할

   때 HTML 문서는 자동적으로 XML 엘리먼트의 컨텐트를 출력한다.

   <SPAN DATASRC="#dsoBook" DATAFLD="AUTHOR"></SPAN>

 

 2. HTML 페이지로 XML 문서 링크하기

 : XML이라는 이름으 HTML 엘리먼트를 삽입 (데이터 아일랜드 : data island)

 

1) HTML 페이지에 XML 문서를 직접 삽입하는 방법

<html>
  <head>
    <title></title>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 </head>
 <body>


   <xml id="dsoBook"> 
   

   <?xml version="1.0"?>
   <BOOK>
    <TITLE>The Adventures of Huckleberry Finn</TITLE>
    <AUTHOR>Mark Twain</AUTHOR>
    <BINDING>mass market paperback</BINDING>
    <PAGES>298</PAGES>
    <PRICE>$5.49</PRICE>
   </BOOK>
  </xml>


 </body>
</html>

 

2) XML 이라는 이름의 HTML 엘리먼트는 비어 있는 상태에서 XML 문서의 URL만 가지는 경우

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <title></title>
  <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 </head>
 <body>
  <xml id="dsoBook" src=file:///D:\wwwroot\Study\XMLStudy\XMLFile1.xml></xml>
 
</body>
</html>

 

2번째 형태를 가장 많이 사용한다.

데이터 아일랜드는 XML 엘리먼트가 아니다.

따라서 이것은 XML 엘리먼트와 같은 <XML ID="dsoBook" />을 사용하면 문법 에러

 

3. XML 데이터가 저장되는 과정

 

1) IE5가 HTML 페이지를 열면, 자체 내장된 XML 프로세서가 XML 문서를 읽고 파싱한다.

2) IE5는 데이터로의 액세스르르 제공하고, XML 데이터를 저장하거나 캐시하는 DSO

    (Data Source Object)라는 객체를 생성한다.

3) DSO는 XML 데이터를 레코드셋으로 저장한다.

 

4. XML 에러 체크하기

   - 문서를 열면 IE5가 문서의 well-formed를 검사한다.(에러를 보여준다.)

   - data island를 통해서 열면 정확성과 유효성을 검사한다.(에러는 보여주지 않는다.)

저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-

이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

1. css를 이용하여 XML 문서를 출력하는 방법

- 스타일시트 파일을 만든다.

- XML 파일에 스타일시트 파일을 링크건다.

 

StyleSheet.css

BOOK
{
 display:block;
 margin-top : 12pt;
 font-size : 10pt;
}
TITLE
{ font-style : italic; }

AUTHOR
{ font-weight:bold; }

 

XMLFile1.xml

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type = "text/css" href="StyleSheet1.css"?>
<INVENTORY>
 <BOOK>
  <TITLE>The Adventures of Huckleberry Finn</TITLE>
  <AUTHOR>Mark Twain</AUTHOR>
  <BINDING>mass market paperback</BINDING>
  <PAGES>298</PAGES>
  <PRICE>$5.49</PRICE>
 </BOOK>
 <BOOK>
  <TITLE>Leaves of Grass</TITLE>
  <AUTHOR>Walt Whitman</AUTHOR>
  <BINDING>hardcover</BINDING>
  <PAGES>462</PAGES>
  <PRICE>$7.75</PRICE>
 </BOOK> 
 <BOOK>
  <TITLE>The Legend of sleep Hollow</TITLE>
  <AUTHOR>Washington Irving</AUTHOR>
  <BINDING>mass market paperback</BINDING>
  <PAGES>98</PAGES>
  <PRICE>$2.95</PRICE>
 </BOOK>
 <BOOK>
  <TITLE>The Marble Faun</TITLE>
  <AUTHOR>Nathaniel Hawthorne</AUTHOR>
  <BINDING>trade paperback</BINDING>
  <PAGES>473</PAGES>
  <PRICE>$10.95</PRICE>
 </BOOK>
 <BOOK>
  <TITLE>Moby-Dick</TITLE>
  <AUTHOR>Herman Melville</AUTHOR>
  <BINDING>hardcover</BINDING>
  <PAGES>724</PAGES>
  <PRICE>$9.95</PRICE>
 </BOOK>
 <BOOK>
  <TITLE>The Portrait of a Lady</TITLE>
  <AUTHOR>Henry James</AUTHOR>
  <BINDING>mass market paperback</BINDING>
  <PAGES>256</PAGES>
  <PRICE>$4.95</PRICE>
 </BOOK> 
 <BOOK>
  <TITLE>The Scarlet Letter</TITLE>
  <AUTHOR>Nathaniel Hawthorne</AUTHOR>
  <BINDING>trade paperback</BINDING>
  <PAGES>253</PAGES>
  <PRICE>$4.25</PRICE>
 </BOOK> 
 <BOOK>
  <TITLE>The Turn of the Screw</TITLE>
  <AUTHOR>Henry James</AUTHOR>
  <BINDING>trade paperback</BINDING>
  <PAGES>384</PAGES>
  <PRICE>$3.35</PRICE>
 </BOOK> 
</INVENTORY>

 

결과화면

 
 
 
2. 다른 스타일시트 불러오기
@import 지시문을 사용하여 다른 캐스케이팅 스타일시트를 불러온다.
일반적인 형태는 다음과 같다.
@import url(StyleSheetURL);
 
예)
@impirt url(Book.css)
BOOK
{
 display:block;
 margin-top : 12pt;
 font-size : 10pt;
}
 
 
 
3. 캐스케이딩 스타일시트 내의 캐스케이딩
<TITLE STYLE="font-weight:bold">Leaves of Grass</TITLE>
과 같이 사용이 가능하다.
 
일부분만 강조하고 싶은 경우에는 아래와 같이 사용한다.
<MAPS>
<CITY>
<NAME>Sants Fe<NAME>
<STATE>New Mexico</STATE>
</CITY>
<STATE>New Mexico</STATE>
</MAPS>
 
Css로 표현하면
CITY STATE
{
    font-style:normal;
}
STATE
{
    font-style:italic;
}
우선권에 의해 New Mexico라는 글자는 normal 하게 나온다.
 
 
 
4. display 프로퍼티 설정하기
block : 텍스트의 앞과 뒤에 줄바꿈을 삽입.
Inline : 텍스트의 앞과 뒤에 줄바꿈을 삽입하지 않는다.
none : 브라우저에 엘리먼트를 출력하지 않는다.
 
기타 CSS와 관련된 프로퍼티 설정은 별도의 스타일시트 교재를 참고한다.
 
 
5. HTML 문서에 HTML 엘리먼트 삽입하기와 네임스페이스 사용하기
- 웹 브라우저는 <HTML> 이라는 엘리먼트가 HTML 요소인지 XML 요소인지 구분하지 못한다.
따라서 namespace를 사용하여 이것을 구분하게 된다.(이것은 예약어 이다.)
 
아래는 그것을 적용한 예이다.
 
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type = "text/css" href="StyleSheet1.css"?>
<INVENTORY>
<html:IMG xmlns:html="www.w3c.org/TR/REC-html40/" SRC="img1.jpg" />
 <BOOK>
  <TITLE>The Adventures of Huckleberry Finn</TITLE>
  <AUTHOR>Mark Twain</AUTHOR>
  <BINDING>mass market paperback</BINDING>
  <PAGES>298</PAGES>
  <PRICE>$5.49</PRICE>
 </BOOK>

 
저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-
2008/12/22 22:24

19. 파라미터 엔티티 선언하기 General Web2008/12/22 22:24


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

1. 파라미터 내부 파싱된 엔티티 선언하기

<!ENTITY %EntityName EntityValue>

 

<!DOCTYPE BOOK

[

<!ENTITY %author

"<!ElEMENT AUTHOR (#PCDATA)>

<!ATTLIST AUTHOR Nationality CDATA 'American'>"

>

<!ELEMENT BOOK (TITLE, AUTHOR)>

<!ELEMENT TITLE (#PCDATA)>

%author;

]

>

 

위의 DTD는 아래의 DTD와 동일하다.

 

<!DOCTYPE BOOK

[

<!ELEMENT BOOK (TITLE, AUTHOR)>

<!ELEMENT TITLE (#PCDATA)>

<!ELEMENT AUTHOR (#PCDATA)

<!ATTLIST AUTHOR Nationality CDATA 'America'>

]

>

 

2. 파라미터 외부 파싱된 엔티티 선언하기

<!ENTITY %EntityName SYSTEM SystemLiteral>

 

작성법은 기존의 것과 다르지 않기에 중복 설명하지 않도록 하겠다.

저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-
2008/12/22 22:23

18. 일반 엔티티 선언하기 General Web2008/12/22 22:23


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

1. 일반 내부 파싱된 엔티티 선언하기

<!ENTITY EntityName EntityValue>

 

- 규칙 -

- 이름은 알파벳이나 언더스코어로 시작해서, 다음에 문자, 숫자, 구두점(.), 하이픈(-),

   언더스코어(_)를 자유롭게 사용할 수 있다.

- 엔티티 문서 내의 파라미터 엔티티와 동일한 이름을 가질 수 있다.

   엔티티는 엘리먼트나 속성과 같은 이름을 가질 수 있다.

- 엔티티 읆을 포함한 모든 마크업 내의 텍스트에서 대/소문자를 구분한다는 것을 기억.

   (Browser와 broswer는 다른 의미)

 

 

1) 일반 내부 파싱된 엔티티 정의

<!DOCTYPE ARTICLE

[

<!ELEMENT ARTICE (TITLEPAGE, INTRODUCTION, SECTION*)>

<!ELEMENT TITLEPAGE (#PCDATA | SUBTITLE)*>

<!ELEMENT SUBTITLE (#PCDATA)>

<!ELEMENT INTRODUCTION (#PCDATA)>

<!ELEMENT SECTION (#PCDATA)>

<!ENTITY title "The Story of XML

<SUBTITLE> The Future Language of the Internet</SUBTITLE>">

]

>

이것은 다음과 같이 TITLEPAGE 엘리먼트 내에 삽입되어 있을 때 유효.

<TITLEPAGE>

TItle : &title;

Author : Michael Young

</TITLEPAGE>

 

다음과 같이 해석된다.

<TITLEPAGE>

TItle : The Story of XML

<SUBTITLE>The Future Language of the Internet</SUBTITLE>

Author : Michael Young

</TITLEPAGE>

 

 

2) 일반 외부 파싱된 엔티티 선언하기

<!ELEMENT EntityName SYSTEM SystemLiternal>

 

URI를 사용할 경우

<!ENTITY abstract SYSTEM "http//bogus.com/documents/Abstract.xml">

 

상대적인 경우

<!ENTITY abstract SYSTEM "Abstract.xml">

 

예) Topics.xml 을 일반 외부 파싱된 엔티티로 정의한 경우

<!DOCTYPE ARTICLE

[

<!ELEMENT ARTICLE (TITLEPAGE, INTRODUCTION, SECTION*)>

<!ELEMENT TITLEPAGE (#PCDATA)>

<!ELEMENT INTRODUCTION ANY>

<!ELEMENT SECTION (#PCDATA)>

<!ENTITY topics SYSTEM "Topics.xml">

]

>

 

- Topics.xml 파일 내용 -

<HEADING>Topics</HEADING>

The Need for XML

The official Goals of XML

Standard XML Applications

Real-World Users for XML

 

이것은 다음의 문서에 유효하게 삽입된다.

<INTRODUCTION>

Here's what this article covers:

&topics;

</INTRODUCTION>

 

 

3) 일반 외부 파싱되지 않은 엔티티 선언하기

Type : <!ENTITY EntityName SYSTEM SystemLiternal NDATA NotationName>

 

<?xml version="1.0">

<!DOCTYPE BOOK

[

<!ELEMENT BOOK (TITLE, AUTHOR, COVERIMAGE)>

<!ELEMENT TITLE (#PCDATA)>

<!ELEMENT AUTHOR (#PCDATA)>

<!ELEMENT COVERIMAGE EMPTY>

<!ATTLIST COVERIMAGE Source ENTITY #REQUIRED>

<!NOTATION faun SYSTEM "ShowGif.exe">

<!ENTITY faun SYSTEM "faun.gif" NDATDA GIF>>

]

>

 

<BOOK>

<TITLE>The Marble Faun</TITLE>

<AUTHOR>Nathaniel Hawthorne</AUTHOR>

<COVERIMAGE Source="faun" />

</BOOK>

 

4) 노테이션 선언하기

<!NOTATION NotationName SYSTEM SystemLiternal >

 

URI의 경우 : SystemLiternal에 "http://bogus.com/ShowGif.exe"

상대적인 경우 : "ShowGif.exe"

저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-
2008/12/22 22:23

17. 엔티티의 종류(3가지 정의) General Web2008/12/22 22:23

이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일


3가지 방식으로 구분

 

■ 일반 엔티티 vs 파라미터 엔티티

- xml 텍스트 이거나 다른 텍스트, 또는 텍스트가 아닌 데이터

 

■ 내부 엔티티 vs 외부 엔티티

- 따옴표로 둘러쌓인 문자열내에 있는 것(내부엔티티)

- 별도의 파일에 포함되는 것(외부 엔티티)

 

■ 파싱된 엔티티 vs 파싱되지 않은 엔티티

- XML 텍스트를 구성하는 것(문자 데이터, 마크업)

 

파싱되지 않은 일반 데이터는 일반엔티티의 외부 엔티티로만 가능하다.

저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-
2008/12/22 22:22

16. ENTITY 정의하기와 사용하기 General Web2008/12/22 22:22


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

● XML 문서에서 자주 사용하는 XML 텍스트의 블록을 엔티티로 정의

● 필요할 때 마다 빠르게 삽입 가능

 

1. 엔티티 선언과 분류

- 전체 XML 문서 그 자체

- 외부 DTD 서브셋

- DTD에서 외부 엔티티로서 정의되고, 엔티티 레퍼런스를 사용해서 참조된 외부 파일

- DTD에서 내부 엔티티로서 정의되고 엔티티 레퍼런스를 사용해서 참조된, 따옴표로 둘러

  싸인 문자열

 

다음의 DTD가 존재한다면...

<!DOCTYPE ARTICE

[

<!ELEMENT ARTICE (TITLE, INTRODUCTION, SECTION*)>

<!ELEMENT TITLEPAGE (#PCDATA)>

<!ELEMENT INTRODUCTION (#PCDATA)>

<!ELEMENT SECTION (#PCDATA)>

<!ENTITY topics SYSTEM "Topics.xml">

<!ENTITY title "A Short History of XML">

]

>

 

아래의 엘리먼트에 &topics라는 엔티티 레퍼런스를 포함시키기만 하면

기사의 내용이 자동으로 삽입된다.

<INTRODUCTION>

This article will cover the following topics :

&topics;

</INTRODUCTION>

 

필요할 때 마다 title을 삽입하면 기사 제목이 삽입된다.

<TITLEPAGE>

Title:&title;

Author:Michael Young

</TITLEPAGE>

저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-
2008/12/22 22:21

15. 문서 유효하게 만들기 General Web2008/12/22 22:21


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

다음을 바탕으로 유효한 문서를 만들어라..

 

<!DOCUMENT INVENTORY

[

<!ELEMENT INVENTORY (BOOK)+>

<!ELEMENT BOOK (TITLE, AUTHOR, BINDING,PAGES, PRICE)>

<!ATTLIST BOOK InStock (yes/no) #REQUIRED>

<!ELEMENT TITLE (#PCDATA | SUBTITLE)*>

<!ELEMENT SUBTITLE (#PCDATA)>

<!ELEMENT AUTHOR (#PCDATA)>

<!ATTLIST AUTHOR Born CDATA #IMPLIED>

<!ELEMENT BINDING (#PCDATA)>

<!ELEMENT PAGES (#PCDATA)>

<!ELEMENT PRICE (#PCDATA)>

]

>

 

<BOOK InStock="yes">

<TITLE>

Moby-Dick

<SUBTITLE>Or, the while</SUBTITLE>

</TITLE>

<AUTHOR Born="1835">Walt Whitman</AUTHOR>

<BINDING>hardcover</BINDING>

<PAGES>462</PAGES>

<PRICE>$7.75</PRICE>

</BOOK>

저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-

이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

IGNORE 섹션을 사용하면 외부 DTD 서브셋의 일부를 XML 프로세서가 무시하도록 할 수 있음.

 

<!ELEMENT BOOK ANY>

<!ATTLIST BOOK ISBN NMTOKEN #REQUIRED>

 

<![IGNORE[

<!ATTLIST BOOK Category CDATA "fiction">

<!ELEMENT TITLE (#PCDATA)>

<!ELEMENT AUTHOR (#PCDATA)>

]]>

 

다시 활성화 시키길 원하는 경우

<![INCLUDE[

<!ATTLIST BOOK Category CDATA "fiction">

<!ELEMENT TITLE (#PCDATA)>

<!ELEMENT AUTHOR (#PCDATA)>

]]>

저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-
2008/12/22 22:20

13. 외부 DTD 만들기 General Web2008/12/22 22:20


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

문서내에 만드는 것이 아니라 문서 외부에 별도의 파일에 DTD를 저장하는데 이것을 외부 DTD 서브셋(external DTD subset)이라고 한다.

장점 - 문서의 전체 그룹에서 공통의 DTD로서 사용될 수 있음.

 

1. 외부 DTD 서브셋 사용

다음의 문서를 생각한다.

<?xml version="1.0"?>

<!DOCTYPE SIMPLE

[

<!ELEMENT SIMPLE ANY>

]

>

<SIMPLE>This is an extremely simplistic XML document.</SIMPLE>

 

이 문서가 외부 DTD 서브셋을 사용했다면 다음과 같다.

<?xml version="1.0"?>

<!DOCTYPE SIMPLE SYSTEM "Simple.dtd">

<SIMPLE>This is an extremely simplistic XML document.</SIMPLE>

 

그리고 Simple.dtd에는 다음의 내용을 입력한다.

<!ELEMENT SIMPLE ANY>

 

외부의 것을 가리킬 경우에는 URI(uniform resource indentifier)를 사용한다.

이것은 URL과 동일하다.

절대주소를 사용하는 URI를 사용할 경우

<!DOCTYPE SIMPLE SYSTEM "http://bogus.com/dtds/Simple.dtd">

 

2. 내부DTD와 외부 DTD 서브셋을 모두 사용하는 경우

 

- XML 문서 -

<?xml version="1.0"?>

<!DOCTYPE BOOK SYSTEM "BOOK.dtd"

[

<!ATTLIST BOOK ISBN CDATA #IMPLIED Year CDATA "2000">

<!ELEMENT TITLE (#PCDATA)>

]

>

<BOOK Year="1998">

<TITLE>The Scarlet Letter</TITLE>

</BOOK>

 

- 외부 DTD 서브셋 -

<!ELEMENT BOOK ANY>

<!ATTLIST BOOK NMTOKEN #REQUIRED>

저작자 표시 비영리 변경 금지
TAG XML
Posted by -세티-
2008/12/22 22:19

12. 속성 선언하기 General Web2008/12/22 22:19


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

지금까지 XML 문서 타입을 결정하는 DTD문서에 대해 살펴보았다.

정리하면 DTD는 XML 문서의 ELEMENT가 어떤 계층으로 되어 있고 그 엘리먼트가 포함하는 데이터 타입으로 어떤 것들이 올 수 있는지를 결정하는 것이었다.

 

그럼, 이제 속성이라는 것에 대해 살펴보고 선언하는 방법을 알아보도록 하겠다.

 

다음의 XML문서는 엘리먼트로만 이루어진 구조이다.

<BOOK>

   <TITLE></TITLE>

</BOOK>

 

하지만 아래의 구조는 속성이 포함된 경우이다.

<BOOK Binging="1994">

   <TITLE></TITLE>

</BOOK>

 

1. 속성 리스트의 선언 형태

<!ATTRIBUTE Name AttDefs>

Name : 속성에 연결된 엘리먼트의 타입 이름

AttDefs : 하나 혹은 그 이상의 속성 정의(Attribute definition)

 

속성 정의 형태 : Name AttType DefaultDecl

(Name : 속성이름, AttType : 속성에 지정될 수 있는 값의 종류인 속성타입(attribute type)

DefaultDecl : 디폴트 선언)

 

예) FILM 이라는 엘리먼트를 선언

<!ELEMENT FILM (TITLE, (STAR | NARRATOR | INSTRUCTOR))>

다음으로 FILM 엘리먼트에 두 개의 속성을 선언(Class와 Year)

<!ATTLIST FILM Class CDATA "fictional" Year CDATA ##REQUIRED>

 

결과

<?xml version="1.0"?>

<!DOCTYPE FILM

[

<!ELEMENT FILM (TITLE, (STAR | NARRATOR | INSTRUCTOR))>

<!ATTRIBUTE FILM Class CDATA "fictional" Year CDATA ##REQUIRED>

<!ELEMENT TITLE (#PCDATA)>

<!ELEMENT STAR (#PCDATA)>

<!ELEMENT NARRATOR (#PCDATA)>

<!ELEMENT INSTRUCTOR (#PCDATA)>

]

>

<FILM Year = "1984">

<TITLE>The morning After</TITLE>

<STAR>Morgen Attenbury</STAR>

 

2. 속성타입

1) 문자열 타입 - 따옴표로 둘러싸인 문자열로 지정

2) 토큰화된 타입 - 고유한 속성값이 선언되어야 한다. ID라는 키워드 사용

예1) ID

<?xml version="1.0"?>

<!DOCTYPE INVENTORY

[

<!ELEMENT INVENTORY (ITEM*)>

<!ELEMENT ITEM (#PCDATA)>

<!ATTLIST ITEM StockCode ID #REQUIRED>

]

>

<INVENTORY>

<ITEM StockCode = "S021">Peach Tee Pot</ITEM>

<ITEM StockCode = "S034">Electric Coffee Grinder</ITEM>

<ITEM StockCode = "S086">Candy Thermometer</ITEM>

</INVENTORY>

 

예2) IDREF

<!ELEMENT ITEM (#PCDATA)>

<!ATTLIST ITEM StockCode ID #REQUIRED GoesWith IDREF #IMPLIED>

You could then use this attribute to refer to another ITEM element, as shown here:

<ITEM StockCode="S034">Electric Coffee Grinder</ITEM>

<ITEM StockCode="S047" GoesWith="S034">Coffee Grinder Brush</ITEM>

 

예3) IDREFS

<ITEM StockCode="S047" GoesWith="S034 S039">Coffee Grinder Brush</ITEM>

 

예4) ENTITY

파싱되지 않은 데이터

<!ELEMENT IMAGE EMPTY>

<!ATTLIST IMAGE Source ENTITY #REQUIRED>

<IMAGE Source="LOGO" //>

 

예5) ENTITIES

여러개의 파싱되지 않은 데이터 타입 선언

<!ELEMENT IMAGE EMPTY>

<!ATTLIST IMAGE Source ENTITIES #REQUIRED>

<IMAGE Source="LOGO LogoBmp"//>

 

예6) NMTOKEN

<!ELEMENT BOOK (#PCDATA)>

<!ATTLIST BOOK ISBN NMTOKEN #REQUIRED>

<BOOK ISBN="9-99999-999-9">The Portrait of a Lady</BOOK>

 

예7) NMTOKENS

<!ELEMENT SHIRT (#PCDATA)>

<!ATTLIST SHIRT Codes NMTOKENS #REQUIRED>

<SHIRT Codes="38 21 97"></SHIRT>

 

3) 열거형 타입 - Class 속성의 값이 여러개 중의 하나를 가질 수 있도록 정의

Class 지정

<!ATTLIST FILM Class (finctional | instructional | documentary) "fictionsal">

Here's a complete XML document that shows the use of the Class attribute:

 

<?xml version="1.0">

<!DOCTYPE FILM

[

<!ELEMENT FILM (TItle, (STAR | NARRATOR | INSTRUCTOR))>

<!ATTLIST FILM Class (fictional | instructional | documentaty) "fictional">

<!ELEMENT TITLE (#PCDATA)>

<!ELEMENT STAR (#PCDATA)>

<!ELEMENT NARRATOR (#PCDATA)>

<!ELEMENT INSTRUCTOR (#PCDATA)>

]

>

<FILM Class="instructional">

<TITLE>The Use and Care of XML</TITLE>

<NARRATOR>Michael Young</NARRATOR>

</FILM>

Class에 다른 값을 지정하면 유효성 에러가 발생한다.

 

NOTATION 지정

<!ELEMENT EXAMPLE_DOCUMENT (#PCDATA)>

<!ATTLIST EXAMPLE_DOCUMENT Format NOTATION (HTML | SGML | RTF) #REQUIRED>

 

<EXAMPLE_DOCUMENT Format="HTML">

<![CDATA [

<html>

<head>

<title>Mike's Home Page</title>

</head>

<body>

<p>Welcome!</p>

</body>

</html>

]]

>

</EMAMPLE_DOCUMENT>

 

디폴트 선언

#REQUIRED - 모든 엘리먼트의 타입에 대해 연결될 속성의 값을 지정

#IMPLIED - 엘리먼트의 타입에 연결된 속성을 포함할 수도 있고, 생략할 수도 있다.

AttValue - 디폴트 속성

#FIXED AttValue - 고정할 때...

저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

14. 외부 DTD 서브셋의 일부를 조건부로 무시하기  (0) 2008/12/22
13. 외부 DTD 만들기  (0) 2008/12/22
12. 속성 선언하기  (0) 2008/12/22
11. 엘리먼트 컨텐트 모델  (0) 2008/12/22
10. 엘리먼트 타입 선언하기  (0) 2008/12/22
9. DTD만들기  (0) 2008/12/22
TAG XML
Posted by -세티-
2008/12/22 22:18

11. 엘리먼트 컨텐트 모델 General Web2008/12/22 22:18


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 17일
옮긴일 : 2008년 12월 22일

컨텐트 모델 2가지

 

1. 시퀀스 모델(Sequence)

- 엘리먼트는 지정된 순서대로 자식 엘리먼트를 가져야만 한다는 것

- 콤마로서 자식 엘리먼트를 구분

- 아주 엄격한 선언 타입

 

유효한 예

<!DOCUMENT MOUNTAIN

[

<!ELEMENT MOUNTAIN (NAME, HEIGHT, STATE)>

<!ELEMENT NAME (#PCDATA)>

<!ELEMENT HEIGHT (#PCDATA)>

<!ELEMENT STATE (#PCDATA)>

]>

<MOUNTAIN>

<NAME>Wheeler</NAME>

<HEIGHT>13161</HEIGHT>

<STATE>New Mexico</STATE>

</MOUNTAIN>

 

유효하지 않은 예

<MOUNTAIN>

<NAME>Wheeler</NAME>

<HEIGHT>13161</HEIGHT>

<STATE>New Mexico</STATE>

</MOUNTAIN>

 

2. 초이스(choice)모델

<!DOCUMENT FILM

[

<!ELEMENT FILM (STAR | NARRATOR | INSTRUCTOR)>

<!ELEMENT STAT (#PCDATA)>

<!ELEMENT NARRTOR (#PCDATA)>

<!ELEMENT INSTRUCTOR (#PCDATA)>

]

>

 

유효(O)

<FILM>

<STAR>Robert Redford</STAR>

</FILM>

 

유효(O)

<FILM>

<NARRATOR>Robert Redford</NARRATOR>

</FILM>

 

유효(O)

<FILM>

<INSTRUCTOR>Robert Redford</INSTRUCTOR>

</FILM>

 

유효(X) - 2개가 같이 올 수 없다.

<FILM>

<STAR>Robert Redford</STAR>

<NARRATOR>Robert Redford</NARRATOR>

</FILM>

 

3. 컨텐트 모델의 변형

? - 0개 혹은 하나 이상의 아이템

+ - 1개 혹은 그 이상의 아이템

* - 0개 혹은 그 이상의 아이템

 

예1)

<!ELEMENT MOUNTAIN (NAME+, HEIGHT?, STATE)>

: NAME 엘리먼트가 한개 혹은 그 이상, HEIGHT 엘리먼트가 0개 혹은 하나인 경우

<MOUNTAIN>

<NAME>Ryu</NAME>

<NAME>Park</NAME>

<STATE>Seoul</STATE>

</MOUNTAIN>

 

예2)

<!ELEMENT FILM (STAR* | NARRATOR | INSTRUCTOR)>

: STAR 엘리먼트가 0개 혹은 그 이상인 경우

<FILM>

<STAR>Ryu</STAR>

<STAR>Park</STAR>

</FILM>

<FILM>

<NARRATOR>Gregory</NARRATOR>

</FILM>

 

예3)

<!ELEMENT FILM (STAR | NARRATOR | INSTRUCTOR)+>

: () 뒤에 + 기호가 오는 경우에는 전체 컨트롤 모델을 조작

<FILM>

<NARRATOR></NARRATOR>

<STAR></STAR>

<NARRATOR></NARRATOR>

</FILM>

<FILM>

<STAR>Bertram Wooster</STAR>

<STAR>Sean Connery</STAR>

</FILM>

<FILM>

<INSTRUCTOR>Stinker Pike</INSTRUCTOR>

</FILM>

 

예4) 시퀀스 모델안에 초이스 컨텐트 모델을 넣거나 초이스 모델안에 시퀀스 모델을 넣는 경우

<!DOCTYPE FILM

[

<!ELEMENT FILM (TITLE, CLASS, (STAR | NARRATOR | INSTRUCTOR))>

<!ELEMENT TITLE (#PCDATA)>

<!ELEMENT CLASS (#PCDATA)>

<!ELEMENT STAR (#PCDATA)>

<!ELEMENT NARRATOR (#PCDATA)>

<!ELEMENT INSTRUCTOR (#PCDATA)>

]

>

 

유효한 도큐먼트

<FILM>

<TITLE>The Net</TITLE>

<CLASS>fictional</CLASS>

<STAR>Sandra Bullock</STAR>

</FILM>

 

<FILM>

<TITLE>How to XML</TITLE>

<CLASS>instructional</CLASS>

<INSTRUCTOR>Penny Donaldson</INSTRUCTOR>

</FILM>

 

4. 혼합된 컨텐트 지정

엘리먼트 타입을 혼합된 컨텐트로 선언하기 위해 다음의 두 가지 형태의 컨텐트 모델을 사용한다.

1) 문자데이터 - (#PCDATA)를 사용

 

<!ELEMENT SUBTITLE (#PCDATA)>

 

<SUBTITLE>A New Approach</SUBTITLE>

<SUBTITLE></SUBTITLE>

 

2) 문자 데이터와 자식 엘리먼트

<!ELEMENT TITLE (#PCDATA | SUBTITLE)*>

: TITLE이라는 엘리먼트는 파싱된 문자 데이터를 가지고 있으며, SUBTITLE은 0개 또는 그 이상의

  엘리먼트를 가질수 있다는 의미.

 

아래는 모두 유효한 문서이다.

<TITLE>

Moby-Dick

<SUBTITLE>Or, the Whale</SUBTITLE>

</TITLE>

 

<TITLE>

<SUBTITLE>Or, the Whale</SUBTITLE>

Moby-Dick

</TITLE>

 

<TITLE>

Moby-Dick

</TITLE>

 

<TITLE>

<SUBTITLE>Or, Whale</SUBTITLE>

<SUBTITLE>Another Subtitle</SUBTITLE>

</TITLE>

 

<TITLE></TITLE>

저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

13. 외부 DTD 만들기  (0) 2008/12/22
12. 속성 선언하기  (0) 2008/12/22
11. 엘리먼트 컨텐트 모델  (0) 2008/12/22
10. 엘리먼트 타입 선언하기  (0) 2008/12/22
9. DTD만들기  (0) 2008/12/22
8. DTD 추가하기  (0) 2008/12/22
TAG XML
Posted by -세티-
2008/12/22 22:17

10. 엘리먼트 타입 선언하기 General Web2008/12/22 22:17


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 17일
옮긴일 : 2008년 12월 22일

1. 엘리먼트 타입 선언의 형태

<!ELEMENT Name contentspec>

 

<COLLECTION>

<CD>MozarViolin Concertos 1,2 and 3</CD>

<CD>Telemann Trumpet Concertos</CD>

<CD>Handel Concerti Gross Op.3</CD>

</COLLECTION>

이라는 XML 문서를 완전하게 만들어보면...

 

<?xml version="1.0"?>

<!DOCTYPE COLLECTION

[

<!ELEMENT COLLECTION (CD)+>

<!ELEMENT CD (#PCDATA)>

]

>

<COLLECTION>

<CD>MozarViolin Concertos 1,2 and 3</CD>

<CD>Telemann Trumpet Concertos</CD>

<CD>Handel Concerti Gross Op.3</CD>

</COLLECTION>

 

2. 엘리먼트 컨텐트 스펙

1) EMPTY 컨텐트 - 엘리먼트가 비어있다는 것

                            <IMAGE></IMAGE> or <IMAGE />

2) ANY 컨텐트 - 모든 컨텐트를 담을 수 있다는 것.

                        <!ELEMENT MISC ANY>

 

엘리먼트를 구성하기 위해 다음의 조건을 제시한다.

1) BOOK엘리먼트 타입은 엘리먼트 컨텐트를 가지도록 선언

2) 자식 엘리먼트로 TITLE, AUTHOR을 가진다.

3) 컨텐트 모델을 만든다. - 자식 엘리먼트의 타입과 순서를 나타냄

 

<!DOCTYPE BOOK

[

<!ELEMENT BOOK (TITLE, AUTHOR)>

<!ELEMENT TITLE(#PCDATA)>

<!ELEMENT AUTHOR(#PCDATA)

]

>

<?xml version="1.0"?>

<BOOK>

<TITLE>The Scarlet Letter</TITLE>

<AUTHOR>Nathaniel Hawthorne</AUTHOR>

</BOOK>

저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

12. 속성 선언하기  (0) 2008/12/22
11. 엘리먼트 컨텐트 모델  (0) 2008/12/22
10. 엘리먼트 타입 선언하기  (0) 2008/12/22
9. DTD만들기  (0) 2008/12/22
8. DTD 추가하기  (0) 2008/12/22
7. 유효한 XML 문서의 기본 조건  (0) 2008/12/22
TAG XML
Posted by -세티-
2008/12/22 22:16

9. DTD만들기 General Web2008/12/22 22:16


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

DTD는 [문자 다음에 마크업 선언이 온 후에] 문자가 오는 형태로 구성.

마크업 선언 : 문서의 논리적 구조를 서술 (문서의 엘리먼트, 속성, 그 외의 특징을 정의)

 

1. DTD를 포함하는 유효한 XML 문서의 예

<?xml version="1.0"?>

<!DOCTYPE SIMPLE

   [

   <!ELEMENT SIMPLE ANY>  --------- 엘리먼트 타입을 정의하는 마크업 선언

   ]

<SIMPLE> This is an extremely simplistic XML document. </SIMPLE>

해석 : 이 문서의 DTD는 오직 하나의 SIMPLE 엘리먼트 타입을 포함한다고 지정

         그리고 SIMPLE 엘리먼트는 모든 타입의 컨텐트(ANY)를 가질 수 있다고 지정.

 

2. DTD가 포함하는 마크업 선언 종류

1) 엘리먼트 타입 선언 : 이들 엘리먼트 타입 선언은 문서가 포함할 수 있는 엘리먼트의 타입뿐 아니라, 엘리먼트의 컨텐트와 순서도 정의할 수 있다.

2) 속성 목록 선언 : 각각의 속성 목록 선언은 특정한 엘리먼트 타입과 함께 사용될 수 있는 속성의 이름뿐 아니라, 이들 속성의 디폴트값과 데이터 타입을 선언한다.

3) 엔티티 선언 : 엔티티를 사용해서 자주 사용되는 텍스트 블록을 저장하거나, 문서에 XML 이 아닌 데이터를 통합할 수 있다.

4) 프로세싱 명령문

5) 주석

저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

11. 엘리먼트 컨텐트 모델  (0) 2008/12/22
10. 엘리먼트 타입 선언하기  (0) 2008/12/22
9. DTD만들기  (0) 2008/12/22
8. DTD 추가하기  (0) 2008/12/22
7. 유효한 XML 문서의 기본 조건  (0) 2008/12/22
6. CDATA 섹션 포함하기  (0) 2008/12/22
TAG XML
Posted by -세티-
2008/12/22 22:16

8. DTD 추가하기 General Web2008/12/22 22:16


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

DTD(Document Type Description : 문서타입선언)은 XML의 프롤로그에 추가해야만 한다.

아래의 파란 영역이 프롤로그 영역이다.

주석을 기준으로 위/아래에 문서 타입 선언이 위치할 수 있다.

참고로 아래의 초록색 영역은 도큐먼트 엘리먼트 영역이다.

 

<?xml version="1.0" encoding="utf-8"?>

<!-- 파일 이름 : Inventory.xml -->
<?xml-stylesheet type="text/css" href="family.css"?>

<INVENTORY>
<![CDATA["<html>"]]>
    <BOOK>
        <TITLE>The Adventures of Huckleberry Finn</TITLE>

        <BINDING>mass market paperback</BINDING>
        <AUTHOR>Mark Twain</AUTHOR>
        <PAGES>298</PAGES>
        <PRICE>$5.49</PRICE>
    </BOOK>
    <BOOK>
        <TITLE>The Marble Faun</TITLE>

        <BINDING>trade paperback</BINDING>
        <AUTHOR>Nathaniel Hawthorne</AUTHOR>
        <PAGES>473</PAGES>
        <PRICE>$10.95</PRICE>
    </BOOK>
    <BOOK>
        <TITLE>
           Moyy-Dick
             <SUBTITLE>Or, the Whale</SUBTITLE>
        </TITLE>

     <BINDING>Hardcover</BINDING>
        <AUTHOR>Human Melille</AUTHOR>
        <PAGES>724</PAGES>
        <PRICE>$9.95</PRICE>
 </BOOK>
</INVENTORY>

 

문서 타입 선언은 문서의 구조를 정의한다.

(문서 타입 선언이 존재하지 않는 문서라면 이것은 익스플로러 5에서 체크하게 된다. 익스플로러로는 문서의 정확성-Well Formedness-은 체크해 주지만 유효성은 체크해주지 않는다.)

 

문서타입선언(DTD)

DTD는 다음의 형태를 가진다.

<!DOCUMENT Name DTD>

[설명]

Name : Document Element의 이름

 

위의 XML 문서를 예로 든다면 DTD는 다음의 형태를 가진다.

(조건 : 문서 타입 정의는 모두 대문자여야 한다.)

<!DOCUMENT INVENTORY DTD>

저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

10. 엘리먼트 타입 선언하기  (0) 2008/12/22
9. DTD만들기  (0) 2008/12/22
8. DTD 추가하기  (0) 2008/12/22
7. 유효한 XML 문서의 기본 조건  (0) 2008/12/22
6. CDATA 섹션 포함하기  (0) 2008/12/22
5. XML 문서 잘 구성하기  (0) 2008/12/22
Posted by -세티-
2008/12/22 22:15

7. 유효한 XML 문서의 기본 조건 General Web2008/12/22 22:15


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 17일
옮긴일 : 2008년 12월 22일

XML 문서의 최소한 요구 사항을 따라야 하며 그러기 위해서는 아래의 2가지 조건을 만족해야 한다.

1. 문서의 프롤로그는 문서의 구조를 정의하는 DTD를 포함하고 있는, 적정한 문서 타입 선언을 포함하여야만 한다.

2. 문서의 나머지 부분은 DTD에 정의된 구조를 따라야만 한다.

 

XML 문서의 유효함에 대한 장점

1. DTD에 문서의 구조를 잘 정의하면 프로세스로 하여금 유효성을 체크하게 한다.

   (XML은 DTD를 "문서의 클래스 문법"으로 정의)

2. MathML과 같은 예

저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

9. DTD만들기  (0) 2008/12/22
8. DTD 추가하기  (0) 2008/12/22
7. 유효한 XML 문서의 기본 조건  (0) 2008/12/22
6. CDATA 섹션 포함하기  (0) 2008/12/22
5. XML 문서 잘 구성하기  (0) 2008/12/22
4. CSS를 이용한 XML 문서 출력  (0) 2008/12/22
Posted by -세티-
2008/12/22 22:14

6. CDATA 섹션 포함하기 General Web2008/12/22 22:14


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 16일
옮긴일 : 2008년 12월 22일

<![CDATA[Here you can any characters excepts two right brackers followed by a greater - than symbol.]]>

 

마크업과 같은 것을 실제 문자로 인식시키기 위해 CDATA안에 포함시킨다.

<A-SECTION>

The following is an example of a very simple HTML page:

 

<![CDATA [

<HTML>

<HEAD>

<TITLE>R.Jones &Sons</TITLE>

</HEAD>

<BODY>

<P>Welcome to our home page!</P>

</BODY>

</HTML>

]]>

 

</A-SECTION>

 

XML 마크업 안에는 CDATA가 위치할 수 없다.

적절한 CDATA 섹션의 삽입 예

<?xml version="1.0"?>

<MUSICAL>

<TITLE_PAGE>

<![CDATA[

<Oklahoma!>

By Rogers &Hammerstein

]]>

</TITLE_PAGE>

</MUSICAL>

 

잘못된 CDATA삽입 예

1.엘리먼트의 컨텐츠 안에 CDATA가 없다.

2. 시작테그 마크업 안에 있다.

<?xml vesion="1.0"?>

   <![CDATA[ ILLEGAL:: not within element content! ]]>

      <DOC_ELEMENT>

      <SUB_ELEMENT <![CDATA [ ILLEGAL::inside of markup! ]]>

         sub-element content...

      </SUB_ELEMENT>

   </DOC_ELEMENT>

저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

8. DTD 추가하기  (0) 2008/12/22
7. 유효한 XML 문서의 기본 조건  (0) 2008/12/22
6. CDATA 섹션 포함하기  (0) 2008/12/22
5. XML 문서 잘 구성하기  (0) 2008/12/22
4. CSS를 이용한 XML 문서 출력  (0) 2008/12/22
3. XML 문서의 생성  (0) 2008/12/22
Posted by -세티-
2008/12/22 22:13

5. XML 문서 잘 구성하기 General Web2008/12/22 22:13


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

1. <?xml version="1.0" standalone="yes" encoding="utf-8" ?>

- standalone은 문서 프로세싱을 단순화 하기 위한 것.

 

2. <BOOK><TITLE>The Adventures of Huckleberry Finn</TITLE></BOOK>

- 이것은 잘못 구성한 케이스 이다.

 

3. 엘리먼트는 시작태그, 내용, 마침태그로 구성된다.

 

4.     <BOOK>
           <TITLE>The Marble Faun</TITLE>
           <AUTHOR>Nathaniel Hawthorne</AUTHOR>
           <PAGES>473</PAGES>
           <PRICE>$10.95</PRICE>
        </BOOK>

 

- BOOK의 컨텐트, 다섯개의 네스팅된 엘리먼트(TITLE, AUTHOR, PAGES, PRICE)

 

5. <TITLE>The Marble Faun</TITLE> :  문자 데이터

 

6. CDATA : 모든 문자를 자유롭게 사용할 수 있다.

   <![CDATA [Document Name : "How to Enter the < and & Characters" ]]>

저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

7. 유효한 XML 문서의 기본 조건  (0) 2008/12/22
6. CDATA 섹션 포함하기  (0) 2008/12/22
5. XML 문서 잘 구성하기  (0) 2008/12/22
4. CSS를 이용한 XML 문서 출력  (0) 2008/12/22
3. XML 문서의 생성  (0) 2008/12/22
2. XML의 10가지 설계 목표  (0) 2008/12/22
Posted by -세티-
2008/12/22 22:12

4. CSS를 이용한 XML 문서 출력 General Web2008/12/22 22:12


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

XML 문서를 출력하기 위해 .css 인 파일을 하나 만든다.

 

<style type="text/css">
BOOK
{
 display : block;
 margin-top : 12pt;
 font-size : 10pt;
}
TITLE
{
 display : block;
 font-size : 10pt;
 font-style : Italic;
 font-weight : bold;
}
AUTHOR
{
 display : block;
 margin-left : 15pt;
 font-style : Italic;
 font-weight : bold;
}
BINDING
{
 display : block;
 margin-left : 15pt;
}
PAGES
{
 display : none;
}
PRICE
{
 display : block;
 margin-keft : 15pt;
}
</style>

 

다음으로 다음의 코드를 XML 문서에 추가한다.

<?xml version="1.0" encoding="utf-8" ?>

<?xml-stylesheet type="text/css" href="family.css"?>

<INVENTORY>
    <BOOK>
        <TITLE>The Adventures of Huckleberry Finn</TITLE>

        <BINDING>mass market paperback</BINDING>
        <AUTHOR>Mark Twain</AUTHOR>
        <PAGES>298</PAGES>
        <PRICE>$5.49</PRICE>
    </BOOK>
    <BOOK>
        <TITLE>The Marble Faun</TITLE>

        <BINDING>trade paperback</BINDING>
        <AUTHOR>Nathaniel Hawthorne</AUTHOR>
        <PAGES>473</PAGES>
        <PRICE>$10.95</PRICE>
    </BOOK>
    <BOOk>
        <TITLE>
           Moyy-Dick
             <SUBTITLE>Or, the Whale</SUBTITLE>
        </TITLE>

        <BINDING>Hardcover</BINDING>
        <AUTHOR>Human Melille</AUTHOR>
        <PAGES>724</PAGES>
        <PRICE>$9.95</PRICE>
    </BOOK>
</INVENTORY>

 

아래는 웹 브라우저를 통해 출력된 XML 문서이다.


 

저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

6. CDATA 섹션 포함하기  (0) 2008/12/22
5. XML 문서 잘 구성하기  (0) 2008/12/22
4. CSS를 이용한 XML 문서 출력  (0) 2008/12/22
3. XML 문서의 생성  (0) 2008/12/22
2. XML의 10가지 설계 목표  (0) 2008/12/22
XML 이란?  (1) 2008/12/22
Posted by -세티-
2008/12/22 22:10

3. XML 문서의 생성 General Web2008/12/22 22:10


이전 블로그(http://blog.naver.com/nashira7)에서 옮겨왔습니다.
작성일 : 2005년 7월 15일
옮긴일 : 2008년 12월 22일

<?xml version="1.0" encoding="utf-8" ?>
<INVENTORY>
    <BOOK>
        <TITLE>The Adventures of Huckleberry Finn</TITLE>

        <BINDING>mass market paperback</BINDING>
        <AUTHOR>Mark Twain</AUTHOR>
        <PAGES>298</PAGES>
        <PRICE>$5.49</PRICE>
    </BOOK>
    <BOOK>
        <TITLE>The Marble Faun</TITLE>

        <BINDING>trade paperback</BINDING>
        <AUTHOR>Nathaniel Hawthorne</AUTHOR>
        <PAGES>473</PAGES>
        <PRICE>$10.95</PRICE>
    </BOOK>
    <BOOk>
        <TITLE>
           Moyy-Dick
             <SUBTITLE>Or, the Whale</SUBTITLE>
        </TITLE>

        <BINDING>Hardcover</BINDING>
        <AUTHOR>Human Melille</AUTHOR>
        <PAGES>724</PAGES>
        <PRICE>$9.95</PRICE>
    </BOOK>
</INVENTORY>

 

xml을 보기 위해서는 다음의 xml parser를 다운받아 설치한다.

(http://www.microsoft.com/downloads/details.aspx?FamilyID=4a3ad088-a893-4f0b-a932-5e024e74519f&DisplayLang=en)

 

아래는 설치 후 웹 브라우저를 통해서 본 이미지


 

저작자 표시 비영리 변경 금지
Posted by -세티-