热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » HTML/XHTML/XML编程 » XML和数据库(一)

XML和数据库(一)

论坛链接
  • XML和数据库(一)
  • 发布时间:2007-10-05 20:49:37    浏览数:6591    发布者:superadmin    设置字体【   
串的空元素或属性是空值。这个时候你必须考虑如何选择合适的中间件来解决这个问题。一些中间件可以让用户选择在XML文档中定义用什么来组成空值。
     
  5.3.4 字符集
  
  根据定义,除了一些控制字符,XML文档能够包含任何的Unicode字符。但是不幸的是,许多数据库都限制或则不支持Unicode,而且需要一些特殊的配置才能够处理非ASCII编码的字符数据。如果你的数据包含了非ASCII字符,那么务必要核实你的数据库和中间件是否能够处理这些字符。
 
  5.3.5 处理指令
   
  处理指令并不属于XML文档中的“数据”部分,因此目前许多中间件可能不能正常的处理。问题是,尤其是在将XML文档结构严格映射成数据库结构时,处理指令通常是很难处理的,因为它们可以虚拟地出现在文档的任何位置。因此,中间件就很难判断将它们保存到什么位置以及在什么时候检索读取出来。如果处理指令和文档的循环回复("round-tripping")对你而言是非常重要的话,就务必检查你的中间件是如解决这个问题的。
    
  5.3.6 存储标记
  
  在
  
  href="#markup">4
  
  href="#markup">.2.2 
  
  小节中提到,有时候将包含元素或者混合内容的元素不作进一步的解析而直接保存到数据库中是非常有用的。最常见的方法是简单的把这个标记本身直接保存到数据库中。不幸的是,当从数据库中检索数据时将产生问题:不可能判断数据库中的标记到底是真的标记还是代表了标记字符的实体,如由lt和gt转义的字符。
   
  例如,下面的description元素:
  
  <description>
  <b>Confusing example:</b> <foo/>
  </description>
  
  在数据库中存储为:
  
  <b>Confusing example:</b> <foo/>
   
  这时数据库就不能判断<b>和<foo>是标记还是文本。有几种可能的解决方法,如以一定的方式来标志标记或者对非标记的标记字符使用实体。但是这时你要格外注意这样的方式是否和使用这些的数据的其它应用兼容。例如,如果你想查询数据库中的小于号("<")和 
  
  lt实体("<")时就要特别留心。
 
  5.4 从数据库的结构生成DTD及其互逆过程
    
  在XML文档和数据库之间转换数据时,一个普遍问题是:如何从数据库的结构(Schema)生成XML的DTD,如果从XML的DTD产生数据库的结构。简而言之,这是非常直接的操作,但是产生的结果通常离许多用户的期望值还有一些距离。
 
  (还要注意这通常是一次性操作,而大多数应用,尤其是所有的垂直性应用都结合了已知的DTD和关系型Schema的集合。显而易见的特例是在关系数据库中存储随机XML文档或者将关系型数据发布为XML文档的工具;而在后面的情况中,DTD的作用并不明显。)
   
  对于元素类型中每个有单一数值的属性和只包含有PCDATA内容的子元素类型在该ta 
  
  ble中新建立一列(字段)。如果子元素类型或则属性是可选的,让该字段允许为空。 
  
  对于每个有多值的属性或则多仅含有PCDATA内容的子元素类型,再建立一个分开的 
  
 table来保存他们的值,通过它们的父表的主关键字连接到父表。 
  
  对于每个子元素,这些子元素本身还有元素或则混合内容,使用父表中的关键字将 
  
  父元素表连接到子元素表中。 
  
  而下面则是一个从关系数据库的结构生成XML文档的过程(简化过的): 
  
  对每个table,新建一个元素。 
  
  对表中的每列,建立一个属性或则只含PCDATA的子元素 
  
  对每个包含有在主键/外键关键字关系中主键转
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理