Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations bkrike on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

validate xml with xsd fails

Status
Not open for further replies.

lin73

Programmer
Feb 17, 2006
110
SE
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
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top