Hello,
I'm trying to validate a a stream of XML using an XMLREader against an XSD file. I'm getting the following error for EACH ELEMENT in my XML STREAM, starting with the root element. I know I have the schema loaded because I can see the id and other properties when debugging. Any help solving this problem will be greatly appreciated.
Thanks much.
Warning from eventhandler (it does this for each element in the XML):
Could not find schema information for the element '[element name]'.
Here is my XSD file:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DetailsSchema1" targetNamespace=" elementFormDefault="qualified" xmlns=" xmlns:mstns=" xmlns:xs=" <xs:element name="coverage">
<xs:complexType>
<xs:sequence>
<xs:element name="BuyCap" type="xs:integer" />
<xs:element name="SellCap" type="xs:integer" />
<xs:element name="Ping" type="xs:boolean" />
<xs:element name="StartCoverageDay" type="xs:integer" />
<xs:element name="endcoverageday" type="xs:integer" />
<xs:element name="BuyCoverageTable" type="xs:string" />
<xs:element name="SellCoverageTable" type="xs:string" />
<xs:element name="MainCoverageTable" type="xs:string" />
<xs:element name="AcceptsBuyLead" type="xs:boolean" />
<xs:element name="AcceptsSellLead" type="xs:boolean" />
<xs:element name="AcceptsBuySellLead" type="xs:boolean" />
<xs:element name="ExclusiveLeads" type="xs:boolean" />
<xs:element name="NonExclusiveLeads" type="xs:boolean" />
<xs:element name="PostURL" type="xs:string" />
<xs:element name="PostResponseNode" type="xs:string" />
<xs:element name="DeliveryType" type="DeliveryTypeTable" />
<xs:element name="PostResponseFailure" type="xs:string" />
<xs:element name="TotalMonthlyCap" type="xs:integer" />
<xs:element name="PostResponseSuccess" type="xs:string" />
<xs:element name="PingResponseSuccess" type="xs:string" />
</xs:sequence>
<xs:attribute name="CoverageId" type="xs:integer" />
</xs:complexType>
</xs:element>
<xs:complexType name="DeliveryTypeTable">
<xs:sequence>
<xs:element name="ID" type="xs:integer">
</xs:element>
</xs:sequence>
<xs:attribute name="TableName" type="xs:string" fixed="DeliveryTypes">
</xs:attribute>
</xs:complexType>
</xs:schema>
HERE IS MY XML:
<?xml version="1.0" encoding="utf-8" ?>
<Coverage>
<StartCoverageDay>2</StartCoverageDay>
<EndCoverageDay>7</EndCoverageDay>
<MainCoverageTable>tablename</MainCoverageTable>
<AcceptsBuyLead>1</AcceptsBuyLead>
<AcceptsSellLead>1</AcceptsSellLead>
<NonExclusiveLeads>1</NonExclusiveLeads>
<PostURL>xxx</PostURL>
<PostResponseFailure>-</PostResponseFailure>
</Coverage>
I'm trying to validate a a stream of XML using an XMLREader against an XSD file. I'm getting the following error for EACH ELEMENT in my XML STREAM, starting with the root element. I know I have the schema loaded because I can see the id and other properties when debugging. Any help solving this problem will be greatly appreciated.
Thanks much.
Warning from eventhandler (it does this for each element in the XML):
Could not find schema information for the element '[element name]'.
Code:
public void TestValidation()
{
XmlReaderSettings xRdrSettings = new XmlReaderSettings();
("C:/Projects/ReplyEnterpriseBusiness/ReplyEnterpriseBUS/DetailsSchema1.xsd");
ValidationEventHandler(xRdrSettings_ValidationEventHandler));
xRdrSettings.Schemas.Add(null, "C:/Projects/ReplyEnterpriseBusiness/ReplyEnterpriseBUS/DetailsSchema1.xsd");
xRdrSettings.ValidationType = ValidationType.Schema;
//xRdrSettings.ValidationFlags = XmlSchemaValidationFlags.ProcessInlineSchema;
xRdrSettings.ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings;
xRdrSettings.ValidationEventHandler += new ValidationEventHandler(xRdrSettings_ValidationEventHandler);
XmlReader xRdr = XmlReader.Create("C:/Projects/ReplyEnterpriseWeb/XMLFile2.xml", xRdrSettings);
while (xRdr.Read()) ;
}
Here is my XSD file:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DetailsSchema1" targetNamespace=" elementFormDefault="qualified" xmlns=" xmlns:mstns=" xmlns:xs=" <xs:element name="coverage">
<xs:complexType>
<xs:sequence>
<xs:element name="BuyCap" type="xs:integer" />
<xs:element name="SellCap" type="xs:integer" />
<xs:element name="Ping" type="xs:boolean" />
<xs:element name="StartCoverageDay" type="xs:integer" />
<xs:element name="endcoverageday" type="xs:integer" />
<xs:element name="BuyCoverageTable" type="xs:string" />
<xs:element name="SellCoverageTable" type="xs:string" />
<xs:element name="MainCoverageTable" type="xs:string" />
<xs:element name="AcceptsBuyLead" type="xs:boolean" />
<xs:element name="AcceptsSellLead" type="xs:boolean" />
<xs:element name="AcceptsBuySellLead" type="xs:boolean" />
<xs:element name="ExclusiveLeads" type="xs:boolean" />
<xs:element name="NonExclusiveLeads" type="xs:boolean" />
<xs:element name="PostURL" type="xs:string" />
<xs:element name="PostResponseNode" type="xs:string" />
<xs:element name="DeliveryType" type="DeliveryTypeTable" />
<xs:element name="PostResponseFailure" type="xs:string" />
<xs:element name="TotalMonthlyCap" type="xs:integer" />
<xs:element name="PostResponseSuccess" type="xs:string" />
<xs:element name="PingResponseSuccess" type="xs:string" />
</xs:sequence>
<xs:attribute name="CoverageId" type="xs:integer" />
</xs:complexType>
</xs:element>
<xs:complexType name="DeliveryTypeTable">
<xs:sequence>
<xs:element name="ID" type="xs:integer">
</xs:element>
</xs:sequence>
<xs:attribute name="TableName" type="xs:string" fixed="DeliveryTypes">
</xs:attribute>
</xs:complexType>
</xs:schema>
HERE IS MY XML:
<?xml version="1.0" encoding="utf-8" ?>
<Coverage>
<StartCoverageDay>2</StartCoverageDay>
<EndCoverageDay>7</EndCoverageDay>
<MainCoverageTable>tablename</MainCoverageTable>
<AcceptsBuyLead>1</AcceptsBuyLead>
<AcceptsSellLead>1</AcceptsSellLead>
<NonExclusiveLeads>1</NonExclusiveLeads>
<PostURL>xxx</PostURL>
<PostResponseFailure>-</PostResponseFailure>
</Coverage>