xslt,xpath,xlink,xpointer,dtd在应用程序构建的真实世界中有什么用处

时间:2011-04-01 00:59:45

标签: xml xslt xquery dtd xpointer

我正在研究关于web服务的所有内容,例如soap,并发现一些教程中显示的一些xml难以理解,所以我决定从头开始学习以理解事物。 我已经理解了xml然后我看到了xpath,xslt,xpath,xquery,xlink,xpointer,xml schema,xsl-fo。 xml世界中存在很多与x相关的东西。我调查了xslt,并没有真正看到为什么它将用于小型或大型应用程序的任何理由。几乎所做的事情都可以用css,javascript / jquery或服务器端完成。是xslt甚至被使用? 或者DTD,Xpath,Xquery,Xlink,Xpointer,XSL-Fo,Xforms怎么样?

我知道xml架构与soap一起使用,除非我错了。

3 个答案:

答案 0 :(得分:2)

XSLT是一项出色的技术,它专门将一个XML文档转换为另一个文档,有时转换为纯文本文件。如果您碰巧拥有数据并希望使用它来生成HTML或XSL-FO或其他内容,那么XSLT是目前最好的方法。如果您在应用程序之间传递XML文档并需要更改其格式,XSLT是完美的工具。

但是,如果您的应用程序尚未使用XML,那么您可能没有使用它。作为开发人员,我建议您学习XSLT,因为当您需要进行XML转换时,这是一个很好的工具,可用于您的工具库。在我的应用程序中,我们在一些地方使用它,在这些地方我们有配置文件,这些配置文件在构建过程中被转换。除此之外,我多年没有使用XSLT

XSLT曾经在服务器上非常常用来生成HTML。对于传统的ASP后端来说尤其如此,因为传统的ASP非常糟糕,让业务层生成XML然后可以通过{{1}进行转换要好得多转换为HTML而不是编写XSLT代码来生成ASP

大多数现代服务器端环境都提供了非常强大的工具来编写动态HTML,尽管如此HTML在这种情况下不太常用。

XSLTXSLT进行比较,我看不到任何比较。 CSS是将一个XSLT文档转换为另一个XMLCSS提供HTML(或有时XML)文档的可视样式信息。

在处理XPath文档并挑选出各条信息时,

XML非常常用。它也在XSLT内大量使用。

我从未在我工作的任何公司中看到XQueryXPointer

XML Schema非常常用于指定XML文档的格式并验证它们。它在SOAP Web服务中大量使用,因为WSDL使用XSD来指定SOAP部分的格式。

XSL-FO通常用于生成PDF。如果要生成PDF,这是一种方法。它在技术上也可以用于其他事情,但这是我所知道的唯一用例。

答案 1 :(得分:2)

  

我研究了xslt,并没有真正看到为什么它会在小型或大型应用程序中使用的原因。几乎所做的事情都可以用css,javascript / jquery或服务器端来完成。

嗯,首先,大多数使用XSLT的人确实在服务器端使用它。客户端XSLT从未真正起飞 - 出于某些原因,请参阅我在2011年布拉格布拉格(上周)的论文 - 主要原因是它从未在每个浏览器上都可用。我希望用新产品Saxon-CE改变这种情况,但我不想把它变成广告。

其次,关于XSLT的观点并不是说它可以做其他技术无法做到的事情,而是它做得更有效。如果您需要将XML文档转换为其他XML文档或HTML,那么一旦您掌握了学习曲线,XSLT就是最有效的方法。确实,随着jQuery的出现,在Javascript中实现这一点并不是曾经的噩梦,但XSLT的基于声明规则的方法有很多好处,特别是当你必须处理变化和变化时,这两种方法总是存在和大型项目。

答案 2 :(得分:0)

我使用XML,XSLT和XQuery作为构建网站的首选工具。

XSLT执行CSS声称能够做的事情 - 将内容与布局分开。

假设您要输出销售项目的HTML;

<div class="salesitem">
   <div class="title">Saucepan</div>
   <a href="images/sp456.jpg">
      <img alt="Saucepan" src="images/sp456.jpg"/>
   </a>
   <div class="price">&#163;19.99</div>
</div>

要使用“x”语言输出上述内容,请先定义要显示的数据。不要担心布局,外观或HTML;

<salesitem>
   <title>Saucepan</title>
   <image>sp456.jpg</image>
   <price>19.99</price>
</salesitem>

然后设计一个XSLT模板,将上面的内容转换为HTML;

<xsl:template match="salesitem">
   <div class="salesitem">
      <div class="title"><xsl:value-of select="title"/></div>
      <a href="images/{image}">
         <img alt="{title}" src="images/{image}"/>
      </a>
      <div class="price">&#163;<xsl:value-of select="price"/></div>
   </div>
</xsl:template>

使用XSLT处理器将“salesitem”模板应用于“salesitem”XML,结果将是您想要的HTML。

我无法想象使用response.write ".."echo ".."输出单个HTML标记。我喜欢“x”语言给予的分离的纯洁。