当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 用于XML的简单API /gceclub.su
 

 

 ·allegro 应用日志 2004-11-5 (1)    »显示摘要«
    摘要:昨天写了关于 set_gfx_mode 函数的用法,现在将一些card的类型补充进来。他们分别是gfx_vag 标准vga模式gfx_modex 神奇的modex,不用我多说了gfx_vesa1 vesa 1.0 驱动gfx_vesa2b vbe 2.0 堆积模式 ????gfx_vesa2l vbe 2.0 行模式 ????gfx_vesa3 vbe 3.0 驱动gfx_vbeaf vbe......
 ·jsp页面中的自定义标签    »显示摘要«
    摘要: jsp页面中的自定义标签 jsp页面中的自定义标签 stephanie bodoff 用于调用javaean组件中的操作和执行请求分派的标准jsp标签简化了jsp页面的开发和维护。jsp技术还提供了在自定义标签中封装其他动态功能的机制,这种自定标签是jsp语言的扩展。自定义标签通常是以标签库的形式出现的,它定义了一组相关的自定义标签......


用于XML的简单API

用于xml的简单api

sax协议比文档对象模型(dom)需要进行更多的编程.它是事件驱动模型(你提供回调方法,解析器在读取xml数据的时候调用它们),因此很难实现可视化.最后,不能倒退回文档的前面部分或重新组织它,只能回退到一个串行数据流或重新组织从流中读取的字符. 【程序编程相关:使用IActiveDesktop对象的一

  eric armstrong 本章主要讨论simple api for xml (sax),它是一种事件驱动.串行存取xml文档的机制.这是多数servlet与面向网络的程序用来传送与接收xml文档的协议,因为在目前xml文档处理的可用机制中它最快并且所需内存最少. 【推荐阅读:VBA for EXCEL FAQ

然而,即便是专门建立dom应用程序,仍然要熟悉sax模型,主要原因如下: 【扩展信息:JUnit代给我们的……

由于上述原因,如果开发者编写面向用户的应用程序,且该应用程序显示xml文档并可能要对它进行修改,那么就应该使用教程下一部分介绍的dom机制,文档对象模型.

相同的错误处理 在解析dom文档时,会生成相同类型的异常,所以jaxp sax与dom应用程序的错误处理程序是相同的.

处理验证错误 默认情况下, 规范要求忽略验证错误(在该教程的这一部分中会详细介绍) .如果想要在验证错误事件中抛出一个异常(并且能这样做),那么就需要理解sax错误处理的工作原理.

转换现有数据 可以看到在本教程的dom节,可以使用一种机制将现有数据集转换成xml——然而,要充分利用该机制首先必须理解sax模型.

注意:可以在下面的地址中找到本章的例子: <jwsdp_home>/docs/tutorial/examples/jaxp/sax/samples.

何时使用 sax

当要快速.高效地读取xml数据时,sax是无可挑剔的.它对内存的要求很小,因为它不构建xml数据的内部表示(树结构).它仅仅将读取的数据发送给应用程序——然后应用程序就可以随意处理它所见到的数据.

实际上,sax api类似于串行i/o流.在流进入的时候,可以看到数据,但是不能回到以前的位置或跳跃到不同的位置.总的说来,如果仅想读取数据并在这基础上运行应用程序它就非常有效.

理解sax事件模型对于将现有数据转换成xml非常有用.在从任意数据结构生成xml 可以看到,转换过程的关键是修改现有应用程序,以便在读取数据时发送合适的sax事件.

但是,当需要修改xml结构时——特别是需要互相修改的时候,使用类似于文档对象模型(dom)的内存结构更为合理.

然而,虽然dom提供了许多处理大型文档(如书与论文)的强大功能,但是还是需要进行复杂的编程 (在何时使用dom中详细介绍了该处理的细节) .

在简单的应用程序中,这么复杂是完全没有必要的.在快速开发与简单的应用程序中,使用面向对象的xml编程标准更加合理,在jdom 与dom4j中会具体介绍.

编写简单的xml文件

现在开始编写一个用来进行幻灯片播放的xml数据的简单版本.在该练习中,使用文本编辑器创建数据,这样就能比较适应xml文件的基本格式.你将使用该文件并在以后的练习中对它进行扩展.

创建文件

使用标准的文本编辑器,创建一个叫做slidesample.xml的文件.

注意: 这里已经有一个slidesample01.xml的版本.(可以浏览的版本是 slidesample01-xml.html)可以将该版本与你所编写的相比较,或者仅在阅读此指南时查看.

编写声明

下一步,编写声明,其中该声明将文件标识为一个xml文档.声明以字符"<?"开始,这是处理指令的标准xml标识符.(在本教程的后面部分可以看到其他处理指令)

  <?xml version=´1.0´ encoding=´utf-8´?>   该行表明此文档是一个xml文档,它遵守xml1.0版本规范,并且使用8-位unicode字符编码方案.(要想获得编码方案的信息,请查看java编码方案 .)

由于没有指定文档是“独立的”,解析器假设该文档可能包含到其他文档的引用.想知道如何将一个文档指定为“独立的” .

添加注释

注释会被xml解析器忽略.实际上,你根本就看不到它们,除非你激活解析器里的特殊设置.教程后面部分的处理词法事件中会详细介绍如何使用它.现在,添加下面突出显示的内容,在文件中增加一条注释.

<?xml version=´1.0´ encoding=´utf-8´?>  <!-- a sample set of slides -->  

定义根(root)元素

在声明之后,每个xml文件都会精确地定义一个元素,这就是根元素.文件中的任何其他元素都包含在该元素中.输入下面突出显示文本,定义该文件的根元素slideshow:

<?xml version=´1.0´ encoding=´utf-8´?>  <!-- a sample set of slides -->  <slideshow>  </slideshow> 注意:xml元素命名是大小写敏感的.结束标签必须与起始标签匹配.

给元素添加属性

幻灯片播放有大量相关数据项,它们都不需要任何结构.所以可以将它们定义成slideshow 元素的属性.添加下面突出显示的文本,建立一些属性:

...  <slideshow     title="sample slide show"    date="date of publication"    author="yours truly"    >  </slideshow> 在创建标签或属性的名字时,除了字符与数字之外还可以使用连字符 ("-"),下划线("_"),冒号 (":")与句点 (".") .与html不同, xml属性的值通常在引号之内,并且不用逗号分隔多个属性.

注意: 要慎重使用冒号或避免一起使用,因为在定义xml文档的命名空间的时候也要使用它.

添加嵌套元素

xml能够表示层次结构化数据,这意味着一个元素可以包含其他元素.添加下面突出显示的文本,定义一个幻灯片(slide)元素,并在它内部包含一个标题(title)元素:

<slideshow   ...  >    <!-- title slide -->  <slide type="all">    <title>wake up to wonderwidgets!</title>  </slide> </slideshow> 这里,也给幻灯片(slide)添加了一个type 属性.该属性主要是用来标识幻灯片,是type="tech" 还是 type="exec",以便区别观众是技术人员还是管理人员,如果两种类型的观众都有那么就是使用type="all".

然而,更重要的是,该例子显示了适合定义成元素(title 元素)与适合作为属性 (type 属性)的事务之间的区别.这里主要使用可视化启发法.标题是观众能够看到的内容.所以它是一个元素.而类型是永远都不会显示出来的,所以它是属性.另一种区分方法是,元素是容器, 就像瓶子一样.类型是容器的特征(高的还是矮的,宽的还是窄的).标题是内容的特征 (水.牛奶还是茶).当然,这些都不是非常严格的规则,但是在设计自己的xml结构的时候,它们很有用.

添加 html-风格文本

由于xml允许你定义任何你想定义的标签,因此可以定义一组看上去类似于html的标签.实际上这是通过xhtml标准实现的.在sax教程的结束部分,你会进一步了解它.现在,输入下面突出显示的文本,定义一个具有两个列表项目的幻灯片,这些项目使用html-风格的<em>标签进行强调 (通常使用斜体字):


...   下一页
    摘要:c#中用“橡皮条”法绘图和重绘 前些日子在论坛上发了个帖子,100分寻求“橡皮条”法绘图的代码。效果不是很好,于是自己参照网友给的代码重新写了一个,解决了绘图与重绘的问题。由于只写了部分,所以功能有限,同时可能算法不是很好,希望大家指点!!窗体中仅包含一个pictruebox1,先将代码付诸于下:using system;using system......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE