首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>Xml编程>资讯:您应该知道的十种 XML 模式

您应该知道的十种 XML 模式

www.jz123.cn  2008-11-29   来源:   中国建站    编辑整理    我要投递新闻

DocBook XML

能够编写文档,然后以多种不同的输出格式创建它,这曾是许多开发团队多年来的梦想。通过 DocBook XML 就可以实现,它不仅保持了语义标记,也保持了对资料格式化与输出的控制。

控制语义可以指定组成文档的章节和段落。在段落中可进一步详细规定包含的项。比方说可以将命令和函数名放在单独的标签中,如清单 8 所示。

清单 8. 使用单独的标签包装命令和函数

<para>The <command>compile</command> takes the source code of the

material and builds a new class based on the filename. For example, if the filename is

<filename>HelloWorld</filename> then the name of the class generated will be

<classname>HelloWorld</classname>.

显示不同的元素时可以选择不同的输出样式和格式,也可选择相同的样式。更重要的是,因为语义信息回会被返回(比如文档可能包含对类名的引用),所以可以在编写索引时用它生成一个列表(该列表包含文档中详细描述的所有类名)。

除了语义标记外,文档的章节和不同部分还可以用特殊的 ID 标记,用这些 ID 建立文档不同部分的链接。有些类型可自动完成(章节、部分以及其他生成目录的类型),其他则需要明确建立到其他部分的链接。

转化成目标格式的时这些链接可以自动转换成适当的格式。比如,这个链接会转换为适当的 HTML 页面或页面中锚的链接。如果要生成 PDF,则可以包含目标章节的页码。

这种转换由 XSLT 样式表完成。现有的标准 DocBook XSLT 样式表支持到标准 HTML、XHTML、PDF(通过 FO 标准)、Texinfo、Java™ Help 和 Man 页面的转换。使用标准样式表还可以将数据转化成各种不同的大小和风格,书籍、A4 页面和幻灯片。

各种输出格式和标记的灵活性意味着:当创建文档时,可以使用相同的文档源代码提供打印的手册、内嵌式的帮助、man 页面、在线和上下文感知的信息。使用更传统的模型,可以分别编写这些元素。

DocBook XML 在技术文章社区得到了广泛的认可,很多公司所有的文档全部采用 DocBook XML 标准(或它的一个子集)。

 

FIXML

FIX 是众多企业间数据交换格式之一,用于在商业活动中交换信息。此类交换信息通常很重要,比如交易支付数据、股票价格和商业信息的交换。

这些需要传输的信息有时候是非常小的包,有时候又是大段的数据。此类信息交换的传统格式是键/值对,这种形式的信息交换效率非常低。使用 XML 可以简化传递的数据结构,尤其是复杂的数据。

在基于 XML 的优化版本中,开发人员设法压缩了数据文件的大小,同时使数据更易于阅读。股票数据被压缩到了旧格式的四分之一大小。

除了典型的商业应用外,FIXML 不适合用于其他领域。但如果使用 FIXML 可以提高商业效率,结果是每个人都会受益。

 

SVG

可缩放向量图形(SVG)是一种描述绘图的 XML 标准。使用 SVG 可以描述线条、形状、位置及其之间的关系。最有吸引力的是这些信息可以输出为需要的格式,包括可缩放的图形和固定的图片。

SVG 解决了传统绘图过程中的一些重要问题。一般是使用专门的绘图程序完成的。在不同程序之间共享信息和绘图一般来说非常困难。保存为 SVG 意味着任何支持 SCG 的应用程序都能读取和处理这些文件。

绘图的另一个问题是,将它输出为最常用的(尤其是 Web 上)格式时,必须在显示或者结合到其他文档前翻译为位图格式(比如 JPEG 或 PNG)。这种传统的方法存在一些问题。首先,原始绘图必须明确(通常是手工)导出为位图格式。

其次,由于位图格式以原始绘图的逐像素表示为基础,为保证图像的质量必须小心选择和输出目标匹配的尺寸和分辨率。比如,屏幕显示的分辨率需要 72dpi(或 96dpi)以便和多数监视器的标准分辨率匹配。打印输出则需要 300 到 2400 DPI。因此和原始文件相比生成的图像文件可能非常大。

虽然在 PostScript 和 Encapsulated PostScript 之前已经存在基于向量的格式,但是对 CPU 的要求非常高,不适合屏幕显示。

和其他任何向量图像格式一样,SVG 也采用各种形状的列表来描述图像内容,而不是生成像素表示。比如矩形只需要给出左上角作为起点,再加上两条边的长度就行了。图像的描述用 XML 表示。标签包括直线、矩形、多边形、圆等等,可以控制这些元素的样式和格式。

清单 9 给出了一个例子。这里绘制了一个矩形、一个透明的圆和一个三角形。

清单 9. 简单的图形

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<polygon

points="200,100 300,200 150,250"

style="fill:#cccccc;

stroke:#000000;stroke-width:1"/>

<rect x="20" y="20" width="250" height="250"

style="fill:blue;stroke:black;stroke-width:1;

fill-opacity:0.1;stroke-opacity:0.9"/>

<circle cx="100" cy="50" r="40" stroke="red"

fill="red" style="fill-opacity:0.5"/>

</svg>

图 1 显示了生成图像的位图。

图 1. 图像的位图版本

SVG 格式描述图像的文件只有 500 多字节,PNG 接近 9 KB。

SVG 使绘图变得更小、更容易使用以及更容易兼容不同的应用程序。

 

Dublin Core

Dublin Core 标准是一种信息分类方法,常用于图书馆。Dublin Core 标准有一个 XML Schema 定义了如何使用 XML 描述这类信息。Dublin Core 可以有效地对各种信息编目,并且使它们易于修改、查询和使用。

Dublin Core 目前在信息描述和定义中的应用使语义 Web 得以现实。通过使用一种统一的标准来描述数据,同时,更重要的是使用精心设计并经过实践检验的解决方案,可以详细描述其他 XML 文档中的数据,从而可以在不同来源之间有效地交换和比较信息。

Dublin Core 规范有自己的模式,但其目的是嵌入更大的 XML 文档,使用 XML 名称空间定义描述文档中其他数据所需要的 DC 元素。作为一个例子,阅读清单 10 看看如何在 RDF XML 模式中使用 DC 分类系统描述 RDF 实体的内容,比如网站。为此,可以扩展前面的 RDF 模式 示例中的结构。

清单 10. 在 RDF XML 模式中使用 DC 分类系统描述 RDF 实体的内容

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns="http://my.netscape.com/rdf/simple/0.9/"

xmlns:dc="http://purl.org/dc/elements/1.1/">

<rss:channel rdf:about="http://www.xml.com/xml/news.rss">

<rss:title>MCSLP</rss:title>

<rss:link>http://mcslp.com/rss </rss:link>

<dc:description>

MCSLP features information, projects and articles from members of the MCSLP team.

</dc:description>

<dc:subject>MCSLP, Grids, XML, Databases, Programming </dc:subject>

<dc:identifier>http://www.mcslp.com</dc:identifier>

<dc:publisher>MCSLP</dc:publisher>

<dc:rights>Copyright 2008, MCSLP</dc:rights>

</rdf:RDF>

清单 10 中使用 DC 元素添加描述、主题、发布者、版权和标识符信息以便对 RSS 提要分类。

完整的 Dublin Core Metadata Elements Set 包括 15 个元数据元素。

Title

Creator

Subject

Description

Publisher

Contributor

Date

Type

Format

Identifier

Source

Language

Relation

Coverage

Rights

这为描述信息提供了一个广阔的范围。

 

XForms

XForms XML 标准用于定义表单中的不同成分(字段、单选按钮和列表等输入控件)以及希望在表单中提供的信息验证。

XForms XML 标准和 Web 开发人员熟悉的 HTML、XHTML 表单标记非常相似,并将成为 XHTML 2.0 标准的一部分。

XForms XML 基于简单的模型、视图、控制器格式。模型是表单的整体描述,包括字段、输入约束以及数据提交方式。视图定义了出现在表单中的控件、分组及其引用的模型字段。表单控件的格式和呈现由 CSS 控制。

XForms 标准通过更详细地划分表单信息扩展了传统的 HTML 表单定义。填充表单的过程中可使用动态元素(目前一般只能通过 JavaScript 或 Ajax 元素实现)。

清单 11 中可以看到一个简单的文本输入框和弹出式的选择框。

清单 11. 简单的文本输入框和弹出选择框

<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:xforms="http://www.w3.org/2002/xforms">

<head>

<title>XForms Sample</title>

<xforms:model>

<xforms:instance>

<Name xmlns="">

<FName />

<LName />

<Title />

</Name>

</xforms:instance>

</xforms:model>

</head>

<body>

<xforms:select1 ref="Title">

<xforms:label>Title:</xforms:label>

<xforms:item>

<xforms:label>Mr</xforms:label>

<xforms:value>Mr</xforms:value>

</xforms:item>

<xforms:item>

<xforms:label>Mrs</xforms:label>

<xforms:value>Mrs</xforms:value>

</xforms:item>

</xforms:select1>

<xforms:input ref="FName">

<xforms:label>First name: </xforms:label>

</xforms:input>

<xforms:input ref="LName">

<xforms:label>Last name: </xforms:label>

</xforms:input>

<hr />

<xforms:output value="concat('Hello ',Title,' ',FName,' ',LName)">

<xforms:label>Output: </xforms:label>

</xforms:output>

</body>

</html>

可以通过 Firefox XForms 扩展来查看该 XForms 表单。结果如图 2 所示。

图 2. 使用 Firefox XForms 扩展查看 XForms 表单

 

客户发票

很多商业活动中的一个老问题是从纸质的客户发票系统迁移到计算机处理。创建发票结构需要认真考虑各种不同的类型和重复元素。

过去,发票这类商业信息的交换必须建立非常庞大的结构和定义,国际发票信息交换标准包括数百个字段。如果没有交换数据的有效方法,共享发票、订单和其他数据会非常困难。

由于没有统一的标准,很多组织开发出了核心发票标准的各种版本。其中,OASIS 组开发的标准可能是最知名的,也是大量公司和组织认可的一种。

这种结构是 OASIS 开发的更庞大的框架 Universal Business Logic(UBL)的一部分,包括多种模式和工作流,从订单、打印发票到支付。这个系统非常复杂,不可能在本文中讨论,不过如果需要一种灵活、互操作的系统,UBL 是不错的起点。

 

结束语

本文考察多种不同的 XML 模式,从简单的描述框架(RDF)到图形格式(SVG)再到商业工作流的完整结构(UBL)。无论哪一种,XML 结构和内容的灵活性都大大简化了这些系统的开发。此外,如果需要在不同的平台和环境之间共享数据,XML 的跨平台兼容性使得它成为一种理想的选择。对 WSDL 和 SOAP 而言,这是最重要的特性之一。

上一篇:如何让WebServer返回指定XML内容 下一篇:XMLHTTP对象封装技术

评论总数:1 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图