XML可以分为三层结构,数据表现层,数据组织层和数据交换层。从整体上讲,XML定义的实际上是应用间传递数据的结构,而且这种结构的描述不是基于二进制的、只能由程序去判读的代码,而是一种简单的、能够用通用编辑器读取的文本。利用这种机制,程序员可以制订底层数据交换的规范,然后在此基础上开发整个系统的各个模块,而各模块之间传输的数据将是符合既定规则的数据。另外,XML还允许为特定的应用制定特殊的数据格式,并且非常适合于在服务器与服务器之间传送结构化数据。从应用的角度来看,XML信息交换大致可分为下面几种类型:数据发布、数据集成和交易自动化。XML数据源多种多样,根据具体的应用,大概可分为下面三种:一种是XML纯文本文档,第二种是关系型数据库,第三种则来源于其他各种应用数据,如邮件、目录清单、商务报告等。其中,第一种来源,即XML纯文本文档是最基本的也是最为简单的,将数据存储于文件中,其最大的优点在于可以直接方便地读取,或者加以样式信息在浏览器中显示,或者通过DOM接口编程同其他应用相连。第二种数据来源是对第一种来源的扩展,其目的是便于开发各种动态应用,其优点则在于通过数据库系统对数据进行管理,然后再利用服务器端应用(如ASP、JSP、Servlet)等进行动态存取。这种方式最适合于当前最为流行的基于三层结构的应用开发。

解决方案 »

  1.   

    XML SQL技术预览提供了以下几种XML访问功能: --利用HTTP协议以URL的方式访问SQL Server数据库。
    这是最基本的访问方式。另外,通过指定样式模板参数,可以返回具有一定样式信息的数据。该样式模板是一个包含一条或多条SQL 语句的合法的XML文档。返回的XML文档可以通过指定的XML模式来定义,三种模式为:RAW、AUTO、EXPLICIT。 
    --利用在SELECT语句中附加FOR XML返回XML格式数据。
    作为对XML模式的一种补充,通过在FOR XML中指定DTD或XML schema来达到对返回XML文档的格式化。 
    --利用基于XML的UPDATE语句来更新数据库中的记录。
    SQL Server支持基于XML的插入、删除、修改等数据库更新操作。
    通用的更新语法是:
    <sql:sync xmlns:sql="urn:schemas-microsoft-com:xml-sql"> 
       <!-- 用于删除和修改操作中 -->  
      <sql:before> 
        <TABLENAME  <!-- 数据表名 -->
          [sql:id="value"]  <!-- 仅用于修改操作中 -->
          col="value"col="value"…
        />   
      </sql:before>
       <!-- 用于插入和修改操作中 -->  
      <sql:after>
        <TABLENAME  <!-- 数据表名 -->
          [sql:id="value"]
          [sql:at-identity="value"]  <!-- 仅用于插入操作中 -->
          col="value" col="value"…
        />
      </sql:after>
    </sql:sync>
      

  2.   

    JSTL标签库
    JSTL通常被认为是一种单标签库。但JSTL实际上有4个标签库。这些标签库被概括为如下:核心标签库—包含一些Web应用的必要的标签。核心标签库的实例包括循环,表达式赋值和基本输入输出。.
    格式化/国际化标签库—包括被用来解析数据的标签库。这种标签会解析数据,比如日期,不同的场所区域等。
    数据库标签库—包含被用来访问SQL数据库的标签。这些标签通常仅仅只创建原形(prototype)程序。这个是因为大多数程序不会直接从JSP页面中来处理数据库访问。数据库访问应该被嵌入到能够被JSP页面所访问的EJB中。
    XML标签库—包含被用来访问XML元素的标签。因为XML广泛使用于Web开发,XML的处理是JSTL的一个重要的特征。  
    在本文中,我们将仅仅只对核心标签做一个简单介绍。我们将考察一个简单的范例,来说明如何处理用户在表单中输入的数据。在我们开始检查程序之前,我们必须先看看JSTL是如何处理表达式的,JSTL的表达式处理是通过使用EL表达式语言来完成的,仅仅只能在JSP2.0被使用。下一节,我们会考察EL表达式语言。EL表达式语言
    JSP2.0的一个主要的组件就是这个新的叫做EL的表达式语言。EL被广泛用在JSTL中。然而,重要的是记住,EL是JSP的功能而不是JSTL的。被用在JSP2.0中JSP scriptlet代码能够包含EL表达式。下面这行代码演示了JSP scriptlet代码中的EL:<p>
      Your total, including shipping is ${total+shipping}
    </p>正如你看到的,total和shipping相加后会产生HTML并且在浏览器中显示它们的值。这些表达式也可以在JSTL标签中使用。JSTL1.0的一个重要问题是,JSTL不能用在JSP1.2的版本上。因为JSP1.2不支持EL,所以有必要提供一些额外的JSTL标签来帮助EL的使用。例如,如果你想使用JSTL来显示上面的表达式,你可以使用下面的代码。<p>
      Your total, including shipping is <c:out var="${total+shipping"/>
    </p>值得注意的是,JSTL不需要JSP2.0来运行。通过提供一个能够显示EL表达式的标签,就可以达到这样的需求。JSTL范例
    我们将考察一个简单的使用JSTL的范例。在这个例子里,我们将考察Web应用中的一个常见过程。我们会看到如何提交(POST)一个表单,并处理POST的结果。程序代码如下:<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    <html>
      <head>
        <title>If with Body</title>
      </head>  <body>
        <c:if test="${pageContext.request.method=='POST'}">
          <c:if test="${param.guess=='Java'}">You guessed it!
          <br />      <br />      <br />
          </c:if>      <c:if test="${param.guess!='Java'}">You are wrong
          <br />      <br />      <br />
          </c:if>
        </c:if>    <form method="post">Guess what computer language
                            I am thinking of?
        <input type="text" name="guess" />    <input type="submit" value="Try!" />    <br/>
        </form>
      </body>
    </html>这个简单的Web页面显示一个表单,要求用户猜测程序所想的计算机语言。当然,计算机想的是“Java”。这个页面通过检查“是否已提交”来开始。这使得表单和处理表单的代码可以放在同一个页面中。是通过下面的JSTL if语句实现的。<c:if test="${pageContext.request.method=='POST'}">现在你看到了,<c:if>标签使用EL表达式来决定是否请求的方式是POST的。如果数据被post到页面,那么用户输入的他们的猜想值就会存储在名为“guest”的参数中。这是因为“guest”是表单输入项的名字。我们现在必须检查是否这个参数等于“Java”。这个是通过下面的<c:if>标签来完成:<c:if test="${param.guess=='Java'}">
              You guessed it!
          </c:if>
    正如你所看到的,如果表达式为true,<c:if>标签的标签体就被执行。在本文中,我们开始考察了JSTL如何被安装,以及它是如何运转的,也提供了一些JSTL小范例帮助大家理解。JSTL的核心标签也包含循环,叠代器和变量处理。通过使用标签,你能在collections里进行iterate,访问用户的会话数据(session data),执行其他的核心任务等。除了核心标签库,XML,数据库和格式化标签库也提供了更多高级的用处。(End)注:EL Expression Language这里翻译成EL表达式语言,有的是翻译成EL表达语言,是一个意思。Translated by Caiyi0903(Willpower),2004.2.19
    转自:动态网制作指南 www.knowsky.com