新的主/细节特征允许你连接到一个分层纪录集的当前记录上,这就意味着你可以把当前纪录的子元素连接到一个截然不同的表中。例如,考虑一下的XML:<orders><orderorder_number="2233"><customer><name>JohnSmith</name><custID>192883</custID></customer><item><name>FlySwatter</name><price>9.99</price></item></order><orderorder_number="2234"><customer><name>MareaAngelaCastaneda</name><custID>827145</custID></customer><item><name>FlyPaper</name><price>15.99</price></item></order><orderorder_number="2235"><customer><name>AmyJones</name><custID>998022</custID></customer><item><name>MosquitoNetting</name><price>38.99</price></item></order></orders>
你可以允许你的用户通过ID来定位订单,并显示(也仅能显示)当前订单上的客户和项目信息,你的用户并不能查看所有订单的信息——仅能查看自己感兴趣的。
如何连接到细节?
连接到层次结构中的底层(细节信息)的关键是了解你的数据的结构,上面的XML在根元素<orders>中含有有三个元素。基于XMLDSO所采用的试探法,每一个订单都映射到一个包含"order_number"、"customer"、和"item"等域的行集中。"order_number"列包含"order_number"属性的值,"customer"和"item"列包含指向各自的"customer"和"item"
现在再添加几个按钮来帮助用户浏览"orders"纪录集。<INPUTTYPE=BUTTONvalue="PreviousOrder"onclick="xmlDoc.recordset.movePrevious()"><INPUTTYPE=BUTTONvalue="NextOrder"onclick="xmlDoc.recordset.moveNext()">
为了在当前纪录的子元素中检索这个值,创建一张表并把表的DATASRC属性设置为"#xmlDoc",就和上面所作的一样,但是这时也要把它的DATAFLD属性设置为"customer"