Zhang Jian, 베이징 우편통신대학
XML의 한계
현재 많은 웹사이트의 콘텐츠 데이터는 데이터베이스나 데이터 파일에 저장되어 있습니다. 웹 프로그램 개발자의 경우 데이터베이스에서 유용한 정보를 추출하려는 경우 전통적인 방법은 서버 측에서 스크립트(예: VBScript, JavaScript, CGI, ASP, Perl 등)를 작성하고 데이터베이스를 실행하는 것입니다. SQL 쿼리 관련 기록을 얻은 다음 쿼리 결과를 HTML 페이지로 구성하고 이를 클라이언트에 반환합니다. 사용자는 브라우저를 사용하여 최종 결과를 관찰합니다.
많은 상용 웹사이트에서는 시스템 서비스의 유연성과 확장성을 향상시키고 서비스 대상을 더욱 다양화하기 위해 비즈니스 룰, 원본 데이터, 프리젠테이션 양식을 독립적인 서비스로 제공하기 위해 최선을 다하고 있습니다. 디스플레이에 데이터를 삽입하는 HTML의 방식은 분명히 이러한 요구를 충족하지 않습니다. 따라서 원본 데이터를 XML 문서에 저장하고 스타일 시트를 사용하여 콘텐츠를 표시하는 것은 전자상거래에 적합한 XML 기술의 장점입니다. 그러나 본질적으로 XSL 기술은 데이터 표시를 지향하지 않으며 표시 수단 및 방법 측면에서 HTML보다 훨씬 덜 풍부한 형식 변환 기술입니다. 프로그래머에게 더 이상적인 솔루션은 HTML과 XML의 두 가지 기술을 결합하여 서로의 장점을 보완하여 실제 원본 데이터가 끊임없이 변화하는 HTML 표시를 최대한 활용하면서 원래의 의미와 구조를 유지할 수 있도록 하는 것입니다. . XML Data Island는 이러한 기술 융합의 산물입니다. <XML> 태그를 사용하여 XML 데이터를 HTML 페이지에 직접 삽입함으로써 두 가지의 상호 보완적인 장점을 실현합니다.
IE에서 데이터 아일랜드를 처리하는 방법
XML 코드가 삽입된 이러한 HTML 페이지를 처리할 수 있도록 Internet Explorer 4.0(이하 IE 4.0)에서는 DSO(Data Source Objects, 데이터 소스 개체) 기술을 도입했습니다. Java Applet으로 구현되었습니다.
예:
<APPLET CODE="com.ms.xml.dso.XMLDSO.class"
ID="xmldso" WIDTH=0 HEIGHT=0 MAYSCRIPT=TRUE>
<PARAM NAME="URL" VALUE="myXML.xml">
< /APPLET>
위의 예에서 CODE 속성은 DSO Java 애플릿을 지정하고, MAYSCRIPT 속성은 클라이언트 스크립트가 데이터 개체를 처리할 수 있도록 보장하며, PARAM 태그는 XML 문서의 위치를 지정합니다.
Java 사용의 한계는 HTML 문서에서 XML의 URL 주소만 설명할 수 있고 XML 태그를 직접 포함할 수 없다는 것입니다. 이는 실제 데이터 아일랜드 솔루션보다 훨씬 뒤떨어져 있습니다. Microsoft는 Internet Explorer 5.0(이하 IE 5.0)에서 DSO 기술을 확장하여 이전의 한계를 극복하고 HTML과 XML을 완전히 통합했습니다. HTML 페이지는 <XML> 태그의 직접 사용을 지원합니다.
예:
<HTML>
<XML ID="xmldso">
<?xml version="1.0"?>
일부 XML...
</XML>
각 데이터 아일랜드의 ID가 고유한 한, 이는 다음에 포함될 수 있습니다. 페이지 데이터 아일랜드는 필요할 때마다 내장되어 있으며 이러한 DSO는 서로 독립적입니다.
위 예의 직접 삽입 방법 외에도 외부 참조를 사용하여 데이터 아일랜드를 연결할 수도 있습니다.
예:
<XML ID="xmldso" SRC="myXML.xml">
</XML>
이와 같이 회사의 고객 객체가 IE 4.0을 계속 사용하는 경우에만 해당 고객의 호환성 문제를 해결하기 위해 Java 애플릿은 프로그래머가 고려해야 할 옵션입니다.
IE 5.0에 구현된 DSO 기술에서는 데이터가 SQL 언어를 통해 데이터베이스에 쿼리된 결과인 경우 ADO(ActiveX Data Objects) 레코드 세트에 저장됩니다. 서버는 이 ActiveX 컨트롤(일반적으로 ADO 레코드 세트)을 클라이언트에 보내고 클라이언트 스크립트 프로그램은 추가 처리를 수행합니다. 실제로 IE 5.0은 XML 데이터 아일랜드를 특수 ADO 레코드 세트로 처리합니다.
1.
XML 데이터 바인딩
ADO 레코드 집합 매핑
XML의 각 기본 요소는 ADO 레코드 집합의 레코드에 매핑되고, 하위 요소는 그에 따라 레코드 집합의 필드(도메인이라고도 함)에 매핑됩니다.
예를 들어, XML 데이터 아일랜드 books.xml은 다음과 같이 존재합니다.
<XML ID="xmldso">
<?xml version="1.0"?>
<booklist>
<book>
<title>컴퓨터에 대한 간단한 이야기</title>
< isbn>72 -80088-005</isbn>
</book>
<book>
<title> Gourmet Microwave </title>
<isbn>72-80081-082</isbn>
</book>
</booklist>
</XML >
현재 매핑된 ADO 레코드 세트는
title isbn
Straight Talk About Computers 72-80088-005
Gourmet Microwave 72-80081-082
2입니다. HTML 요소에 바인딩
HTML 문서에 데이터 아일랜드를 포함시킨 후 XML 데이터 아일랜드를 HTML 요소에 바인딩할 수 있습니다. 각 DSO 항목(예: 데이터 아일랜드)에는 고유한 ID 번호가 있습니다. 먼저 HTML 요소의 DATASRC 속성을 해당 ID로 설정하여 HTML 요소를 데이터 아일랜드와 연결합니다. 그런 다음 DATAFLD 속성 값을 설정하여 추출된 XML 요소를 결정합니다.
예를 들어 DIV 요소에 바인딩된 코드는 다음과 같습니다.
<DIV ID=title DATASRC=#xmldso DATAFLD="title"></DIV>
<DIV ID=price DATASRC=#xmldso DATAFLD="isbn"></ DIV>
참고: 모든 HTML 요소를 XML 데이터 아일랜드에 바인딩할 수 있는 것은 아닙니다. 현재 이 DSO 바인딩 메커니즘을 지원하는 요소는 다음과 같습니다:
A. APPLET, BUTTON, DIV, FRAME, IFRAME, IMG, INPUT(여기서 유형은 CHECKBOX, HIDDEN, LABEL, PASSWORD, RADIO 및 TEXT), LABEL, MARQUEE, SELECT, SPAN, TABLE 및 TEXTAREA.
3. 테이블 형식의 명시적 XML 데이터 XML
데이터를 TABLE 요소에 바인딩하면 자동으로 여러 행 테이블 형식으로 표시될 수 있습니다.
예를 들어 XML 데이터를 TABLE 요소에 바인딩하는 코드는 다음과 같습니다.
<TABLE BORDER=1 DATASRC="#xmldso">
<THEAD>
<TR><TH>Title</TH>
<TH>ISBN</TH ></TR >
</THEAD>
<TBODY>
<TR><TD><DIV DATAFLD="title"></DIV></TD>
<TD><DIV DATAFLD="isbn">
</DIV>< /TD>< /TR>
</TBODY>
</TABLE>
이런 방식으로 TABLE 요소의 DATASRC 속성을 #xmldso로 설정하여 둘을 바인딩합니다. 테이블은 헤더(THEAD)와 테이블 본문(TBODY)의 두 부분으로 나뉩니다. 각 <book> 요소는 테이블 행으로 표시됩니다. 각 열에 표시되는 데이터는 DIV 요소의 DATAFLD 속성에 의해 지정됩니다.