XML简明教程(10)什么是主/细节特征

来源:互联网 发布:机顶盒的mac地址 编辑:程序博客网 时间:2024/04/28 04:34
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
新的主/细节特征允许你连接到一个分层纪录集的当前记录上,这就意味着你可以把当前纪录的子元素连接到一个截然不同的表中。例如,考虑一下的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>

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击