📄 domlsparser.java
字号:
true); } catch (SAXNotRecognizedException e) { // ignore } reader.setEntityResolver(entityResolver); reader.setErrorHandler(errorHandler); // parse reader.parse(source); } catch (DOMException e) { reader = null; eventSink = null; throw e; } catch (SAXException e) { reader = null; eventSink = null; throw new DomLSException(LSException.PARSE_ERR, e); } catch (IOException e) { reader = null; eventSink = null; throw new DomLSException(LSException.PARSE_ERR, e); } // return document Document ret = eventSink.doc; String systemId = input.getSystemId(); if (systemId != null && ret instanceof DomDocument) { ((DomDocument) ret).setDocumentURI(systemId); } eventSink = null; return ret; } private XMLReader getXMLReader() throws LSException { if (reader == null) { factory.setNamespaceAware(namespaceAware); factory.setValidating(validating); factory.setXIncludeAware(xIncludeAware); try { SAXParser parser = factory.newSAXParser(); reader = parser.getXMLReader(); } catch (ParserConfigurationException e) { throw new DomLSException(LSException.PARSE_ERR, e); } catch (SAXException e) { throw new DomLSException(LSException.PARSE_ERR, e); } } return reader; } private InputSource getInputSource(LSInput input) throws LSException { InputSource source = null; String systemId = input.getSystemId(); InputStream in = input.getByteStream(); if (in != null) { source = new InputSource(in); source.setSystemId(systemId); } if (source == null && entityResolver != null) { String publicId = input.getPublicId(); try { source = entityResolver.resolveEntity(publicId, systemId); } catch (SAXException e) { throw new DomLSException(LSException.PARSE_ERR, e); } catch (IOException e) { throw new DomLSException(LSException.PARSE_ERR, e); } } if (source == null) { URL url = null; String base = input.getBaseURI(); try { try { URL baseURL = (base == null) ? null : new URL(base); url = (baseURL == null) ? new URL(systemId) : new URL(baseURL, systemId); } catch (MalformedURLException e) { File baseFile = (base == null) ? null : new File(base); url = (baseFile == null) ? new File(systemId).toURL() : new File(baseFile, systemId).toURL(); } in = url.openStream(); systemId = url.toString(); source = new InputSource(in); source.setSystemId(systemId); } catch (IOException e) { throw new DomLSException(LSException.PARSE_ERR, e); } } return source; } // -- DOMConfiguration -- public void setParameter(String name, Object value) throws DOMException { name = name.toLowerCase(); if ("cdata-sections".equals(name)) { coalescing = !((Boolean) value).booleanValue(); } else if ("comments".equals(name)) { ignoreComments = !((Boolean) value).booleanValue(); } else if ("element-content-whitespace".equals(name)) { ignoreWhitespace = !((Boolean) value).booleanValue(); } else if ("namespaces".equals(name)) { namespaceAware = ((Boolean) value).booleanValue(); } else if ("expand-entity-references".equals(name)) { expandEntityReferences = ((Boolean) value).booleanValue(); } else if ("coalescing".equals(name)) { coalescing = ((Boolean) value).booleanValue(); } else if ("validating".equals(name)) { validating = ((Boolean) value).booleanValue(); } else if ("xinclude-aware".equals(name)) { xIncludeAware = ((Boolean) value).booleanValue(); } else if ("entity-resolver".equals(name)) { entityResolver = (EntityResolver) value; } else if ("error-handler".equals(name)) { errorHandler = (ErrorHandler) value; } else { throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR); } // invalidate reader, a new one will be created reader = null; } public Object getParameter(String name) throws DOMException { name = name.toLowerCase(); if ("cdata-sections".equals(name)) { return coalescing ? Boolean.FALSE : Boolean.TRUE; } else if ("comments".equals(name)) { return ignoreComments ? Boolean.FALSE : Boolean.TRUE; } else if ("element-content-whitespace".equals(name)) { return ignoreWhitespace ? Boolean.FALSE : Boolean.TRUE; } else if ("namespaces".equals(name)) { return namespaceAware ? Boolean.TRUE : Boolean.FALSE; } else if ("expand-entity-references".equals(name)) { return expandEntityReferences ? Boolean.TRUE : Boolean.FALSE; } else if ("coalescing".equals(name)) { return coalescing ? Boolean.TRUE : Boolean.FALSE; } else if ("validating".equals(name)) { return validating ? Boolean.TRUE : Boolean.FALSE; } else if ("xinclude-aware".equals(name)) { return xIncludeAware ? Boolean.TRUE : Boolean.FALSE; } else if ("entity-resolver".equals(name)) { return entityResolver; } else if ("error-handler".equals(name)) { return errorHandler; } else { throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR); } } public boolean canSetParameter(String name, Object value) { return contains(name); } public DOMStringList getParameterNames() { return this; } // -- DOMStringList -- public String item(int i) { return (String) SUPPORTED_PARAMETERS.get(i); } public int getLength() { return SUPPORTED_PARAMETERS.size(); } public boolean contains(String str) { return SUPPORTED_PARAMETERS.contains(str); } // -- ErrorHandler -- public void warning(SAXParseException e) throws SAXException { if (errorHandler != null) { errorHandler.warning(e); } } public void error(SAXParseException e) throws SAXException { if (errorHandler != null) { errorHandler.error(e); } } public void fatalError(SAXParseException e) throws SAXException { if (errorHandler != null) { errorHandler.fatalError(e); } abort(); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -