Hi,
I have a problem with XML validation. The XSD schema is not to this xml, but validation is true? What is wrong in XSD?
XSD:
="1.0"="utf-8"
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://winuel.com.pl/2007/pwi/documents" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Dokument">
<xs:complexType>
<xs:sequence>
<xs:element name="Naglowek">
<xs:complexType>
<xs:sequence>
<xs:element name="typDokumentu" type="xs:string" />
<xs:element name="numerDokumentu" type="xs:string" />
<xs:element name="dataDokumentu" type="xs:dateTime" />
<xs:element name="nazwaSprzedawcy" type="xs:string" />
<xs:element name="kodSprzedawcy" type="xs:string" />
<xs:element name="kodMDD" type="xs:string" />
<xs:element name="kodURB" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Tresc">
<xs:complexType>
<xs:sequence>
<xs:element name="Liczniki">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="DaneLicznika">
<xs:complexType>
<xs:sequence>
<xs:element name="kodPPE" type="xs:string" />
<xs:element name="nrLicznika" type="xs:unsignedInt" />
<xs:element name="Wskazania">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" name="Wskazanie">
<xs:complexType>
<xs:sequence>
<xs:element name="okresRozliczeniowyOd" type="xs:date" />
<xs:element name="okresRozliczeniowyDo" type="xs:date" />
<xs:element name="strefa" type="xs:string" />
<xs:element name="WF" type="xs:string" minOccurs="1" />
<xs:element name="wskazaniePoprzednie" type="xs:decimal" />
<xs:element name="wskazanieBiezace" type="xs:decimal" />
<xs:element name="mnozna" type="xs:decimal" />
<xs:element name="zuzycie_Pmax" type="xs:decimal" />
<xs:element name="strataProcent" type="xs:decimal" />
<xs:element name="zuzycieZUwzglednieniemStrat" type="xs:decimal" />
<xs:element name="rozklad" type="xs:string" />
<xs:element name="kodOT" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML:
="1.0"="UTF-8"="yes"
<Dokument xmlns:ns2="http://winuel.com.pl/2007/pwi/documents">
<ns2:Naglowek>
<ns2:numerDokumentu>dssdsdsdsdsdsdsd</ns2:numerDokumentu>
<ns2:dataDokumentu>2012-11-07T10:42:47.704+01:00</ns2:dataDokumentu>
<ns2:nazwaSprzedawcy>aaa</ns2:nazwaSprzedawcy>
<ns2:kodSprzedawcy>bbbb</ns2:kodSprzedawcy>
<ns2:kodURB>cccc</ns2:kodURB>
<ns2:kodMB>rrrr333</ns2:kodMB>
<ns2:aaa></ns2:aaa>
</ns2:Naglowek>
<ns2:Tresc>
<ns2:Liczniki>
<ns2:DaneLicznika>
<ns2:kodPPE>PL_ZEBB_0000000_09</ns2:kodPPE>
<ns2:nrLicznika>13139609</ns2:nrLicznika>
<ns2:rolaLicznika>R</ns2:rolaLicznika>
<ns2:Wskazania>
<ns2:Wskazanie>
<ns2:okresRozliczeniowyOd>2012-09-20T11:52:00+02:00</ns2:okresRozliczeniowyOd>
<ns2:okresRozliczeniowyDo>2012-10-22T14:12:00+02:00</ns2:okresRozliczeniowyDo>
<ns2:strefa>poza szczytem</ns2:strefa>
<ns2:wskazaniePoprzednie>136821</ns2:wskazaniePoprzednie>
<ns2:wskazanieBiezace>138696</ns2:wskazanieBiezace>
<ns2:mnozna>1</ns2:mnozna>
<ns2:zuzycie>1875</ns2:zuzycie>
<ns2:strataProcent>0</ns2:strataProcent>
<ns2:zuzycieZUwzglednieniemStrat>1875</ns2:zuzycieZUwzglednieniemStrat>
<ns2:kierunek>Pobór</ns2:kierunek>
<ns2:pochodzenie>F</ns2:pochodzenie>
<ns2:informacjeDodatkowe></ns2:informacjeDodatkowe>
</ns2:Wskazanie>
<ns2:Wskazanie>
<ns2:okresRozliczeniowyOd>2012-09-20T11:52:00+02:00</ns2:okresRozliczeniowyOd>
<ns2:okresRozliczeniowyDo>2012-10-22T14:12:00+02:00</ns2:okresRozliczeniowyDo>
<ns2:strefa>szczyt</ns2:strefa>
<ns2:wskazaniePoprzednie>39089</ns2:wskazaniePoprzednie>
<ns2:wskazanieBiezace>39724</ns2:wskazanieBiezace>
<ns2:mnozna>1</ns2:mnozna>
<ns2:zuzycie>635</ns2:zuzycie>
<ns2:strataProcent>0</ns2:strataProcent>
<ns2:zuzycieZUwzglednieniemStrat>635</ns2:zuzycieZUwzglednieniemStrat>
<ns2:kierunek>Pobór</ns2:kierunek>
<ns2:pochodzenie>F</ns2:pochodzenie>
<ns2:informacjeDodatkowe></ns2:informacjeDodatkowe>
</ns2:Wskazanie>
</ns2:Wskazania>
</ns2:DaneLicznika>
<ns2:DaneLicznika>
<ns2:kodPPE>PL_ZEBB_sasswe3232_09</ns2:kodPPE>
<ns2:nrLicznika>425.0003441</ns2:nrLicznika>
<ns2:rolaLicznika>R</ns2:rolaLicznika>
<ns2:Wskazania>
<ns2:Wskazanie>
<ns2:okresRozliczeniowyOd>2012-10-01T00:00:00+02:00</ns2:okresRozliczeniowyOd>
<ns2:okresRozliczeniowyDo>2012-11-01T00:00:00+01:00</ns2:okresRozliczeniowyDo>
<ns2:strefa>Cala doba</ns2:strefa>
<ns2:wskazaniePoprzednie>4975.253</ns2:wskazaniePoprzednie>
<ns2:wskazanieBiezace>5331.803</ns2:wskazanieBiezace>
<ns2:mnozna>100</ns2:mnozna>
<ns2:zuzycie>35655.000</ns2:zuzycie>
<ns2:strataProcent>0</ns2:strataProcent>
<ns2:zuzycieZUwzglednieniemStrat>35655</ns2:zuzycieZUwzglednieniemStrat>
<ns2:kierunek>Pobór</ns2:kierunek>
<ns2:pochodzenie>Z</ns2:pochodzenie>
<ns2:informacjeDodatkowe></ns2:informacjeDodatkowe>
</ns2:Wskazanie>
</ns2:Wskazania>
</ns2:DaneLicznika>
<ns2:DaneLicznika>
<ns2:kodPPE>PL_ZEBB_dsdsdsdsd22_01</ns2:kodPPE>
<ns2:nrLicznika>13710068</ns2:nrLicznika>
<ns2:rolaLicznika>R</ns2:rolaLicznika>
<ns2:Wskazania>
<ns2:Wskazanie>
<ns2:okresRozliczeniowyOd>2012-10-01T00:00:00+02:00</ns2:okresRozliczeniowyOd>
<ns2:okresRozliczeniowyDo>2012-11-01T00:00:00+01:00</ns2:okresRozliczeniowyDo>
<ns2:strefa>Cala doba</ns2:strefa>
<ns2:wskazaniePoprzednie>3192.4820</ns2:wskazaniePoprzednie>
<ns2:wskazanieBiezace>3239.5850</ns2:wskazanieBiezace>
<ns2:mnozna>60</ns2:mnozna>
<ns2:zuzycie>2826.18</ns2:zuzycie>
<ns2:strataProcent>0</ns2:strataProcent>
<ns2:zuzycieZUwzglednieniemStrat>2826.18</ns2:zuzycieZUwzglednieniemStrat>
<ns2:kierunek>Pobór</ns2:kierunek>
<ns2:pochodzenie>Z</ns2:pochodzenie>
<ns2:informacjeDodatkowe></ns2:informacjeDodatkowe>
</ns2:Wskazanie>
</ns2:Wskazania>
</ns2:DaneLicznika>
</ns2:Liczniki>
</ns2:Tresc>
</Dokument>
Validation in c#:
private static bool checkXmlSchema(string XSDFILEPATH, string path, ref string error)
{
try
{
XmlDocument document = new XmlDocument();
document.Load(path);
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, XSDFILEPATH);
settings.ValidationType = ValidationType.Schema;
XmlReader rdr = XmlReader.Create(new StringReader(document.InnerXml), settings);
while (rdr.Read()) { }
return true;
}
catch (Exception ex)
{
error = ex.Message;
return false;
}
}
Thanks in advance for the answer.