I m trying to validating xml file against xsd file in vb6.0
but i m getting an error
xsd file:(Aces_Dlr. xsd)
---------------------
Xml file(Sample.xml )
'---------------------
vb code in form load event
Please help me, it's urgent
thanx
but i m getting an error
xsd file:(Aces_Dlr. xsd)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by XMLSpy v2010 (http://www.altova.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:n="urn:sample"
targetNamespace="urn:sample">
<xs:attribute name="ToolVer">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:enumeration value="1.0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:simpleType name="ST_QUANTITY">
<xs:restriction base="xs:decimal">
<xs:maxInclusive value="999999999999.99"/>
<xs:pattern value="[0-9]{0,12}(.)[0-9]{0,2}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_AMOUNT-OF-DUTY-INVOLVED">
<xs:restriction base="xs:decimal">
<xs:maxInclusive value="9999999999999.00"/>
<xs:pattern value="[0-9]{0,13}(.)[0]{0,2}"/>
</xs:restriction>
</xs:simpleType>
<xs:attribute name="SL-NO">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{1,4}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ReturnType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="DLR"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:element name="SELF-ASSESSMENT-MEMORANDAM">
<xs:complexType>
<xs:sequence>
<xs:element ref="DATE"/>
<xs:element ref="PLACE"/>
<xs:element ref="REMARKS"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RETURN-YEAR">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="4"/>
<xs:pattern value="((19|20)\d\d)"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="RETURN">
<xs:complexType>
<xs:sequence>
<xs:element ref="HEADER-DATA"/>
<xs:element ref="INVOICE-HEADER" minOccurs="0"/>
<xs:element ref="DOCUMENT-HEADER" minOccurs="0"/>
<xs:element ref="SELF-ASSESSMENT-MEMORANDAM"/>
</xs:sequence>
<xs:attribute ref="ToolVer" use="required"/>
<xs:attribute ref="ReturnType" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="REMARKS">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1000"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="REGISTRATION-NUMBER">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{5}[0-9]{4}[A-Z](XM|XD|EM|ED)[0-9]{3}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="QUARTER">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Jan-Mar"/>
<xs:enumeration value="Apr-Jun"/>
<xs:enumeration value="Jul-Sep"/>
<xs:enumeration value="Oct-Dec"/>
<xs:enumeration value="jan-mar"/>
<xs:enumeration value="apr-jun"/>
<xs:enumeration value="jul-sep"/>
<xs:enumeration value="oct-dec"/>
<xs:enumeration value="JAN-MAR"/>
<xs:enumeration value="APR-JUN"/>
<xs:enumeration value="JUL-SEP"/>
<xs:enumeration value="OCT-DEC"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="NIL-RETURN">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Yes"/>
<xs:enumeration value="No"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="QUANTITY-CODE">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="1KKWH"/>
<xs:enumeration value="C/K"/>
<xs:enumeration value="CM"/>
<xs:enumeration value="CM3"/>
<xs:enumeration value="G"/>
<xs:enumeration value="GI F/S"/>
<xs:enumeration value="KG"/>
<xs:enumeration value="KL"/>
<xs:enumeration value="L"/>
<xs:enumeration value="M"/>
<xs:enumeration value="M2"/>
<xs:enumeration value="M3"/>
<xs:enumeration value="MM"/>
<xs:enumeration value="MT"/>
<xs:enumeration value="PA"/>
<xs:enumeration value="Q"/>
<xs:enumeration value="T"/>
<xs:enumeration value="TU"/>
<xs:enumeration value="U"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="QUANTITY">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ST_QUANTITY"/>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="PLACE">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="NAME">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ISSUED-BY">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Importer"/>
<xs:enumeration value="Manufacturer"/>
<xs:enumeration value="Dealer"/>
<xs:enumeration value="importer"/>
<xs:enumeration value="manufacturer"/>
<xs:enumeration value="dealer"/>
<xs:enumeration value="IMPORTER"/>
<xs:enumeration value="MANUFACTURER"/>
<xs:enumeration value="DEALER"/>
<xs:enumeration value=" Dealer"/>
<xs:enumeration value=" Importer"/>
<xs:enumeration value=" Manufacturer"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="INVOICE-PARTICULARS">
<xs:complexType>
<xs:sequence>
<xs:element ref="INVOICE-NUMBER"/>
<xs:element ref="INVOICE-DATE"/>
<xs:element ref="INVOICE-ITEMS" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="SL-NO" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="INVOICE-NUMBER">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="INVOICE-ITEMS">
<xs:complexType>
<xs:sequence>
<xs:element ref="DESCRIPTION-OF-GOODS"/>
<xs:element ref="CETSH-NUMBER"/>
<xs:element ref="QUANTITY-CODE"/>
<xs:element ref="QUANTITY"/>
<xs:element name="AMOUNT-OF-DUTY-INVOLVED">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ST_AMOUNT-OF-DUTY-INVOLVED"/>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="INVOICE-HEADER">
<xs:complexType>
<xs:sequence>
<xs:element ref="INVOICE-PARTICULARS" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="INVOICE-DATE">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/]([0-9]{4})"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="INVOICE-BILL-ENTRY-NO">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="HEADER-DATA">
<xs:complexType>
<xs:sequence>
<xs:element ref="RETURN-YEAR"/>
<xs:element ref="QUARTER"/>
<xs:element ref="DEALER-NAME"/>
<xs:element ref="REGISTRATION-NUMBER"/>
<xs:element ref="NIL-RETURN" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DOCUMENT-HEADER">
<xs:complexType>
<xs:sequence>
<xs:element ref="DOCUMENT-DETAIL" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DOCUMENT-DETAIL">
<xs:complexType>
<xs:sequence>
<xs:element ref="INVOICE-BILL-ENTRY-NO"/>
<xs:element ref="DATE"/>
<xs:element ref="ISSUED-BY"/>
<xs:element ref="REGISTRATION-NUMBER"/>
<xs:element ref="NAME"/>
<xs:element ref="ADDRESS"/>
<xs:element ref="INVOICE-ITEMS" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="SL-NO" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="DESCRIPTION-OF-GOODS">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DEALER-NAME">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DATE">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="((0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/]([0-9]{4}))"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CETSH-NUMBER">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([0-9]{8})"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ADDRESS">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ACES">
<xs:complexType>
<xs:sequence>
<xs:element ref="RETURN"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Xml file(Sample.xml )
Code:
<ACES><RETURN ReturnType="DLR" ToolVer="1.0"><HEADER-DATA><RETURN-YEAR>2010</RETURN-YEAR><QUARTER>Jul-Sep</QUARTER><DEALER-NAME>B.H.Enterprise</DEALER-NAME><REGISTRATION-NUMBER>ABCDE1234EXD123</REGISTRATION-NUMBER><NIL-RETURN>No</NIL-RETURN></HEADER-DATA><INVOICE-HEADER><INVOICE-PARTICULARS SL-NO="1"><INVOICE-NUMBER>001</INVOICE-NUMBER><INVOICE-DATE>01/07/2010</INVOICE-DATE><INVOICE-ITEMS><DESCRIPTION-OF-GOODS>T.G.UREA</DESCRIPTION-OF-GOODS><CETSH-NUMBER>01019010</CETSH-NUMBER><QUANTITY-CODE>KG</QUANTITY-CODE><QUANTITY>2350.00</QUANTITY><AMOUNT-OF-DUTY-INVOLVED>23500.00</AMOUNT-OF-DUTY-INVOLVED></INVOICE-ITEMS></INVOICE-PARTICULARS><INVOICE-PARTICULARS SL-NO="2"><INVOICE-NUMBER>002</INVOICE-NUMBER><INVOICE-DATE>02/07/2010</INVOICE-DATE><INVOICE-ITEMS><DESCRIPTION-OF-GOODS>T.G.UREA</DESCRIPTION-OF-GOODS><CETSH-NUMBER>01011090</CETSH-NUMBER><QUANTITY-CODE>KG</QUANTITY-CODE><QUANTITY>8210.00</QUANTITY><AMOUNT-OF-DUTY-INVOLVED>82100.00</AMOUNT-OF-DUTY-INVOLVED></INVOICE-ITEMS></INVOICE-PARTICULARS></INVOICE-HEADER><DOCUMENT-HEADER><DOCUMENT-DETAIL SL-NO="1"><INVOICE-BILL-ENTRY-NO>05259</INVOICE-BILL-ENTRY-NO><DATE>30/06/2010</DATE><ISSUED-BY>Dealer</ISSUED-BY><REGISTRATION-NUMBER>ABCDE1235EXD123</REGISTRATION-NUMBER><NAME>RCF</NAME><ADDRESS>zzzzzzzzzzzzzz</ADDRESS><INVOICE-ITEMS><DESCRIPTION-OF-GOODS>TG UREA</DESCRIPTION-OF-GOODS><CETSH-NUMBER>01019010</CETSH-NUMBER><QUANTITY-CODE>KG</QUANTITY-CODE><QUANTITY>1000.00</QUANTITY><AMOUNT-OF-DUTY-INVOLVED>100000.00</AMOUNT-OF-DUTY-INVOLVED></INVOICE-ITEMS></DOCUMENT-DETAIL><DOCUMENT-DETAIL SL-NO="2"><INVOICE-BILL-ENTRY-NO>059626</INVOICE-BILL-ENTRY-NO><DATE>30/06/2010</DATE><ISSUED-BY>Dealer</ISSUED-BY><REGISTRATION-NUMBER>ABCDE1236EXD123</REGISTRATION-NUMBER><NAME>LIVE PHARMA</NAME><ADDRESS>ABCDE1235EXD123</ADDRESS><INVOICE-ITEMS><DESCRIPTION-OF-GOODS>T.G.UREA</DESCRIPTION-OF-GOODS><CETSH-NUMBER>01019010</CETSH-NUMBER><QUANTITY-CODE>KG</QUANTITY-CODE><QUANTITY>5000.00</QUANTITY><AMOUNT-OF-DUTY-INVOLVED>500000.00</AMOUNT-OF-DUTY-INVOLVED></INVOICE-ITEMS></DOCUMENT-DETAIL></DOCUMENT-HEADER><SELF-ASSESSMENT-MEMORANDAM><DATE>30/09/2010</DATE><PLACE>MUMBAI</PLACE><REMARKS>xxxxxxxxxxxxxxxxxxxx</REMARKS></SELF-ASSESSMENT-MEMORANDAM></RETURN></ACES>
vb code in form load event
Code:
Private Sub Form_Load()
Validate "C:\XmlTest\Sample.xml", "C:\XmlTest\Aces_Dlr.xsd"
End Sub
Private Function Validate(ByVal strXMLPath As String, _
ByVal strXSDPath As String) As Boolean
Dim objSchemas As MSXML2.XMLSchemaCache40
Dim objXML As MSXML2.DOMDocument40
Dim objXSD As MSXML2.DOMDocument40
Dim strNamespace As String
Dim objErr As MSXML2.IXMLDOMParseError
' load XSD as DOM to populate in Schema Cache
Set objXSD = New MSXML2.DOMDocument40
objXSD.async = False
If Not objXSD.Load(strXSDPath) Then
Err.Raise 1, "Validate", "Load XSD failed: " & objXSD.parseError.reason
Else
' get namespace name from XSD targetNamespace attribute
'strNamespace = "urn:sample"
strNamespace = objXSD.documentElement.getAttribute("targetNamespace")
End If
' populate schema cache
Set objSchemas = New MSXML2.XMLSchemaCache40
objSchemas.Add strNamespace, objXSD
' load XML file (without validation - that comes later)
Set objXML = New MSXML2.DOMDocument40
objXML.async = False
objXML.validateOnParse = False
objXML.resolveExternals = False
' load XML, without any validation
If Not objXML.Load(strXMLPath) Then
Err.Raise 1, "Validate", "Load XML failed: " & objXML.parseError.reason
End If
' bind Schema Cache to DOM
Set objXML.schemas = objSchemas
' does this XML measure up?
Set objErr = objXML.Validate()
' any good?
Validate = (objErr.errorCode = 0)
If objErr.errorCode <> 0 Then
MsgBox objErr.reason
'Err.Raise 1, "Validate", objErr.reason
Exit Function
End If
End Function
Please help me, it's urgent
thanx
Comment