app教程网 综合百科 xml设置(xml生成流程图)

xml设置(xml生成流程图)

Xml(可扩展标记语言)可能看起来像某种w3c标准——,但现在没有实际影响,即使将来能用,也是很久以后的事了。但其实现在已经应用了。所以,

不要等到xml被添加到您最喜欢的html编辑器后才开始使用它。可以解决现在各种内部问题和b2b系统问题。

在sparks.com,我们使用xml来标准化不同系统之间的数据表示,从java对象到html数据显示。

特别是,我们发现只要用一个非常基本的xml结构对数据进行标准化,共享和操作数据就会更容易。在这个过程中,我们发现了很多使用xml的有效方法。下面是我们目前应用的详细介绍。

标准化在使用xml之前,建立一个不同于您想要使用的信息的xml数据格式。

生成动态xml从数据库生成html并不新鲜,但生成xml却是新鲜事。这里我们介绍一下具体的生成步骤。

用xsl做模板语言xsl(可扩展样式表语言)是定义xml数据显示格式的好方法,如果写成几个静态模板会更有效。

生成htmlxml加xsl等于html。这听起来不太对,但是用户在我们的html页面中看到的其实是xml和xsl的共同作用。

一.标准化

xml的能力来自于它的灵活性。不幸的是,它有时太灵活了,你会面对一张白纸,担心如何解决问题。

在任何xml项目中,第一步都是创建标准的数据格式。为此,您必须做出以下决定:

涉及哪些数据?解析是用dtd(文件类型定义)还是dom(文档对象模型)还是SAX(XML的简化api)?

确定数据:因为没有标准的xml格式,开发者可以自由开发自己的格式。但是,如果您的格式只能被一个应用程序识别,那么您只能运行这个应用程序来使用该格式。如果有其他程序可以读取您的xml格式,

那显然会更有帮助。如果修改了xml格式,使用它的系统可能也需要修改,所以应该建立尽可能完整的格式。因为大多数系统会忽略无法识别的标记,所以更改xml格式最安全的方法是添加标记。

而不是修改标签。

单击此处查看xml数据格式的示例。

在sparks.com,我们查看了不同产品展示所需的所有产品数据。虽然不是所有的页面都使用所有的数据,但是我们已经开发了一个非常完整的适合所有数据的xml数据格式。举个例子,

我们的产品详细信息页面比产品浏览页面显示更多数据。但是,我们仍然在两种情况下使用相同的数据格式,因为每个页面的xsl模板只使用它需要的字段。

在sparks.com是否使用dtd,我们使用组织良好的xml而不是仅仅正确的xml,因为前者不需要dtd。Dtd在用户点击和看到页面之间增加了一个处理层。我们发现这一层需要太多的处理。当然,

用xml格式和其他公司交流的时候,用dtd就好了。因为dtd可以保证发送和接收时的数据结构正确。

现在选择一个解析引擎,有几个解析引擎可以使用。选择哪一个几乎完全取决于您的应用程序需求。如果您决定使用dtd,那么这个解析引擎必须能够通过dtd验证您的xml。您可以将验证放在另一个过程中,

但那会影响性能。

Sax和dom是两种基本的分析模型。Sax基于事件,所以当xml被解析时,事件被发送到引擎。接下来,事件与输出文件同步。dom解析引擎为动态xml数据和xsl样式表建立了一个层次树结构。

通过随机访问dom树,可以提供xml数据,就像它是由xsl样式表决定的一样。关于sax模型的争论主要集中在过度减少dom结构的内存和缩短xsl样式表的解析时间上。

但是,我们发现很多使用sax的系统并没有充分发挥它的能力。这些系统用它来构建dom结构,并通过dom结构发送事件。这样,dom必须在任何xml处理之前从样式表构建,因此性能会降低。

第二,生成动态xml

一旦建立了xml格式,我们就需要一种方法从数据库中动态移植它。

生成xml文档相对简单,因为它只需要一个可以处理字符串的系统。

我们使用java servlet、enterprise javabean server、jdbc和rdbms(关系数据库管理系统)建立了一个系统。

Servlet通过将生成xml文档的任务交给enterprise javabean (ejb)来处理产品信息请求。EJB使用jdbc从数据库中查询所需的产品详细信息。

Ejb生成xml文件并将其传递给servlet。Servlet调用解析引擎从xml文件和静态xsl样式表创建html输出。

(有关xsl应用程序的其他信息,请参见使用xsl作为模板语言。)

生成xml的示例用java创建xml文档字符串的实际代码可以分为几个方法和类。

启动xml生成过程的代码放在ejb方法中。这个实例立即创建一个stringbuffer来存储生成的xml字符串。

stringbuffer xml=new stringbuffer(); xml.append(xmlutils.begindocument('/browse_find/browse.xsl', 'browse', request)); xml.append(product.toxml()); xml.append(xmlutils.enddocument('browse');out.print(xml.tostring());

最后三个xml.append()参数本身是对其他方法的调用。生成文件头的第一个附加方法调用xmlutils类来生成xml文件头。我们的java servlet中的代码如下:

public static string begindocument(string stylesheet, string page){ stringbuffer xml=new stringbuffer(); xml.append('\n') .append('

本文来自网络,不代表本站立场,转载请注明出处:https: