O
One Handed Man \( OHM - Terry Burns \)
Yes, my brain is once again dead ( this is my mind writing using a
supernatural force ).
I'm trying to validate an xml file against its schema, I have a very simple
example where price is a float, and I put a text value in its place to test
validation. "Nothing Is Reported", however, when I use the IDE to validate
it, it complains as expected. Where have I gone wrong ?
'// THIS IS MY PUNY LITTLE XML FILE '//
<?xml version="1.0" encoding="utf-8"?>
<STORE xmlns="http://tempuri.org/DATA.xsd">
<PRODUCT genre="general">
<PRICE>THIS SHOULD BE A FLOAT</PRICE>
</PRODUCT>
</STORE>
'// THIS IS MY XSD SCHEMA FILE
<?xml version="1.0" ?>
<xs:schema id="STORE" targetNamespace="http://tempuri.org/DATA.xsd"
xmlns:mstns="http://tempuri.org/DATA.xsd"
xmlns="http://tempuri.org/DATA.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="STORE" msdata:IsDataSet="true" msdata:Locale="en-GB"
msdata:EnforceConstraints="False">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="PRODUCT">
<xs:complexType>
<xs:sequence>
<xs:element name="PRICE" type="xs:float" minOccurs="0"
msdata:Ordinal="0" />
</xs:sequence>
<xs:attribute name="genre" form="unqualified" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
'// Code - Validator declared at class level
Private WithEvents validatingReader As XmlValidatingReader
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim reader As XmlTextReader
Try
reader = New XmlTextReader("..\DATA.xml")
validatingReader = New XmlValidatingReader(reader)
validatingReader.ValidationType = ValidationType.Schema
While validatingReader.Read()
'nothing
End While
Catch ex As Exception
Debug.WriteLine(ex.ToString)
Finally
reader.Close()
End Try
End Sub
Private Sub validatingReader_ValidationEventHandler(ByVal sender As
Object, ByVal e As System.Xml.Schema.ValidationEventArgs) Handles
validatingReader.ValidationEventHandler
Debug.WriteLine(e.Exception.Message)
End Sub
--
--
OHM ( Terry Burns )
. . . One-Handed-Man . . .
Time flies when you don't know what you're doing
supernatural force ).
I'm trying to validate an xml file against its schema, I have a very simple
example where price is a float, and I put a text value in its place to test
validation. "Nothing Is Reported", however, when I use the IDE to validate
it, it complains as expected. Where have I gone wrong ?
'// THIS IS MY PUNY LITTLE XML FILE '//
<?xml version="1.0" encoding="utf-8"?>
<STORE xmlns="http://tempuri.org/DATA.xsd">
<PRODUCT genre="general">
<PRICE>THIS SHOULD BE A FLOAT</PRICE>
</PRODUCT>
</STORE>
'// THIS IS MY XSD SCHEMA FILE
<?xml version="1.0" ?>
<xs:schema id="STORE" targetNamespace="http://tempuri.org/DATA.xsd"
xmlns:mstns="http://tempuri.org/DATA.xsd"
xmlns="http://tempuri.org/DATA.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="STORE" msdata:IsDataSet="true" msdata:Locale="en-GB"
msdata:EnforceConstraints="False">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="PRODUCT">
<xs:complexType>
<xs:sequence>
<xs:element name="PRICE" type="xs:float" minOccurs="0"
msdata:Ordinal="0" />
</xs:sequence>
<xs:attribute name="genre" form="unqualified" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
'// Code - Validator declared at class level
Private WithEvents validatingReader As XmlValidatingReader
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim reader As XmlTextReader
Try
reader = New XmlTextReader("..\DATA.xml")
validatingReader = New XmlValidatingReader(reader)
validatingReader.ValidationType = ValidationType.Schema
While validatingReader.Read()
'nothing
End While
Catch ex As Exception
Debug.WriteLine(ex.ToString)
Finally
reader.Close()
End Try
End Sub
Private Sub validatingReader_ValidationEventHandler(ByVal sender As
Object, ByVal e As System.Xml.Schema.ValidationEventArgs) Handles
validatingReader.ValidationEventHandler
Debug.WriteLine(e.Exception.Message)
End Sub
--
--
OHM ( Terry Burns )
. . . One-Handed-Man . . .
Time flies when you don't know what you're doing