I am trying to Validate my XML against XSD and getting errors everytime i validate it.

I am getting a same typical error message:
" cvc-elt.1: Cannot find the declaration of element 'document' "

here <document> is my root element of the XML.

My Code is as follows :

XML
===

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="spl-2a.1.xsl" type="text/xsl"?>
<document xsi:schemaLocation="urn:hl7-org:v3 PORR_MT050020.xsd" xmlns="urn:hl7-org:v3" xmlns:splx="urn:hl7-org:splx" xmlns:voc="urn:hl7-org:v3/voc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id root="FFDAA99D"/>
<code code="34391-3"/>
<effectiveTime/>
<address/>
</document>

XSD
===
<?xml version="1.0" encoding="ASCII"?>
<xs:schema xmlns:hl7="urn:hl7-org:v3" xmlns="urn:hl7-org:v3" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:hl7-org:v3" elementFormDefault="qualified">
<xs:include schemaLocation="template-instantiations.xsd"/>
<xs:include schemaLocation="voc.xsd"/>
<xs:include schemaLocation="NarrativeBlock.xsd"/>
<xs:annotation>
<xs:documentation>
Generated using schema builder version 1.21q2.
11/18/2005: Change made to support package-within-package-within-package product configuration. Refer to Release Notes for SPL Schema.html.
Stylesheets:

RoseTreeToMIFStaticModel.xsl version: 1.1
SplitModels.xsl version: 1.1
AssocInMif.xsl version:1.1
StaticMifToXsd.xsl version 1.1</xs:documentation>
</xs:annotation>
<xs:element name="document" type="PORR_MT050020.Document"/>
<xs:complexType name="PORR_MT050020.Document">
<xs:sequence>
<xs:element name="id" type="II"/>
<xs:element name="code" type="CE"/>
<xs:element name="title" type="CDA.Title" minOccurs="0"/>
<xs:element name="effectiveTime" type="TS"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

My Class Code
=============

public void validateSPL() {
        try {
            String splObjPath = "C://Documents and Settings/dparikh/My Documents/xmLabelingStage/package.xml
           String xsdPath = "C://Documents and Settings/dparikh/My Documents/xmLabelingStage/PORR_MT050020.xsd";
            SAXParserFactory spf = SAXParserFactory.newInstance();
            spf.setNamespaceAware(true);
            spf.setValidating(true);
            spf.setFeature("http://xml.org/sax/features/validation", true);
            spf.setFeature("http://apache.org/xml/features/validation/schema", true);
            spf.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);

            if (spf.isValidating()) {
                System.out.println("The parser is validating");
            }

            SAXParser sp = spf.newSAXParser();
            sp.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
// sp.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource",
// "http://www.example.com/Report.xsd");
            sp.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", "file://C:/Documents and Settings/dparikh/My Documents/xmLabelingStage/PORR_MT050020.xsd");

            //sp.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource",xsdPath);
            //sp.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource",vocxsdPath);
            //sp.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource",narativexsdPath);
            //sp.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource",templatexsdPath);
            //DefaultHandler dh = new DefaultHandler();
            //sp.parse(splObjPath, new ErrorPrinter());
            System.out.println("The parser is validating1");

            //Create XMLReader
            xmlReader = sp.getXMLReader();
            xmlReader.setEntityResolver(new SchemaLoader());

            ContentHandler cHandler = new MyDefaultHandler();
            ErrorHandler eHandler = new MyDefaultHandler();

            xmlReader.setContentHandler(cHandler);
            xmlReader.setErrorHandler(eHandler);

            System.out.println("The parser is validating2");
            parseDocument(splObjPath);
        } catch (SAXException se) {
            se.printStackTrace();
        } catch (ParserConfigurationException e) {
            e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
        } catch (DfException dfe) {
            dfe.printStackTrace();
        }

    }

    public void parseDocument(String xmlFile) {
        try {
            xmlReader.parse(xmlFile);
            if (valid) {
                System.out.println("Document is valid!");
            }
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    class MyDefaultHandler extends DefaultHandler {
        private CharArrayWriter buff = new CharArrayWriter();
        private String errMessage = "";
/* With a handler class, just override the methods you need to use
*/

// Start Error Handler code here
        public void warning(SAXParseException e) {
            System.out.println("Warning Line " + e.getLineNumber() + ": " + e.getMessage() + "\n");
        }

        public void error(SAXParseException e) {
            errMessage = new String("Error Line " + e.getLineNumber() + ": " + e.getMessage() + "\n");
            System.out.println(errMessage);
            valid = false;
        }

        public void fatalError(SAXParseException e) {
            errMessage = new String("Error Line " + e.getLineNumber() + ": " + e.getMessage() + "\n");
            System.out.println(errMessage);
            valid = false;
        }
    }

    public class SchemaLoader implements EntityResolver {

    public static final String FILE_SCHEME = "file://";

    public InputSource resolveEntity(String publicId, String systemId) throws SAXException {
        if (systemId.startsWith(FILE_SCHEME)) {

            String filename = systemId.substring(FILE_SCHEME.length());
            InputStream stream = SchemaLoader.class.getClassLoader().getResourceAsStream(filename);
            return new InputSource(stream);
        } else {
            return null;
        }
    }


thanks