Interpreto el problema de la siguiente manera: el archivo DotNetConfig.xsd
tiene una definición incorrecta (o no completa) del elemento <startup>
. La línea 230 de todos los archivos DotNetConfig.xsd
, DotNetConfig35.xsd
, DotNetConfig30.xsd
y DotNetConfig20.xsd
contiene
<xs:element name="startup" vs:help="configuration/startup" />
Por otro lado Microsoft describe el elemento startup settings schema no como vacía. Así que sugiero para reemplazar la línea anterior en DotNetConfig.xsd
y en todos los DotNetConfigXX.xsd
archivos del directorio %ProgramFiles%\Microsoft Visual Studio 10.0\Xml\Schemas
(o %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Xml\Schemas
directorio en sistemas de 64 bits) para las siguientes líneas
<xs:element name="startup" vs:help="configuration/startup">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element name="requiredRuntime" vs:help="configuration/startup/requiredRuntime">
<xs:complexType>
<xs:attribute name="version" type="xs:string" use="optional" />
<xs:attribute name="safemode" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="supportedRuntime" minOccurs="1" maxOccurs="unbounded" vs:help="configuration/startup/supportedRuntime">
<xs:complexType>
<xs:attribute name="version" type="xs:string" use="optional" />
<xs:attribute name="sku" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="useLegacyV2RuntimeActivationPolicy" type="xs:boolean" use="optional" />
<!-- see http://msdn.microsoft.com/en-us/library/bbx34a2h.aspx -->
</xs:complexType>
</xs:element>
después de tal modificación y reinicio de Visual Studio 2010 se no tendrá las advertencias que describió. De la causa, uno puede definir el esquema de todos los atributos o elementos más detallados (especialmente si encontramos documentación más detallada de la sección <startup>
), pero quiero describir solo el motivo del problema y una forma de solucionarlo.
Por la forma en la elección entre la DotNetConfig.xsd
, DotNetConfig35.xsd
y otros archivos DotNetConfigXX.xsd
se hará en base al contener el archivo de catalog.xml
del mismo directorio, que describe el esquema here. La versión estándar del catalog.xml
el archivo contiene las siguientes líneas
<Association extension="config" schema="%InstallRoot%/xml/schemas/dotNetConfig20.xsd" condition="starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v2.')" />
<Association extension="config" schema="%InstallRoot%/xml/schemas/dotNetConfig30.xsd" condition="starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v3.0')" />
<Association extension="config" schema="%InstallRoot%/xml/schemas/dotNetConfig35.xsd" condition="starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v3.5')" />
<Association extension="config" schema="%InstallRoot%/xml/schemas/dotNetConfig.xsd" condition="starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v4.') or $TargetFrameworkMoniker = ''" />
Así que todos los archivos con la extensión .config
será interpreta por Visual Studio como archivos con el esquema XSD descrito por uno de los archivos anteriores.
Gracias. Eso hizo el truco. Ni siquiera pensé en la posibilidad de que el envío del xsd con VS pudiera ser incorrecto. –
@Sebastian P.R. Gingter: ¡Bienvenido! Nadie es perfecto. Microsoft también. No es una buena idea tener un XSD para todos los archivos .config (app.config, web.config, etc.). Entonces hay otros problemas cercanos con el esquema de configuración. Sin embargo, me alegra saber que te ayudé. ¡El instinto de Mach! – Oleg
También me quité 41 advertencias. Muchas gracias :) –