How to validate a DataContract with the XsdDataContractExporter Schema?

smearamyordef

New Member
I have a profile I generated by using the DataContractSerializer and then used the XsdDataContractExporter to generate the schema, but the schema will not validate my xml. How can I generate a valid XSD that can be used to externally validate my XML?My Xml:\[code\] <?xml version="1.0" encoding="utf-8"?><ConfigProfile xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ConfigurationUtilityFunctions"> <ConfigSections xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d2p1:anyType i:type="IISSection"> <AnonymousUser xmlns:d4p1="http://schemas.datacontract.org/2004/07/ConfigurationUtilityFunctions.Section.User"> <d4p1:UserDescription i:nil="true" /> <d4p1:UserGroup i:nil="true" /> <d4p1:UserName>Anon</d4p1:UserName> <d4p1:UserPassword>testpass</d4p1:UserPassword> <d4p1:UserType>Anonymous</d4p1:UserType> </AnonymousUser> <ApplicationPoolName>AppPool</ApplicationPoolName> <Port>8080</Port> <VirtualDirectoryAlias>/virtdir</VirtualDirectoryAlias> <WebsiteName>Default</WebsiteName> <WebsiteRoot>C:\SomePath</WebsiteRoot> </d2p1:anyType> <d2p1:anyType xmlns:d3p1="http://schemas.datacontract.org/2004/07/ConfigurationUtilityFunctions.Section.WebConfig" i:type="d3p1:WebConfigSection"> <d3p1:CommonItems> <d3p1:WebConfigItem> <d3p1:Data> <add key="serverurl" value="http://myserverurl" xmlns="" /> </d3p1:Data> <d3p1:Name>serverurl</d3p1:Name> <d3p1:XPath>//add[@key='serverurl']</d3p1:XPath> </d3p1:WebConfigItem> <d3p1:WebConfigItem> <d3p1:Data> <authentication mode="Forms" xmlns=""> <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" protection="All" timeout="4800" path="/" /> </authentication> </d3p1:Data> <d3p1:Name>Authentication</d3p1:Name> <d3p1:XPath>//system.web/authentication[@mode]</d3p1:XPath> </d3p1:WebConfigItem> <d3p1:WebConfigItem> <d3p1:Data> <pages theme="AvantGarde" clientIDMode="AutoID" xmlns="" /> </d3p1:Data> <d3p1:Name>Pages</d3p1:Name> <d3p1:XPath>//system.web/pages</d3p1:XPath> </d3p1:WebConfigItem> </d3p1:CommonItems> <d3p1:FileLocation>C:\my\web.config</d3p1:FileLocation> <d3p1:OverRideItems i:nil="true" /> <d3p1:UserDifference> <d3p1:WebConfigItem> <d3p1:Data> <add key="serverurl" value="http://myserverurl" xmlns="" /> </d3p1:Data> <d3p1:Name>add</d3p1:Name> <d3p1:XPath i:nil="true" /> </d3p1:WebConfigItem> <d3p1:WebConfigItem> <d3p1:Data> <identity impersonate="true" userName="Worker" password="password" xmlns="" /> </d3p1:Data> <d3p1:Name>identity</d3p1:Name> <d3p1:XPath i:nil="true" /> </d3p1:WebConfigItem> </d3p1:UserDifference> <d3p1:WebConfig> <configuration xmlns=""> <appSettings> <!-- EXAMPLE Server URL to post to --> <add key="serverurl" value="http://myserverurl" /> <!-- USDemoUserDetailManuScript The ManuScript ID to edit advanced user details --> <add key="UserDetailsManuScriptID" value="" /> <!-- The ManuScript ID to edit advanced agency details --> <add key="AgencyDetailsManuScriptID" value="" /> <!-- The return address for emails sent --> <add key="MailTo" value="http://stackoverflow.com/questions/11953283/[email protected]" /> <!-- SMTPServer name to use while sending emails --> <add key="SMTPServer" value="" /> <add key="TimeOut" value="http://stackoverflow.com/questions/11953283/300000" /> <add key="OnAddDuplicateEntity" value="http://stackoverflow.com/questions/11953283/Error" /> <!-- The expected behavior when entered entity data is identical to an existing entity - options: Error, Continue --> <add key="StatesXML" value="http://stackoverflow.com/questions/11953283/States" /> </appSettings> <connectionStrings /> <system.web> <authentication mode="Forms"> <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" protection="All" timeout="4800" path="/" /> </authentication> <authorization> <deny users="?" /> </authorization> <compilation debug="false" strict="false" explicit="true" targetFramework="4.0" /> <pages theme="AvantGarde" clientIDMode="AutoID" /> <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="200" /> <xhtmlConformance mode="Legacy" /> <globalization requestEncoding="utf-8" responseEncoding="utf-8" /> <identity impersonate="true" userName="Worker" password="password" /> </system.web> <system.webServer> <security> <requestFiltering> <hiddenSegments> <add segment="App_XSLT" /> </hiddenSegments> </requestFiltering> </security> </system.webServer> <location path="scripts"> <system.web> <authorization> <allow users="*,?" /> </authorization> </system.web> </location> <location path="App_Themes"> <system.web> <authorization> <allow users="*,?" /> </authorization> </system.web> </location> </configuration> </d3p1:WebConfig> <d3p1:WorkerProcessUser xmlns:d4p1="http://schemas.datacontract.org/2004/07/ConfigurationUtilityFunctions.Section.User"> <d4p1:UserDescription i:nil="true" /> <d4p1:UserGroup i:nil="true" /> <d4p1:UserName>Worker</d4p1:UserName> <d4p1:UserPassword>password</d4p1:UserPassword> <d4p1:UserType>WorkerProcess</d4p1:UserType> </d3p1:WorkerProcessUser> </d2p1:anyType> </ConfigSections> <InstanceName i:nil="true" /> <ProfileDesc>Current Settings</ProfileDesc> <ProfileId i:nil="true" /> <ProfileName>validate</ProfileName> <ProfileType>CustomSettings</ProfileType></ConfigProfile>\[/code\]And My Schema that is generated:\[code\] <?xml version="1.0" encoding="utf-16"?><xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/ConfigurationUtilityFunctions" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/ConfigurationUtilityFunctions" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" /> <xs:import namespace="http://schemas.datacontract.org/2004/07/ConfigurationUtilityFunctions.Section.User" /> <xs:complexType name="ConfigProfile"> <xs:sequence> <xs:element minOccurs="0" name="ConfigSections" nillable="true" xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" type="q1:ArrayOfanyType" /> <xs:element minOccurs="0" name="InstanceName" nillable="true" type="xs:string" /> <xs:element minOccurs="0" name="ProfileDesc" nillable="true" type="xs:string" /> <xs:element minOccurs="0" name="ProfileId" nillable="true" type="xs:string" /> <xs:element minOccurs="0" name="ProfileName" nillable="true" type="xs:string" /> <xs:element minOccurs="0" name="ProfileType" type="tns:ConfigProfile.ProfileTypeEnum" /> </xs:sequence> </xs:complexType> <xs:element name="ConfigProfile" nillable="true" type="tns:ConfigProfile" /> <xs:simpleType name="ConfigProfile.ProfileTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="http://stackoverflow.com/questions/11953283/CurrentSettings" /> <xs:enumeration value="http://stackoverflow.com/questions/11953283/CustomSettings" /> <xs:enumeration value="http://stackoverflow.com/questions/11953283/DefaultSettings" /> </xs:restriction> </xs:simpleType> <xs:element name="ConfigProfile.ProfileTypeEnum" nillable="true" type="tns:ConfigProfile.ProfileTypeEnum" /> <xs:complexType name="IISSection"> <xs:sequence> <xs:element minOccurs="0" name="AnonymousUser" nillable="true" xmlns:q2="http://schemas.datacontract.org/2004/07/ConfigurationUtilityFunctions.Section.User" type="q2:User" /> <xs:element minOccurs="0" name="ApplicationPoolName" nillable="true" type="xs:string" /> <xs:element minOccurs="0" name="Port" nillable="true" type="xs:string" /> <xs:element minOccurs="0" name="VirtualDirectoryAlias" nillable="true" type="xs:string" /> <xs:element minOccurs="0" name="WebsiteName" nillable="true" type="xs:string" /> <xs:element minOccurs="0" name="WebsiteRoot" nillable="true" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:element name="IISSection" nillable="true" type="tns:IISSection" /></xs:schema>\[/code\]
 
Top