XML & XML Web Services

Document Sample
XML & XML Web Services Powered By Docstoc
					1. XML




         1장
간단한 XML 문서의 작성
 ▣   XML 문서의 작성
     ◈ Ultraedit, Acroedit과 같은 텍스트 파일 편집기를 이용해서 작성
     ◈ 확장자는 ".xml"로 저장한다.



                                               XML 문서는 인터
                                               넷 익스플로러에서
                                               확인할 수 있다.




 XML 문서의 파일
 확장자는 ".xml"이
 다.




                                                            2
간단한 XML 문서의 작성 (예제)
 1.   <?xml version="1.0" encoding="utf-8"?>

 2. <Computer>
 3.    <CPU>Pantium 2.0</CPU>
 4.    <Memory>512 MB</Memory>
 5.    <GraphicCard>Radeon 9200</GraphicCard>
 6. </Computer>




                                                3
XML 문서의 실행
 ▣   인터넷 익스플로러를 이용한 XML 문서의 확인
 <?xml version="1.0" encoding="utf-8"?>       <?xml version="1.0" encoding="utf-8"?>
 <Computer>                                   <Computer>
     <CPU>Pentium 2.0</CPU>                       <CPU>Pentium 2.0</CPU>
     <Memory>512 MB</Memory>                     <Memory>512 MB </mem>
                                                  <Memory>512 MB
     <GraphicCard>Radeon 9200</GraphicCard>       <GraphicCard>Radeon 9200</GraphicCard>
 </Computer>                                  </Computer>


                                                                      잘못 작성된 XML 문서
잘 작성된 XML 문서




                                 그림 1.2.2.1




                                                                              그림 1.2.2.2
                                                                                           4
XML 파서(XML Parser)
 ▣     XML 파서(Parser)
          ◈     XML 문서를 해석한 후 사용자가 프로그래밍할 수 있도록 인터페이스를 제공



  <?xml version="1.0"?>
  <Computer>
     <CPU>Pantium 2.0</CPU>
     <Memory>512 MB</Memory>
                                        XML 파서
     <GraphicCard>              XML                     실행
      Radeon 9200              문서 해석
     </GraphicCard>
  </Computer>


         XML 문서                        사용자 프로그램              실행 결과


 ▣     XML 파서의 종류
          ◈     Microsoft
                      – MSXML - 인터넷 익스플로러에 내장된 XML 파서
          ◈     Java
                      – SUN 사의 JAXP
                      – IBM 사의 XML4J



                                                                     5
Well-Formed XML과 Valid XML
  ▣   Well-Formed XML
      ◈   XML 1.0 스펙에서 정의된 문서 규칙을 따르는 XML 문서를 Well-Formed
          XML이라 한다.

  ▣   Valid XML
      ◈   DTD나 XML Schema에 정의된 XML 구조를 만족하는 Well-Formed XML 문
          서를 Valid XML이라 한다.
                 작성 규칙에
                  따라 작성                                          DTD나 XML Schema
                                   DTD와                          에서 정의된 문서 구
XML 1.0 스펙에                                                      조에 따라 작성된
                                 XML Schema를   구조에 따라 작성된        Well-Formed XML 문
   정의된                                         Well-Formed XML   서가 바로 Valid XML
                                   이용해서                          이다.
XML 작성 규칙
                   Well-Formed   XML 구조 정의

                      XML
                                                     Valid XML
 XML 문서가 기본
 적으로 지켜야 될
 작성 규칙에 따라
 작성된 XML 문서
 가 Well-Formed
 XML이다.


                                                                                     6
XML 문서의 물리적 구조
XML 문서                                           루트 엘리먼트
                                                (Root Element)
    머리말 (Prolog)

     XML 선언문            <?xml version="1.0" encoding="utf-8"?>
                                                                 어트리뷰트
                        <Computer>                               (Attribute)
     본문 (Body)

                                  <CPU number=“1”> Pantium 2.0 </CPU>
                                 <CPU number="1"> Pantium 2.0 </CPU>


                                 <Memory> 512 MB </Memory>
                                  <Memory> 512 MB </Memory>


             엘리먼트                <GraphicCard> Radeon 9200 </GraphicCard>
                                  <GraphicCard> Radeon 9200 </GraphicCard>
            (Element)
                        </Computer>



                                                                               7
