'W3C'에 해당하는 글 97건

<meta> Header Element

W3C/HTML 2007. 10. 30. 02:08
Function
- 문서에 관한 추가적인 정보를 제공한다.

Attributes
- charset, content, dir, http_equiv, lang, name

End tag
- HTML 에는 없고, XHTML 에는 </meta> 또는 <meta... /> 를 사용


The name attribute

name 속성은 <meta> 태그에 name/value 의 이름으로 정의한다.
name 에는 일반적으로 문서에 대한 키워드를 정의하는 keywords 가 사용된다.
웹의 검색엔진에서 이 키워드들은 문서를 분류하는데 사용된다.

<meta name="keywords" content="kumquats, cooking, peeling, eating">


The content attribute

content 속성은 <meta> 태그에 name/value 의 이름으로 정의한다.
값은 스페이스를 포함한다면 따옴표로 둘러쌓여진 문자열이 될 수 있다.
예를 들어, 문서에서 저자의 이름을 쓴다면

<meta name="Authors" content="Chuck Musciano & Bill Kennedy">


The http-equiv attribute

http-equiv 속성은 <meta> 태그에 name/value 의 이름으로 정의한다.
문서를 전송하기 전 브라우저에 넘겨진 MIME 문서 헤더에 name/value 를 포함하도록 서버에 지시한다.

서버가 브라우저에 문서를 보낼 때, 먼저 name/value의 수를 보낸다.
어떤 서버들은 이 name/value의 수들를 보내는 반면에, 모든 서버들은 적어도 하나를 보낸다.

content-type: text/html

이것은 브라우저에게 HTML 문서를 받는다고 전하는 것이다.

pragma - HTTP/1.0에서 캐시를 제어하기 위해 사용된다. 값은 'no-cache'를 사용한다.
cache-control - HTTP/1.1에서 캐쉬 에이전트의 행동을 기술한다.
refresh - HTML 문서를 Reload 하는 시간을 기술한다. URL을 추가로 기술하여 다른 문서를 로드시킬 수 있다.

http-equiv 속성을 가진 <meta> 를 사용한다면, 서버는 브라우저에 보내는 컨텐츠 헤더에 여러분의 name/value 를 더할 것이다.

<meta http-equiv="charset" content="iso-8859-1">
<meta http-equiv="expires" content="31 Dec 99">

위 메타태그가 브라우저에 보내는 헤더를 나타낸다.
content-type: text/html
charset: iso-8859-1
expires: 31 Dec 99


The charset attribute

문서에 사용될 문자셋의 이름을 속성값에 지정한다.
문자셑을 정의하기 위해 항상 http-equivcontent 속성을 사용하기를 권한다.

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

XMLHttpRequest Object

W3C/Ajax 2007. 6. 27. 11:28
Ajax 페이지를 만들 때, 가장 먼저 해야할 일이 있다.
서버와 연결할 수 있는 XMLHttpRequest 객체 생성.
XMLHttpRequest가 도대체 어떤 놈인지 알아보았다.


HTTP Request 는 무엇인가?

HTTP 요청을 가지고 웹 페이지가 요청을 만들 수 있다.
그리고 페이지 리로드없이 웹서버로부터 응답을 얻는다.
사용자는 같은 페이지에 머무를 것이고, 스크립트가 페이지를 요청하거나 백그라운드에서 서버에 데이터를 보내는 것에는 주의하지 않을 것이다.

XMLHttpRequest 객체를 사용함으로서, 웹 개발자는 페이지가 로드된 후에 서버의 데이터로 페이지를 변경할 수 있다.
Google Suggest는 매우 동적인 웹 인터페이스를 만들기 위해 XMLHttpRequest 객체를 사용하고 있다. 사용자가 구글의 검색박스에 타이핑을 시작할 때 자바스크립트는 서버에 문자를 보내고, 서버는 추천 목록을 반환한다.


XMLHttpRequest 객체는 W3C 표준인가?

