如果我尝试使用XMLDataSource
,我在使用XPath
构建递归菜单时遇到问题。当XPath=""
时,Menu工作正常,显示Root元素及其下的所有层次结构。但我需要菜单至少从第二级层次结构开始。
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
)时,菜单控件会在设计时显示{{1}并且在运行时没有显示任何内容。
我尝试在XSD定义中使用属性There was an error rendering the control
。它没有帮助我。
有什么问题?提前感谢您的回答
答案 0 :(得分:0)
我的XML的真正问题不在于递归。递归工作正常。问题出在名称空间中。根据 JLRishe 的评论,添加命名空间是为了解决这个问题。 (我的菜单开始工作,因为它应该分配 XPath =“/ *”)。谢谢。