[ Cola @ 25.06.2008. 12:46 ] @
Imam XSD šemu u kojoj je definisan element 'Broj' kao decimalni broj XSD Code: ... <xs:element name="Broj" type="xs:decimal" nillable="false"/> ... i funkciju u C# koja validira XML Code: public void ValidateXML(String XMLfileName, String XSDfileName) { ... XmlTextReader reader = new XmlTextReader(XMLfileName); XmlValidatingReader vreader = new XmlValidatingReader(reader); XmlSchemaCollection xsc = new XmlSchemaCollection(); xsc.Add(null, XSDfileName); vreader.Schemas.Add(xsc); vreader.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); while (vreader.Read()) { } ... } private void ValidationCallBack(object sender, ValidationEventArgs args) { ... } u XMLu koji se validira validacija prođe uspješno ako je format broja 123.45 tj. engleski format broja međutim meni treba u XMLu da bude naš format broja tj. 123,45 Thred koji poziva funkciju za validaciju je u našoj kulturi tj. Code: Thread.CurrentThread.CurrentCulture = new CultureInfo("bs-Latn-BA", true); ili Thread.CurrentThread.CurrentCulture = new CultureInfo("sr-Latn-CS", true); ili Thread.CurrentThread.CurrentCulture = new CultureInfo("hr-HR", true); ali funkcija vreader.Read() uvjek validira na engleskom tako da validacija broja 123,45 pozove ValidationCallBack pa je uvjek false :( Kako ovo rešiti? Da li u funkciji ValidateXML treba nešto izmeniti ili u XSD treba nešto dodati pa da ga na taj način validator interpretira kao brojeve u našoj kulturu? Hvala unapred |