XMLHttpRequest 객체는 자바스크립트 객체이고, W3C에서 추천하지 않는다.
그러나, W3C DOM 레벨 3 "Load and Save" 명세는 몇몇 유사한 기능을 포함하지만, 아직 어떤 브라우저에서도 작동되지는 않는다.
만약 사용자가 브라우저에서 HTTP 요청을 보내고 싶다면, XMLHttpRequest 객체를 사용하여야만 할 것이다.


XMLHttpRequest 객체 생성

For Mozilla, Firefox, Safari, Opera, Netscape:
var xmlhttp = new XMLHttpRequest();

For Internet Explorer:
var xmlhttp = new ActiveXObject( "Microsoft.XMLHTTP" );


XMLHttpRequest Object Reference

Methods
  • abort()
    현재 요청을 취소한다.
  • getAllResponseHeaders()
    http 헤더의 완전한 셑을 문자열로 반환한다.
  • getResponseHeader( "headername" )
    지정된 http 헤더의 값을 반환한다.
  • open( "method", "URL", async, "uname", "pswd" )
    method와 URL, 요청의 다른 선택적인 속성들을 지정한다.
    method 파라미터는 "GET", "POST", "PUT"의 값을 가질 수 있다.
    보통 처음 데이터 검색 요청에는 GET 연산자를 사용하고, 서버에 자료를 보낼 때와 특히 출력데이터의 길이가 512byte 보다 클때는 POST 연산자를 사용한다.
    URL 파라미터는 상대주소나 절대주소도 가능하다.
    async 파라미터는 요청이 동기식인지, 비동기식인지를 지정한다.
    true는 응답을 기다리지 않고, send() 메소드 뒤에 스크립트 처리를 계속하는 것을 의미하고 false는 스크립트 처리를 계속하기 전에 응답을 기다리는 것을 의미한다.
  • send( content )
    요청을 보낸다.
  • setRequestHeader( "label", "value" )
    보내진 http 헤더에 label과 value 한 쌍을 더한다.

Properties
  • onreadystatechange
    모든 상태가 바뀔 때 발생하는 이벤트에 대한 이벤트 핸들러
  • readyState
    객체의 상태를 반환한다.
    0 = uninitialized
    1 = loading
    2 = loaded
    3 = interactive
    4 = complete
  • responseText
    문자열로 응답을 반환한다.
  • responseXML
    XML로 응답을 반환한다. 이 속성은 W3C DOM 노드 트리 메소드와 속성을 사용하여 검사되고 분석될 수 있는 XML 문서 객체를 반환한다.
  • status
    숫자로 상태를 반환한다. (예, "Not Found" - 404, "OK" - 200)
  • statusText
    문자열로 상태를 반환한다. (예, "Not Found"나 "OK"등)

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

XPath Functions

W3C/XML 2006. 12. 12. 18:44
필터를 이용한 엘리먼트 선택

필터는 특정한 엘리먼트를 선택할 때 사용된다.
조건식이나 XPath에서 제공하는 다양한 연산자, 표준함수와 같이 사용된다.
XPath 표현식에서 사용되는 모든 연산자와 함수들은 XPath 필터인 "["와 "]" 사이에 사용된다.

* XPath 연산자
+ 더하기
- 빼기
* 곱하기
div 나누기
mod 나눈 후 나머지값
= 같다
!= 같지 않다
< 작다
<= 작거나 같다
> 크다
>= 크거나 같다
or 또는
and 그리고

* XPath Node Set 함수
count - 현재 선택된 엘리먼트의 수를 가져온다.
id - 선택된 엘리먼트의 고유 ID를 가져온다.
last - 선택된 엘리먼트의 마지막 자식 엘리먼트를 가져온다.
local-name - 선택된 엘리먼트의 접두사를 제외한 이름을 가져온다.
name - 선택된 엘리먼트의 접두사를 포함한 이름을 가져온다.
namespace-uri - 네임스페이스의 경로를 가져온다.
position - 현재의 위치 정보를 가져온다.

