选择显示字体大小

xml简明教程第10课 :在c++ xml dso中使用主/细节特征

什么是主/细节特征?
新的主/细节特征允许你连接到一个分层纪录集的当前记录上,这就意味着你可以把当前
纪录的子元素连接到一个截然不同的表中。例如,考虑一下的xml
<orders>
  <order order_number="2233">
    <customer>
      <name>john smith</name>
      <custid>192883</custid>
    </customer>
    <item>
      <name>fly swatter</name>
      <price>9.99</price>
    </item>
  </order>
  <order order_number="2234">
    <customer>
      <name>marea angela castaneda</name>
      <custid>827145</custid>
    </customer>
    <item>
      <name>fly paper</name>
      <price>15.99</price>
    </item>
  </order>
  <order order_number="2235">
    <customer>
      <name>amy jones</name>
      <custid>998022</custid>
    </customer>
    <item>
      <name>mosquito .netting</name>
      <price>38.99</price>
    </item>
  </order>
</orders>
你可以允许你的用户通过id来定位订单,并显示(也仅能显示)当前订单上的客户和项
目信息,你的用户并不能查看所有订单的信息——仅能查看自己感兴趣的。
如何连接到细节?
连接到层次结构中的底层(细节信息)的关键是了解你的数据的结构,上面的xml在根元
素<orders>中含有有三个元素。基于xml dso所采用的试探法,每一个订单都映射到一个
包含"order_number"、 "customer"、 和 "item"等域的行集中。"order_number"列包含
"order_number"属性的值,"customer"和"item"列包含指向各自的"customer"和"item"
纪录集的指针。"customer"记录集中包含带有"name"和"custid"域的元素的值,"item"
记录集中包含带有"name"和"price"域的元素的值。
这样,在顶层("orders")纪录集中,你可以找到"order_number"的值,然后允许你的
用户通过"order_number"定位订单。
<p>order number: <span datasrc="#xmldoc" datafld="order_number"></span></p>
现在再添加几个按钮来帮助用户浏览"orders"纪录集。
<input type=button value="previous order" onclick="xmldoc.recordset.moveprev
ious()">
<input type=button value="next order" onclick="xmldoc.recordset.movenext()">

为了在当前纪录的子元素中检索这个值,创建一张表并把表的 datasrc 属性设置为"#x
mldoc",就和上面所作的一样,但是这时也要把它的 datafld 属性设置为 "customer"
。这是为了告诉表连接到"customer"纪录集中的数据上,而"customer"纪录集由"order
s"纪录集中的"customer"域的指针指向。
<table datasrc="#xmldoc" datafld="customer" border>
  <thead><th>name</th><th>id</th></thead>
  <tr>
    <td><span datafld="name"></span></td>
    <td><span datafld="custid"></span></td>
  </tr>
</table>
接着对"item"元素作同样的处理。
<table datasrc="#xmldoc" datafld="item" border=1>
  <thead><tr><th>item</th><th>price</th></tr></thead>
  <tr>
    <td><span datafld="name"></span></td>
    <td><span datafld="price"></span></td>
  </tr>
</table>
现在,当用户点击按钮并移到纪录集中的后一个或前一个纪录时,表中的数据会相应的
改变到当前纪录。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons