달력

02

« 2012/02 »

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  •  
  •  
  •  

'General Web'에 해당되는 글 43

  1. 2010/07/28 jQuery - .hasClass()
  2. 2010/07/27 jQuery-.html()
  3. 2010/07/27 jQuery - .attr()
  4. 2010/07/26 jQuery - 엘리먼트에 클래스 추가/삭제 하기.
  5. 2010/06/18 ASP + AJAX(JSON)
  6. 2009/02/11 Javascript를 이용한 개발에서의 MVC 패턴 (2)
  7. 2008/12/22 26. 레코드 사이 이동하기
  8. 2008/12/22 25. 싱글 레코드 데이터 바인딩 사용하기
  9. 2008/12/22 24 데이터 바인딩을 사용해서 XML 문서 출력하기(4
  10. 2008/12/22 23. 데이터 바인딩을 사용해서 XML 문서 출력하기(3)
  11. 2008/12/22 22. 데이터 바인딩을 사용해서 XML 문서 출력하기(2)
  12. 2008/12/22 21. 데이터 바인딩을 사용해서 XML 문서 출력하기(1)
  13. 2008/12/22 20. css를 사용해서 XML 문서 출력하기
  14. 2008/12/22 19. 파라미터 엔티티 선언하기
  15. 2008/12/22 18. 일반 엔티티 선언하기
  16. 2008/12/22 17. 엔티티의 종류(3가지 정의)
  17. 2008/12/22 16. ENTITY 정의하기와 사용하기
  18. 2008/12/22 15. 문서 유효하게 만들기
  19. 2008/12/22 14. 외부 DTD 서브셋의 일부를 조건부로 무시하기
  20. 2008/12/22 13. 외부 DTD 만들기
  21. 2008/12/22 12. 속성 선언하기
  22. 2008/12/22 11. 엘리먼트 컨텐트 모델
  23. 2008/12/22 10. 엘리먼트 타입 선언하기
  24. 2008/12/22 9. DTD만들기
  25. 2008/12/22 8. DTD 추가하기
  26. 2008/12/22 7. 유효한 XML 문서의 기본 조건
  27. 2008/12/22 6. CDATA 섹션 포함하기
  28. 2008/12/22 5. XML 문서 잘 구성하기
  29. 2008/12/22 4. CSS를 이용한 XML 문서 출력
  30. 2008/12/22 3. XML 문서의 생성
2010/07/28 03:00

jQuery - .hasClass() General Web2010/07/28 03:00

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <script type="text/javascript" language="javascript" src="jquery-1.4.2.js"></script>
        <style type="text/css">
            p { margin: 8px; font-size:16px; }   
            .selected { color: red; }
            .highlight { background: yellow; }
        </style>
    </head>
    <body>
        <h4>.hasClass( className ): 엘리먼트에 하나 또는 그 이상의 클래스가 할당될 수 있다. HTML에서 표현은 아래와 같다.</h4>
        &lt;div id="mydiv" class="foo bar"&gt;</div>
        <h4>.hasClass() 메서드는 엘리먼트에 클래스가 할당되어 있으면 true를 반환한다. 다음의 예는 true를 반환한다.</h4>
        $('#mydiv').hasClass('foo')<br />
        $('#mydiv').hasClass('bar')
       
        <h4>매치된 엘리먼트에서 'selected' 클래스 찾기</h4>
        <p>Hello</p>
        <p class="selected">Goodbye</p>
        <div id="result1">First paragraph has selected class: </div>
        <div id="result2">Last paragraph has selected class: </div>
        <div id="result3">Some paragraph has selected class: </div>
       
        <script>
            $("div#result1").append($("p:first").hasClass("selected").toString());
            $("div#result2").append($("p:last").hasClass("selected").toString());
            $("div#result3").append($("p").hasClass("selected").toString());
        </script>
    </body>
</html>
저작자 표시 비영리 변경 금지

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

jQuery - .hasClass()  (0) 2010/07/28
jQuery-.html()  (0) 2010/07/27
jQuery - .attr()  (0) 2010/07/27
jQuery - 엘리먼트에 클래스 추가/삭제 하기.  (0) 2010/07/26
ASP + AJAX(JSON)  (0) 2010/06/18
Javascript를 이용한 개발에서의 MVC 패턴  (2) 2009/02/11
Posted by -세티-
2010/07/27 09:15

jQuery-.html() General Web2010/07/27 09:15

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <script type="text/javascript" language="javascript" src="jquery-1.4.2.js"></script>
        <style type="text/css">
            p { margin:8px; font-size:20px; color:blue; cursor:pointer; }
            b { text-decoration: underline; }
            button { cursor: pointer; }
        </style>
    </head>
    <body>
        <h4>.html(): 이것은 xml 문서에서는 이용할 수 없다. 매치된 엘리먼트 집합의 첫번째 엘리먼트가 포함하는 html을 반환</h4>
        $('div.demo-container').html();<br>
        &lt;div class="demo-container"&gt;<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class="demo-box"&gt;Demonstration Box&lt;/div&gt; <= 결과값<br>
        &lt;/div&gt;<br><br>
       
        <p><b>Click</b> to change the <span id="tag">html</span></p>
        <p> to a <span id="text">text</span> node.</p>
        <p> This <button name="nada">button</button> does nothing.</p>

        <script>
            $("p").click( function() {
                var htmlStr =  $(this).html();
                $(this).text(htmlStr);
            });
        </script>

        <h4>.html( htmlString ): 매치된 엘리먼트가 포함하는 HTML을 문자열로 설정한다.</h4>
        $('div.demo-container').html();<br>
        &lt;div class="demo-container"&gt;<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class="demo-box"&gt;Demonstration Box&lt;/div&gt; <= 이 부분 교체<br>
        &lt;/div&gt;<br><br>

        <div class="demo-container">
            <div class="demo-box">Demonstration Box</div>
        </div>
        <script>
            $('div').html('<p>All new content. <em>You bet!</em></p>');
        </script>

        <h4>jQuery 1.4에서는 함수를 이용하여 값 바인딩이 가능</h4>
        <div class="demo-container1">
            <div class="demo-box">Demonstration Box</div>
        </div>
        <script>
            $('div.demo-container1').html( function() {
                var emph = '<em>' + $('p').length + ' paragraphs!</em>';
                return '<p>All new content for ' + emph + '</p>';
            });
        </script>

        <h4>각각의 div에 약간의 html을 추가</h4>
        <div></div>
        <div></div>
        <div></div>
        <script>
            $("div").html("<b>Wow!</b> Such excitement...");
            $("div b").append(document.createTextNode("!!!")).css("color", "red");
        </script>
    </body>
</html>
저작자 표시 비영리 변경 금지

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

jQuery - .hasClass()  (0) 2010/07/28
jQuery-.html()  (0) 2010/07/27
jQuery - .attr()  (0) 2010/07/27
jQuery - 엘리먼트에 클래스 추가/삭제 하기.  (0) 2010/07/26
ASP + AJAX(JSON)  (0) 2010/06/18
Javascript를 이용한 개발에서의 MVC 패턴  (2) 2009/02/11
Posted by -세티-
2010/07/27 03:00

jQuery - .attr() General Web2010/07/27 03:00

출처: http://api.jquery.com/attr/

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <script type="text/javascript" language="javascript" src="jquery-1.4.2.js"></script>
        <style type="text/css">
            em { color:blue; font-weight:boid; }
            div { color:red; }
        </style>
    </head>
    <body>
        <h4>.attr(attributeName): 애트리뷰트의 이름 가져오기</h4>
        <p>Once there was a <em title="huge, gigantic">large</em> dinosaur...</p>
        The title of the emphasis is: <div></div>

        <script type="text/javascript" language="javascript">
            var title = $("em").attr("title");
            $("div").text("title");
        </script>

        <h4>.attr(attributeName, value)</h4>
        <img id="greatphoto" src="http://www.dcollect.co.kr/data/rental/goods/small/DM2ST98_500.jpg" alt="brush seller">
        <script>
            /* 하나씩 애트리뷰트에 값 추가하기 */
            $('#greatphoto').attr('alt', 'Beijing Brush Seller');
            $('#greatphoto').attr('title', 'Photo by Kelly Clark');
        </script>

        <h4>.attr(map): 애트리뷰트-값 쌍의 맵</h4>
        <img id="greatphoto" src="http://www.dcollect.co.kr/data/rental/goods/small/DM2ST98_500.jpg" alt="brush seller">
        <script>
            /* 한번에 추가하기 */
            $('#greatphoto').attr({
                alt: 'Beijing Brush Seller',
                title: 'Photo by Kelly Clark'
            });
        </script>

        <h4>greatphoto ID값을 가지는 img 앨리먼트의 alt에 title을 결합하여 출력</h4>
        <img id="greatphotoA" src="http://www.dcollect.co.kr/data/rental/goods/small/DM2ST98_500.jpg" alt="brush seller">
        <script>
            /* 한번에 추가하기 */
            $('#greatphotoA').attr('title', function(){
                return this.alt + '- photo by kelly clark'
            });
        </script>

        <h4>모든 img 테그의 속성값 교체(소스내 주석 삭제)</h4>
        <img />
        <img />
        <img />
        <div><b>Attribute of Ajax</b></div>
        <script>
        /*
            $('img').attr({
                src: "http://www.dcollect.co.kr/data/rental/goods/small/7(1).jpg",
                title: "jQuery",
                alt: "jQuery Logo"
            });

            $("div").text($("img").attr("alt"));
        */
        </script>

        <h4>페이내의 div에 id 설정</h4>
        <div>Zero-th<span></span></div>
        <div>first<span></span></div>
        <div>second<span></span></div>
        <script>
            $('div').attr('id', function(arr){
                return "div-id" + arr;
            })
            .each(function() {
                $("span", this).html("(ID = '<b>" + this.id + "</b>')")
            });
        </script>
    </body>
</html>
저작자 표시 비영리 변경 금지

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

jQuery - .hasClass()  (0) 2010/07/28
jQuery-.html()  (0) 2010/07/27
jQuery - .attr()  (0) 2010/07/27
jQuery - 엘리먼트에 클래스 추가/삭제 하기.  (0) 2010/07/26
ASP + AJAX(JSON)  (0) 2010/06/18
Javascript를 이용한 개발에서의 MVC 패턴  (2) 2009/02/11
TAG jquery
Posted by -세티-
<html>
    <head>
        <title></title>
        <script type="text/javascript" language="javascript" src="jquery-1.4.2.js"></script>
        <style type="text/css">
            p { margin:0; }
            .pStyle { color:red; }
            .pStyleb { color:blue; }
            .highlight { background:yellow; }
            .item-1 { color:green }
            .item-2 { color:maroon }
        </style>
    </head>
    <body>

        <h2>jQuery - .addClass(): 클래스 추가/삭제</h3>
        <h3>단일 엘리먼트의 클래스 추가/삭제</h3>
        <p>1234</p>
        <p>5678</p>
        <p>9012</p>

        <script language="javascript">
            $('p').addClass('pStyle');    //클래스 추가하기
            $('p').removeClass('pStyle').addClass('pStyleb');    //추가한 클래스 제거하고 다른 클래스 추가하기.
            $('p:last').removeClass('pStyleb').addClass('pStyle');    //마지막 p 엘리먼트의 클래스를 제거하고 다른 클래스 추가.
            $("p:last").addClass("highlight");
        </script>
   
        <h3>리스트형 엘리먼트에 클래스 추가/삭제</h3>
        <ul>
            <li>가나다</li>
            <li>라마바</li>
            <li>사아자</li>
        </ul>

        <script type="text/javascript" language="javascript">
        $('ul li').addClass ( function() {
            return 'item-' + $(this).index();
        });
        </script>

        <script type="text/javascript" language="javascript">
        $('ul li:last').removeClass( function(){
            return 'item-' + $(this).index();
        })
        $('ul li:last').addClass ( function() {
            return 'item-' + $(this).index();
        });
        </script>
    </body>
</html>
저작자 표시 비영리 변경 금지

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

jQuery-.html()  (0) 2010/07/27
jQuery - .attr()  (0) 2010/07/27
jQuery - 엘리먼트에 클래스 추가/삭제 하기.  (0) 2010/07/26
ASP + AJAX(JSON)  (0) 2010/06/18
Javascript를 이용한 개발에서의 MVC 패턴  (2) 2009/02/11
26. 레코드 사이 이동하기  (0) 2008/12/22
TAG jquery
Posted by -세티-
2010/06/18 17:49

ASP + AJAX(JSON) General Web2010/06/18 17:49


ASP 페에지 코딩 부분

호출 페이지로 전달할 데이터를 생성해 낸다.
호출된 데이터는 JSON 타입으로 사용하기 위해 문자열로 만들어준다.

 <%

    response.charset = "utf-8"
   
    dim cmd, db
   
    set db = server.createobject("adodb.connection")
    db.open "provider=sqloledb; data source = IP Address;uid=DBID;pwd=PASSWORD;database=DBNAME"
   
    set cmd = server.createobject("adodb.command")
    cmd.activeconnection = db
    cmd.commandtext = spNAME
    cmd.commandtype = 1
   
    set rs = cmd.execute
   
    if not rs.eof then
        OpenEventCommentList = rs.getrows()
    end if
    rs.close
  
    set rs = nothing

'   ============================================================
'   배열로 저장된 레코드 셋 출력하기.
'   ============================================================
    dim rowCnt, colCnt
    rowCnt = ubound(OpenEventCommentList, 2)    '행
    colCnt = ubound(OpenEventCommentList, 1)    '열
  
    dim json
    if IsArray(OpenEventCommentList) then
        json = json + "["
        for i=0 to rowCnt
            json = json + "{"
            for j=0 to colCnt
                if j=0 then json = json + """UserID"":""" end if
                if j=1 then json = json + """Content"":""" end if
                if j=2 then json = json + """RegDate"":""" end if
                json = json + OpenEventCommentList(j, i)
                json = json + ""","
            next
            json = Mid(json, 1, len(json) -1)
            json = json + "},"
        next
        json = Mid(json, 1, len(json) -1)
       
        json = json + "]"
    end if
   
    response.write json
%>


HTML 호출 페이지
1. createXMLHttpRequest() 호출 객체를 생성한다.
2. 콜백함수를 호출할 getCommentList() 객체를 생성한다.
3. 콜백함수 getCommentList_Callback()를 생성한다.

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>댓글 기능</title>
    <script language="javascript" type="text/javascript">
        var strTable = "";
        function createXMLHttpRequest() {
            if (window.ActiveXObject) {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if (window.XMLHttpRequest) {
                xmlHttp = new XMLHttpRequest();
            }
        }

        function getCommentList() {
            createXMLHttpRequest();
            xmlHttp.onreadystatechange = getCommentList_Callback;
            xmlHttp.open("GET", "GetCmtList.asp", true);
            xmlHttp.send();
        }

        function getCommentList_Callback() {
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.status == 200) {
                    var obj = eval('(' + xmlHttp.responseText + ')');

                    strTable += "<table border='1' cellpadding='0' cellspacing='0'><tr><td>Idx</td><td>keyword</td><td>writeday</td></tr>";
                    for (var i = 0; i < obj.length; i++) {
                        strTable += "<tr>";
                        strTable += "<td>" + obj[i]["UserID"] + "</td>";
                        strTable += "<td>" + obj[i]["Content"] + "</td>";
                        strTable += "<td>" + obj[i]["RegDate"] + "</td>";
                        strTable += "</tr>";
                    }
                    strTable += "</table>";
                    document.getElementById("CommentList").innerHTML = strTable;
                }
            }
        }
    </script>
</head>
<body>
    <div id="CommentList"></div>
    <form id="eventComment">
        <textarea name="content" id="cheerContent" cols="100" rows="3"></textarea>
        <input type="button" value="comment" />
    </form>
    <script type="text/javascript" language="javascript">
        getCommentList();
    </script>
</body>
</html>



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


각 View는 템플릿을 포함한 마크업으로 구성됨.
Controller는 View와 연결되며, View에서 호출하는 이벤트에 대한 로직을 가지고 있음.
Controller는 Model을 통해 View의 모양이나 데이터를 변경함.
디렉토리 구조는 MVC 모델에 따라 구조화 되며, 각 컴포넌트는 도메인을 기준으로 구성할 수 있음.
  • Model
    • 구성1.js
    • 구성2.js
  • View
    • 구성1.js
    • 구성2.js
  • Controller
    • 구성1.js
    • 구성2.js

저작자 표시 비영리 변경 금지
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 -세티-