/*******************************************************************************
 * Copyright (c) 1998, 2007 Oracle. All rights reserved.
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0, which accompanies this distribution
 * and is available at http://www.eclipse.org/legal/epl-v10.html.
 *
 * Contributors:
 *     Oracle - initial API and implementation from Oracle TopLink
 ******************************************************************************/  
package org.eclipse.persistence.testing.oxm.xmlmarshaller.setschemas;

import java.net.URL;
import org.eclipse.persistence.oxm.*;
import org.eclipse.persistence.testing.oxm.OXTestCase;

public class SetSchemasTestCases extends OXTestCase {
    private static final String VALID_XML_RESOURCE = "org/eclipse/persistence/testing/oxm/xmlmarshaller/setschemas/valid.xml";
    private static final String INVALID_XML_RESOURCE = "org/eclipse/persistence/testing/oxm/xmlmarshaller/setschemas/invalid.xml";
    private XMLMarshaller xmlMarshaller;
    private XMLContext xmlContext;
    private XMLUnmarshaller xmlUnmarshaller;

    public SetSchemasTestCases(String name) {
        super(name);
    }

    public void setUp() {
        EmployeeProject project = new EmployeeProject();
        xmlContext = getXMLContext(project);
        xmlUnmarshaller = xmlContext.createUnmarshaller();
    }

    public void testInvalidFile() {
        URL url = ClassLoader.getSystemResource(INVALID_XML_RESOURCE);
        xmlUnmarshaller.unmarshal(url);
    }

    public void testValidateInvalidFile() {
        boolean wasExceptionCaught = false;
        try {
            xmlUnmarshaller.setValidationMode(XMLUnmarshaller.SCHEMA_VALIDATION);
            URL url = ClassLoader.getSystemResource(INVALID_XML_RESOURCE);
            xmlUnmarshaller.unmarshal(url);
        } catch (Exception e) {
            wasExceptionCaught = true;
        }
        assertTrue("An exception should have been thrown.", wasExceptionCaught);
    }

    public void testValidFile() {
        URL url = ClassLoader.getSystemResource(VALID_XML_RESOURCE);
        xmlUnmarshaller.unmarshal(url);
    }

    public void testValidateValidFile() {
        xmlUnmarshaller.setValidationMode(XMLUnmarshaller.SCHEMA_VALIDATION);
        URL url = ClassLoader.getSystemResource(VALID_XML_RESOURCE);
        xmlUnmarshaller.unmarshal(url);
    }
}
@@ -708,16 +708,49 @@
 estCase;
+%0Aimport org.xml.sax.ErrorHandler;
 %0A%0Apublic
@@ -1059,49 +1059,8 @@
 l%22;%0A
-    private XMLMarshaller xmlMarshaller;%0A
     
@@ -1393,24 +1393,87 @@
 rshaller();%0A
+        xmlUnmarshaller.setErrorHandler(new MyErrorHandler());%0A
     %7D%0A%0A    p
@@ -1612,33 +1612,36 @@
 hal(url);%0A    %7D%0A
+   
 %0A
-
     public void 
@@ -2427,32 +2427,32 @@
 _XML_RESOURCE);%0A
-
         xmlUnmar
@@ -2481,9 +2481,520 @@
 ;%0A    %7D%0A
+    %0A    /**%0A     * Error handler implementation for handling parser errors%0A     */%0A    class MyErrorHandler implements ErrorHandler %7B%0A    %09public void warning(org.xml.sax.SAXParseException sex) throws org.xml.sax.SAXParseException %7B%0A    %09%09throw sex;%0A    %09%7D%0A    %09public void error(org.xml.sax.SAXParseException sex) throws org.xml.sax.SAXParseException %7B%0A    %09%09throw sex;%0A    %09%7D%0A    %09public void fatalError(org.xml.sax.SAXParseException sex) throws org.xml.sax.SAXParseException %7B%0A    %09%09throw sex;%0A    %09%7D%0A    %7D%0A
 %7D

Use error handler for schema validation testing