Java by API/org.xml.sax/SAXParseException

Материал из Java эксперт
Перейти к: навигация, поиск

catch SAXParseException

   <source lang="java">

import java.io.StringReader; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.ErrorHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.XMLReader; public class MainClass {

 static public void main(String[] arg) throws Exception{
   boolean validate = false;
   SAXParserFactory spf = SAXParserFactory.newInstance();
   spf.setValidating(validate);
   XMLReader reader = null;
     SAXParser parser = spf.newSAXParser();
     reader = parser.getXMLReader();
   reader.setErrorHandler(new MyErrorHandler());
     reader.parse(new InputSource(new StringReader(xmlString)));

}

 static String xmlString = "<PHONEBOOK>" +
 "  <PERSON>" +
 "   <NAME>Joe Wang</NAME>" +
 "   <EMAIL>joe@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>202-999-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  <PERSON>   " +
 "<NAME>Karol</NAE>" +    // error here
 "   <EMAIL>karol@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>306-999-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  <PERSON>" +
 "   <NAME>Green</NAME>" +
 "   <EMAIL>green@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>202-414-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  </PHONEBOOK>";

} class MyErrorHandler implements ErrorHandler {

 public void warning(SAXParseException e) throws SAXException {
   show("Warning", e);
   throw (e);
 }
 public void error(SAXParseException e) throws SAXException {
   show("Error", e);
   throw (e);
 }
 public void fatalError(SAXParseException e) throws SAXException {
   show("Fatal Error", e);
   throw (e);
 }
 private void show(String type, SAXParseException e) {
   System.out.println(type + ": " + e.getMessage());
   System.out.println("Line " + e.getLineNumber() + " Column "
       + e.getColumnNumber());
   System.out.println("System ID: " + e.getSystemId());
 }

}

      </source>
   
  
 
  



SAXParseException: getColumnNumber()

   <source lang="java">

import java.io.File; import java.io.FileReader; import java.io.IOException; import javax.xml.XMLConstants; import javax.xml.transform.sax.SAXSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; public class MainClass {

 public static void main(String[] args) throws IOException {
   File documentFile = new File(args[0]);
   File schemaFile = new File(args[1]);
   SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
   Schema schema = null;
   try {
     schema = factory.newSchema(schemaFile);
   } catch (SAXException e) {
     fail(e);
   }
   Validator validator = schema.newValidator();
   SAXSource source = new SAXSource(new InputSource(new FileReader(documentFile)));
   try {
     validator.validate(source);
   } catch (SAXException e) {
     fail(e);
   }
 }
 static void fail(SAXException e) {
   if (e instanceof SAXParseException) {
     SAXParseException spe = (SAXParseException) e;
     System.err.printf("%s:%d:%d: %s%n", spe.getSystemId(), spe.getLineNumber(), spe
         .getColumnNumber(), spe.getMessage());
   } else {
     System.err.println(e.getMessage());
   }
   System.exit(1);
 }

}

      </source>
   
  
 
  



SAXParseException: getLineNumber()

   <source lang="java">

import java.io.StringReader; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.ErrorHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.XMLReader; public class MainClass {

 static public void main(String[] arg) throws Exception{
   boolean validate = false;
   SAXParserFactory spf = SAXParserFactory.newInstance();
   spf.setValidating(validate);
   XMLReader reader = null;
     SAXParser parser = spf.newSAXParser();
     reader = parser.getXMLReader();
   reader.setErrorHandler(new MyErrorHandler());
     reader.parse(new InputSource(new StringReader(xmlString)));

}

 static String xmlString = "<PHONEBOOK>" +
 "  <PERSON>" +
 "   <NAME>Joe Wang</NAME>" +
 "   <EMAIL>joe@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>202-999-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  <PERSON>   " +
 "<NAME>Karol</NAE>" +    // error here
 "   <EMAIL>karol@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>306-999-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  <PERSON>" +
 "   <NAME>Green</NAME>" +
 "   <EMAIL>green@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>202-414-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  </PHONEBOOK>";

} class MyErrorHandler implements ErrorHandler {

 public void warning(SAXParseException e) throws SAXException {
   show("Warning", e);
   throw (e);
 }
 public void error(SAXParseException e) throws SAXException {
   show("Error", e);
   throw (e);
 }
 public void fatalError(SAXParseException e) throws SAXException {
   show("Fatal Error", e);
   throw (e);
 }
 private void show(String type, SAXParseException e) {
   System.out.println(type + ": " + e.getMessage());
   System.out.println("Line " + e.getLineNumber() + " Column "
       + e.getColumnNumber());
   System.out.println("System ID: " + e.getSystemId());
 }

}

      </source>
   
  
 
  



SAXParseException: getSystemId()

   <source lang="java">

import java.io.StringReader; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.ErrorHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.XMLReader; public class MainClass {

 static public void main(String[] arg) throws Exception{
   boolean validate = false;
   SAXParserFactory spf = SAXParserFactory.newInstance();
   spf.setValidating(validate);
   XMLReader reader = null;
     SAXParser parser = spf.newSAXParser();
     reader = parser.getXMLReader();
   reader.setErrorHandler(new MyErrorHandler());
     reader.parse(new InputSource(new StringReader(xmlString)));

}

 static String xmlString = "<PHONEBOOK>" +
 "  <PERSON>" +
 "   <NAME>Joe Wang</NAME>" +
 "   <EMAIL>joe@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>202-999-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  <PERSON>   " +
 "<NAME>Karol</NAE>" +    // error here
 "   <EMAIL>karol@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>306-999-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  <PERSON>" +
 "   <NAME>Green</NAME>" +
 "   <EMAIL>green@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>202-414-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  </PHONEBOOK>";

} class MyErrorHandler implements ErrorHandler {

 public void warning(SAXParseException e) throws SAXException {
   show("Warning", e);
   throw (e);
 }
 public void error(SAXParseException e) throws SAXException {
   show("Error", e);
   throw (e);
 }
 public void fatalError(SAXParseException e) throws SAXException {
   show("Fatal Error", e);
   throw (e);
 }
 private void show(String type, SAXParseException e) {
   System.out.println(type + ": " + e.getMessage());
   System.out.println("Line " + e.getLineNumber() + " Column "
       + e.getColumnNumber());
   System.out.println("System ID: " + e.getSystemId());
 }

}

      </source>