我有自定义System.Configuration.ConfigurationSection
派生类,它代表我的app.config
文件中的配置部分。我也有xsd
该 XML 文档的模式文档。配置文件具有以下(简化的)结构:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="sectionOne" type="/*...*/" />
<section name="sectionTwo" type="/*...*/" />
<section name="sectionThree" type="/*...*/" />
</configSections>
<sectionOne xmlns="http://tempuri.org/MySchema.xsd">
<Container>
/*...*/
</Container>
</sectionOne >
<sectionTwo xmlns="http://tempuri.org/MySchema.xsd">
<Container>
/*...*/
</Container>
</sectionTwo >
<sectionThree xmlns="http://tempuri.org/MySchema.xsd">
<Container>
/*...*/
</Container>
</sectionThree >
</configuration>
正如我们所看到的,我有几个该类型的部分,用于各种目的,我使用ConfigurationManager
类检索配置数据:
ConfigurationManager.GetSection(sectionName);
因为部分名称不是常量字符串值,所以xsd
模式仅验证作为根元素的子元素的元素(从Container
标记开始)。因此,在 VS2012 中,在错误列表工具栏中,我收到以下消息:
Could not find schema information for the element 'http://tempuri.org/MySchema.xsd:SectionOne'.
Could not find schema information for the element 'http://tempuri.org/MySchema.xsd:SectionTwo'.
Could not find schema information for the element 'http://tempuri.org/MySchema.xsd:SectionThree'.
如何修复该验证机制。