<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="urn:app-config"
           xmlns="urn:app-config"
           elementFormDefault="qualified">

	<xs:annotation>
		<xs:documentation>
			Copyright (C) 2005-2008 Matthew Ward
			
			Permission is hereby granted, free of charge, to any person obtaining a copy of this
			software and associated documentation files (the "Software"), to deal in the Software
			without restriction, including without limitation the rights to use, copy, modify, merge,
			publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
			to whom the Software is furnished to do so, subject to the following conditions:
			
			The above copyright notice and this permission notice shall be included in all copies or
			substantial portions of the Software.
			
			THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
			INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
			PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
			FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
			OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
			DEALINGS IN THE SOFTWARE.
		</xs:documentation>
	</xs:annotation>

	<xs:element name="configuration">
		<xs:complexType>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="startup" type="startup" minOccurs="0" maxOccurs="1"/>
				<xs:element name="runtime" type="runtime" minOccurs="0" maxOccurs="1"/>
				<xs:element name="system.runtime.remoting" type="system.runtime.remoting" minOccurs="0" maxOccurs="1"/>
				<xs:element name="system.net" type="system.net" minOccurs="0" maxOccurs="1"/>
				<xs:element name="uri" type="uri" minOccurs="0" maxOccurs="1"/>
				<xs:element name="mscorlib" type="mscorlib" minOccurs="0" maxOccurs="1"/>
				<xs:element name="configSections" type="configSections" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="system.diagnostics" type="system.diagnostics" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="location" type="location" minOccurs="0" maxOccurs="1"/>
				<xs:element name="system.web" type="system.web" minOccurs="0" maxOccurs="1"/>
				<xs:element name="system.codedom" type="system.codedom" minOccurs="0" maxOccurs="1"/>
				<xs:element name="appSettings" type="appSettings" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="connectionStrings" type="connectionStrings" minOccurs="0" maxOccurs="unbounded"/>
			</xs:choice>
		</xs:complexType>
	</xs:element>

	<xs:complexType name="startup">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="requiredRuntime" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="version" type="xs:string"/>
					<xs:attribute name="safemode" type="trueFalseEnum"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="supportedRuntime" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="version" type="xs:string"/>
					<xs:attribute name="sku" type="xs:string"/>
				</xs:complexType>
			</xs:element>		
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="runtime">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="alwaysFlowImpersonationPolicy" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="enabled" type="trueFalseEnum" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="assemblyBinding" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:choice>
						<xs:element name="dependentAssembly" type="dependentAssembly" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="probing" type="probing" minOccurs="0" maxOccurs="1"/>
						<xs:element name="publisherPolicy" type="publisherPolicy" minOccurs="0" maxOccurs="1"/>						
						<xs:element name="qualifyAssembly" type="qualifyAssembly" minOccurs="0" maxOccurs="1"/>						
					</xs:choice>
					<xs:attribute name="appliesTo" type="xs:string"/>
				</xs:complexType>				
			</xs:element>			
			<xs:element name="bypassTrustedAppStrongNames" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="enabled" type="trueFalseEnum" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="developmentMode" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="developerInstallation" type="trueFalseEnum"/>				
				</xs:complexType>
			</xs:element>		
			<xs:element name="disableCachingBindingFailures" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="enabled" type="zeroOrOneEnum"/>				
				</xs:complexType>
			</xs:element>			
			<xs:element name="gcConcurrent" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="enabled" type="trueFalseEnum" use="required"/>				
				</xs:complexType>
			</xs:element>
			<xs:element name="gcServer" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="enabled" type="trueFalseEnum" use="required"/>				
				</xs:complexType>
			</xs:element>
			<xs:element name="legacyImpersonationPolicy" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="enabled" type="trueFalseEnum" use="required"/>				
				</xs:complexType>
			</xs:element>
			<xs:element name="legacyV1CASPolicy" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="enabled" type="trueFalseEnum" use="required"/>				
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="system.runtime.remoting">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="application" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="lifetime" type="lifetime" minOccurs="0" maxOccurs="1"/>
						<xs:element name="service" type="service" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="client" type="client" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="channels" type="applicationChannels" minOccurs="0" maxOccurs="1"/>
						<xs:element name="soapInterop" type="soapInterop" minOccurs="0" maxOccurs="1"/>
					</xs:choice>
					<xs:attribute name="name" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="channels" minOccurs="0" maxOccurs="1">
				<xs:complexType>
						<xs:choice minOccurs="1" maxOccurs="unbounded">
							<xs:element name="channel" type="channel" minOccurs="1" maxOccurs="unbounded"/>
						</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="channelSinkProviders" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="serverProviders" type="serverProviders" minOccurs="1" maxOccurs="1"/>
						<xs:element name="clientProviders" type="clientProviders" minOccurs="1" maxOccurs="1"/>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="debug" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="loadTypes" type="trueFalseEnum" use="required"/>				
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="system.net">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="authenticationModules" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="type" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>				
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>				
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="connectionManagement" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="address" type="xs:string" use="required"/>
								<xs:attribute name="maxconnection" type="xs:integer" default="2"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>				
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="address" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>				
					</xs:choice>				
				</xs:complexType>
			</xs:element>
			<xs:element name="defaultProxy" type="defaultProxy" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="mailSettings" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="smtp" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="specifiedPickupDirectory">
										<xs:complexType>
											<xs:attribute name="pickupDirectoryLocation" type="xs:string"/>
										</xs:complexType>
									</xs:element>
									<xs:element name="network">
										<xs:complexType>
											<xs:attribute name="password" type="xs:string"/>
											<xs:attribute name="host" type="xs:string"/>
											<xs:attribute name="port" type="xs:integer"/>
											<xs:attribute name="defaultCredentials" type="trueFalseEnum"/>
											<xs:attribute name="userName" type="xs:string"/>
										</xs:complexType>
									</xs:element>
								</xs:choice>
								<xs:attribute name="deliveryMethod" type="mailDeliveryMethodEnum"/>
								<xs:attribute name="from" type="xs:string"/>
							</xs:complexType>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="requestCaching" type="requestCaching" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="settings" type="networkSettings" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="webRequestModules" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="prefix" type="xs:string" use="required"/>
								<xs:attribute name="type" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>				
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>				
					</xs:choice>				
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="uri">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="idn">
				<xs:complexType>
					<xs:attribute name="enabled" default="None">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:enumeration value="All"/>
								<xs:enumeration value="AllExceptIntranet"/>
								<xs:enumeration value="None"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:attribute>
				</xs:complexType>
			</xs:element>
			<xs:element name="iriParsing">
				<xs:complexType>
					<xs:attribute name="enabled" default="trueFalseEnum"/>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="networkSettings">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="httpWebRequest">
				<xs:complexType>
					<xs:attribute name="maximumResponseHeadersLength" type="xs:integer" default="64"/>
					<xs:attribute name="maximumErrorResponseLength" type="xs:integer" default="64"/>
					<xs:attribute name="maximumUnauthorizedUploadLength" type="xs:integer" default="-1"/>
					<xs:attribute name="useUnsafeHeaderParsing" type="trueFalseEnum" default="false"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="ipv6">
				<xs:complexType>
					<xs:attribute name="enabled" type="trueFalseEnum"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="servicePointManager">
				<xs:complexType>
					<xs:attribute name="checkCertificateName" type="trueFalseEnum"/>
					<xs:attribute name="checkCertificateRevocationList" type="trueFalseEnum"/>
					<xs:attribute name="expect100Continue" type="trueFalseEnum"/>
					<xs:attribute name="useNagleAlgorithm" type="trueFalseEnum"/>
					<xs:attribute name="enableDnsRoundRobin" type="trueFalseEnum"/>
					<xs:attribute name="dnsRefreshTimeout" type="trueFalseEnum"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="socket">
				<xs:complexType>
					<xs:attribute name="alwaysUseCompletionPortsForConnect" type="trueFalseEnum"/>
					<xs:attribute name="alwaysUseCompletionPortsForAccept" type="trueFalseEnum"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="webProxyScript">
				<xs:complexType>
					<xs:attribute name="downloadTime" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="performanceCounters">
				<xs:complexType>
					<xs:attribute name="enabled" type="trueFalseEnum"/>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="requestCaching">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="defaultHttpCachePolicy" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="policyLevel" type="httpCachePolicyLevelEnum" default="BypassCache"/>
					<xs:attribute name="maximumAge" type="xs:string"/>
					<xs:attribute name="maximumStale" type="xs:string"/>
					<xs:attribute name="minimumFresh" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="defaultFtpCachePolicy" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="policyLevel" type="ftpCachePolicyLevelEnum" default="Default"/>				
				</xs:complexType>
			</xs:element>
		
		</xs:choice>
		<xs:attribute name="isPrivateCache" type="trueFalseEnum" default="true"/>
		<xs:attribute name="disableAllCaching" type="trueFalseEnum"/>
		<xs:attribute name="defaultPolicyLevel" type="requestCacheLevelEnum"/>
		<xs:attribute name="unspecifiedMaximumAge" type="xs:string"/>
	</xs:complexType>

	<xs:complexType name="defaultProxy">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="proxy" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="autoDetect" type="trueFalseUnspecifiedEnum" default="unspecified"/>
					<xs:attribute name="usesystemdefault" type="trueFalseUnspecifiedEnum" default="unspecified"/>
					<xs:attribute name="bypassonlocal" type="trueFalseUnspecifiedEnum" default="unspecified"/>
					<xs:attribute name="proxyaddress" type="xs:string"/>
					<xs:attribute name="scriptLocation" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="bypasslist" minOccurs="0" maxOccurs="unbounded">				
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="address" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>				
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>				
					</xs:choice>				
				</xs:complexType>
			</xs:element>
			<xs:element name="module" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="type" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>				
		</xs:choice>
		<xs:attribute name="enabled" type="trueFalseEnum" default="true"/>
		<xs:attribute name="useDefaultCredentials" type="trueFalseEnum" default="false"/>
	</xs:complexType>
	
	<xs:complexType name="mscorlib">
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			<xs:element name="cryptographySettings">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="cryptoNameMappings" type="cryptoNameMappings" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="oidMap" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence minOccurs="0" maxOccurs="unbounded">
									<xs:element name="oidEntry" minOccurs="0" maxOccurs="unbounded">
										<xs:complexType>
											<xs:attribute name="OID" type="xs:string" use="required"/>
											<xs:attribute name="name" type="xs:string" use="required"/>
										</xs:complexType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="cryptoNameMappings">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="cryptoClasses" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="cryptoClass" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="customClassName" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="nameEntry"  minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="name" type="xs:string" use="required"/>
					<xs:attribute name="class" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="configSections">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="section" type="section" minOccurs="0" maxOccurs="unbounded">
			</xs:element>
			<xs:element name="sectionGroup" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="section" type="section" minOccurs="0" maxOccurs="unbounded"/>
					</xs:choice>
					<xs:attribute name="name" type="xs:string" use="required"/>
					<xs:attribute name="type" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="name" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="section">
		<xs:attribute name="name" type="xs:string" use="required"/>
		<xs:attribute name="type" type="xs:string" use="required"/>
		<xs:attribute name="restartOnExternalChanges" type="trueFalseEnum"/>
		<xs:attribute name="allowDefinition">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Everywhere"/>
					<xs:enumeration value="MachineOnly"/>
					<xs:enumeration value="MachineToWebRoot"/>
					<xs:enumeration value="MachineToApplication"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="allowExeDefinition">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="MachineOnly"/>
					<xs:enumeration value="MachineToRoamingUser"/>
					<xs:enumeration value="MachineToLocalUser"/>
					<xs:enumeration value="MachineToApplication"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="allowLocation" type="trueFalseEnum" default="true"/>	
	</xs:complexType>
	
	<xs:complexType name="system.diagnostics">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="assert" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="assertuienabled" type="trueFalseEnum"/>
					<xs:attribute name="logfilename" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="performanceCounters" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="fileMappingSize" type="xs:integer" default="524288"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="sharedListeners" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" type="addListener" />
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="sources" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="source">
							<xs:complexType>
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="listeners">
										<xs:complexType>
											<xs:choice minOccurs="0" maxOccurs="unbounded">
												<xs:element name="add" type="addListener"/>
												<xs:element name="clear"/>
												<xs:element name="remove">
													<xs:complexType>
														<xs:attribute name="name" type="xs:string" use="required"/>
													</xs:complexType>
												</xs:element>
											</xs:choice>
										</xs:complexType>
									</xs:element>
								</xs:choice>
								<xs:attribute name="name" type="xs:string"/>
								<xs:attribute name="switchName" type="xs:string"/>
								<xs:attribute name="switchType" type="xs:string"/>
								<xs:attribute name="extraAttribute" type="xs:string"/>
							</xs:complexType>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="switches" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
								<xs:attribute name="value" type="xs:string" use="required"/>							
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="trace" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence minOccurs="0" maxOccurs="unbounded">
						<xs:element name="listeners" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="add" type="addListener" minOccurs="0" maxOccurs="unbounded"/>
									<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
										<xs:complexType>
											<xs:attribute name="name" type="xs:string" use="required"/>
										</xs:complexType>
									</xs:element>
								</xs:choice>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="autoflush" type="trueFalseEnum"/>
					<xs:attribute name="indentsize" type="trueFalseEnum"/>
					<xs:attribute name="useGlobalLock" type="trueFalseEnum"/>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="addListener">
		<xs:attribute name="type" type="xs:string"/>
		<xs:attribute name="initializeData" type="xs:string"/>
		<xs:attribute name="name" type="xs:string"/>
		<xs:attribute name="traceOutputOptions" type="xs:string"/>
	</xs:complexType>
	
	<xs:complexType name="location">
		<xs:attribute name="path" type="xs:string"/>
		<xs:attribute name="allowOverride" type="trueFalseEnum"/>	
	</xs:complexType>

	<xs:simpleType name="trueFalseEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="true"/>							
			<xs:enumeration value="false"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="trueFalseUnspecifiedEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="true"/>							
			<xs:enumeration value="false"/>
			<xs:enumeration value="unspecified"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="mailDeliveryMethodEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="network"/>							
			<xs:enumeration value="pickupDirectorFromIis"/>
			<xs:enumeration value="specifiedPickupDirectory"/>
		</xs:restriction>
	</xs:simpleType>	
	
	<xs:simpleType name="requestCacheLevelEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Default"/>							
			<xs:enumeration value="BypassCache"/>
			<xs:enumeration value="CacheOnly"/>
			<xs:enumeration value="CacheIfAvailable"/>
			<xs:enumeration value="Revalidate"/>
			<xs:enumeration value="Reload"/>
			<xs:enumeration value="NoCacheNoStore"/>
			<xs:enumeration value="Revalidate"/>
		</xs:restriction>
	</xs:simpleType>	
	
	<xs:simpleType name="yesNoEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="yes"/>							
			<xs:enumeration value="no"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="zeroOrOneEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="0"/>							
			<xs:enumeration value="1"/>
		</xs:restriction>
	</xs:simpleType>	
	
	<xs:complexType name="dependentAssembly">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="assemblyIdentity" minOccurs="1" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="name" type="xs:string" use="required"/>				
					<xs:attribute name="publicKeyToken" type="xs:string"/>				
					<xs:attribute name="culture" type="xs:string"/>	
					<xs:attribute name="processorArchitecture" type="processorArchitectureEnum"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="codeBase" minOccurs="0" maxOccurs="1" type="codeBase"/>
			<xs:element name="bindingRedirect" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="oldVersion" type="xs:string" use="required"/>				
					<xs:attribute name="newVersion" type="xs:string" use="required"/>				
				</xs:complexType>
			</xs:element>
			<xs:element name="publisherPolicy" type="publisherPolicy" minOccurs="0" maxOccurs="1"/>
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="codeBase">
		<xs:attribute name="version" type="xs:string" use="required"/>				
		<xs:attribute name="href" type="xs:anyURI" use="required"/>
	</xs:complexType>

	<xs:complexType name="probing">
		<xs:attribute name="privatePath" type="xs:string" use="required"/>
	</xs:complexType>

	<xs:complexType name="publisherPolicy">
		<xs:attribute name="apply" type="yesNoEnum" use="required"/>
	</xs:complexType>

	<xs:complexType name="qualifyAssembly">
		<xs:attribute name="partialName" type="xs:string" use="required"/>
		<xs:attribute name="fullName" type="xs:string" use="required"/>
	</xs:complexType>

	<xs:complexType name="lifetime">
		<xs:attribute name="leaseTime" type="xs:string" default="5M"/>
		<xs:attribute name="sponsorshipTimeout" type="xs:string" default="2M"/>
		<xs:attribute name="renewOnCallTime" type="xs:string" default="2M"/>
		<xs:attribute name="leaseManagerPollTime" type="xs:string" default="10"/>	
	</xs:complexType>
	
	<xs:complexType name="service">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="wellknown" type="wellknown" minOccurs="1" maxOccurs="unbounded"/>
			<xs:element name="activated" type="activated" minOccurs="1" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="client">
		<xs:choice  minOccurs="0" maxOccurs="unbounded">
			<xs:element name="wellknown" minOccurs="1" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="1">
						<xs:element name="wellknown" type="wellknown" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="activated" type="activated" minOccurs="0" maxOccurs="unbounded"/>
					</xs:choice>
					<xs:attribute name="displayName" type="xs:string"/>
					<xs:attribute name="url" type="xs:anyURI" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="activated" type="activated" minOccurs="1" maxOccurs="unbounded"/>
		</xs:choice>
		<xs:attribute name="url" type="xs:string"/>
		<xs:attribute name="displayName" type="xs:string"/>
	</xs:complexType>
	
	<xs:complexType name="wellknown">
		<xs:attribute name="displayName" type="xs:string"/>
		<xs:attribute name="mode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Singleton"/>
					<xs:enumeration value="SingleCall"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="type" type="xs:string" use="required"/>
		<xs:attribute name="objectUri" type="xs:string" use="required"/>
	</xs:complexType>

	<xs:complexType name="applicationChannels">
		<xs:sequence minOccurs="1" maxOccurs="unbounded">
			<xs:element name="channel">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="1">
						<xs:element name="serverProviders" type="serverProviders" minOccurs="0" maxOccurs="1"/>
						<xs:element name="clientProviders" type="clientProviders" minOccurs="0" maxOccurs="1"/>
					</xs:choice>
					<xs:attribute name="ref" type="xs:string"/>
					<xs:attribute name="displayName" type="xs:string"/>
					<xs:attribute name="port" type="xs:string"/>
					<xs:attribute name="portName" type="xs:string"/>
					<xs:attribute name="type" type="xs:string"/>
					<xs:attribute name="customChannelProperty" type="xs:string"/>	
					<xs:attribute name="useIpAddress" type="trueFalseEnum"/>
					<xs:attribute name="machineName" type="xs:string"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="soapInterop">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="preLoad" minOccurs="1" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="type" type="xs:string"/>
					<xs:attribute name="assembly" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="interopXmlElement" minOccurs="1" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="clr" type="xs:string" use="required"/>
					<xs:attribute name="xml" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>	
			<xs:element name="interopXmlType" minOccurs="1" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="clr" type="xs:string" use="required"/>
					<xs:attribute name="xml" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>			
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="channel">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="serverProviders" type="serverProviders" minOccurs="1" maxOccurs="1"/>
			<xs:element name="clientProviders" type="clientProviders" minOccurs="1" maxOccurs="1"/>
		</xs:choice>
		<xs:attribute name="id" type="xs:string" use="required"/>
		<xs:attribute name="type" type="xs:string" use="required"/>
		<xs:attribute name="displayName" type="xs:string"/>
		<xs:attribute name="customChannelProperty" type="xs:string"/>
		<xs:attribute name="delayLoadAsClientChannel" type="trueFalseEnum"/>
	</xs:complexType>

	<xs:complexType name="activated">
		<xs:attribute name="type" type="xs:string" use="required"/>
	</xs:complexType>
	
	<xs:complexType name="serverProviders">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="formatter" type="formatter" minOccurs="0" maxOccurs="1"/>
			<xs:element name="provider" type="provider" minOccurs="0" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="clientProviders">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="formatter" type="formatter" minOccurs="0" maxOccurs="1"/>
			<xs:element name="provider" type="provider" minOccurs="0" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="formatter">
		<xs:attribute name="ref" type="xs:string" use="required"/>
		<xs:attribute name="type" type="xs:string" use="required"/>
		<xs:attribute name="customFormatterProperty" type="xs:string"/>
		<xs:attribute name="includeVersions" type="trueFalseEnum" default="true"/>
		<xs:attribute name="strictBinding" type="trueFalseEnum" default="false"/>
		<xs:attribute name="typeFilterLevel" type="typeFilterLevelEnum" default="Low"/>	
	</xs:complexType>

	<xs:simpleType name="typeFilterLevelEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Low"/>
			<xs:enumeration value="High"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:complexType name="provider" >
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:any minOccurs="0"/>
		</xs:choice>
		<xs:attribute name="ref" type="xs:string"/>
		<xs:attribute name="type" type="xs:string"/>
		<xs:attribute name="customChannelSinkProperty" type="xs:string"/>
	</xs:complexType>

	<xs:complexType name="system.web">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="anonymousIdentification" type="anonymousIdentification" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="authentication" type="authentication" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="authorization" type="authorization" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="browserCaps" type="browserCaps" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="caching" type="webCaching" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="clientTarget" type="clientTarget" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="compilation" type="compilation" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="customErrors" type="customErrors" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="deployment" type="webDeployment" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="deviceFilters" type="deviceFilters" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="globalization" type="globalization" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="healthMonitoring" type="healthMonitoring" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="hostingEnvironment" type="hostingEnvironment" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="httpCookies" type="httpCookies" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="httpHandlers" type="httpHandlers" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="httpModules" type="httpModules" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="httpRuntime" type="httpRuntime" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="identity" type="identity" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="machineKey" type="machineKey" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="membership" type="membership" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="pages" type="pages" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="processModel"  type="processModel" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="profile" type="webProfile" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="roleManager" type="roleManager" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="securityPolicy" type="securityPolicy" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="sessionPageState" type="sessionPageState" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="sessionState" type="sessionState" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="siteMap" type="siteMap" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="trace" type="trace" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="trust" type="trust" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="urlMappings" type="urlMappings" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="webControls" type="webControls" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="webParts" type="webParts" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="webServices" type="webServices" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="xhtmlConformance" type="xhtmlConformance" minOccurs="0" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	
	<xs:simpleType name="cookielessEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="UseUri"/>
			<xs:enumeration value="UseCookies"/>
			<xs:enumeration value="AutoDetect"/>
			<xs:enumeration value="UseDeviceProfile"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="cookieProtectionEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="All"/>
			<xs:enumeration value="Encryption"/>
			<xs:enumeration value="None"/>
			<xs:enumeration value="Validation"/>
		</xs:restriction>
	</xs:simpleType>	
	
	<xs:complexType name="anonymousIdentification">
		<xs:attribute name="enabled" type="trueFalseEnum" default="false"/>
		<xs:attribute name="cookieless" type="cookielessEnum" default="UseCookies"/>
		<xs:attribute name="cookieName" type="xs:string" default=".ASPXANONYMOUS"/>
		<xs:attribute name="cookiePath" type="xs:string" default="/"/>
		<xs:attribute name="cookieProtection" type="cookieProtectionEnum" default="Validation"/>
		<xs:attribute name="cookieRequiresSSL" type="trueFalseEnum" default="false"/>
		<xs:attribute name="cookieSlidingExpiration" type="trueFalseEnum" default="true"/>
		<xs:attribute name="cookieTimeout" type="xs:string"/>
		<xs:attribute name="domain" type="xs:string"/>
	</xs:complexType>

	<xs:complexType name="authentication">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="forms" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence minOccurs="0" maxOccurs="unbounded">
						<xs:element name="credentials" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence minOccurs="0" maxOccurs="unbounded">
									<xs:element name="user" minOccurs="0" maxOccurs="unbounded">
										<xs:complexType>
											<xs:attribute name="name" type="xs:string"/>
											<xs:attribute name="password" type="xs:string"/>
										</xs:complexType>
									</xs:element>
									<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>
									<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
										<xs:complexType>
											<xs:attribute name="name" type="xs:string" use="required"/>
										</xs:complexType>
									</xs:element>
								</xs:sequence>
								<xs:attribute name="passwordFormat" default="SHA1">
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:enumeration value="Clear"/>
											<xs:enumeration value="MD5"/>
											<xs:enumeration value="SHA1"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:attribute>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="name" type="xs:string" default=".ASPXAUTH"/>
					<xs:attribute name="cookieless" type="cookielessEnum" default="UseDeviceProfile"/>
					<xs:attribute name="defaultUrl" type="xs:string"/>
					<xs:attribute name="domain" type="xs:string"/>
					<xs:attribute name="enableCrossAppRedirects" type="trueFalseEnum" default="false"/>
					<xs:attribute name="loginUrl" type="xs:string"/>
					<xs:attribute name="path" type="xs:string" default="/"/>
					<xs:attribute name="protection" type="cookieProtectionEnum"/>
					<xs:attribute name="requireSSL" type="trueFalseEnum" default="false"/>
					<xs:attribute name="slidingExpiration" type="trueFalseEnum" default="true"/>
					<xs:attribute name="timeout" type="xs:string" default="30"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="passport" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="redirectUrl" type="xs:anyURI" use="required"/> 
				</xs:complexType>
			</xs:element>
		</xs:choice>
		<xs:attribute name="mode" default="Windows">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Windows"/>
					<xs:enumeration value="Forms"/>
					<xs:enumeration value="Passport"/>
					<xs:enumeration value="None"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="authorization">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="allow" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="users" type="xs:string"/>
					<xs:attribute name="roles" type="xs:string"/>
					<xs:attribute name="verbs" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="deny" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="users" type="xs:string"/>
					<xs:attribute name="roles" type="xs:string"/>
					<xs:attribute name="verbs" type="xs:string"/>
				</xs:complexType>
			</xs:element>		
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="browserCaps" mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="use" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType mixed="true">
					<xs:attribute name="var" type="xs:string" default="HTTP_USER_AGENT"/>
					<xs:attribute name="as" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="filter" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType mixed="true">
					<xs:sequence minOccurs="0" maxOccurs="unbounded">
						<xs:element name="case" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType mixed="true">
								<xs:attribute name="match" type="xs:string" use="required"/>
								<xs:attribute name="with" type="xs:string" use="required"/>								
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="match" type="xs:string"/>
					<xs:attribute name="with" type="xs:string"/>
				</xs:complexType>
			</xs:element>		
			<xs:element name="result" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="type" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>			
		</xs:choice>
		<xs:attribute name="userAgentCacheKeyLength" type="xs:string" default="64"/>
	</xs:complexType>
	
	<xs:complexType name="webCaching">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="cache" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="disableMemoryCollection" type="trueFalseEnum"/>
					<xs:attribute name="disableExpiration" type="trueFalseEnum"/>
					<xs:attribute name="privateBytesLimit" type="xs:integer"/>
					<xs:attribute name="percentagePhysicalMemoryUsedLimit" type="xs:integer"/>
					<xs:attribute name="privateBytesPollTime" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="outputCache" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="enableOutputCache" type="trueFalseEnum" default="true"/>
					<xs:attribute name="enableFragmentCache" type="trueFalseEnum" default="false"/>
					<xs:attribute name="sendCacheControlHeader" type="trueFalseEnum" default="false"/>
					<xs:attribute name="omitVaryStar" type="trueFalseEnum" default="false"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="outputCacheSettings" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence minOccurs="0" maxOccurs="unbounded">
						<xs:element name="outputCacheProfiles" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
										<xs:complexType>
											<xs:attribute name="enabled" type="trueFalseEnum"/>
											<xs:attribute name="name" type="xs:string" use="required"/>
											<xs:attribute name="duration" type="xs:string"/>
											<xs:attribute name="location">
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:enumeration value="Any"/>
														<xs:enumeration value="Client"/>
														<xs:enumeration value="Downstream"/>
														<xs:enumeration value="Server"/>
														<xs:enumeration value="None"/>
														<xs:enumeration value="ServerAndClient"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:attribute>
											<xs:attribute name="sqlDependency" type="xs:string"/>
											<xs:attribute name="varyByCustom" type="xs:string"/>
											<xs:attribute name="varyByControl" type="xs:string"/>
											<xs:attribute name="varyByHeader" type="xs:string"/>
											<xs:attribute name="varyByParam" type="xs:string"/>
											<xs:attribute name="noStore" type="trueFalseEnum"/>
										</xs:complexType>
									</xs:element>
									<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
										<xs:complexType>
											<xs:attribute name="name" type="xs:string" use="required"/>
										</xs:complexType>
									</xs:element>		
									<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
								</xs:choice>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="sqlCacheDependency" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence minOccurs="0" maxOccurs="unbounded">
						<xs:element name="databases" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
										<xs:complexType>
											<xs:attribute name="connectionStringName" type="xs:string" use="required"/>
											<xs:attribute name="name" type="xs:string" use="required"/>
											<xs:attribute name="pollTime" type="xs:integer"/>
										</xs:complexType>
									</xs:element>
									<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
										<xs:complexType>
											<xs:attribute name="name" type="xs:string" use="required"/>
										</xs:complexType>
									</xs:element>		
									<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
								</xs:choice>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="enabled" type="trueFalseEnum" use="required"/>
					<xs:attribute name="polltime" type="xs:integer" default="60000"/>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="clientTarget">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="alias" type="xs:string" use="required"/>
					<xs:attribute name="useragent" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="alias" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>		
			<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="compilation">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="compilers" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence minOccurs="0" maxOccurs="unbounded">
						<xs:element name="compiler" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>			
								<xs:attribute name="language" type="xs:string" use="required"/>
								<xs:attribute name="extension" type="xs:string" use="required"/>
								<xs:attribute name="type" type="xs:string" use="required"/>
								<xs:attribute name="warninglevel" type="xs:string"/>
								<xs:attribute name="compilerOptions" type="xs:string"/>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="assemblies" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="assembly" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="assembly" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>		
			<xs:element name="buildProviders" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="extension" type="xs:string" use="required"/>
								<xs:attribute name="type" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="extension" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>		
			<xs:element name="codeSubDirectories" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="directoryName" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>		
			<xs:element name="expressionBuilders" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="expressionPrefix" type="xs:string" use="required"/>
								<xs:attribute name="type" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="expressionPrefix" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>		
		</xs:choice>
		<xs:attribute name="debug" type="trueFalseEnum" default="false"/>
		<xs:attribute name="defaultLanguage" type="xs:string" default="vb"/>
		<xs:attribute name="explicit" type="trueFalseEnum" default="true"/>
		<xs:attribute name="batch" type="trueFalseEnum" default="true"/>
		<xs:attribute name="batchTimeout" type="xs:string"/>
		<xs:attribute name="maxBatchGeneratedFileSize" type="xs:string"/>
		<xs:attribute name="maxBatchFileSize" type="xs:string"/>
		<xs:attribute name="numRecompilesBeforeAppRestart" type="xs:string"/>
		<xs:attribute name="strict" type="trueFalseEnum"/>
		<xs:attribute name="tempDirectory" type="xs:string"/>
		<xs:attribute name="urlLinePragmas" type="trueFalseEnum"/>
		<xs:attribute name="assemblyPostProcessorType" type="xs:string"/>
	</xs:complexType>
	
	<xs:complexType name="customErrors">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="error" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="statusCode" type="xs:string"/>
					<xs:attribute name="redirect" type="xs:string"/>
				</xs:complexType>
			</xs:element>
		</xs:choice>
		<xs:attribute name="mode" default="RemoteOnly">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="On"/>
					<xs:enumeration value="Off"/>
					<xs:enumeration value="RemoteOnly"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="defaultRedirect" type="xs:string"/>
	</xs:complexType>
	
	<xs:complexType name="webDeployment">
		<xs:attribute name="retail" type="trueFalseEnum"/>
	</xs:complexType>

	<xs:complexType name="deviceFilters">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="filter" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="name" type="xs:string" use="required"/>
					<xs:attribute name="type" type="xs:string"/>
					<xs:attribute name="method" type="xs:string"/>
					<xs:attribute name="argument" type="xs:string"/>
					<xs:attribute name="compare" type="xs:string"/>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="globalization">
		<xs:attribute name="requestEncoding" type="xs:string"/>
		<xs:attribute name="responseEncoding" type="xs:string"/>
		<xs:attribute name="fileEncoding" type="xs:string"/>
		<xs:attribute name="culture" type="xs:string"/>
		<xs:attribute name="uiCulture" type="xs:string"/>
	</xs:complexType>

	<xs:complexType name="healthMonitoring">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="bufferModes" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
								<xs:attribute name="maxBufferSize" type="xs:integer" use="required"/>
								<xs:attribute name="maxFlushSize" type="xs:integer" use="required"/>
								<xs:attribute name="urgentFlushThreshold" type="xs:integer" use="required"/>
								<xs:attribute name="regularFlushInterval" type="xs:integer" use="required"/>
								<xs:attribute name="urgentFlushInterval" type="xs:integer" use="required"/>
								<xs:attribute name="maxBufferThreads" type="xs:integer" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="eventMappings" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
								<xs:attribute name="type" type="xs:string" use="required"/>
								<xs:attribute name="startEventCode" type="xs:integer"/>
								<xs:attribute name="endEventCode" type="xs:integer"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="profiles" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
								<xs:attribute name="minimumInstances" type="xs:integer" use="required"/>
								<xs:attribute name="maximumLimit" type="xs:integer"/>
								<xs:attribute name="minimumInterval" type="xs:string"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="providers" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="bcc" type="xs:string"/>
								<xs:attribute name="bodyFooter" type="xs:string"/>
								<xs:attribute name="bodyHeader" type="xs:string"/>
								<xs:attribute name="buffer" type="trueFalseEnum"/>
								<xs:attribute name="bufferMode" type="xs:string"/>
								<xs:attribute name="cc" type="xs:string"/>
								<xs:attribute name="commandTimeout" type="xs:integer"/>
								<xs:attribute name="connectionStringName" type="xs:string" use="required"/>
								<xs:attribute name="detailedTemplateErrors" type="trueFalseEnum"/>
								<xs:attribute name="from" type="xs:string"/>
								<xs:attribute name="maxEventDetailLength" type="xs:integer"/>
								<xs:attribute name="maxEventLengthForSimpleMessage" type="xs:integer"/>
								<xs:attribute name="maxSizeForSimpleMessage" type="xs:integer"/>
								<xs:attribute name="maxEventCountForTemplateMessage" type="xs:integer"/>
								<xs:attribute name="maxMessagesPerNotification" type="xs:integer"/>
								<xs:attribute name="name" type="xs:string" use="required"/>
								<xs:attribute name="priority" type="xs:string"/>
								<xs:attribute name="separator" type="xs:string"/>
								<xs:attribute name="smtpAddresses" type="xs:string"/>
								<xs:attribute name="subjectPrefix" type="xs:string"/>
								<xs:attribute name="template" type="xs:string"/>
								<xs:attribute name="to" type="xs:string"/>
								<xs:attribute name="type" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="rules" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="eventName" type="xs:string" use="required"/>
								<xs:attribute name="name" type="xs:string" use="required"/>
								<xs:attribute name="custom" type="xs:string"/>
								<xs:attribute name="provider" type="trueFalseEnum"/>
								<xs:attribute name="profile" type="xs:string"/>
								<xs:attribute name="minInstances" type="xs:integer"/>
								<xs:attribute name="maxLimit" type="xs:integer"/>
								<xs:attribute name="minInterval" type="xs:integer"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:choice>
		<xs:attribute name="enabled" type="trueFalseEnum" use="required"/>
		<xs:attribute name="heartbeatInterval" type="xs:string"/>
	</xs:complexType>
	
	<xs:complexType name="hostingEnvironment">
		<xs:attribute name="idleTimeout" type="xs:string"/>
		<xs:attribute name="shadowCopyBinAssemblies" type="trueFalseEnum"/>
		<xs:attribute name="shutdownTimeout" type="xs:string"/>
	</xs:complexType>
	
	<xs:complexType name="httpCookies">
		<xs:attribute name="domain" type="xs:string"/>
		<xs:attribute name="httpOnlyCookies" type="trueFalseEnum"/>
		<xs:attribute name="requireSSL" type="trueFalseEnum"/>
	</xs:complexType>

	<xs:complexType name="httpHandlers">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="verb" type="xs:string" use="required"/>
					<xs:attribute name="path" type="xs:string" use="required"/>
					<xs:attribute name="type" type="xs:string" use="required"/>
					<xs:attribute name="validate" type="trueFalseEnum"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="verb" type="xs:string" use="required"/>
					<xs:attribute name="path" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>		
			<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="httpModules">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="name" type="xs:string" use="required"/>
					<xs:attribute name="type" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="name" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>		
			<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="httpRuntime">
		<xs:attribute name="apartmentThreading" type="trueFalseEnum"/>
		<xs:attribute name="appRequestQueueLimit" type="xs:string"/>
		<xs:attribute name="delayNotificationTimeout" type="xs:integer"/>
		<xs:attribute name="enable" type="trueFalseEnum"/>
		<xs:attribute name="enableHeaderChecking" type="trueFalseEnum"/>
		<xs:attribute name="enableKernelOutputCache" type="trueFalseEnum"/>
		<xs:attribute name="enableVersionHeader" type="trueFalseEnum"/>
		<xs:attribute name="executionTimeout" type="xs:integer"/>
		<xs:attribute name="maxRequestLength" type="xs:integer"/>
		<xs:attribute name="maxWaitChangeNotification" type="xs:integer"/>
		<xs:attribute name="minLocalRequestFreeThreads" type="xs:integer"/>
		<xs:attribute name="minFreeThreads" type="xs:integer"/>
		<xs:attribute name="requestLengthDiskThreshold" type="xs:integer"/>
		<xs:attribute name="requireRootedSaveAsPath" type="xs:integer"/>
		<xs:attribute name="sendCacheControlHeader" type="xs:integer"/>
		<xs:attribute name="shutdownTimeout" type="xs:integer"/>
		<xs:attribute name="useFullyQualifiedRedirectUrl" type="trueFalseEnum"/>
		<xs:attribute name="waitChangeNotification" type="xs:integer"/>
	</xs:complexType>
	
	<xs:complexType name="machineKey">
		<xs:attribute name="validationKey" type="xs:string" use="required"/>
		<xs:attribute name="decryptionKey" type="xs:string" use="required"/>
		<xs:attribute name="validation" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="SHA1"/>
					<xs:enumeration value="MD5"/>
					<xs:enumeration value="3DES"/>
					<xs:enumeration value="AES"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="decryption" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Auto"/>
					<xs:enumeration value="DES"/>
					<xs:enumeration value="3DES"/>
					<xs:enumeration value="AES"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	
	<xs:complexType name="membership">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="providers" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="applicationName" type="xs:string"/>
								<xs:attribute name="attributeMapUsername" type="xs:string"/>
								<xs:attribute name="attributeMapEmail" type="xs:string"/>
								<xs:attribute name="attributeMapPasswordQuestion" type="xs:string"/>
								<xs:attribute name="attributeMapPasswordAnswer" type="xs:string"/>
								<xs:attribute name="attributeMapFailedPasswordAnswerCount" type="xs:string"/>
								<xs:attribute name="attributeMapFailedPasswordAnswerTime" type="xs:string"/>
								<xs:attribute name="attributeMapFailedPasswordAnswerLockoutTime" type="xs:string"/>
								<xs:attribute name="clientSearchTimeout" type="xs:string"/>
								<xs:attribute name="serverSearchTimeout" type="xs:string"/>
								<xs:attribute name="commandTimeout" type="xs:string"/>
								<xs:attribute name="connectionStringName" type="xs:string" use="required"/>
								<xs:attribute name="connectionUsername" type="xs:string"/>
								<xs:attribute name="connectionPassword" type="xs:string"/>
								<xs:attribute name="connectionProtection" type="xs:string"/>
								<xs:attribute name="description" type="xs:string"/>
								<xs:attribute name="enablePasswordRetrieval" type="trueFalseEnum"/>
								<xs:attribute name="enablePasswordReset" type="trueFalseEnum"/>
								<xs:attribute name="enableSearchMethods" type="trueFalseEnum"/>
								<xs:attribute name="maxInvalidPasswordAttempts" type="xs:string"/>
								<xs:attribute name="minRequiredNonalphanumericCharacters" type="xs:string"/>
								<xs:attribute name="minRequiredPasswordLength" type="xs:string"/>
								<xs:attribute name="name" type="xs:string" use="required"/>
								<xs:attribute name="passwordAnswerAttemptLockoutDuration" type="xs:string"/>
								<xs:attribute name="passwordAttemptWindow" type="xs:string"/>
								<xs:attribute name="passwordFormat" type="xs:string"/>
								<xs:attribute name="passwordStrengthRegularExpression" type="xs:string"/>
								<xs:attribute name="requiresQuestionAndAnswer" type="trueFalseEnum"/>
								<xs:attribute name="requiresUniqueEmail" type="trueFalseEnum"/>
								<xs:attribute name="type" type="xs:string"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:choice>
		<xs:attribute name="defaultProvider" type="xs:string"/>
		<xs:attribute name="userIsOnlineTimeWindow" type="xs:string"/>
		<xs:attribute name="hashAlgorithmType" type="xs:string"/>
	</xs:complexType>
	
	<xs:complexType name="mobileControls">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="device" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="control" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="adapter" type="xs:string" use="required"/>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
					</xs:choice>
					<xs:attribute name="name" type="xs:string" use="required"/>
					<xs:attribute name="inheritsFrom" type="xs:string"/>
					<xs:attribute name="pageAdapter" type="xs:string"/>
					<xs:attribute name="predicateClass" type="xs:string"/>
					<xs:attribute name="predicateMethod" type="xs:string"/>
				</xs:complexType>
			</xs:element>
		</xs:choice>
		<xs:attribute name="allowCustomAttributes" type="trueFalseEnum"/>
		<xs:attribute name="cookielessDataDictionaryType" type="xs:string"/>
		<xs:attribute name="sessionStateHistorySize" type="xs:string"/>
	</xs:complexType>

	<xs:complexType name="identity">
		<xs:attribute name="impersonate" type="trueFalseEnum" use="required"/>
		<xs:attribute name="userName" type="xs:string"/>
		<xs:attribute name="password" type="xs:string"/>
	</xs:complexType>
	
	<xs:complexType name="pages">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="controls" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="assembly" type="xs:string"/>
								<xs:attribute name="namespace" type="xs:string"/>
								<xs:attribute name="src" type="xs:string"/>
								<xs:attribute name="tagName" type="xs:string"/>
								<xs:attribute name="tagPrefix" type="xs:string"/>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="namespaces" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="namespace" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="namespace" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
					<xs:attribute name="autoImportVBNamespace" type="trueFalseEnum"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="tagMapping" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="tagType" type="xs:string" use="required"/>
								<xs:attribute name="mappedTagType" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="tagType" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:choice>
		<xs:attribute name="buffer" type="trueFalseEnum"/>
		<xs:attribute name="enableSessionState">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="true"/>
					<xs:enumeration value="false"/>
					<xs:enumeration value="ReadOnly"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="enableEventValidation" type="trueFalseEnum"/>
		<xs:attribute name="enableViewState" type="trueFalseEnum"/>
		<xs:attribute name="enableViewStateMac" type="trueFalseEnum"/>
		<xs:attribute name="smartNavigation" type="trueFalseEnum"/>
		<xs:attribute name="pageBaseType" type="xs:string"/>
		<xs:attribute name="userControlBaseType" type="xs:string"/>
		<xs:attribute name="autoEventWireUp" type="trueFalseEnum"/>
		<xs:attribute name="validateRequest" type="trueFalseEnum" default="true"/>
		<xs:attribute name="masterPageFile" type="xs:string"/>
		<xs:attribute name="theme" type="xs:string"/>
		<xs:attribute name="styleSheetTheme" type="xs:string"/>
		<xs:attribute name="maxPageStateFieldLength" type="xs:string"/>
		<xs:attribute name="compilationMode" type="AlwaysAutoNeverEnum"/>
		<xs:attribute name="pageParserFilterType" type="xs:string"/>
		<xs:attribute name="viewStateEncryptionMode" type="AlwaysAutoNeverEnum"/>
		<xs:attribute name="asyncTimeout" type="xs:string"/>
	</xs:complexType>
	
	<xs:simpleType name="AlwaysAutoNeverEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Always"/>
			<xs:enumeration value="Auto"/>
			<xs:enumeration value="Never"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:complexType name="processModel">
		<xs:attribute name="autoConfig" type="trueFalseEnum"/>
		<xs:attribute name="enable" type="trueFalseEnum"/>
		<xs:attribute name="clientConnectedCheck" type="xs:string"/>
		<xs:attribute name="comAuthenticationLevel">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Default"/>
					<xs:enumeration value="None"/>
					<xs:enumeration value="Connect"/>
					<xs:enumeration value="Call"/>
					<xs:enumeration value="Pkt"/>
					<xs:enumeration value="PktIntegrity"/>
					<xs:enumeration value="PktPrivacy"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="comImpersonationLevel">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Default"/>
					<xs:enumeration value="Anonymous"/>
					<xs:enumeration value="Identify"/>
					<xs:enumeration value="Impersonate"/>
					<xs:enumeration value="Delegate"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>	
		<xs:attribute name="cpuMask" type="xs:string"/>	
		<xs:attribute name="idleTimeout" type="xs:string"/>
		<xs:attribute name="logLevel">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="All"/>
					<xs:enumeration value="None"/>
					<xs:enumeration value="Errors"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>	
		<xs:attribute name="maxWorkerThreads" type="xs:integer" default="20"/>
		<xs:attribute name="maxIoThreads" type="xs:integer" default="20"/>
		<xs:attribute name="maxAppDomains" type="xs:integer"/>
		<xs:attribute name="minWorkerThreads" type="xs:integer"/>
		<xs:attribute name="minIoThreads" type="xs:integer"/>
		<xs:attribute name="memoryLimit" type="xs:string"/>
		<xs:attribute name="password" type="xs:string"/>
		<xs:attribute name="pingFrequency" type="xs:string"/>
		<xs:attribute name="pingTimeout" type="xs:string" default="5"/>
		<xs:attribute name="requestLimit" type="xs:string"/>
		<xs:attribute name="requestQueueLimit" type="xs:string"/>
		<xs:attribute name="restartQueueLimit" type="xs:string"/>
		<xs:attribute name="responseDeadlockInterval" type="xs:string"/>
		<xs:attribute name="responseRestartDeadlockInterval" type="xs:string"/>
		<xs:attribute name="serverErrorMessageFile" type="xs:string"/>
		<xs:attribute name="shutdownTimeout" type="xs:string"/>
		<xs:attribute name="timeout" type="xs:string"/>
		<xs:attribute name="userName" type="xs:string"/>
		<xs:attribute name="webGarden" type="trueFalseEnum"/>
	</xs:complexType>
	
	<xs:complexType name="webProfile">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="properties" minOccurs="1" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="group" minOccurs="1" maxOccurs="unbounded">
							<xs:complexType>
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="add" type="addWebProfile" minOccurs="0" maxOccurs="unbounded"/>
									<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
										<xs:complexType>
											<xs:attribute name="name" type="xs:string" use="required"/>
										</xs:complexType>
									</xs:element>		
								</xs:choice>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>	
						</xs:element>
						<xs:element name="add" type="addWebProfile" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>			
			</xs:element>
			<xs:element name="providers" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
								<xs:attribute name="type" type="xs:string" use="required"/>
								<xs:attribute name="connectionStringName" type="xs:string" use="required"/>
								<xs:attribute name="commandTimeout" type="xs:string"/>
								<xs:attribute name="description" type="xs:string"/>
								<xs:attribute name="applicationName" type="xs:string"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>			
			</xs:element>
		</xs:choice>
		<xs:attribute name="automaticSaveEnabled" type="trueFalseEnum"/>
		<xs:attribute name="enabled" type="trueFalseEnum"/>
		<xs:attribute name="inherits" type="xs:string"/>
		<xs:attribute name="defaultProvider" type="xs:string"/>
	</xs:complexType>

	<xs:complexType name="addWebProfile">
		<xs:attribute name="name" type="xs:string" use="required"/>
		<xs:attribute name="type" type="xs:string" use="required"/>
		<xs:attribute name="provider" type="xs:string"/>
		<xs:attribute name="serializeAs">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="String"/>
					<xs:enumeration value="Xml"/>
					<xs:enumeration value="Binary"/>
					<xs:enumeration value="ProviderSpecific"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="allowAnonymous" type="trueFalseEnum"/>
		<xs:attribute name="readOnly" type="trueFalseEnum"/>
		<xs:attribute name="defaultValue" type="xs:string"/>
		<xs:attribute name="customProviderData" type="xs:string"/>
	</xs:complexType>
	
	<xs:complexType name="roleManager">
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			<xs:element name="providers" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="type" type="xs:string"/>
								<xs:attribute name="applicationName" type="xs:string"/>
								<xs:attribute name="description" type="xs:string"/>
								<xs:attribute name="cacheRefreshInterval" type="xs:string"/>
								<xs:attribute name="scopeName" type="xs:string"/>
								<xs:attribute name="commandTimeout" type="xs:integer"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="cacheRolesInCookie" type="trueFalseEnum"/>
		<xs:attribute name="cookieName" type="xs:string"/>
		<xs:attribute name="cookiePath" type="xs:string"/>
		<xs:attribute name="cookieProtection" type="cookieProtectionEnum"/>
		<xs:attribute name="cookieRequireSSL" type="trueFalseEnum"/>
		<xs:attribute name="cookieSlidingExpiration" type="trueFalseEnum"/>
		<xs:attribute name="cookieTimeout" type="xs:string"/>
		<xs:attribute name="createPersistentCookie" type="trueFalseEnum"/>
		<xs:attribute name="domain" type="xs:string"/>
		<xs:attribute name="enabled" type="trueFalseEnum"/>
		<xs:attribute name="maxCachedResults" type="xs:string"/>
	</xs:complexType>	
	
	<xs:complexType name="securityPolicy">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="securityPolicy">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="trustLevel">
							<xs:complexType>
								<xs:attribute name="policyFile" type="xs:string" use="required"/>
								<xs:attribute name="name" type="trustLevelEnum" use="required"/>
							</xs:complexType>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="sessionPageState">
		<xs:attribute name="historySize" type="xs:integer"/>
	</xs:complexType>
	
	<xs:simpleType name="processorArchitectureEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="amd64"/>
			<xs:enumeration value="ia64"/>
			<xs:enumeration value="msil"/>
			<xs:enumeration value="x86"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="httpCachePolicyLevelEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="BypassCache"/>
			<xs:enumeration value="Default"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="ftpCachePolicyLevelEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="BypassCache"/>
			<xs:enumeration value="Default"/>
			<xs:enumeration value="CacheOnly"/>
			<xs:enumeration value="CacheIfAvailable"/>
			<xs:enumeration value="Revalidate"/>
			<xs:enumeration value="Reload"/>
			<xs:enumeration value="NoCacheNoStore"/>
			<xs:enumeration value="Revalidate"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="trustLevelEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Full"/>
			<xs:enumeration value="High"/>
			<xs:enumeration value="Medium"/>
			<xs:enumeration value="Low"/>
			<xs:enumeration value="Minimal"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:complexType name="sessionState">
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			<xs:element name="providers" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="type" type="xs:string"/>
								<xs:attribute name="name" type="xs:string"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="allowCustomSqlDatabase" type="trueFalseEnum"/>
		<xs:attribute name="useHostingIdentity" type="trueFalseEnum"/>
		<xs:attribute name="mode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Off"/>
					<xs:enumeration value="InProc"/>
					<xs:enumeration value="StateServer"/>
					<xs:enumeration value="SQLServer"/>
					<xs:enumeration value="Custom"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="cookieless" type="cookielessEnum"/>
		<xs:attribute name="cookieName" type="xs:string"/>
		<xs:attribute name="regenerateExpiredSessionId" type="xs:string"/>
		<xs:attribute name="timeout" type="xs:string"/>
		<xs:attribute name="stateConnectionString" type="xs:string"/>
		<xs:attribute name="stateNetworkTimeout" type="xs:string"/>
		<xs:attribute name="sqlConnectionString" type="xs:string"/>
		<xs:attribute name="sqlCommandTimeout" type="xs:string"/>
		<xs:attribute name="customProvider" type="xs:string"/>
	</xs:complexType>
	
	<xs:complexType name="siteMap">
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			<xs:element name="providers" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="type" type="xs:string"/>
								<xs:attribute name="name" type="xs:string"/>
								<xs:attribute name="description" type="xs:string"/>
								<xs:attribute name="siteMapFile" type="xs:string"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="defaultProvider" type="xs:string"/>
	</xs:complexType>

	<xs:complexType name="trace">
		<xs:attribute name="enabled" type="trueFalseEnum" default="false"/>
		<xs:attribute name="localOnly" type="trueFalseEnum" default="true"/>
		<xs:attribute name="pageOutput" type="trueFalseEnum" default="false"/>
		<xs:attribute name="requestLimit" type="xs:integer" default="10"/>
		<xs:attribute name="mostRecent" type="trueFalseEnum"/>
		<xs:attribute name="writeToDiagnosticsTrace" type="trueFalseEnum"/>
		<xs:attribute name="traceMode" default="SortByTime">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="SortByTime"/>
					<xs:enumeration value="SortByCategory"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="trust">
		<xs:attribute name="level" type="trustLevelEnum" use="required"/>
		<xs:attribute name="orginUrl" type="xs:string"/>
		<xs:attribute name="processRequestInApplicationTrust" type="trueFalseEnum"/>
	</xs:complexType>
	
	<xs:complexType name="urlMappings">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="mappedUrl" type="xs:string"/>
					<xs:attribute name="url" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="url" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>		
			<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
		</xs:choice>
		<xs:attribute name="enabled" type="trueFalseEnum"/>
	</xs:complexType>
	
	<xs:complexType name="webControls">
		<xs:attribute name="clientScriptsLocation" type="xs:string"/>
	</xs:complexType>	
	
	<xs:complexType name="webParts">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="authorization" type="authorization" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="transformers" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
						<xs:complexType>
							<xs:attribute name="name" type="xs:string"/>
							<xs:attribute name="type" type="xs:string"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
						<xs:complexType>
							<xs:attribute name="name" type="xs:string" use="required"/>
						</xs:complexType>
					</xs:element>		
					<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>	
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:choice>
		<xs:attribute name="enableExport" type="trueFalseEnum"/>
	</xs:complexType>
		
	<xs:complexType name="webServices">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="conformanceWarnings" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="diagnostics" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="supressReturningExceptions" type="trueFalseEnum" default="false"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="protocols" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" use="required">
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:enumeration value="HttpGet"/>
											<xs:enumeration value="HttpPost"/>
											<xs:enumeration value="HttpSoap"/>
											<xs:enumeration value="Documentation"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:attribute>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>		
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="serviceDescriptionTypes" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="type" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="type" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="soapEnvelopeProcessing" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="readTimeout" type="xs:integer" default="2147483647"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="soapExtensionImporterTypes" type="soapExtension" minOccurs="0" maxOccurs="unbounded"/>	
			<xs:element name="soapExtensionReflectorTypes" type="soapExtension" minOccurs="0" maxOccurs="unbounded"/>	
			<xs:element name="soapExtensionTypes" type="soapExtension" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="soapServerProtocolFactory" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="type" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="soapTransportImporterTypes" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="type" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="type" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="wsdlHelpGenerator" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="href" type="xs:anyURI" use="required"/>
				</xs:complexType>
			</xs:element>		
		</xs:choice>
	</xs:complexType>
	
	<xs:complexType name="xhtmlConformance">
		<xs:attribute name="mode">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Transitional"/>
					<xs:enumeration value="Strict"/>
					<xs:enumeration value="Legacy"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="soapExtension">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="type" type="xs:string" use="required"/>
					<xs:attribute name="priority" type="xs:string" use="required"/>
					<xs:attribute name="group" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="type" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>		
			<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>		
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="system.codedom">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="compilers">
				<xs:complexType>
					<xs:choice minOccurs="0" maxOccurs="unbounded">
						<xs:element name="compiler">
							<xs:complexType>
								<xs:attribute name="compilerOptions" type="xs:string"/>
								<xs:attribute name="extension" type="xs:string" use="required"/>
								<xs:attribute name="language" type="xs:string" use="required"/>
								<xs:attribute name="type" type="xs:string" use="required"/>
								<xs:attribute name="warningLevel" type="xs:string"/>
							</xs:complexType>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="appSettings">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="key" type="xs:string" use="required"/>
					<xs:attribute name="value" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="key" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>
		</xs:choice>
		<xs:attribute name="file" type="xs:string"/>
	</xs:complexType>

	<xs:complexType name="connectionStrings">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="name" type="xs:string" use="required"/>
					<xs:attribute name="connectionString" type="xs:string" use="required"/>
					<xs:attribute name="providerName" type="xs:string"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="name" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="clear" minOccurs="0" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
</xs:schema>