* XPath 문자열 함수
concat - 두 문자열의 결합된 결과를 가져온다.
normalize-space - 불필요한 공백을 제거한다.
contains - 두 인자 중에 첫 번째 인자에 두 번째 인자의 문자가 있으면 true, 그렇지 않으면 false를 반환한다.
starts-with - 두 인자 중에 첫 번째 인자의 스트링의 첫 번째 문자와 두번째 인자의 시작 문자가 같으면 true를 반환한다.
string - 문자열로 변환한다.
string-length - 문자열의 길이를 반환한다.
substring - 전체 문자열 중에 지정한 만큼의 부분 문자열을 반환한다.
substring-after - 전체 문자열 중에 지정된 문자열의 바로 뒤의 문자열을 반환한다.
substring-before - 전체 문자열 중에 지정된 문자열의 바로 앞의 문자열을 반환한다.
translate - 문자열 안에서 해당 문자를 대체 문자로 치환한다.

* XPath 숫자형 함수
celling - 입력된 인자 중에서 가장 작은 자리의 정수(integer)를 반환한다.
floor - 입력된 인자 중에서 가장 큰 자리의 정수(integer)를 반환한다.
number - 수를 갖는 문자열을 인자로 입력받아 숫자로 바꾸어 준다.
round - 소수점의 자리를 없애준다.
sum - 엘리먼트의 값을 모두 찾아 더한다.

* XPath 부울형 함수
boolean - 인자를 Boolean으로 변환시킨다.
false - false를 반환한다.
not - 인자가 true이면 false를, false면 true를 반환한다.
true - true를 반환한다.

/책목록/책[1]
- 최상위 엘리먼트 <책목록>의 <책> 엘리먼트 중 첫번째 자식 엘리먼트가 선택된다.

/책목록/책[last()]
- 최상위 엘리먼트 <책목록>의 <책> 엘리먼트 중 마지막 자식 엘리먼트가 선택된다.

/책목록/책[가격>10000]/가격
- <책목록>의 <책> 엘리먼트 중 가격이 10000보다 큰 가격 엘리먼트가 선택된다.


다중 Path를 이용하여 선택하기

연산자 "|"를 이용하여 여러개의 Path 중 하나를 선택하여 사용할 할 수 있다.
"|" 표현문자는 여러 상황에 따라 필요한 값을 미리 설정해 놓는다.
주로 <xsl:if>와 함께 쓰여 조건에 부합하면 앞의 것을 부합하지 않으면 뒤의 것을 선택한다.

/책목록/책/제목 | /책목록/책/저자
//저자 | //가격



속성 선택하기

속성을 선택하기 위해서는 선택하고자 하는 속성 이름 앞에 Lcation path 표현식 중에 "Attribute::"의 단축 표현식인 "@"를 붙여준다.

- 문서 전체에서 이름이 country 인 속성을 모두 선택한다.

//책[@country]
- 문서 전체에서 속성 이름이 country를 가지는 모든 <책> 엘리먼트를 선택한다.

//책[@country='한국']
- 문서 전체에서 속성 이름이 '한국'인 <책> 엘리먼트를 선택한다.

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

XPath

W3C/XML 2006. 12. 12. 18:32
XPath

  • XML 엘리먼트의 경로를 설정하는데 사용되고, 주로 XSLT의 문서 변환에 사용된다.
  • 많은 표준 함수 라이브러리 형태로 제공한다.
  • XML 문법을 따르지 않는다.
  • XPath 표현식은 노드 집합(node-set), 문자열(string), 숫자형(number), 부울형(boolean) 타입으로 구분하여 사용자에게 원하는 결과를 알려준다.
  • XPath 표현식은 Location path 표현식을 기본으로 한다.

Location path

XML 문서의 어떤 노드에 대해서 절대경로와 상대경로의 위치에 존재하는 노드들을 선택할 수 있게 한다. 계산된 최종 결과는 선택된 노드들의 집합(node-set)이 된다.