XML 문서의 논리적 구조
 ▣    논리적 구조
       ◈   XML 문서는 트리 구조와 같은 계층 구조로 되어 있다.

<?xml version="1.0" encoding="utf-8"?>
<Computer>                                           Computer
     <CPU>Pentium 2.0</CPU>
                                                                   CPU
     <Memory>512 MB</Memory>
     <GraphicCard>Radeon 9200</GraphicCard>                                   Pentium 2.0
</Computer>
                                                                 Memory
                                         아무리 봐도
                                         XML 문서는 디                              512 MB
                                         렉터리 목록과
                                         같은 트리 구조
                                         군..                    GraphicCard

                                                                              Radeon 9200

                          폴더 목록과 같은                    XML 문서의 논리적 관점
                             트리 구조



                                                                                            8
2 Well-Formed XML 문서 작성
우리의 목표
 ▣   도서 정보를 나타내는 Well-Formed XML 문서 작성

         구분                       내용

         ISBN    X89-89984-06

         제목      XML과 XML Web Services

         저자      이명진

         페이지     1000

         출판일     2005년 11월 5일

         가격      25000 원



                                         10
XML 선언문(XML Declaration)
 ▣   XML 선언문의 작성
      ◈   XML 선언문의 사용은 선택적이지만, 사용할 경우 XML 선언문은
          반드시 XML 문서의 제일 처음에 와야 한다.

     <?xml        version="1.0"   encoding= "UTF-8"   standalone="yes"?>
                         필수             옵션                   옵션
                                                       외부 파일 참조 여부 지정
                  XML 버전을 명시      XML 문서의 인코딩을 지정         디폴트 값은 no



      ◈   XML 선언문의 세 가지 속성
             – version
                 • XML 문서의 권고안 버전을 기술하며, 그 값은 항상 1.0 이다.
             – encoding
                 • XML 문서가 어떤 문자 인코딩 방식에 따라 해석될 지를 지정한다.
             – standalone
                 • 외부 파일의 참조 없이 독립적으로 실행 가능한지를 지정한다.
                 • standalone 속성을 사용하지 않을 경우 기본값은 no이다.


                                                                           11
엘리먼트(Element)
 ▣   엘리먼트(Element)란?
     ◈   XML 문서를 이루는 기본 단위


     엘리먼트

               < C P U >   P e n t i u m 2 . 0   < / C P U >

                시작 태그          엘리먼트 내용             종료 태그




 ▣   작성 규칙
     ◈ 시작 태그와 종료 태그, 그리고 엘리먼트의 내용으로 구성된다.
     ◈ 태그 이름은 대소문자를 구분한다.
     ◈ 종료 태그가 없는 빈 태그(Empty Tag)는 뒤에 "/"를 붙인다.
     ◈ 올바른 중첩 구조를 가져야 한다.


                                                               12
엘리먼트 (예제)
 1.    <?xml version="1.0" encoding="utf-8"?>

 2. <Book>
 3.    <Title>XML</Title>             올바로 작성된 엘리먼트

 4.    <Title>XML               종료 태그가 사용되지 않아 잘못된 엘리먼트

 5.    <Title>XML</title>      대소문자가 일치하지 않으므로 잘못된 엘리먼트

 6.    <Publish></Publish>         엘리먼트의 내용이 없는 빈 엘리먼트

 7.    <Publish/>                빈 엘리먼트에서 종료 태그가 생략된 표현

 8.    <Author><name>이명진<name></Author>
 9.    <Author><name>이명진</Author></name>

 10.   </Book>                                  태그의 중첩이 잘못된 엘리먼트



                                                                   13
루트 엘리먼트(Root Element)
  ▣   루트 엘리먼트란?
         ◈ XML 문서의 최상위 엘리먼트를 의미한다.
         ◈ 루트 엘리먼트는 XML 문서에서 반드시 하나만이 존재해야한다.


