⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 querying&transforming xml.htm

📁 这是一本关于XML的学习的书
💻 HTM
📖 第 1 页 / 共 2 页
字号:
        &lt;/xsl:for-each&gt;</font></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN" size="3" class="normal105">相应的XML-QL结构是:</font></span></p>
      <p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN" size="3" class="normal105">WHERE 
        XML-QL pattern<br>
        CONSTRUCT output</font></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN" size="3" class="normal105">为了比较这两种语言,我们将列举一些XML-QL 
        W3C建议中的例子说明怎样用我们的方法来写这些查询语言。这些例子的作用对象是下面这个XML:</font></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">&lt;bib&gt;<br>
        &lt;book year="1995"&gt;<br>
        &lt;!-- A good introductory text --&gt;<br>
        &lt;title&gt; An Introduction to Database Systems &lt;/title&gt;<br>
        &lt;author&gt; &lt;lastname&gt; Date &lt;/lastname&gt; &lt;/author&gt;<br>
        &lt;publisher&gt; &lt;name&gt; Addison-Wesley &lt;/name &gt; &lt;/publisher&gt;<br>
        &lt;/book&gt;<br>
        &lt;book year="1998"&gt;<br>
        &lt;title&gt; Foundation for Object/Relational Databases: The Third Manifesto 
        &lt;/title&gt;<br>
        &lt;author&gt; &lt;lastname&gt; Date &lt;/lastname&gt; &lt;/author&gt;<br>
        &lt;author&gt; &lt;lastname&gt; Darwen &lt;/lastname&gt; &lt;/author&gt;<br>
        &lt;publisher&gt; &lt;name&gt; Addison-Wesley &lt;/name &gt; &lt;/publisher&gt;<br>
        &lt;/book&gt;<br>
        &lt;/bib&gt;</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal11"><font face="宋体" lang="ZH-CN" size="3" class="normal105">用XML-QL的方法来查询由Addison-Wesley出版社出版的书的作者:</font></span></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">WHERE 
        &lt;book&gt;<br>
        &lt;publisher&gt;&lt;name&gt;Addison-Wesley&lt;/name&gt;&lt;/publisher&gt;<br>
        &lt;author&gt;$a&lt;/author&gt;<br>
        &lt;/book&gt;<br>
        CONSTRUCT $a</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal11"><font face="宋体" lang="ZH-CN" size="3" class="normal105">用我们的相应的方法为:</font></span></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">&lt;xsl:for-each 
        select = "book[publisher/name = 'Addison-Wesley']/author"&gt;<br>
        &lt;xsl:value-of /&gt;<br>
        &lt;/xsl:for-each&gt;</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size=3><span class="normal11"><span class="normal105">原先的1997年8月制定的XSL建议<span class="normal105">(</span></span></span></font><span class="normal105"><span class="normal105"><span class="normal11"><a href="../../../www.w3.org/TR/NOTE-XSL.html)" tppabs="http://www.w3.org/TR/NOTE-XSL.html%29"><font face="Albertus (W1)"><span class="normal105">http://www.w3.org/TR/NOTE-XSL.html)</span></font></a><font face="宋体" lang="ZH-CN" size=3><span class="normal105">提出了类似于XML</span><span class="normal11"><span class="normal105">-</span></span><span class="normal105">QL的“按实例查询”(query 
        by example)语法,但后来这种方式遇到了一些挑战。而目前的类似URL的语法不管是对简单还是复杂的查询限制都能顺利工作。例如:比方我们要得到由几个出版社出版的书的作者,可以简单写为:</span></font></span></span></span></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3"><span class="normal105">&lt;xsl:for-each 
        select = "book[publisher[name = 'Addison-Wesley' <br>
        $or$ name = 'Microsoft Press']]/author"&gt;<br>
        &lt;xsl:value-of /&gt;<br>
        &lt;/xsl:for-each&gt;</span></font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal11"><font face="宋体" lang="ZH-CN" size="3"><span class="normal105">XML-QL还有其他的一些特点</span>:</font></span></span></span></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">4.1变量和连接</font></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">XML-QL模式允许使用变量,能返回变量和满足条件值的所有数据的捆绑(bindings)集;为了支持连接或更复杂的查询和转换,这项功能是必须的。不过,在需要变量的许多XML-QL查询能够由XSL中的其它方法实现。</font></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">例如,考虑下面的使用变量的XML-QL查询:</font></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105"> 
        WHERE <br>
        &lt;book&gt;$p&lt;/&gt; IN "www.a.b.c/bib.xml",<br>
        &lt;title&gt;$t&lt;/&gt;<br>
        &lt;publisher&gt;&lt;name&gt;Addison-Wesley&lt;/&gt;&lt;/&gt; IN $p<br>
        CONSTRUCT <br>
        &lt;result&gt;<br>
        &lt;title&gt;$t&lt;/&gt;<br>
        WHERE &lt;author&gt;$a&lt;/&gt; IN $p<br>
        CONSTRUCT &lt;author&gt;$a&lt;/&gt;<br>
        &lt;/&gt;</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY" class="normal11"><span class="normal11"><font face="宋体" lang="ZH-CN" size="3" class="normal105">也可以用没有变量的XSL查询语句来实现同样的查询:</font></span></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">&lt;xsl:for-each 
        select = "book[publisher/name = "Addison-Wesley"]"&gt;<br>
        &lt;result&gt;<br>
        &lt;title&gt;&lt;xsl:value-of select="title" /&gt;&lt;/title&gt;<br>
        &lt;xsl:for-each select = "author"&gt;<br>
        &lt;author&gt;&lt;xsl:value-of /&gt;&lt;/author&gt;<br>
        &lt;/xsl:for-each&gt;<br>
        &lt;/result&gt;<br>
        &lt;/xsl:for-each&gt;</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">不过要建立连接(join)时变量就有作用了.要选出著于1995年之后的文章的作者,可以这样写:</font></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">WHERE 
        </font></p>
      <p align="JUSTIFY"> <font face="宋体" lang="ZH-CN" size="3"><span class="normal105">&lt;article&gt;<br>
        &lt;author&gt;<br>
        &lt;firstname&gt;$f&lt;/&gt;<br>
        &lt;lastname&gt;$l&lt;/&gt;<br>
        &lt;/&gt;<br>
        &lt;/&gt; CONTENT_AS $a In "www.a.b.c./bib.xml"</span></font></p>
      <p align="JUSTIFY"> </p>
      <p align="JUSTIFY"> <span class="normal105"><font face="宋体" lang="ZH-CN" size="3"><span class="normal105">&lt;book 
        year = $y&gt;<br>
        &lt;author&gt;<br>
        &lt;firstname&gt;$f&lt;/&gt;<br>
        &lt;lastname&gt;$l&lt;/&gt;<br>
        &lt;/&gt;<br>
        &lt;/&gt; IN "www.a.b.c/bib.xml",<br>
        $y &gt; 1995</span></font></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal105"><span class="normal105"><font face="宋体" lang="ZH-CN" size="3" class="normal105">CONSTRUCT<br>
        &lt;article&gt;$a&lt;/&gt;</font></span></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">4.2. 
        对象标识符</font></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">对象标识符和Skolem一起保证了在输出中产生的元素唯一。另外, 
        对象标识符在建立图形时很有用.但是,当查询结果是“流”时对象标识符有一些问题,因为它允许XML-QL任何时候在图形的任何位置都可以产生一个元素。结果,不得不在图形成为流之前将它缓存。这给Internet上的数据交换带来的严重的影响。</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><font face="宋体" lang="ZH-CN" size="3"><span class="normal105">4</span></font></span></span></span><font face="宋体" lang="ZH-CN" size="3">.<span class="normal105">3.</span></font></span></span></span><font face="宋体" lang="ZH-CN" size="3"><span class="normal105"> 
        多重XML源的数据集成</span></font></span></span></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">XML-QL允许每个WHERE语句从不同的文件查询数据.XSL目前只能对单独的XML文件进行查询。要实现多多个XML文件的查询,可以为&lt;xsl:for-each&gt;和&lt;xsl:apply-templates&gt;加上源的属性。</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">4.4. 
        数据库管理</font></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">查询语言的一个重要领域是数据库管理功能,包括创建、删除、更新和插入等操作。但在XML-QL和XSL中都没有相应的阐述。</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3">5.<a name="5"></a> 
        总结</font></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">查询XML中的问题与转换和构造结果的能力有密切的关系。XML-QL和XLS的相似之处意味着两者可以取长补短、互相促进。两者的相互协作能够为XML带来强大和通用的查询和转换机制。</font></p>
    </td>
  </tr>
  <tr> 
    <td colspan="3"><font face="宋体" lang="ZH-CN" size=3> </font> <rev></rev><font face="宋体" lang="ZH-CN" size=3></font> 
      <hr size="1">
      <p align="center"><font face="宋体" lang="ZH-CN"><span class="normal11">[<a href="#top">返回标题</a>][<a href="../resource.htm" tppabs="http://www.xml.org.cn:8188/resource/resource.htm" target="_parent">返回资源</a>][<a href="../../default.asp" tppabs="http://www.xml.org.cn:8188/default.asp" target="_parent">返回首页</a>][<a href="mailto:xmlteam@egroups.com">欢迎投稿</a>]</span></font></p>
      <p align="center"><span class="normal11">最后更新:1999年8月17日<br>
        <font color="#FF0033" size="-1">本站点所刊文章版权,均归本站点所有。署名作者拥有其著作权。<br>
        未经</font><font color="#FF0033"><a href="mailto:xmlteam@egroups.com"><font color="#6666FF" size="-1">允许</font></a></font><font color="#FF0033" size="-1">,不得随意转载,违者必究!!</font> 
        </span></p>
    </td>
  </tr>
</table>
<h2 ALIGN="CENTER">&nbsp;</h2>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3> 
<P ALIGN="JUSTIFY">&nbsp;</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3></FONT> 
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -