>  기사  >  백엔드 개발  >  XML 기반 데스크탑 애플리케이션의 그래픽 코드에 대한 자세한 소개

XML 기반 데스크탑 애플리케이션의 그래픽 코드에 대한 자세한 소개

黄舟
黄舟원래의
2017-03-06 16:48:031770검색

앞서 언급했듯이 XSL을 통해 동일한 데이터를 다양한 데이터 형식으로 최종 고객에게 제출할 수 있습니다. XSL 파일은 데이터의 표시 방법을 설명합니다. 여러 XSL을 동일한 XML 문서에 연결하여 다양한 HTML을 제공할 수 있습니다. 기반 표현이므로 실제로 XML 기반 데스크톱 애플리케이션을 구축할 수 있습니다. Windows 아키텍처를 기반으로 한 그래픽 표현은 다음과 같습니다.

XML 기반 데스크탑 애플리케이션의 그래픽 코드에 대한 자세한 소개

이 접근 방식을 사용하면 두 가지 주요 이점이 있습니다. 첫째, 플랫폼 및 언어 독립적인 방식으로 작동할 수 있습니다. 둘째, 프로그래밍 없이 동일한 데이터에 대한 다양한 뷰 표현을 구현할 수 있습니다.

사실 원본 데이터를 XML 형식으로 변환한 후 HTML 형식으로 표현할 수 있는 도구가 필요합니다. 실제로 IE5.0에서는 XSL 지원을 통해 다양한 데이터 보기를 얻을 수 있습니다. 내장된 XSL 프로세서를 사용하여 XML 스트림에서 출력을 생성할 수 있습니다. 개발자는 다양한 XSL 스크립트를 작성한 다음 IE에 내장된 XSL 프로세서를 사용하여 이를 처리할 수 있습니다. 반면, ADO 컴포넌트 고유의 기능을 통해 레코드세트를 XML 형식으로 변환할 수 있습니다. 샘플 코드는 다음과 같습니다.

 If Dir(XML_FILE) = "" Then
    rs.Save XML_FILE, adPersistXML
  End If

  这里常量adPersistXML表示使用一个XML纲要来保存记录集的内容

  我们再仔细看一下Recordset对象的Save方法,其定义如下:

   Save([FileName As String], [PersistFormat As PersistFormatEnum = adPersistADTG])

각 매개변수는 선택사항이지만 처음 레코드세트를 변환할 때 저장할 때 디스크에 저장하려면 파일 이름을 지정해야 합니다. 이 메서드 실행 시 유효한 필터가 있으면 해당 필터를 통과한 데이터만 저장할 수 있습니다. Recordset 개체의 Close 메서드를 호출하여 Recordset 개체를 닫으면 파일이 자동으로 닫힙니다. Recordset을 디스크에 저장한 후 Open 메서드를 사용하여 읽을 수 있습니다. 구체적인 코드는 다음과 같습니다.

   rs.open "c:\myrs.xml"

그런 다음 IE5의 XSL 지원 표시에 관한 문제를 분석합니다. 최근 확립된 W3C 표준 초안을 기반으로 합니다. 여기서는 VB를 사용하여 ADO 인터페이스를 통해 데이터 소스의 데이터에 액세스하는 응용 프로그램을 구축하는 방법에 대해 설명합니다. 결과 레코드 세트는 다양한 형식으로 표시될 수 있습니다. XSL 문서를 작성하면 원하는 대로 다양한 보기를 추가할 수 있습니다.

예를 들어 결과 집합을 추출하면 VB의 DataGrid 컨트롤을 사용하여 데이터를 편리하게 표시할 수 있습니다.

 Set rs = New ADODB.Recordset
   rs.CursorLocation = adUseClient

   queryString = "select * from Employees"
   rs.Open queryString, "NorthWind" 'NorthWind是微软的示例数据库,很容易在
    'access或者是SQL SERVER中找到
   rs.ActiveConnection = Nothing 
   Set DataGrid1.DataSource = rs

대부분의 경우 이는 다음과 같습니다. 보기만으로는 충분하지 않으며 각 필드에 대한 엄격한 제어가 필요합니다. 전체 테이블의 레코드는 테이블과 트리 형태로 모두 표현될 수 있어 사용자가 더욱 편안함을 느낄 수 있습니다. XML과 XSL의 조합은 이 문제에 대한 좋은 해결책입니다. IE5의 WebBrowser 컨트롤 기능을 최대한 활용하여 직접 검색할 수 있습니다.
ADO 구성 요소 자체는 생성한 XML 문서에서 XSL 문서를 생성하지 않습니다. 이는 데이터 표시 방식을 변경하기 위해 일반 XSL 문서를 직접 작성할 수 없다는 의미는 아닙니다. 예를 들어, ADO 레코드 세트가 포함된 XML 문서를 테이블 형식으로 자동 표시하려면 XML 문서의 헤드에 다음 코드를 추가해야 합니다.

  <?xml-stylesheet type="text/xsl" href="simple.xsl"?>

이 simple.xsl 파일은 다음과 같은 위치에 있어야 합니다. 동일한 디렉토리에 두 개의 중첩 루프가 포함되어 있습니다. 첫 번째 루프는 요소의 모든 속성을 나열합니다. 두 번째 루프는 첫 번째 줄에 제목으로 표시됩니다. 레코드세트.

simple.xsl 파일의 코드는 다음과 같습니다.

<?xml version="1.0"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" 
   xmlns:html="http://www.w3.org/TR/REC-html40"
   result-ns=""
   language="JScript">
  <xsl:template match="/">
  <html>
  <head>
  <title>RowsetSchema</title>
  <style>
   .stdText 
   {
    font-Family:verdana;
    font-Size: 9px;
   }
  </style>
  </head>
  <body>
   <table width="100%" border="1">
   <xsl:for-each select="xml/s:Schema/s:ElementType/s:attribute">
    <th class="stdText"><xsl:value-of select="@type" /></th>
    </xsl:for-each>
    <xsl:for-each select="xml/rs:data/z:row">
    <tr>
     <xsl:for-each select="@*">
     <td class="stdText" valign="top"><xsl:value-of match="@*"/></td>
     </xsl:for-each>
    </tr>
    </xsl:for-each>
   </table>
  </body>
  </html>
  </xsl:template>
  </xsl:stylesheet>

여기서 주목해야 할 것은 주어진 노드의 모든 속성을 열거하는 구문입니다. 요소의 모든 All 속성을 가져오면 @* 문자열은 모든 속성을 나타냅니다. 속성 이름 앞에는 항상 @가 와야 합니다. 이 값을 사용하려면 노드 일치하는 속성을 설정해야 합니다.

WebBrowser 컨트롤을 데이터 탐색용 엔진으로 사용하면 XML 및 XSL을 사용하여 이 모델에서 콘텐츠를 분리할 수 있습니다. , XSL은 XML 데이터를 표시하는 방법을 설명하는 마크업 언어 역할을 합니다. 실제로 이 웹 기반 문서/ 뷰 모델은 MFC에서 문서와 결합될 수 있습니다. / 뷰 모델 비유

마지막으로 XSL과 CSS의 차이점에 대해 이야기해야 합니다. 중요한 차이점은 XSL은 XML 문서 전체에 적용된다는 것입니다. CSS는 HTML 태그의 표시 형식만 생성합니다. XSL은 문서 처리를 위한 마크업 언어이고 CSS는 마크업 언어에서 요소의 속성을 나타내는 데 사용되는 속성 집합입니다. 또한 XSL은 CSS를 사용하여 HTML을 생성할 수 있습니다. XML 데이터 스트림의 출력은 두 가지 다른 기술입니다.

위는 XML 기반 데스크톱 애플리케이션의 그래픽 코드에 대한 자세한 소개입니다. PHP 중국어 홈페이지(www.php.cn)


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.