[翻译] mhss
原著:Igor Dayen
翻译:寒蝉退士(mhss)
译者声明:译者对译文不做任何担保,译者对译文不拥有任何权利并且不负担任何责任和义务。
原文:http://www.XML.com/pub/a/2001/06/20/databases.Html
介绍
解决把 XML 有效的、自动的转换出入关系数据库的问题有各种方式。数据库厂商比如 IBM、Microsoft、Oracle 和 Sybase 已经开发了转换 XML 到数据库表中的辅助工具。各种解决方案如下。
Oracle XML SQL Utility 把 XML 文档元素建模为一组嵌套的表。通过使用 Oracle 对象数据类型建模套入的元素。"SQL-to-XML"转换使用被对象数据类型引用的表,和嵌套的元素之间的一到一关联来构造 XML 文档。"XML-to-SQL"可能要求数据模型的改进(从关系转换到对象-关系)或重新构造最初的 XML 文档。
IBM DB2 XML Extender 答应存储 XML 文档为 BLOB 式的对象或分解到一组表中。后者得变换叫做 XML 收集,以 XML 1.0 语法定义。
Microsoft 通过扩展 SQL-92 并介入 OPENXML 行集来解决问题。
Sybase Adaptive Server 介入 ResultSetXml Java 类作为在两个方向上处理 XML 文档的基础。
在这篇文章中,我们将具体讨论这些厂商的解决方案。此后,我们将尝试回答下列问题:
我们可以调整并简化问题吗?
在异构数据库环境中正确的途径是什么?
我将使用下列词汇表作为一个例子。
<!-- 简单类型 -->
<!ELEMENT CURRENCY1 (#PCDATA)>
<!ATTLIST CURRENCY1 e-dtype NMTOKEN #FIXED "string"
e-dsize NMTOKEN #FIXED "3">
<!ELEMENT CURRENCY2 (#PCDATA)>
<!ATTLIST CURRENCY2 e-dtype NMTOKEN #FIXED "string"
e-dsize NMTOKEN #FIXED "3">
<!ELEMENT AMOUNT (#PCDATA)>
<!ATTLIST AMOUNT e-dtype NMTOKEN #FIXED "decimal">
<!ELEMENT SETTLEMENT (#PCDATA)>
<!ATTLIST SETTLEMENT e-dtype NMTOKEN #FIXED "date">
<!ELEMENT BANKCODE (#PCDATA)>
<!ATTLIST BANKCODE e-dtype NMTOKEN #FIXED "string">
<!ELEMENT BANKACCT (#PCDATA)>
<!ATTLIST BANKACCT e-dtype NMTOKEN #FIXED "string">