import java.io.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.sax.*;
import javax.xml.validation.*;  
public class saxen extends DefaultHandler {
 public static void main(String param[]) {
  if (param.length!=2) {
   System.out.println("uebergabeparameter vergessen");
   System.exit(1);
  }
  DefaultHandler handler = new saxen();
  try {
   SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
   Source schemaFile = new StreamSource(new File(param[1]));
   Schema schema = schemafactory.newSchema(schemaFile);
   Validator validator = schema.newValidator();
   InputSource input=new InputSource (param[0]);
   validator.validate(new SAXSource(input));
  }
  catch (SAXParseException error)  {
   System.out.println("\n+++Parse Error+++"+ "\nZeile: " + error.getLineNumber() + "\nDatei: " + error.getSystemId());
   System.out.println("\n" + error.getMessage() );
  }
  catch (Throwable t) {
   t.printStackTrace();
  }
 }
}
