smileNewfreedom

블로그 이미지
freedom 모든 자유와 시간을 위해.....
by 다크포스
12-08 02:30
  • 680,220Total hit
  • 0Today hit
  • 4Yesterday hit

CALENDAR

«   2021/12   »
      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 30 31  

http://www.microsoft.com/Korea/MSDN/library/XML/ISSUES/2003/understxml/default.aspx
MSDN 참조
XML

XML(Extensible Markup Language)은 원래 World Wide Web의 새 문서 형식을 정의하기 위한 언어로 구상되었습니다. XML은 SGML(Standard Generalized Markup Language)에서 파생되었고 태그 언어를 정의하기 위한 언어인 메타 언어로 간주할 수 있습니다. SGML 및 XML은 태그('<' 및 '>'로 묶인 단어)를 사용하여 문서 구조를 설명하는 메커니즘을 제공하는 텍스트 기반 형식입니다. 웹 개발자의 경우 HTML과 XML이 유사하다는 점을 알 수 있을 것입니다. 이는 두 언어 모두가 SGML에서 파생되었기 때문입니다.

XML의 이용이 늘어남에 따라 이제 XML은 웹의 새 문서 형식을 설명하는 데 유용할 뿐만 아니라 구조화된 데이터를 설명하는 데도 적합한 것으로 널리 인식되고 있습니다. 구조화된 데이터의 예로는 스프레드시트, 프로그램 구성 파일 및 네트워크 프로토콜에 일반적으로 포함된 정보를 들 수 있습니다.

XML은 테이블 형식 데이터(예: 데이터베이스나 스프레드시트의 관계형 데이터)와 부분 구조화된 데이터(예: 웹 페이지 또는 업무 문서)를 모두 쉽게 표현할 수 있기 때문에 기존 데이터 형식보다 더 자주 사용됩니다. 널리 사용되는 기존의 파일 형식 중에서 CSV(쉼표로 구분된 값) 파일은 테이블 형식 데이터에 대해 잘 작동하지만 부분 구조화된 데이터는 잘 처리하지 못하며, RTF는 부분 구조화된 테스트 문서용으로 설계되었습니다. 이 때문에 XML이 정보 교환을 위한 국제 공통어로 널리 채택되고 있습니다.

XML 쿼리

일부 경우 데이터 검색 조건이 특수하거나 API에서 특정 쿼리로 처리할 수 있는 XML 문서의 특정 측면을 노출하지 못하기 때문에 API를 사용하여 XML 문서에서 정보를 추출하는 일이 번거로울 수 있습니다. XPath 1.0 및 발표 예정인 XQuery와 같은 XML 쿼리 언어에서는 XML infoset에서 정보를 추출하기 위한 풍부한 메커니즘을 제공합니다.

다음은 XPath를 사용하여 items 요소에서 첫째 compact-disc의 가수 이름과 제목을 가져오는 방법을 보여주는 예제입니다.

using System;
using System.Xml.XPath; 

public class Test{

  public static void Main(string[] args){
    
    XPathDocument doc   = new XPathDocument("test.xml"); 
    XPathNavigator nav  = doc.CreateNavigator(); 

    XPathNodeIterator iterator = nav.Select("/items/compact-disc[1]/artist | /items/compact-disc[1]/title");

    iterator.MoveNext();
    Console.WriteLine("Artist={0}", iterator.Current);

    iterator.MoveNext();
    Console.WriteLine("Title={0}", iterator.Current);

  }
}

XML 변환

종종 XML 문서를 하나의 어휘에서 다른 어휘로 변환할 필요가 있는데 인쇄에 알맞은 형식이나 웹 브라우저로 렌더링하는 경우가 있습니다. 이러한 경우에 어휘 변환을 통해 외부 엔터티에서 수신한 문서를 좀 더 익숙한 형식으로 변환할 수 있습니다.

XSLT (US)는 주요한 XML 변환 언어입니다. XSLT로 표현되는 변환에서는 소스 트리를 결과 트리로 변환하는 규칙을 설명합니다. 변환은 패턴과 템플릿을 연결하여 수행합니다. 패턴은 XPath 표현으로 문자열의 일부를 일치시키는 것이 아닌 XML 소스 트리의 일부를 일치시키는 정규식으로 간주할 수 있습니다. 패턴은 소스 트리의 요소와 일치합니다. 일치에 성공하면 템플릿이 인스턴스화되어 결과 트리의 일부를 만듭니다. 결과 트리를 구성할 때 소스 트리의 요소를 필터링하고 재정렬하고 임의의 구조를 추가할 수 있습니다.

다음 XSLT 스타일시트는 items 요소를 CD 정보 표를 포함하는 XHTML 웹 페이지로 변환합니다.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://www.w3.org/1999/xhtml">

<xsl:output method="xml" indent="yes"
    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" />


    <xsl:template match="/">

    <html lang="en" xml:lang="en">
     <head>
      <title>Order Information - ord123456</title>
     </head>
     <body>
       <table border="1">
        <tr><th>Artist</th><th>Title</th><th>Price</th></tr>

        <xsl:for-each select="items/compact-disc">
        <tr>
        <td><xsl:value-of xmlns="" select="artist" /></td>
        <td><xsl:value-of xmlns="" select="title" /></td>
        <td><xsl:value-of xmlns="" select="price" /></td>
        </tr>
        </xsl:for-each>

       </table>
     </body>     
    </html>
     
   </xsl:template>

</xsl:stylesheet>

이 스타일시트로 만든 XHTML 문서는 다음과 같습니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Order Information - ord123456</title>
  </head>
  <body>
    <table border="1">
      <tr>
        <th>가수 이름</th>
        <th>제목</th>
        <th>가격</th>
      </tr>
      <tr>
        <td>Nelly</td>
        <td>Nellyville</td>
        <td>16.95</td>
      </tr>
      <tr>
        <td>Baby D</td>
        <td>Lil Chopper Toy</td>
        <td>17.55</td>
      </tr>
    </table>
  </body>
</html>

'.NET' 카테고리의 다른 글

엔터프라이즈 검색  (0) 2007.09.11
코드로 사용자 지정 페이지 로드  (0) 2007.09.10
XML 이해 ~~  (0) 2007.08.30
COM+ 사용  (0) 2007.08.24
.NET의 Enterprise Service(COM+)  (1) 2007.08.24
ASP.NET 웹 응용 프로그램의 페이지 및 응용 프로그램 컨텍스트  (2) 2007.08.22
TRACKBACK 0 AND COMMENT 0




ARTICLE CATEGORY

분류 전체보기 (534)
멋진 사진들 (8)
배경화면들 (3)
.NET (112)
연애이슈 (65)
게임관련 (15)
경제 이슈 (60)
모델 (0)
사진(취미) (14)
노래 (8)
호주워킹홀리데이 (11)
Javascript (2)
Ajax (4)
스포츠 (74)
우주/과학/생활 (95)
Windows 2008 (19)
Silverlight (2)
여행 (6)
MS 자격증 (2)
해외이슈 (4)
IT정보 (16)
Server (5)
애니매이션 (9)