Java by API/org.xml.sax/SAXParseException
Содержание
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>