axisname::nodetest[predicate]

- axisname : 어떤 노드를 검색하고자 하는 키가 되는 Location path 이름
- nodetest : 검색하고자 하는 노드
- predicate : 조건식

child::가격[가격>10000]

- 자식 엘리먼트 중에 10000보다 큰 가격을 갖는 <가격>엘리먼트를 선택한다.


Location path 표현식 (axisname)

ancestor - 현재 노드의 모든 부모 노드들을 가져온다.
ancestor-or-self - 모든 부모노드에 현재 노드를 포함하여 가져온다.
attribute - 현재 노드의 모든 속성을 가져온다.
child - 현재 노드의 모든 자식노드를 가져온다.
descendant - 현재 노드의 모든 자식노드를 가져온다.
descendant-or-self - 모든 자식노드에 현재 노드를 포함하여 가져온다.
following-sibling - 현재 노드 다음에 있는 모든 형재노드를 가져온다.
namespace - 현재 노드의 모든 네임스페이스 노드들을 가져온다.
parent - 현재 노드의 부모노드를 가져온다.
preceding-sibling - 현재 노드 전에 있는 모든 형제노드를 가져온다.
self - 현재 노드를 가져온다.


Location path 표현식의 단축 표현식

@ - attribute::
. - self::node()
.. - parent::node()
// - /descendant-or-self::node()
/ - Document Root


"/" 이용하여 노드 지정하기

"/"와 "//"은 XSLT에서 변환하고자 하는 XML 문서의 노드를 지정할 때 사용한다.
"/"는 문서의 루트(root)노드로서 가상 문서노드라고도 한다.
문서 루트노드는 최상위 엘리먼트보다 상위에 위치해 있다.

/책목록
- 최상위 엘리먼트인 <책목록> 엘리먼트가 선택된다.

/책목록/책/가격
- <책목록>의 하위에 있는 <책>엘리먼트 중에서 <가격>이라는 모든 엘리먼트를 선택한다.


"//" 이용하여 노드 지정하기

"//"는 경로와 상관없이 지정된 노드를 검색할 때 사용한다.
따라서 XML 문서 안에서 찾고자 하는 엘리먼트 이름과 동일한 이름의 엘리먼트를 모두 가져오게 된다.

//책
- XML 문서 안에 있는 모든 <책> 엘리먼트를 가져온다.

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

XSLT

W3C/XML 2006. 12. 12. 18:20
XML 문서에 XSL 스타일 적용

@ book.xml
<?xml version="1.0" encoding="UTF-8" ?>
<책목록>
  <책>
       <제목>vb와 asp를 이용한 XML 프로그래밍</제목>
       <저자>Mark Wilson, Tracey wilson</저자>
       <국가>USA</국가>
       <출판사>이한 출판사</출판사>
       <가격>18,000</가격>
       <출판년도>1998</출판년도>
  </책>
  <책>
       <제목>인터넷 마크업 언어(XML)</제목>
       <저자>정회경</저자>
       <국가>한국</국가>
       <출판사>배재 출판사</출판사>
       <가격>5,000</가격>
       <출판년도>2000</출판년도>
  </책>
  <책>
       <제목>XML by Example</제목>
       <저자>Benoit Marchal</저자>
       <국가>미국</국가>
       <출판사>이한 디지털리</출판사>
       <가격>25,000</가격>
       <출판년도>2001</출판년도>
  </책>
  <책>
       <제목>비주얼 베이직</제목>
       <저자>홍길동</저자>
       <국가>한국</국가>
       <출판사>대림 출판사</출판사>
       <가격>28,000</가격>
       <출판년도>2000</출판년도>
  </책>
</책목록>

XSL을 적용하고 HTML 문서로 변환하여 브라우저로 보여주기 위해 HTML 태그를 사용

