📄 saxhandlerbase.java
字号:
} throw new XmlBlasterException(this.glob, ErrorCode.RESOURCE_CONFIGURATION, ME + ".parse()", "Error while SAX parsing " + location, e); } finally { locator = null; } } /** * @return returns the literal xml string */ public String toString() { return xmlLiteral; } /** * @return returns the literal xml string */ public String toXml() { return xmlLiteral; } /* * trims outer CDATA and spaces public String trimAll(String in) { String tmp = in.trim(); if (tmp.startsWith("<![CDATA[")) { tmp = tmp.substring("<![CDATA[".length()); int last = tmp.lastIndexOf("]]>"); if (last > -1) { tmp = tmp.substring(0, last); return tmp.trim(); } } return in; } */ // // ContentHandler (or DefaultHandler) methods // /** * Characters. * The text between two tags, in the following example 'Hello': * <key>Hello</key> */ public void characters(char ch[], int start, int length) { // log.info(ME, "Entering characters(str=" + new String(ch, start, length) + ")"); character.append(ch, start, length); } /** End document. */ public void endDocument() { //log.warn(ME, "Entering endDocument() ..."); } public void endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName) throws org.xml.sax.SAXException { log.warning("Please provide your endElement() implementation"); } public void endPrefixMapping(java.lang.String prefix) { log.finest("Entering endPrefixMapping(prefix="+prefix+") ..."); } /** Ignorable whitespace. */ public void ignorableWhitespace(char[] ch, int start, int length) { // log.info(ME, "Entering ignorableWhitespace(str=" + new String(ch, start, length) + ")"); } /** Processing instruction. */ public void processingInstruction(java.lang.String target, java.lang.String data) { // log.info(ME, "Entering processingInstruction(target=" + target + " data=" + data); } public void setDocumentLocator(Locator locator) { this.locator = locator; } public void skippedEntity(java.lang.String name) { log.warning("Entering skippedEntity() ..."); } /** Start document. */ public void startDocument() { // log.info(ME, "Entering startDocument"); } //public InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId) { // log.warn(ME, "Entering resolveEntity(publicId="+publicId+", systemId="+systemId+")"); // return null; //} /** * Receive notification of the beginning of an element. * The Parser will invoke this method at the beginning of every element in the XML document; * there will be a corresponding endElement event for every startElement event (even when the element is empty). * All of the element's content will be reported, in order, before the corresponding endElement event. * <p> * Example: * </p> * <p> * With a namespace: <database:adapter xmlns:database='http://www.xmlBlaster.org/jdbc'/> * </p> * <p> * uri=http://www.xmlBlaster.org/jdbc * localName=adapter * name=database:adapter * </p> * * <p> * Without a namespace: <adapter/> * </p> * <p> * uri= * localName=adapter * name=adapter * </p> */ public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws org.xml.sax.SAXException { log.warning("Please provide your startElement() implementation"); } public void startPrefixMapping(java.lang.String prefix, java.lang.String uri) { log.finest("Entering startPrefixMapping() ..."); } //========== ErrorHandler interface methods ============= /** Warning. */ public void warning(SAXParseException ex) { // "Declared encoding "UTF-8" does not match actual one "UTF8" -> Why this strange warning?? String msg = ex.getMessage(); if (msg!=null && msg.startsWith("Declared encoding")) { log.fine("warning: " + getLocationString(ex) + ": " + ex.getMessage() + " PublicId=" + ex.getPublicId() + ", SystemId=" + ex.getSystemId() + "\n" + xmlLiteral); } else { log.warning("warning: " + getLocationString(ex) + ": " + ex.getMessage() + " PublicId=" + ex.getPublicId() + ", SystemId=" + ex.getSystemId() + "\n" + xmlLiteral); } } /** Error. */ public void error(SAXParseException ex) { log.warning("error: " + getLocationString(ex) + ": " + ex.getMessage() + "\n" + xmlLiteral); } /** Fatal error. */ public void fatalError(SAXParseException ex) throws SAXException { if (ex.getMessage().indexOf("org.xmlBlaster.util.StopParseException") > -1) { // org.xml.sax.SAXParseException // using Picolo SAX2 parser we end up here if (log.isLoggable(Level.FINE)) log.fine("Parsing execution stopped half the way"); return; } if (log.isLoggable(Level.FINE)) { log.fine(getLocationString(ex) + ": " + ex.getMessage() + "\n" + xmlLiteral); ex.printStackTrace(); } throw ex; } /** */ public void notationDecl(String name, String publicId, String systemId) { if (log.isLoggable(Level.FINE)) log.fine("notationDecl(name="+name+", publicId="+publicId+", systemId="+systemId+")"); } /** */ public void unparsedEntityDecl(String name, String publicId, String systemId, String notationName) { if (log.isLoggable(Level.FINE)) log.fine("unparsedEntityDecl(name="+name+ ", publicId="+publicId+ ", systemId="+systemId+ ", notationName="+notationName+")"); } /** Returns a string of the location. */ private String getLocationString(SAXParseException ex) { StringBuffer str = new StringBuffer(); if (this.xmlSource != null) str.append(this.xmlSource).append(":"); String systemId = ex.getSystemId(); if (systemId != null) { int index = systemId.lastIndexOf('/'); if (index != -1) systemId = systemId.substring(index + 1); str.append(systemId); } str.append(':'); str.append(ex.getLineNumber()); str.append(':'); str.append(ex.getColumnNumber()); return str.toString(); } //=============== LexicalHandler interface ===================== /** Report an XML comment anywhere in the document. (interface LexicalHandler) */ public void comment(char[] ch, int start, int length) { //if (log.isLoggable(Level.FINE)) log.trace(ME, "Entering comment(str=" + new String(ch, start, length) + ")"); } /** Report the end of a CDATA section. (interface LexicalHandler) */ public void endCDATA() { //if (log.isLoggable(Level.FINE)) log.trace(ME, "endCDATA()"); } /** Report the end of DTD declarations. (interface LexicalHandler) */ public void endDTD() { //if (log.isLoggable(Level.FINE)) log.trace(ME, "endDTD()"); } /** Report the end of an entity. (interface LexicalHandler) */ public void endEntity(java.lang.String name) { //if (log.isLoggable(Level.FINE)) log.trace(ME, "endEntity(name="+name+")"); } /** Report the start of a CDATA section. (interface LexicalHandler) */ public void startCDATA() { //if (log.isLoggable(Level.FINE)) log.trace(ME, "startCDATA()"); } /** Report the start of DTD declarations, if any. (interface LexicalHandler) */ public void startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) { //if (log.isLoggable(Level.FINE)) log.trace(ME, "startDTD(name="+name+", publicId="+publicId+", systemId="+systemId+")"); } /** Report the beginning of some internal and external XML entities. (interface LexicalHandler) */ public void startEntity(java.lang.String name) { //if (log.isLoggable(Level.FINE)) log.trace(ME, "startEntity(name="+name+")"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -