2011年(21)
分类: Java
2011-04-09 09:02:01
XML是在两个可能完全不同的系统之间定义和传输数据的标准机制。通过使用面向对象的语言结合面向对象定义语言(如XML),在不同的目标之间移动数据就更高效和安全。XML为一些独立的应用程序共享数据提供了一种机制。
可移植代码
商业环境中主要存在的问题:数据存储格式的多样性。例:Alpha公司用Oracle数据库,Beta公司用SQL Server数据库。
XML提供了以不同方式移动数据的一些标准。
“垂直”移动:数据通过多个行业团体进行移动。
“水平”移动:特定于某个行业。
可移植数据:在信息级别创建高级别的可移植能力。位于位级的数据肯定是不可移植的。
可扩展标记语言(XML)
HTML:其目的是安排数据的格局并显示数据,并不校验它。
XML:侧重于数据检验的问题。它对格式的要求比HTML更严格。
XML与HTML
HTML表现数据,XML描述数据。
XML提供了HTML没有提供的优点:有效且格式规范的文档。
HTML标记都是预定义的,不能添加自己的标记,这对于其用于格式化数据没有问题。
XML是用于定义数据的,那么就必须创建自己的标记名称。于是产生了文档类型定义的文档(Document Type Definition, DTD),在该文档中定义用来描述数据的标记。
XML和面向对象语言
XML和面向对象语言协作来提供所讲到的可移植数据。
Alpha公司提出一个XML规范,该规范描述完成交易并把信息保存在它的数据库中所需要的信息。Java语言可以用来从Alpha公司SQL Server 数据库中提取数据并创建基于约定标准的XML文档。然后可以将该XML认证文档通过Internet发送给Beta公司,Beta公司使用约定的XML标准,从XML文档中提取信息并把它输入到Oracle数据库中。
应用程序到应用程序的数据转换
分析器是读取文档并提取特定信息的程序。
在两个公司之间共享数据
Alpha公司提供一个DTD(supplier.dtd)
注意:各标记是嵌套的,且只有最后的标记包含所有数据。
PCDATA代表分析特征数据,它是从文本文件中分析出的简单的标准特征信息。
用文档类型定义检验文档
把DTD集成到XML文档中
Beta公司的XML文档(beta.xml),包括DTD。
supplier SYSTEM "supplier.dtd"> //把该文档同刚才定义的供应商DTD联系起来
可以用XML Notepad工具辅助XML文档的开发。此外,它还可以检测到无效文档,即不遵守DTD规范的XML文档。
使用层叠样式表
CSS大量的用于在HTML领域中格式化内容,同样也可以用CSS来格式化XML。
面向对象的开发远远超过OO语言的范围,它还包括数据。
把XML数据插入到SQL Server数据库的表中:使用系统存储过程sp_xml_preparedocument 的OPENXML函数。
把数据库表结构生成一个XML文档:使用SQL中FOR XML子句。
例:SELECT EmployeeID,FirstName,LastName FROM Employees FOR XML AUTO, XMLSCHEMA