<?xml version="1.0" encoding="utf-8"?>                <?xml version="1.0" encoding="utf-8"?>
<Book>                                                <Title>XML</Title>
   <Title>XML</Title>                                 <Author>이명진</Author>
   <Author>이명진</Author>
</Book>

                                                                             두 개의 루트 엘리
                                         루트 엘리먼트가                            먼트가 존재하므로
  올바른 XML 문서                             존재하지 않으므로                           잘못된 XML 문서
  에는 하나의 루트                              잘못된 XML 문서                          이다.
  엘리먼트만 존재해                              이다.
  야 한다.


                                                      <?xml version="1.0" encoding="utf-8"?>
                                                      This is unvalid XML document.

                                                                                               14
어트리뷰트(Attribute)
 ▣   어트리뷰트란?
     ◈   XML 문서에서 엘리먼트를 꾸며주는 형용사와 같은 역할을 한다.


 ▣   작성 규칙
     ◈ 어트리뷰트는 이름과 값의 쌍으로
      이루어진다.
     ◈ 어트리뷰트의 값은 큰 따옴표나
                                                      아름다운 꽃 장미
      작은 따옴표로 둘러 싸여져 있어야 한다.                                  XML

                                                 <꽃 모양="아름답다">장미</꽃>

                어트리뷰트 이름


         <CPU   number = "3"   maker = "Intel"   > Pantium 2.0 </CPU>

                                         어트리뷰트 값

                                                                        15
어트리뷰트 (예제)
 1.   <?xml version="1.0" encoding="utf-8"?>

                                                 잘 작성된 어트리뷰트
 2. <Book>
 3.    <Title number="3">XML</Title>
 4.    <Title number='3'>XML</Title>
                                                  어트리뷰트의 값
 5.    <Title number>XML</Title>                  이 명시되지 않았
                                                  기 때문에 잘못 작
                                                  성된 어트리뷰트
 6.    <Title number=3>XML</Title>
 7. </Book>                                     어트리뷰트 값이 큰
                                               따옴표나 작은 따옴표
                                               없이 사용되었으므로
                                                잘못된 어트리뷰트




                                                               16
엘리먼트와 어트리뷰트의 이름 규칙
 ▣   엘리먼트와 어트리뷰트의 이름
     ◈   엘리먼트와 어트리뷰트의 이름은 올바른 이름(qName, Qualified
         Name) 규칙에 따라 작성되어야 한다.


 ▣   이름 규칙
     ◈   이름은 반드시 문자로 시작해야 하며, 숫자로는 시작할 수 없다.
     ◈   이름 내부에 "_" 나 "." 같은 일부 기호를 사용할 수 있다.
     ◈   공백 문자를 포함할 수 없다.
     ◈   대소문자 구분 없이 XML(xml)이란 단어로 시작할 수 없다.
     ◈   "<" 뒤에 공백 문자를 포함할 수 없다.
     ◈   ":" 기호는 네임스페이스에 의해 예약된 문자이므로 사용하지 않는
         것을 권장한다.



                                                    17
엘리먼트와 어트리뷰트의 이름 규칙 (예제)
 1.   <?xml version="1.0" encoding="utf-8"?>

 2.  <Book>
 3.     <last@name />                    이름에 @ 기호를 포함할 수 없다.


 4.     <@#$%^()%+?= />                   특수 문자로 시작할 수 없다.


 5.     <A*2 />                          이름에 * 기호를 포함할 수 없다.


 6.     <1ex />                          이름은 숫자로 시작할 수 없다.


 7.     <xmlTag />                       xml이란 단어로 시작할 수 없다.


 8.     <XMLTag />                       XML이란 단어로 시작할 수 없다.


 9.     < name />                   이름 앞이나 중간에 공백 문자를 포함할 수 없다.


 10. </Book>


                                                                  18
주석문(Comments)
 ▣   주석문(Comments)
     ◈   XML 문서 내부에 사용자를 위해 삽입된 추가 설명 구문

                                              주석문은 XML 문
                                              서에 부가적인 설
                                              명을 추가하기 위
 ▣   주석문의 작성                                  해 사용한다.
     ◈   <!-- 와 --> 기호 사이에 추가 설명을 삽입한다.

            <!-- 이것은 주석문이며 해석되지 않습니다. -->




 ▣   주석문 작성 시 유의사항
     ◈ 주석문의 내부에는 주석문의 시작과 끝을 의미하는 "--" 기호를 삽입할 수
       없다.
     ◈ 주석은 XML 문서의 어디든 사용할 수 있지만, XML 선언문 앞에는 쓸 수
       없다.
          – XML 문서는 XML 선언문으로 시작해야 되기 때문이다.


                                                           19
주석문 (예제)
 1.   <?xml version="1.0" encoding="utf-8"?>

 2. <!-- 서적 정보를 나타내는 XML 문서 -->
 3. <Book>
 4.     <Title>XML과 XML Web Service</Title>
 5.     <!-- 여기에도 주석문을 쓸 수 있다. -->
 6.     <Author>이명진</Author>
 7. </Book>




                                               20
CDATA 섹션(CDATA Section)
 ▣   PCDATA(Parsed Character Data)
     ◈ PCDATA란 XML 문서에서 엘리먼트나 어트리뷰트의 값으로 사용될 수 있
       는 문자들을 말한다.
     ◈ XML 문서에 사용할 수 없는 문자들
          – XML 문법에 사용되기 때문에 XML 문서에서 사용할 수 없는 예약된 문자들이
            정의되어 있다.
          – "<" 문자는 태그의 시작 기호와 같기 때문에 사용할 수 없다.
             • &lt;의 형태의 엔티티 참조로 바꾸어 사용해야 한다.



 ▣   CDATA 섹션
     ◈ XML 문서에서 사용할 수 없는 문자를 사용하기 위한 구문으로써, 파서는
       CDATA 섹션으로 선언된 구문을 해석하지 않는다.
     ◈ "<![CDATA["로 시작하며, "]]>"로 끝난다.


         <![CDATA[    특수 문자를 참조 기호 없이 쓸 수 있는 공간   ]]>


                                                          21
CDATA 섹션 (예제)

 1.   <?xml version="1.0" encoding="utf-8"?>
                                                      <, &, > 와 같은 기호는 XML 문서
                                                      에 직접 쓸 수 없으므로 잘못된 구
 2.   <Code>                                                      문
 3.      <Line>if (a > b & b < c)</Line>
                                                        이와 같이 엔티티 참조 형태
                                                           로 바꿔써야 한다.

 4.       <Line>if (a &gt; b &amp; b &lt; c)</Line>

 5.      <Line><![CDATA[ if (a > b & b < c) ]]></Line>
 6.   </Code>
                                                              CDATA 섹션은 파서
                          혹은 CDATA 섹션으로                       에 의해 해석되지 않
                         묶어주면 사용할 수 있다.                       으므로 특수 문자를
                                                              사용해도 오류를 발
                                                              생하지 않는다.




                                                                                22
우리의 목표 달성
 ▣    도서 정보를 나타내는 Well-Formed XML 문서 작성

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

 2. <Book ISBN="X7-82219821-7">
 3.    <Title>XML과 XML Web Services</Title>
 4.    <Author>이명진</Author>
 5.    <Page>1000</Page>
 6.    <Publish year="2005" month="11" date="5" />
 7.    <Price unit="원">25000</Price>
 8. </Book>



                                                                23
3. DTD & Valid XML
Valid XML

  ▣    Valid XML이란?
       ◈   DTD나 XML Schema에 정의된 문서 구조를 따르는 Well-Formed XML 문서

  ▣    유효성 검사의 필요성
       ◈   Well-Formed XML은 단순히 오류가 없는 XML 문서라는 것을 의미한다.
       ◈   XML 문서 교환을 위해 XML의 구조 정의가 반드시 필요하다.


         <자동차>
판매점 A의     <이름>너나타</이름>
                                 이명진 물류 주식회사         XML 문서의
 주문서       <수량>3</수량>
         </자동차>                                해결   구조를 정의하고,
                                               방안   그 구조에 따라
         <자동차>
판매점 B의     <차종>SMK 5</차종>                            XML 문서를
                            XML 문서의 구조가             작성하도록 한다.
 주문서       <대수>10</대수>
                            서로 다르네..
         </자동차>
                            이걸 처리하려면 시간
                            이 꽤 걸리겠는걸.



                                                                25
DTD(Document Type Definitions)
 ▣   DTD란?
     ◈   XML 문서의 구조를 정의하기 위한 언어


          XML
                                         XML                   Valid XML
         구조 정의                           Parser
                                                    !          Document

          DTD
                  XML                                       DTD에 정의된
                                                            구조에 따라 작
      DTD에 따른    Document                                   성되었는지 검
     XML 문서 작성                                              사

                                              XML 문서가
                                              Well-Formed
                                              XML인지 검사
 ▣   DTD의 특징
     ◈ 간결한 문법으로 비교적 작성이 쉽다.
     ◈ 그러나, XML과 다른 문법을 사용한다.

 ▣   XML validator:   http://www.w3schools.com/xml/xml_validator.asp

                                                                           26
DTD (예제)
 1.    <?xml version="1.0" encoding="utf-8"?>

 2.    <!DOCTYPE Computer [
 3.    <!ELEMENT Computer (CPU, Memory, GraphicCard)>
 4.    <!ELEMENT CPU (#PCDATA)>
 5.    <!ELEMENT Memory (#PCDATA)>
 6.    <!ELEMENT GraphicCard (#PCDATA)>
 7.    ]>

 8.    <Computer>
 9.       <CPU>Pantium III</CPU>
 10.      <Memory>512 MB</Memory>
 11.      <GraphicCard>Radeon 9200</GraphicCard>
 12.   </Computer>




                                                        27
DTD 선언문(Document Type Declaration)
   ▣    XML 문서의 DTD 선언문(Document Type Declaration)
          ◈   XML의 구조가 DTD에 의해 정의되어 있다는 것을 명시하기 위한 구문

                                             DTD가 XML 문서의 내부
                                             에 작성되어 있는지, 아니
                                             면 외부에 파일 형태로 존
 내부 DTD(internal DTD)                        재하는지에 따라 DTD 선
                                                                  DTD가
                                             언 방법이 다르다.
 XML 문서                                                           정의된

                           외부 DTD(external DTD)                   파일
  <?xml version="1.0"?>

                           XML 문서
  <!DOCTYPE 문서타입이름 [
  ... DTD 정의 ...            <?xml version="1.0"?>
  ]>
                                                                  참조
                            <!DOCTYPE 문서타입이름 SYSTEM "DTD 파일이름">


        DTD 구조에 맞는
          XML Body                            DTD 구조에 맞는
                                                XML Body




                                                                       28
엘리먼트 선언(Element Declaration)
 ▣   엘리먼트 선언 방법
     ◈   <!ELEMENT   엘리먼트이름          엘리먼트내용>


 ▣   하위 엘리먼트를 갖는 엘리먼트 선언
     ◈   <!ELEMENT   Book   (Title, Author, PubDate)>        <Book>
                                                                   <Title />
                                                                   <Author />
 ▣   값을 갖는 엘리먼트 선언                                                 <PubDate />
                                                             </Book>
     ◈   <!ELEMENT   Title (#PCDATA)>
                                               <Title> XML Web Services </Title>
 ▣   빈 엘리먼트 선언
     ◈   <!ELEMENT   PubDate   EMPTY>
                                                         <PubDate />

                                                                              29
엘리먼트 선언 (예제)
 1.    <?xml version="1.0" encoding="utf-8"?>

 2.    <!DOCTYPE BookList [
 3.    <!ELEMENT BookList (Book)>
 4.    <!ELEMENT Book (Title, Author, PubDate))>
 5.    <!ELEMENT Title (#PCDATA)>
 6.    <!ELEMENT Author (#PCDATA)>
 7.    <!ELEMENT PubDate EMPTY>
 8.    ]>

 9.    <BookList>
 10.       <Book>
 11.                <Title>XML 프로그래밍</Title>
 12.                <Author>아무게</Author>
 13.                <PubDate />
 14.     </Book>
 15. </BookList>



                                                   30
엘리먼트의 연결자(connector)
 ▣   엘리먼트의 연결자
      ◈   하위 엘리먼트를 갖는 엘리먼트 선언에서 하위 엘리먼트들의 발생 관계를
          지정
          – , : and의 의미로 엘리먼트가 순차적으로 발생함을 의미
          – | : or의 의미로 엘리먼트가 선택적으로 발생함을 의미


   <!ELEMENT     A    (B, C)>            <!ELEMENT    A     (B | C)>

                                                     <A>
               <A>
                                                            <B />
                      <B />
                                                     </A>
                      <C />
               </A>
                                                     <A>
 "," 기호는 연속적
 으로 사용되어야                        "|" 기호는 둘 중 하              <C />
 한다는 것을 의미                       나가 사용된다는
 한다.                             것을 의미한다.            </A>


                                                                       31
엘리먼트의 연결자 (예제)
 1.    <?xml version="1.0" encoding="utf-8"?>

 2.    <!DOCTYPE BookList [
 3.    <!ELEMENT BookList (Book)>
 4.    <!ELEMENT Book (Title, Author, (PubDate | Date))>
 5.    <!ELEMENT Title (#PCDATA)>
 6.    <!ELEMENT Author (#PCDATA)>
 7.    <!ELEMENT PubDate EMPTY>
 8.    <!ELEMENT Date EMPTY>
 9.    ]>

 10.   <BookList>
 11.       <Book>
 12.                  <Title>XML Web Services</Title>
 13.                  <Author>이명진</Author>
 14.                  <Date />
 15.        </Book>
 16.   </BookList>

                                                           32
엘리먼트의 발생 지시자
 ▣   발생 지시자를 사용하지 않을 경우
     ◈ 엘리먼트가 반드시 한 번 사용된다.
     ◈ <!ELEMENT BookList (Book)>

 ▣   ? 를 사용할 경우
     ◈ 하위 엘리먼트가 사용되지 않거나 한 번 사용된다.
     ◈ <!ELEMENT BookList (Book?)>
                                       발생 지시자는 엘
 ▣   + 를 사용할 경우                        리먼트 선언 시 하
                                       위 엘리먼트의 사
     ◈   엘리먼트가 한 번 이상 사용된다.            용 횟수를 지정하
                                       기 위해 사용된다.
     ◈   <!ELEMENT BookList (Book+)>

 ▣   * 를 사용할 경우
     ◈ 엘리먼트가 사용되지 않거나 여러 번 사용될 수 있다. (0번 이상)
     ◈ <!ELEMENT BookList (Book*)>


                                                    33
엘리먼트의 발생 지시자 (예제)
 1.    <?xml version="1.0" encoding="utf-8"?>
 2.    <!DOCTYPE BookList [
 3.    <!ELEMENT BookList (Book+)>
 4.    <!ELEMENT Book (Title, Author*, (PubDate | Date)?)>
 5.    <!ELEMENT Title (#PCDATA)>
 6.    <!ELEMENT Author (#PCDATA)>
 7.    <!ELEMENT PubDate EMPTY>
 8.    <!ELEMENT Date EMPTY>
 9.    ]>
 10.   <BookList>
 11.        <Book>
 12.                   <Title>XML 프로그래밍</Title>
 13.                   <Author>아무게</Author>
 14.                   <PubDate />
 15.        </Book>
 16.        <Book>
 17.                   <Title>XML Web Services</Title>
 18.        </Book>
 19.        <Book>
 20.                   <Title>흥부와 놀자</Title>
 21.                   <Author>몽진</Author>
 22.                   <Author>이씨</Author>
 23.                   <Date />
 24.        </Book>
 25.   </BookList>
                                                             34
어트리뷰트 선언(Attribute Declaration)

 ▣   어트리뷰트 선언 방법
     ◈   <!ATTLIST    엘리먼트_이름
                     어트리뷰트_이름      어트리뷰트_형        디폴트_값>


 ▣   어트리뷰트의 형
     ◈   CDATA
          – 일반적인 값을 갖는 어트리뷰트
          – <!ATTLIST Date year CDATA   #REQUIRED>
     ◈   열거형
          – 열거된 값 중 하나를 선택적으로 갖는 어트리뷰트
          – <!ATTLIST Price unit (원 | 달러 | 엔) #REQUIRED>
     ◈   ID 형
          – XML 문서 내에 유일한 값을 갖는 어트리뷰트 선언
          – <!ATTLIST Book ISBN ID #REQUIRED>


                                                           35
어트리뷰트 선언 (예제)
 1.    <?xml version="1.0" encoding="utf-8"?>
 2.
 3.    <!DOCTYPE BookList [
 4.    <!ELEMENT BookList (Book+)>
 5.    <!ELEMENT Book (Title, Author*, Price, (PubDate | Date)?)>
 6.    <!ATTLIST Book ISBN ID #REQUIRED>
 7.    <!ELEMENT Title (#PCDATA)>
 8.    <!ELEMENT Author (#PCDATA)>
 9.    <!ELEMENT Price (#PCDATA)>
 10.   <!ATTLIST Price unit (원 | 달러 | 엔) #REQUIRED>
 11.   <!ELEMENT PubDate EMPTY>
 12.   <!ATTLIST PubDate year CDATA #REQUIRED
 13.                      month CDATA #REQUIRED>
 14.   <!ELEMENT Date EMPTY>
 15.   ]>
 16.
 17.   <BookList>
 18.         <Book ISBN="X134-9821235">
 19.                    <Title>XML 프로그래밍</Title>
 20.                    <Author>아무게</Author>
 21.                    <Price unit="달러">23.4</Price>
 22.                    <PubDate year="2004" month="05"/>
 23.         </Book>
 24.         <Book ISBN="X134-9821235">
 25.                    <Title>XML 프로그래밍</Title>
 26.                    <Price unit="유로">23.4</Price>
 27.         </Book>
 28.   </BookList>

                                                                    36
어트리뷰트의 디폴트 값(Attribute Defaults)
 ▣   #REQURIED
     ◈   반드시 사용되어야 하는 어트리뷰트 선언
     ◈   <!ATTLIST Book ISBN ID #REQURIED>

 ▣   #IMPLIED
     ◈   어트리뷰트가 사용될 수도 있고, 사용되지 않을 수도 있다.
     ◈   <!ATTLIST Date year CDATA #IMPLIED>

 ▣   "어트리뷰트 값"
     ◈ 선택적으로 어트리뷰트가 사용될 수 있으며 사용되지 않을 경우 묵시적으
       로 선언된 값을 갖는다.
     ◈ <!ATTLIST Price unit CDATA "won">

 ▣   #FIXED "어트리뷰트 값"
     ◈ 어트리뷰트의 사용은 선택적이지만, 어트리뷰트가 사용될 경우 반드시 선
       언된 값과 일치해야 한다.
     ◈ <!ATTLIST    Price unit CDATA #FIXED "won">
     ◈ <Price unit="won" />

                                                     37
어트리뷰트의 디폴트 값 (예제)
 1.    <?xml version="1.0" encoding="utf-8"?>
 2.    <!DOCTYPE BookList [
 3.    <!ELEMENT BookList (Book+)>
 4.    <!ELEMENT Book (Title, Author*, Price, (PubDate | Date)?)>
 5.    <!ATTLIST Book ISBN ID #REQUIRED>
 6.    <!ELEMENT Title (#PCDATA)>
 7.    <!ELEMENT Author (#PCDATA)>
 8.    <!ELEMENT Price (#PCDATA)>
 9.    <!ATTLIST Price unit (원 | 달러 | 엔) "원">
 10.   <!ELEMENT PubDate EMPTY>
 11.   <!ATTLIST PubDate year CDATA #FIXED "2005"
 12.                        month CDATA #IMPLIED>
 13.   <!ELEMENT Date EMPTY>
 14.   ]>
 15.   <BookList>
 16.        <Book ISBN="X134-9821235">
 17.                   <Title>XML 프로그래밍</Title>
 18.                   <Author>아무게</Author>
 19.                   <Price>23.4</Price>
 20.                   <PubDate year="2005" month="05"/>
 21.        </Book>
 22.        <Book>
 23.                   <Title>XML 프로그래밍</Title>
 24.                   <Price unit="달러">23.4</Price>
 25.                   <PubDate year="2001" month="05"/>
 26.        </Book>
 27.   </BookList>
                                                                    38
엔티티(Entity)의 사용
  ▣   엔티티(Entity)란?
      ◈   미리 정의된 개체를 참조 형태로 사용함으로써 반복적인 문서 작업을 줄이기 위한
          수단

  ▣   엔티티의 정의
      ◈   내부에 선언된 엔티티                                            name.txt
           – DTD 내부에 선언되어 사용되어 지는 엔티티
           – <!ENTITY 엔티티이름 "엔티티내용">
                                                                  이명진
      ◈   외부 참조를 위한 엔티티
           – XML 문서 외부에 존재하는 개체 참조시 사용
           – <!ENTITY 엔티티이름 SYSTEM "엔티티경로">
                                                                참조
                                    외부 엔티티
  ▣   엔티티의 사용
      ◈   &엔티티이름;                   <?xml version="1.0"?>
                                    <!DOCTYPE Person [
내부 엔티티                              <!ELEMENT Person (#PCDATA)>
<?xml version="1.0"?>               <!ENTITY name SYSTEM name.txt >
<!DOCTYPE Person [                  ]>
<!ELEMENT Person (#PCDATA)>
<!ENTITY name "이명진" >               <Person> &name; </Person>
]>
                                         결과      <Person>이명진<Person>
<Person> &name; </Person>                                              39
엔티티의 사용 (예제)
 ▣     Entity.xml
 1.    <?xml version="1.0" encoding="utf-8"?>
 2.
 3.    <!DOCTYPE BookList [
 4.    <!ELEMENT BookList (Book+)>
 5.    <!ELEMENT Book (#PCDATA)>
 6.    <!ENTITY name "XML 프로그래밍">
 7.    <!ENTITY bookContent SYSTEM "book.xml">
 8.    ]>
 9.
 10.   <BookList>
 11.        <Book>&name;</Book>
 12.        &bookContent;
 13.   </BookList>                               <BookList>
                                                      <Book>XML 프로그래밍</Book>
 ▣     book.xml                                       <Book>
 1.    <Book>                                              XML Web Services
 2.          XML Web Services                         </Book>
 3.    </Book>                                   </BookList>


                                                                              40
[Homework #1]
 ▣   다음 두 개의 DTD에 Valid한 XML 문서를 1개씩 제작하여
     제출하시오.
      1. catalog.dtd  제출할 XML 문서 이름 catalogInstance.xml

      2. report.dtd  제출할 XML 문서 이름 reportInstance.xml

 ▣   제출형태
     ◈   보고서 파일(HWP 또는 MS-Word)을 게시판에 업로드
         – 서론, 본론, 결론의 구조를 가진 보고서
            • 서론: Homework의 내용
            • 본론: 각각의 문제를 직접 풀어서 제출
                - 먼저 XML을 만들고 Validator를 통해 확인을 한 후에
                  보고서에는 그것을 복사하여 정리한다.
                - 반드시 Validator에 의하여 에러가 없다는 화면을 캡쳐하여 보고서에
                  삽입한다.
            • 결론: 숙제를 한 이후의 느낀점, 하고싶은 말, 또는 불평~~

                                                             41
[Homework #1]
 ▣   제출형태
     ◈   파일명: 웹서비스컴퓨팅-1차-홍길동-2005111222.hwp
     ◈   게시판의 게시물 제목: 웹서비스컴퓨팅-1차-홍길동-2005111222
     ◈   각종 질문은 “수업 Q&A 게시판”에 등록
     ◈   게시판 사용은 간단한 회원가입후 사용
          – 학번, 성명, 이메일은 정확히 입력


 ▣   제출기한
     ◈   2010년 9월 15일 (수요일) 23:59:59




                                                  42

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:50
posted:1/28/2012
language:Korean
pages:42
Jun Wang Jun Wang Dr
About Some of Those documents come from internet for research purpose,if you have the copyrights of one of them,tell me by mail vixychina@gmail.com.Thank you!