import java.io.*;
import org.xml.sax.*;
import javax.xml.*;
import javax.xml.parsers.*; 
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import javax.xml.validation.*;  
import org.w3c.dom.*;
public class parsen {
 static Document document=null;
 public static void main(String param[]) {
  if (param.length!=2) {
   System.out.println("uebergabeparameter vergessen");
   System.exit(1);
  }
   try {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    document = builder.parse( new File(param[0]) );
    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();
    validator.validate(new DOMSource(document));
   }
   catch (SAXParseException error)  {
    System.out.println("\n+++Parse Error+++"+ "\nZeile: " + error.getLineNumber() + "\nDatei: " + error.getSystemId());
    System.out.println("\n" + error.getMessage() );
   }
   catch (IOException ioerror) {
     System.out.println("IO-Fehler: " + ioerror.getMessage());
   }
   catch (Throwable t)   {
     t.printStackTrace();
   }
 }
}
