Hi
I try to validate a xml file against a xsd file but get an error telling me "The root element of a W3C XML Schema should be <schema> and its namespace should be '
But the root element of my xsd file is <schema> and it doesn't matter if I add the namespace suggested I still get the error.
Here's the code I use...
<code>
Private Sub ValidatingProcess(ByVal XSDPath As String, ByVal XMLPath As String)
builder = New StringBuilder
Try
MyReader = New XmlTextReader(XMLPath)
'Me.Reader = New XmlTextReader(XMLPath)
Dim SR As StreamReader = New StreamReader(XSDPath)
Dim Schema As XmlSchema = New XmlSchema
Schema = XmlSchema.Read(SR, AddressOf ReaderSettings_ValidationEventHandler)
Dim ReaderSettings As XmlReaderSettings = New XmlReaderSettings
ReaderSettings.ValidationType = ValidationType.Schema
ReaderSettings.Schemas.Add(Schema)
AddHandler ReaderSettings.ValidationEventHandler, AddressOf ReaderSettings_ValidationEventHandler
Dim objXmlReader As XmlReader = XmlReader.Create(MyReader, ReaderSettings)
While objXmlReader.Read
End While
Catch AccessEx As UnauthorizedAccessException
'Throw AccessEx
Catch Ex As System.Exception
'Throw Ex
End Try
MsgBox(builder.ToString)
End Sub
Private Sub ReaderSettings_ValidationEventHandler(ByVal sender As Object, ByVal args As ValidationEventArgs)
builder.Append("***Validation error")
builder.Append(vbCrLf)
builder.Append("Severity:{0} " & args.Severity)
builder.Append(vbCrLf)
builder.Append("Message:{0} " & args.Message)
builder.Append(vbCrLf)
End Sub
</code>
And my xsd file looks like this..
<code>
<xsd:schema xmlns:xsd="<xsd:element name="products">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="product">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="artnr" type="xsd:string"/>
<xsd:element name="namn" type="xsd:string"/>
<xsd:element name="namn_old" type="xsd:string"/>
<xsd:element name="sortering" type="xsd:string"/>
<xsd:element name="design" type="xsd:string"/>
<xsd:element name="beskrivning" type="xsd:string"/>
<xsd:element name="stav" type="xsd:string"/>
<xsd:element name="stav_under" type="xsd:string"/>
<xsd:element name="collection" type="xsd:string"/>
<xsd:element name="color" type="xsd:string"/>
<xsd:element name="dimension" type="xsd:string"/>
<xsd:element name="logo" type="xsd:string"/>
<xsd:element name="bild" type="xsd:string"/>
<xsd:element name="textrad" type="xsd:string"/>
<xsd:element name="langd" type="xsd:string"/>
<xsd:element name="bredd" type="xsd:string"/>
<xsd:element name="tjocklek" type="xsd:string"/>
<xsd:element name="yta" type="xsd:string"/>
<xsd:element name="antal" type="xsd:string"/>
<xsd:element name="ytaforpackning" type="xsd:string"/>
<xsd:element name="vikt" type="xsd:string"/>
<xsd:element name="symbol1" type="xsd:string"/>
<xsd:element name="symbol2" type="xsd:string"/>
<xsd:element name="symbol3" type="xsd:string"/>
<xsd:element name="symbol4" type="xsd:string"/>
<xsd:element name="symbol5" type="xsd:string"/>
<xsd:element name="symbol5" type="xsd:string"/>
<xsd:element name="symbol6" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- end of author element-->
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- end of book element-->
</xsd:schema>
</code>
And this is my xml file...
<code>
<?xml version="1.0" encoding="UTF-8"?>
<products>
<product>
<artnr>String</artnr>
<namn>String</namn>
<namn_old>String</namn_old>
<sortering>String</sortering>
<design>String</design>
<beskrivning>String</beskrivning>
<stav>String</stav>
<stav_under>String</stav_under>
<collection>String</collection>
<color>String</color>
<dimension>String</dimension>
<logo>String</logo>
<bild>String</bild>
<textrad>String</textrad>
<langd>String</langd>
<bredd>String</bredd>
<tjocklek>String</tjocklek>
<yta>String</yta>
<antal>String</antal>
<ytaforpackning>String</ytaforpackning>
<vikt>String</vikt>
<symbol1>String</symbol1>
<symbol2>String</symbol2>
<symbol3>String</symbol3>
<symbol4>String</symbol4>
<symbol5>String</symbol5>
<symbol5>String</symbol5>
<symbol6>String</symbol6>
</product>
</products>
</code>
Hope someone can help me out here, I only need to check the xml file so it is built the way I want it to be.
Best Regards
I try to validate a xml file against a xsd file but get an error telling me "The root element of a W3C XML Schema should be <schema> and its namespace should be '
But the root element of my xsd file is <schema> and it doesn't matter if I add the namespace suggested I still get the error.
Here's the code I use...
<code>
Private Sub ValidatingProcess(ByVal XSDPath As String, ByVal XMLPath As String)
builder = New StringBuilder
Try
MyReader = New XmlTextReader(XMLPath)
'Me.Reader = New XmlTextReader(XMLPath)
Dim SR As StreamReader = New StreamReader(XSDPath)
Dim Schema As XmlSchema = New XmlSchema
Schema = XmlSchema.Read(SR, AddressOf ReaderSettings_ValidationEventHandler)
Dim ReaderSettings As XmlReaderSettings = New XmlReaderSettings
ReaderSettings.ValidationType = ValidationType.Schema
ReaderSettings.Schemas.Add(Schema)
AddHandler ReaderSettings.ValidationEventHandler, AddressOf ReaderSettings_ValidationEventHandler
Dim objXmlReader As XmlReader = XmlReader.Create(MyReader, ReaderSettings)
While objXmlReader.Read
End While
Catch AccessEx As UnauthorizedAccessException
'Throw AccessEx
Catch Ex As System.Exception
'Throw Ex
End Try
MsgBox(builder.ToString)
End Sub
Private Sub ReaderSettings_ValidationEventHandler(ByVal sender As Object, ByVal args As ValidationEventArgs)
builder.Append("***Validation error")
builder.Append(vbCrLf)
builder.Append("Severity:{0} " & args.Severity)
builder.Append(vbCrLf)
builder.Append("Message:{0} " & args.Message)
builder.Append(vbCrLf)
End Sub
</code>
And my xsd file looks like this..
<code>
<xsd:schema xmlns:xsd="<xsd:element name="products">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="product">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="artnr" type="xsd:string"/>
<xsd:element name="namn" type="xsd:string"/>
<xsd:element name="namn_old" type="xsd:string"/>
<xsd:element name="sortering" type="xsd:string"/>
<xsd:element name="design" type="xsd:string"/>
<xsd:element name="beskrivning" type="xsd:string"/>
<xsd:element name="stav" type="xsd:string"/>
<xsd:element name="stav_under" type="xsd:string"/>
<xsd:element name="collection" type="xsd:string"/>
<xsd:element name="color" type="xsd:string"/>
<xsd:element name="dimension" type="xsd:string"/>
<xsd:element name="logo" type="xsd:string"/>
<xsd:element name="bild" type="xsd:string"/>
<xsd:element name="textrad" type="xsd:string"/>
<xsd:element name="langd" type="xsd:string"/>
<xsd:element name="bredd" type="xsd:string"/>
<xsd:element name="tjocklek" type="xsd:string"/>
<xsd:element name="yta" type="xsd:string"/>
<xsd:element name="antal" type="xsd:string"/>
<xsd:element name="ytaforpackning" type="xsd:string"/>
<xsd:element name="vikt" type="xsd:string"/>
<xsd:element name="symbol1" type="xsd:string"/>
<xsd:element name="symbol2" type="xsd:string"/>
<xsd:element name="symbol3" type="xsd:string"/>
<xsd:element name="symbol4" type="xsd:string"/>
<xsd:element name="symbol5" type="xsd:string"/>
<xsd:element name="symbol5" type="xsd:string"/>
<xsd:element name="symbol6" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- end of author element-->
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- end of book element-->
</xsd:schema>
</code>
And this is my xml file...
<code>
<?xml version="1.0" encoding="UTF-8"?>
<products>
<product>
<artnr>String</artnr>
<namn>String</namn>
<namn_old>String</namn_old>
<sortering>String</sortering>
<design>String</design>
<beskrivning>String</beskrivning>
<stav>String</stav>
<stav_under>String</stav_under>
<collection>String</collection>
<color>String</color>
<dimension>String</dimension>
<logo>String</logo>
<bild>String</bild>
<textrad>String</textrad>
<langd>String</langd>
<bredd>String</bredd>
<tjocklek>String</tjocklek>
<yta>String</yta>
<antal>String</antal>
<ytaforpackning>String</ytaforpackning>
<vikt>String</vikt>
<symbol1>String</symbol1>
<symbol2>String</symbol2>
<symbol3>String</symbol3>
<symbol4>String</symbol4>
<symbol5>String</symbol5>
<symbol5>String</symbol5>
<symbol6>String</symbol6>
</product>
</products>
</code>
Hope someone can help me out here, I only need to check the xml file so it is built the way I want it to be.
Best Regards