将asp.net控件标记添加到XML模式文件

时间:2011-02-03 09:50:04

标签: asp.net xml xsd xhtml

我有一个描述XHTML文档的xsd。但是,我正在使用的应用程序可能会在该点的标记内有一些选定的asp.net控件进行验证。因此验证失败。

示例控件可以是:

<smart:Address runat="server" />

我想在xsd文件中添加一个新元素,但是当我指定:

<xs:element name="smart:Address">

我收到验证错误,因为元素名称中不能包含冒号。

有人可以建议我如何扩展架构文件以允许选定的服务器控件吗?

更新 要在整个xsd上提供帮助,请访问: xhtml1-transistional.xsd

2 个答案:

答案 0 :(得分:2)

您错过了“智能”是XML命名空间。

换句话说:你需要声明“智能”命名空间:

<xs:schema xmlns:smart="http://someurl" ......

在此处了解详情:

答案 1 :(得分:0)

您需要将智能命名空间的元素声明放在单独的模式文档中,其targetNamespace属性标识命名空间。像xs:element和xs:simpleType这样的构造的name属性始终是一个非限定(本地)名称,由targetNamespace隐式限定(使用elementFormDefault =“qualified”以确保即使对于本地元素声明也是如此)。当您从一个不同模式文档中的组件引用一个模式文档中的元素声明时,则(a)您必须具有xs:import声明以指示依赖关系,并且(b)您使用限定名称作为引用,形式为prefix:local,其中prefix使用xmlns:prefix =“uri”声明绑定到相应的命名空间,通常在xs:schema元素上。