注册基于用户控件的表单UI控件 - 命名空间

时间:2013-02-06 17:08:05

标签: xsd c1-cms

标题为“注册基于用户控件的表单UI控件”下的文档http://docs.composite.net/Console/CreatingFormControls说“您必须首先向您的组织注册一个私有的XML命名空间”,但不解释如何。

所以我的问题是如何创建自己的命名空间?我是要创建一个xml架构还是Composite-C1可以根据全局数据类型导出命名空间?任何帮助都会很棒。从未创建过xml架构(假设这是必需的)。

我创建了我的asp网络控件并将其添加到我的c1控制台但是当我尝试添加新的新数据项时会产生错误:
ConfigurationErrorsException: 找不到名称

的配置

2 个答案:

答案 0 :(得分:1)

通过分配URI(在您控制的URI空间的一部分中)作为命名空间名称,然后以适当的方式使用该命名空间名称(通常作为元素的限定名称的一部分)来创建XML命名空间,您定义的属性和其他对象。 (如果这听起来模糊不清,那就是因为它。)

命名空间的功能(我在这里专门讲述XML命名空间,但我所说的很多内容适用于人们称之为命名空间的其他事物)是为了防止不同人分配的名称之间的冲突。方法是说“你在命名空间中创建名称,我将在我的命名空间中创建名称,因为它们位于不同的名称空间中,所以我们的名字永远不会发生冲突。”当然,只有遵循规则(几乎从未明确说明,尽管它对整个想法绝对重要),只有在您控制的URI空间部分中创建命名空间时,命名空间才能保证不同。您可以通过拥有域名,或通过拥有雇主拥有的域中URI路径的部分树结构或其他方式来控制URI空间的一部分。如果您与其他人共享URI空间的某些部分的责任,您将需要以某种方式与它们协调(许多组织遵循一种“先来先服务”规则 - 任何人都可以通过放置在组织的URI空间中声明特定的URI服务器上适当位置的内容,一旦完成,该组织中的其他人就无法声明相同的URI。)

因此,创建命名空间的关键操作是识别名称并将其专用于充当命名空间名称的功能的抽象操作。如果您拥有自己的域名,那么这只是您必须做出的决定;如果你共享一个域,你可能需要在某处写一些东西,这样你的同事就不会意外地声称与名称空间名称相同的URI。 (当然,将一些命名空间的文档放在有问题的URI中是一种很好的做法,但是没有老大哥可以检查Web中的每个人都这样做。)

一旦您选择了命名空间名称并完成了组织中所需的任何内容以防止组织内部发生冲突,您引用的文档会告诉您必须写什么来告诉该特定系统的注册表有关该名称的信息。主要是编辑一些配置文件并告诉他们你的小部件在哪里。我没有看到任何XSD架构文档的要求(但我浏览了很多)。

答案 1 :(得分:0)

确定设法解决了问题。

我认为我需要一些xml命名空间是不正确的。我需要的只是一个空命名空间引用。该错误与控件名称有关,而与名称空间无关。

但是我的问题确实与命名空间URI有关,我相信@C。 M. Sperberg-McQuee回答得非常好。

相关问题