@ book.xsl
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
  <html>
  <body>
       <h2>나의 컴퓨터 서적 목록</h2>
       <table border="1">
       <tr bgcolor="#9acd32">
       <th align="left">제목</th>
       <th align="left">저자</th>
       </tr>
  <xsl:for-each select="책목록/책">
       <tr>
       <td><xsl:value-of select="제목"/></td>
       <td><xsl:value-of select="저자"/></td>
       </tr>
  </xsl:for-each>
       </table>
  </body>
  </html>
  </xsl:template>
</xsl:stylesheet>

  • <xsl:template match="/">
    XSL 문서에 있는 template는 스타일을 적용하고자 하는 노드를 가리킬 때 사용한다. match 속성에 지정한 노드를 만나면 템플릿을 적용하라는 뜻이다. 즉, 최상위 엘리먼트(/)를 만나면 템플릿을 적용하라는 의미를 갖는 엘리먼트이다.

  • <xsl:for-each select="element">
    select 속성을 통해 찾고자하는 XML 문서의 엘리먼트를 반복하면서 모두 가져온다. 즉, 책목록의 하위 엘리먼트인 <책>이라는 이름을 가진 엘리먼트를 모두 가져온다.

  • <xsl:value-of select="element">
    select 속성을 통해 선택된 엘리먼트 내용의 값을 XPath 표현식으로 가져온다. XPath 표현식을 사용하여, <책>엘리먼트 중 저자가 "정회경"인 <책>엘리먼트를 가져올 때는 select="책목록/책[저자='정회경']" 과 같이 할 수 있다.
- 이 밖에도 몇가지 XSL 문법이 더 있다.

  • <xsl:sort select="저자" />
    sort는 변환된 데이터를 정렬할 때 사용하고, <xsl:for-each> 바로 밑에 위치한다. 한글과 영어가 혼합된 데이터에서는 한글 다음에 영어가 정렬된다.

  • <xsl:if>
    if는 주로 XML 문서의 데이터를 조건에 따라 만족하는 값으로 추출할 때 사용된다.
    <xsl:if test="가격&gt;'10000'">
      문장...
      문장...
    </xsl:if>

    - 가격이 10,000원 이상일 때 다음 문장을 수행하라는 뜻이다.

  • <xsl:choose>
    C 언어에서의 switch...case문처럼 어떤 특정한 조건이 맞을 때 그 맞는 조건에 대한 값을 선택할 때 사용한다. <xsl:choose>는 <xsl:when>과 <xsl:otherwise>와 함께 사용한다.
    <xsl:choose>
      <xsl:when test="가격&gt;'10000'">
          문장 수행...
      </xsl:when>
      <xsl:otherwise>
          문장 수행...
      </xsl:otherwise>
    </xsl:choose>

    - 가격이 10,000원 보다 크면 <xsl:when> 이하의 문장 수행, 그렇지 않은 경우에는 <xsl:otherwise> 이하의 문장 수행

  • <xsl:apply-templates>
    XML 문서의 엘리먼트에 대해서 개별적인 스타일을 지정하는 template를 구성하여 적용할 수 있도록 한다. 즉, 특정한 그룹을 묶어 따로 스타일을 적용한다.

* XSL 문서를 작성했으면 XML 문서의 선언부 바로 밑에 XSL 정보를 삽입한다.
<?xml-stylesheet type="text/xsl" href="book.xsl"?>


View XSL Output

XSL 문서가 XML 문서에 적용되어 소스도 HTML로 보여져야 하지만 MSXML 파서가 XSLT를 완벽하게 지원하지 않으므로 XML 소스를 그대로 보여준다.

하지만 DTD 유효성 검사를 위한 유틸리티를 설치했던 "maxmlvw.inf"가 XSLT를 통해 변환된 HTML 코드를 볼 수 있도록 해주는 역할을 한다.

XML 문서에서 오른쪽 마우스 버튼을 클릭하여 [View XSL Output] 항목을 클릭하면 XSL과 XML 문서를 이용하여 XSLT 변환기에 의해 생성된 HTML 소스를 볼 수 있다.

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,