database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Tutorials 8142 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 8142
XML for Real
작성자
정재익(advance)
작성일
2001-10-27 23:26
조회수
7,145

원본 출처 : http://doug.burns.tripod.com/xml.html

번역 : 정재익

 

개론

 

XML 은 미래를 밝혀줄 아주 좋은 기술이다. 그러나 XML 개발을 시작할 방법에 대한 정보를 얻기는 쉽지 않은 현실이다. 이 글은 어떻게 그 정보를 찾을 수 있고, 다양한 컴포넌트들을 설치할 수 있는지 설명하고 있다. 여러분들은 먼저 SQL 질의를 포함하는 XML 페이지에 대한 사용자 요구를 받아 들일수 있는 데이터베이스 서버의 설치가 필요하다. 이 질의는 오라클 8i 에서 실행되고, 결과는 다른 사용자 장치로 전달될 것이다. 그리고 이것은 여러분 자실이 정의한 stylesheets 에서 재 포맷팅될 것이다.

 

여러분들의 응용 프로그램에서 사용할 수 있도록, XSQL 페이지, XML 문서, 그리고 XSL Stylesheets 에 대한 예제에 대해 논의하게 될 것이다. 기본 운영체계는 여러분들의 PC 에서 개발 시스템을 설치할 수 있도록 Windows 2000 을 사용할 것이다. 그러나 이 정보는 다른 운영체계에서도 똑 같이 적용될 수 있다.

 

만약 여러분들이 웹 서핑이나 오라클, Microsoft, IBM, Sun 등과 같은 회사로 부터 오는 메시지들을 읽고 있다면, 여러분들은 XML 이 2003년 경에는 세상의 평화를 가져다 줄것이라는 것을 알게 될 것이다. 그러고 WAP, Jini, Linux, COM, DCOM, YCOM ... 등등에 대해서도 들을 수 있을 것이다. XML 이 중용한 두가지 이유를 들어 보자. (XML 에 대한 보다 정확한 정보들을 알기 위해서 이 글의 끝 부분에 있는 resource section 을 참조하기 바란다.)

 

이것은 W3C 표준이다 - 새로운 형식으로 만들이진 확장 가능한 모델을 이용하여 누구나 인터넷을 통해서 좀더 효율적으로 통신할 수 있는 가능성이 있다. 때로는 이것을 문서자료를 위한 TCP/IP, HTTP 또는 SQL 의 한종류로서 여기기도 한다. 그리고 우리가 사용하는 컴퓨터를 가속화 시킬수 있는 잠재력도 가지고 있다.

 

이것은 자료와 그 표현방식으로 서로 분리시켜 준다 - 이들은 사용자의 위치와 요구에 따라 사용자들에 또 다른 사용자들의 접근 방식으로서 더욱더 중요해 지고 있다. 이전의 markup language 의 노력에도 불구하고 좀더 유연한 확장성이 요구되고 있다.

 

좀더 투명해 짐을 의미한다 - 이동 매체들은 좀더 구조화된 공간내에서 운영될 것이기 때문에 좀더 지적인 결정을 할 필요가 있다.

 

웹서버

 

그럼 오라클 데이터베이스에서 XML 응용프로그램을 개발하기 위해서 무엇을 필요로 하며, 어디서 찾을 수 있으며, 어디에 설치해야 할 것인가? 이 글은 Windows 2000 Professonal, ORacle 8i (8.1.6), XML developer's kit with Oracle 8.1.5 에서 테스트되고 작성되었다. 나는 여러분들이 운영체제와 데이터베이스를 이미 설치하여 운용중이며, Oracle_Home directory 는 C:\Oracle\Ora81 이라고 가정하고 글을 적도록 하겠다.

 

