|
知识路径: > 数据库主流应用技术 > 数据库主流应用技术 > 数据库主流应用技术 > XML与数据库 >
|
相关知识点:1个
|
|
|
|
XML文档中第二种普遍的数据模型是特定数据对象的树型结构。在该模型中,元素类型通常对应对象,而XML中的内容模型、属性和PCDATA则对应对象的属性。这种模型直接映射成面向对象的数据库和层次型数据库,当然借助于传统的对象-关系映射技术和SQL对象视图也可以映射成关系数据库。要注意的是,这种模型并不是文档对象模型(DOM)。DOM是对文档本身进行建模,而不是对文档中的数据。
|
|
|
在XML和数据库进行数据转换时,需要考虑许多问题。XML不支持任何有实际意义的数据类型。所有XML文档中的数据都被当成文本来对待,即便它能够用其他的数据类型(如日期或者整数)来表示。通常,数据转换中间件将把XML文档中的文本转换成其他数据库中的数据类型,反之亦然。然而,特定的数据类型所识别的文本格式是有限制的,例如受到提供的JDBC Driver所支持的数据类型的限制。在这些众多的数据类型中,日期类型通常会导致麻烦。不同国际地区的数字格式的差异也可能产生问题。
|
|
|
在数据库世界中,空值(null)数据意味着数据不存在值。但是这与一个值为0的数字或长度为0的字符串有很大的区别。例如,假设你的数据来自一个气象站,如果气象站的温度计出了故障读不出温度值,那么你的数据库中将存储一个null值而不是一个0。XML中空值概念的支持可以通过设置可选的元素类型或属性来实现。如果元素类型或属性值为null,XML只要在文档不包含该元素或者属性就可以了。但是对数据库而言,空的元素或包含长度为零的字符串属性并不是空值null,它们的值为长度为0的字符串。在XML文档和数据库结构之间相互映射过程中,你必须特别注意那些可选的元素类型或属性是否对应于数据库中的空值项。如果不这么做的话,很可能出现插入错误(当将数据转换到数据库中时)或者无效文档错误(当将数据从数据库读出时)。因为同样要用符号表示空值,XML中相对于数据库而言更为灵活。具体来讲,许多XML用户很可能包含空字符串的空元素或属性是空值,这个时候你必须考虑如何选择合适的中间件来解决这个问题。一些中间件可以让用户选择在XML文档中定义用什么来组成空值。除了一些控制字符,XML文档能够包含任何的Unicode字符。但许多数据库都限制或者不支持Unicode,而且需要一些特殊的配置才能够处理非ASCII编码的字符数据。如果你的数据包含了非ASCII字符,那么务必要核实你的数据库和中间件是否能够处理这些字符。
|
|
|