1

XMLDataSource我在尝试使用构建递归菜单时遇到问题XPath。当然XPath=""后菜单工作正常显示根元素及其下的所有层次结构。但我需要菜单至少从层次结构的第二级开始。XML 模式文件包含定义:

<xs:element name="Menu" type="TopMenuType"/>
<xs:element name="MenuItem" type="TopMenuItemType"/>

<xs:complexType name="TopMenuItemType">
    <xs:sequence>
        <xs:element type="TopMenuItemType" name="MenuItem" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute type="xs:string" name="Caption" default=""/>
</xs:complexType>

<xs:complexType name="TopMenuType">
    <xs:sequence>
        <xs:element type="TopMenuItemType" name="MenuItem" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>      
</xs:complexType>   

并且 XML 文件本身包含根据此模式的数据:

<Menu xmlns="http://tempuri.org/TopMenuData.xsd">
<MenuItem Caption="Profile">
    <MenuItem Caption="Regulatory Transactions"></MenuItem>
    <MenuItem Caption="Work Management"></MenuItem>
    <MenuItem Caption="Work Queues"></MenuItem>
</MenuItem>
<MenuItem Caption="Message Queues" URL="MQ.aspx">
    <MenuItem Caption="Appointment Queues">
        <MenuItem Caption="Termination Queues"></MenuItem>
        <MenuItem Caption="Filling Status"></MenuItem>
    </MenuItem>
</MenuItem>

当我尝试将值分配给 XPath(类似于/Menu, //MenuItem, /MenuItem, /Menu/MenuItem)时,菜单控件会在设计时显示,There was an error rendering the control而在运行时不会显示任何内容。

我尝试ref在 XSD 定义中使用属性。它没有帮助我。

怎么了?提前感谢您的回答

4

1 回答 1

0

我的 XML 的真正问题不是递归。递归工作正常。问题出在名称空间中。根据JLRishe的评论,添加命名空间足以解决这个问题。(我的菜单开始工作,因为它应该分配XPath="/*")。谢谢。

于 2013-02-11T07:07:09.920 回答