local validation of schema

Hi,

I am having problem with the local validation of schema.

My xml looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<quotations xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="C:/badal/amazon/test/XsdFromSpy.xsd">
	<quote quoteid="11111">
		<saying>I am from India</saying>
		<attribution>Badal Garg</attribution>
		<era>Modern</era>
	</quote>
</quotations>

XSD looks like this :

<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Badal (cvs)
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="quotations">
<xs:complexType>
<xs:sequence>
<xs:element name="quote">
<xs:complexType>
<xs:sequence>
<xs:element name="saying" type="xs:string"/>
<xs:element name="attribution" type="xs:string"/>
<xs:element name="era" type="xs:string"/>
</xs:sequence>
<xs:attribute name="quoteid" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>


and my java program is :

import java.io.IOException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
class XMLReaderValidator
{
    public static void main(String[] args)
    {
       String parserClass = "org.apache.xerces.parsers.SAXParser";
       String validationFeature
          = "http://xml.org/sax/features/validation";
       String schemaFeature
          = "http://apache.org/xml/features/validation/schema";
       try {
       	String x = "XmlFromSpy.xml";
          XMLReader r = XMLReaderFactory.createXMLReader(parserClass);
          r.setFeature(validationFeature,true);
          r.setFeature(schemaFeature,true);
          r.setErrorHandler(new MyErrorHandler());
          r.parse(x);
       } catch (SAXException e) {
          System.out.println(e.toString());
       } catch (IOException e) {
          System.out.println(e.toString());
       }
    }
    private static class MyErrorHandler extends DefaultHandler {
       public void warning(SAXParseException e) throws SAXException {
          System.out.println("Warning: ");
          printInfo(e);
       }
       public void error(SAXParseException e) throws SAXException {
          System.out.println("Error: ");
          printInfo(e);
       }
       public void fatalError(SAXParseException e) throws SAXException {
          System.out.println("Fattal error: ");
          printInfo(e);
       }
       private void printInfo(SAXParseException e) {
       	System.out.println("   Public ID: "+e.getPublicId());
       	System.out.println("   System ID: "+e.getSystemId());
       	System.out.println("   Line number: "+e.getLineNumber());
       	System.out.println("   Column number: "+e.getColumnNumber());
       	System.out.println("   Message: "+e.getMessage());
       }
    }
}

I am getting the following error:

Error:
    Public ID: null
    System ID: file:///C:/badal/amazon/test/XmlFromSpy.xml
    Line number: 2
    Column number: 135
    Message: Element type "quotations" must be declared.

Please help!
BG

Received on Wednesday, 30 July 2003 17:36:44 UTC