모든 자바관련 컴포넌트들은 데이터베이스 내에서 이용가능하지만, 나는 설정을 단순화 하기 위해서 외부의 JVM (Java Virtual Machine) 을 사용하도록 하겠다. 나는 Sun사의 JDK(http://java.sun.com/products/jdk/1.1/download-jdk-windows.html 10Mb) 를 이용하도록 하겠다.

 

Java Servlet Development Kit (JSDK, http://java.sun.com/products/servlet/download.html/) 도 필요하다. 나는 900kb 의 자가 압축해제 파일로 구성된 2.0 을 설치하여 사용중이다.

 

다음으로 XML 페이지를 제공하기 위해 Java servlets 를 제공해 줄 웹서버를 동작시켜야 한다. 나는 Apache (http://apache.org/dist/binaries/win32/apache_1_3_11_win32.exe , 3 Mb) 를 사용중이며, 이것과 연관된 설정으로 이곳에서 설명하도록 하겠다. 그러나 다음에서 간략하게 적도록 하겠다.

 

여러분들이 다운로드 받은 실행파일을 실행시킨다. 기본 설치 디렉토리를 선택하고 Apache 를 설치한다. 설정 파일에서 적절한 설정을 하기 위해서 하나만 변경시켰다 (C:\Program Files\Apache Group\Apache\conf\httpd.conf 내에 있는). 이곳에는 ServerName 이라는 지시자가 있는데 이것은 나의 로컬 컴퓨터 이름을 명시해 주었다.

[b]
               ServerName PC1
[/b]

Apache 내의 설정 파일에서 XML 과 연관된 페이지로 바로 접근할 수 있도록 directory alias 를 설정해 주면, XML 페이지를 Apache home directory 의 일부 처럼 아주 편리하게 사용할 수 있다.

[b]
               Alias /xsql/ "C:/xsql/"
[/b]

여러분들은 동시에 WAP WML 파일에 대해서 MIME 타입을 설정하고자 한다면, 나는 이것에 관해서 뒤에 언급하겠지만, 같은 디렉토리 내의 mime.types 파일을 수정하고, 이곳에 다음 행이 포함되어 있는지 확인하도록 한다.

[b]
               text/vnd.wap.wml   wml
               text/vnd.wap.wmlscript   wmls
[/b]

만약 NT 상에서 아파치를 돌리고 있다면 NT service 의 일부로서 아파치를 설정할 수 있다. NT 의 Services panel 을 사용하여, 이것이 동작하도록 설정하면 된다. 만약 필요하다면, 여러분들이 자동적으로 기동 되도록 설정하면 된다.

[b]
              cd \Program Files\Apache Group\Apache 
              apache -i
[/b]

Oracle XSQL servlet 를 돌리기 위해서, 아파치의 Jserv module (http://java.apache.org/jserv/dist/ApacheJServ-1.1.exe, http://java.apache.org/jserv/) 이 필요할 것이다. 나는 Jserv 1.1 을 다음 링크로 부터 다운로드 받아 사용하고 있다. 다운 로드 받은 파일을 실행시키고, 모두 기본값으로 설치했다.

 

이제 우리는 Oracle 8i database 와 Java servlet 을 지원하는 웹서버를 가지게 되었다. 이제 관심을 XML 과 관련된 툴로 한번 돌려 보자.

 

The Oracle XML Developer's Kit

 

오라클사는 다양한 오라클 개발 툴과 유틸리티들을 Oracle XML Developer's Kit (XDK) 로서 패키지 해 두었으며, 이들은 다음과 같은 툴들로 구성되어 있다. 이들 모두는 여러분들의 Oracle 8i database 내에 설치할 수 있다.

 

XML Parser (Java, PL/SQL, C++ and C versions available)

 

무엇보다도 가장 중요한 툴은 XML parser 이다. 왜냐하면 이것이 다른 툴들의 기초가 되기 때문이다. 이것은 XML 1.0 을 지원하며, 가치가 인정이 되었던 되지 않은 parser 던 어느 것이든 사용할 수 있으며, 둘다 parsing 으로 접근하기 위하여 Document Object Model (DOM) 과 Simple API for XML (SAX) 를 둘다 지원해야 한다.

 

XML Class generator (Java and C++ versions available)

 

XML Class generator 는 DTD 에 기반한 class 정보를 포함하는 소스 파일을 생성한다. 그래서 다른 개발 팀들은 이 DTD 스펙에 맞는 작업을 손쉽게 할수 있도록 해 준다.

 

XML SQL Utility

 

XML SQL 유틸리티는 두개의 서로 보상적인 작업을 할수 있는 Java class 패키지이다:

 

. 데이터베이스 질의로 부터 관련 DTD 파일과 XML 파일을 생성한다.

. XML 데이터를 데이터베이스 테이블로 올린다.

 

XML SQL Utility

 

이 툴은 XSQL Servlet 에 관련된 것이다. 이것은 어떤 Java Servlet Interface 를 지원하는 표준 웹서버에서 동작할 수 있도록 고안되었다. 이것은 내장 SQL 쿼리를 포함한 XSQL 페이지를 받아 들이며, 결과로서 XML 을 돌려 준다. 그리고 적절한 XSL Translation processor 를 사용해서 다른 형식으로 변환할 수 있다.

 

설치

 

XSQL Servlet Download (http://technet.oracle.com/tech/xml/xsql_servlet/) 에는 하나의 패키지 내에 JDBC driver, Java 를 위한 XML parser 그리고 XML SQL Utility package 를 포함하고 있다. (2.7 Mb ZIP 파일이다)

 

배포본을 설치할 디렉토리를 선택하라. 가르치기 위해서 C drive 의 root 디렉토리에 설치한 것으로 가정하겠다. 배포본을 풀때에 xsql 서브디렉토리가 생성된다. (C:\xsql). 배포본의 release note (C:\xsql\doc\relnotes.html)에는 아주 좋은 설치와 사용법 내용이 적혀 있다. 그러나 이것은 중요한 단계들만을 간단한게 정리한 것이다.

 

첫번째 단계는 우리가 설치한 Java class 를 사용할 수 있또록 Jserv 모듈 설정을 수정하는 것이다. C:\Program Files\Apache Jserv 1.1\conf=jserv.properties 를 수정해서 다음 행을 삽입한다. 파일에는 이미 wrapper.classpath 지시자가 존재할수도 있다. 만약 그렇다면 그 명확하게 하기 위해서 이미 존재하는 행 다음줄에 삽입해 주는 것이 좋다.

 

[b]
    # Added by me
    # Oracle XSQL Servlet
     wrapper.classpath=C:\xsql\lib\oraclexsql.jar     
   # Oracle JDBC (8.1.6)
     wrapper.classpath=C:\xsql\lib\classes111.zip     
   # Oracle XML Parser 2
     wrapper.classpath=C:\xsql\lib\xmlparserv2.jar     
   # Oracle XML SQL Components for Java
     wrapper.classpath=C:\xsql\lib\oraclexmlsql.jar
   # XSQLConnection.xml File Location
     wrapper.classpath=C:\xsql\lib
[/b]

 

다음으로 C:\Program Files\Apache Jserv 1.1\conf\jserv.conf 를 수정하고, 다음 행을 추가해야 한다. (이미 이 행이 있을수도 있다. 그럴 경우에는 ApJServAction 행을 코멘트 처리를 하고다음을 entry point 로서 사용하도록 설정해야 한다)

 

[b]
    ApJServAction .xsql /servlets/oracle.xml.xsql.XSQLServlet 
[/b]

 

$ORACLE_HOME\xsql\lib\XSQLConfig.xml 에는 XSDK 에서 데이터베이스로 접속할때 이용할 정보를 포함하고 있다. scott/tiger 계정을 이용하여 데모를 실행시킬려면, 여러분들은 이것을 수정할 필요가 있다. 먼저 복사를 하고 기존에 존재하는 행을 수정을 한다. 그러면 다음과 같이 보일 것이다. (접속 이름은 대소문자를 구분하며, 이탤릭체로 적혀 있는 값은 여러분들에게 맞는 값으로 변경하면 된다.)

[b]
    
       [i]your_username[/i]
       [i]your_password[/i]
       jdbc:oracle:thin:@localhost:1521:ORCL
       oracle.jdbc.driver.OracleDriver
     
[/b]

 

설치 - 쉬운 방법

 

만약 독립된 PC 에서 개발하길 원한다면, 그리고 후에 서버 플랫폼으로 이전 할 생각이라면, XSQL 0.9.9.3 버전이 훨씬 더 설치하기 간편하고, XML 개발 환경을 쉽게 설정할 수 있다. 이 배포본은 Web-to-go server 를 포함하고 있으며, Servlet 2.1 API 를 지원하는 다일사용자 서버이며, 개발 목적으로 윈도우즈 하에서 실행될 수 있도록 개발되어 있다. Release note 에 보면 완전한 설명이 포함되어 있다.

 

이제 준비가 되었다 !

 

설치후 처음으로 할 것은 데모 (http://localhost/xsql/index.xsql)를 보는 것이며, 오라클에서 제공하는 아주 훌륭한 문서를 보는 것이다. 이것은 설치가 제대로 되었는지에 대한 테스트도 될 것이다. Employee page 를 클릭하면 Demos tab 이 하이라이팅 되고 있을 것이다. 이것을 클릭하면 xsql/demo/emp/emp.xsql 을 연다. 이것은 기본적인 SCOTT.EMP 테이블을 이용하여 XSQL servlet 를 사용하는 방법에 대한 몇가지 중요한 점을 보여 주는 아주 좋은 예제이다.

 

Example 1 - emp.xsql

 

[b]
 
 
  
 
SELECT * FROM EMP WHERE ENAME LIKE UPPER('%%') ORDER BY  
 
 

[/b]

 

이 예제에서 가장 재미있는 사항은 질의인자 (query parameter) 를 질의로 전달할 수 있다는 점이다. 인자의 기본값은 <xsql:query> 인자 속성 속에 포함되어 있다. 그러며 page 내의 인자를 어떻게 저달할 것인가? <?xml-stylesheet> 처리 명령어에서 XSQL stylesheet 를 확인할수 있고, 이것이 이 문서를 처리해서 브라우저로 보내 준다. 그리고 이 파일에서 질의를 위한 query 를 발견할 수 있을 것이다.

 

Example 2 - emp.xsl

 

<?xml version="1.0"?>

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

<xsl:import href="../common/rowcol.xsl"/>

<xsl:template match="page">

<html>

<head>

<link rel="stylesheet" type="text/css" href="rowcol.css" />

</head>

<body class="page">

<center>

<form action="emp.xsql" method="post">

Value of 'find' Parameter to Match ENAME: <input type="text"

value="" name="find"/>

</form>

</center>

<xsl:apply-templates select="ROWSET"/>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

[/pre]

 

emp.xsl stylesheet 가 XSLT 처리기에 의해서 가공되었을 때, 출력은 다음과 비슷하다. input field 내에 다른 값을 넣어 줌으로서, 우리는 데이터베이스로 실행될 질의를 동적으로 변경할수 있다.

 

[b]
Value of 'find' Parameter to Match ENAME: [               ]

EMPNO ENAME  JOB           MGR HIREDATE               SAL COMM DEPTNO 
7876      ADAMS  CLERK       7788 1987-05-23 00:00:00.0 1100        20 
7499      ALLEN  SALESMAN 7698 1981-02-20 00:00:00.0 1600 300   30 
7698      BLAKE  MANAGER  7839 1981-05-01 00:00:00.0  2850        30 
7782      CLARK  MANAGER  7839 1981-06-09 00:00:00.0  2450        10 
7900      JAMES  CLERK       7698 1981-12-03 00:00:00.0  950         30 
7654      MARTIN SALESMAN 7698 1981-09-28 00:00:00.0 1250 1400 30 
7521      WARD   SALESMAN 7698 1981-02-22 00:00:00.0 1250 500   30 
[/b]

 

이 예제는 servlet 에서 몇가지 중요한 점을 보여 주고 있다 :

 

. XML 출력을 일반적인 브라우저 (XML 을 지원하지 않는 브라우저) 에서 보기 적당한 HTML 문서로 출력할 때, 내장된 XSLT 처리기를 이용하여 변환한다.

. 사용자가 제공하는 인자를 이용하여 동적인 질의를 실행한다.

. XSQL (사용자가 요구하는 질의를 포함하는 XML 문서에 대해서 오라클에서 붙인 이름이다) 페이지 내에서 질의를 실행하기가 쉽다는 것이다.

 

실생활에서의 예제

 

과거에는 무선 인터넷 서비를 구현하기 위해서 많은 시간을 소모했다. 나는 이제 XML 이 이런 분야에서 중요한 역할을 할것이라고 생각한다. XML/XSL 조합의 가장 흥미있는 것 중 하나는 미래의 브라우저의 방향을 보여주고 있다는 것이다. 자료를 변환하여 출력을 만들기 위해서 적당한 stylesheet 를 사용해서 XSL 변환 처리기를 이용할수 있다. 현재 이동통신 서비스의 가장 좋은 표준은 Wireless Application Protocol (WP) 이다. WAP 의 markup language 를 Wireless Markup Language (WML) 이라고 부른다 (흥미로운 것은 그 자체가 XML 을 이용해서 개발된 markup language 라는 것이다) 그러나 이것이 미래에는 바뀔 것이라는 것을 누가 알겠는가 특히 이 프로토콜을 둘러싸고 현재 많은 논쟁이 진행중이다. 게다가 XML 은 자료 자체와 그 표현을 서로 독립시키기 위한 목적으로 만들어진 markup language 인데 우리들 스스로 이것을 하나의 출력 장치로 한정 지울 필요가 있겠는가?

 

서비스를 개발시에 하나의 컨텐트를 XML 형식으로 생성하고 저장해 두게 되면, 이 서비스를 직접 제공하는 시점까지는 그 표현 방식을 늦추어도 된다. 그리고, 표준이 변하고 발전하는 동안, 마지막 컨텐트를 생성할때 사용하는 XSLT 인 stylesheet 를 변경할 수 있다.

 

나는 최근 WAP 를 지원하는 웹사이트를 위한 프로토타입의 간단한 예제를 하나 개발했다. 이것은 직업을 구하는 것인데, 사용자가 조건을 입력하면, 가장 최근에 입력된 직업 중에서 사용자게 보여 주는 것이다. 그렇기 때문에 자료를 동적으로 추출해 낼 필요가 있다. 이동 전화기의 화면이 너무 제한적이고, 대역폭은 아직도 제한적이다. 표현 방식은 찾기 편하도록 기본적으로 표시하였다.

 

첫번째 프로토타입 화면은, 사용자의 검색조건에 일치하는 가장 최근에 포스팅된 5개의 직업을 출력하도록 했다. 여기서 정적인 검색 문자열을 사용하였다. 그러나 이 정보는 실제 시스템 내에 있는 데이터베이스 내의 사용자 프로파일 레코드에 저장될 것이다. 화면은 데이터베이스 내의 하나의 테이블인 JOB 테이블로 접근할 필요가 있다. 그리고, 각각의 직업의 제목을 포함한 제일 상위의 카드를 만들었는데, 이는 직업에 관하여 좀더 세부 정보를 포함한 카드로 연결되도록 만들었다. 이것은 사용자가 포스팅 된 직업을 좀더 빨리 ㅗㄹ수 있도록 해주며, 여러분들이 보고자 하는 정보를 다시 입력할 필요없이 상세한 정보를 볼수 있도록 해준다. 이러한 예제를 가능하게 하는 XSQL 페이지는 믿을수 없을 정도로 간단하다.

 

Example 4 - jobserve.xsql

 
 
 
  SELECT substr(title,1,26) short_title, title, location, skills FROM job 
               WHERE UPPER(title) LIKE '%ORACLE%' 
               ORDER BY first_posted DESC 
 

 

이곳에서는 아무런 인자값도 전달하지 않기 때문에 (비록 검색과 순차를 정하는 구문이 구현시에 이미 특정 값으로 인자화 되어 있기는 하지만), 우리가 해야될 것은 오로지 기본적인 SQL 질의뿐이다. 간략화 된 제목을 포함하는 필드를 하나 생성하는데, 이것은 우리들의 메인 페이지로 연결되도록 하면 유용하다. xsql:xquery 요소를 잘 보기 바란다. 추출 속도와 이동 전화기로 다운로드를 올리기 위해서 최대 출력 수는 5줄로 한정했다 (대역폭을 기억하기 바란다)

 

가장 의미은 행은 출력형식 변환에 사용되는 jobserve.xsl stylesheet 이다. 만약 이 페이지를 볼수 없다면, 이 페이지를 WAP phone 이나 에뮬레이터를 이용하여 보기를 권장한다. 이 페이지를 Internet Explorer 5 나 다른 XML 이 가능한 브라우저를 사용할 것을 권장하며, 원본 XML 은 다음과 같이 보일 것이다.

 

Example 5 - Unaltered XML Output

 

<?xml version="1.0" ?> <ROWSET> <ROW num="1"> <SHORT_TITLE>Oracle Database</SHORT_TITLE> <TITLE>Oracle Database Administrator - Investment Banking</TITLE> <LOCATION>Luxembourg</LOCATION> <SKILLS>Oracle Database Administrator For Financial Organisation. PL/SQL, SQL*Plus, Forms 4.5, Reports 2.5.</SKILLS> </ROW> <ROW num="2"> <SHORT_TITLE>Senior Analyst:</SHORT_TITLE> <TITLE>Senior Analyst: Oracle & Delphi</TITLE> <LOCATION>Leeds, West Yorkshire</LOCATION> <SKILLS>Senior Oracle & Delphi developers required by large retail organisation. Both roles need a mix of experience in Oracle PL/SQL, Oracle designer, Oracle Forms & Delphi. Experience of structured systems analysis also required.</SKILLS> </ROW> <ROW num="3"> <SHORT_TITLE>Oracle Developer</SHORT_TITLE> <TITLE>Oracle Developer</TITLE> <LOCATION>Kettering, Northamptonshire/London</LOCATION> <SKILLS>Our client is looking for 2 Oracle Developers with 2 years experience, preferably on Oracle 8i. Some knowledge on Java would be desirable. The company is relocating to London in the near future.</SKILLS> </ROW> <ROW num="4"> <SHORT_TITLE>Oracle Developer</SHORT_TITLE> <TITLE>Oracle Developer</TITLE> <LOCATION>Milton Keynes, Buckinghamshire</LOCATION> <SKILLS>An Oracle Developer with 18 months exp. is required, with Designer 2000, Unix/NT, SQL, PL/SQL & Forms. You must have an awareness of structured methods in analysis & design. You must be good at problem solving & to have an int. in Social Care Business.</SKILLS> </ROW> <ROW num="5"> <SHORT_TITLE>Oracle Developer</SHORT_TITLE> <TITLE>Oracle Developer</TITLE> <LOCATION>Kettering/London</LOCATION> <SKILLS>An Oracle Developer with 18 months exp. is required, with Designer 2000, Unix/NT, SQL, PL/SQL & Forms. You must have an awareness of structured methods in analysis & design. You must be good at problem solving & to have an int. in Social Care Business.</SKILLS> </ROW> </ROWSET>

 

출력된 XML 을 보면 XML 의 장점 중 하나인 하이라이팅을 시켜 볼수 있는데 이것은 XML tag 가 자료의 성격을 기술하기 때문에 시작적으로 읽기 편하게 해 주기 위함이다. 그러나 이것이 일반적인 사용자 서비스에서 유용성이나 가독성이 떨어진다면, 우리는 보기 좋도록 XSL 을 변환하는 것이 필요하다.

 

XSL 변환

 

여기에 XSQL 페이지에서 참조할 sytlesheet 가 있다. 이것은 오라클이 사용자에 서비스할 마지막 출력을 생성하는 XSL 변환 처리기 에서 읽어 들여 사용한다.

 

Example 6 - jobserve.xsl Stylesheet

 

<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" doctype-public="-//WAPFORUM//DTD WML 1.1//EN" media-type="text/vnd.wap.wml" doctype-system="http://www.wapforum.org/DTD/wml_1.1.xml" encoding="ISO-8859-1"/> <xsl:template match="/"> <wml> <card> <p><b>Recent Postings</b></p> <xsl:for-each select="ROWSET/ROW"> <p><anchor><go> <xsl:attribute name="href">#card<xsl:number/> </xsl:attribute> </go><xsl:value-of select="SHORT_TITLE"/></anchor></p> </xsl:for-each> </card> <xsl:for-each select="ROWSET/ROW"> <card> <xsl:attribute name="id"> card<xsl:number/> </xsl:attribute> <p><b><xsl:value-of select="TITLE"/></b></p> <p><xsl:value-of select="LOCATION"/></p> <p><xsl:value-of select="SKILLS"/></p> </card> </xsl:for-each> </wml> </xsl:template> </xsl:stylesheet>

 

나는 이 stylesheet 가 특히 XSL 과 WAP 전송에 있어서 두가지 흥미로운 점을 보여 주고 있다고 생각한다. 첫번째는 WML 은 XML 보속이기 때문에 모든 WML 문서는 XML 문서이다. 그래서 우리는 stylesheet 에 다음 행을 추가해야 한다. 이것은 정상적으로 WML 문서임을 알수 있는 방법이다.

 

[b]
 
[/b]

 

대신에 실제 출력행을 만들기 위해서 다음 라인을 사용할 것이다.

 

[b]

[/b]

 

XSL 의 또다른 장점을 이용할수도 있는데, 읷은 XML 정보를 우리 출력 문서의 또다른 일부로서 다른 방식으로 재사용할 수 있다는 것이다. 간략화된 제목을 가진 링크를 메인 메뉴에 만들고, 다시 직장에 대한 상세 정보를 가진 페이지를 만들수 있다는 것이다.

 

Example 7 - Transformed XML Output to WML Deck

 

<?xml version = '1.0' encoding = 'ISO-8859-1'?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card><p><b>Recent Postings</b></p> <p><anchor><go href="#card1"/>Oracle Database </anchor></p> <p><anchor><go href="#card2"/>Senior Analyst: </anchor></p> <p><anchor><go href="#card3"/>Oracle Developer</anchor></p> <p><anchor><go href="#card4"/>Oracle Developer</anchor></p> <p><anchor><go href="#card5"/>Oracle Developer</anchor></p> </card> <card id="card1"> <p><b>Oracle Database Administrator - Investment Banking</b></p> <p>Luxembourg</p> <p>Oracle Database Administrator For Financial Organisation. PL/SQL, SQL*Plus, Forms 4.5, Reports 2.5.</p> </card> <card id="card2"> <p><b>Senior Analyst: Oracle & Delphi</b></p> <p>Leeds, West Yorkshire</p> <p>Senior Oracle & Delphi developers required by large retail organisation. Both roles need a mix of experience in Oracle PL/SQL, Oracle designer, Oracle Forms & Delphi. Experience of structured systems analysis also required.</p> </card> <card id="card3"> <p><b>Oracle Developer</b></p> <p>Kettering, Northamptonshire/London</p> <p>Our client is looking for 2 Oracle Developers with 2 years experience, preferably on Oracle 8i. Some knowledge on Java would be desirable. The company is relocating to London in the near future.</p> </card> <card id="card4"> <p><b>Oracle Developer</b></p> <p>Milton Keynes, Buckinghamshire</p> <p>An Oracle Developer with 18 months exp. is required, with Designer 2000, Unix/NT, SQL, PL/SQL & Forms. You must have an awareness of structured methods in analysis & design. You must be good at problem solving & to have an int. in Social Care Business.</p> </card> <card id="card5"> <p><b>Oracle Developer</b></p> <p>Kettering/London</p> <p>Our client is looking for 2 Oracle Developers with 2 years experience, preferably on Oracle 8i. Some knowledge on Java would be desirable. The company is relocating to London in the near future.</p> </card> </wml>

 

비록 내가 이곳에 WML 출력을 설명했지만 우리는 다른 브라우저에서 사용할 다른 stylesheet 를 생성하여, 그들을 조건에 맞추어 적용할수 있다. 브라우저에 기반해서 XSQL 페이지로 접근할수 있다. 이러한 간단 기술에 대한 완전한 설명이 release notes 에 기술되어 있다.

 

결론

 

이 문서는 오라클 XSQL servlet 에서 최소한의 프로그래밍을 통해서 개발할수 있는 방법에 대해서 간단히 설명한 것이다. 내가 이용한 예제가 이동 전화기로 부터 접근할 수 있도록 고안된 예제라는 것을 기억하기 바란다. 우리는 사용자가 페이지를 보기 위해서 사용하는 브라우저 따라서 조건적으로 stylesheet 를 만들수 있다. 이것은 자료를 보기 위해서 한 사용자가 여러가지 장치를 이용해서 사이트로 접근할수 있도록 허용해 준다는 것을 의미한다. 그리고 자료를 특정한 장치에 고정된 형식으로 볼수 있도록 화면을 제공할수 있다.

 

우리는 전통적인 시스템 을 위한 인터페이스로 출력 파일 형식을 제한할 필요는 전혀 없다. 사실 우리는 그들을 export/import 버전을 보고자 할때 그들의 파일 형식으로서 XML 을 사용 한다.

 

툴들은 사용하기 간편하고, 실험하기에 아주 재미있으며, 미래의 인터넷을 더욱더 유연성을 가질수 있도록 하는 방법이라고 생각한다.

 

Resources

 

다음 링크들은 내가 자주 가는 리소스들이고, 설정에 필요한 다운로드를 위한 소스들이다.

 

TechNet XML Home : http://technet.oracle.com/tech/xml/index.htm

IBM : http://www.ibm.com/developer/xml

Apache : http://xml.apache.org/

XML News : http://xmlhack.com/

XML Journal : http://www.sys-con.com/xml/

xml-dev mailing list archives : http://xml.org/archives/xml-dev/

Ericsson Developer Site : http://www.ericsson.com/WAP/developer/

Nokia Developer Forum : http://www.forum.nokia.com/wap_developer/index.html

 

BIBLIOGRAPHY

 

Oracle XSQL Pages and the XSQL Servlet - Release Notes for Version 0.9.9.3 (Technology Preview) - Steve Muench, Consulting Product Manager and XML Evangelist, Oracle Corporation - January 1, 2000

 

Oracle XSQL Pages and the XSQL Servlet - Release Notes for Version 0.9.8.6 (Technology Preview) - Steve Muench, Consulting Product Manager and XML Evangelist, Oracle Corporation March, 2000

[Top]
No.
제목
작성자
작성일
조회
8751OCP 강좌 - Introduction to Oracle: SQL and PL/SQL (2)
정재익
2001-12-07
14194
8750OCP 강좌 - Introduction to Oracle: SQL and PL/SQL (1)
정재익
2001-12-07
22065
8679오라클 강의록 일부
정재익
2001-12-03
9555
8142XML for Real
정재익
2001-10-27
7145
8139The Power of DECODE()
정재익
2001-10-27
10283
8138Undo Tablespace in Oracle 9i
정재익
2001-10-27
9053
7906테이블 스페이스, 데이타 파일, 익스텐트 , 프리스페이스 관리하기.
정회민
2001-10-12
8773
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다