@Override public final void processingInstruction(String target, String data) throws SAXException { try { processingInstructionInternal(target, data); } catch (XMLStreamException ex) { throw new SAXException("Could not handle processingInstruction: " + ex.getMessage(), ex); } }
@Override public final void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { try { ignorableWhitespaceInternal(new String(ch, start, length)); } catch (XMLStreamException ex) { throw new SAXException( "Could not handle ignorableWhitespace:" + ex.getMessage(), ex); } }
@Override public final void comment(char[] ch, int start, int length) throws SAXException { try { commentInternal(new String(ch, start, length)); } catch (XMLStreamException ex) { throw new SAXException("Could not handle comment: " + ex.getMessage(), ex); } }
@Override public Object next() { try { return nextEvent(); } catch (XMLStreamException ex) { throw new NoSuchElementException(ex.getMessage()); } }
@Override public final void skippedEntity(String name) throws SAXException { try { skippedEntityInternal(name); } catch (XMLStreamException ex) { throw new SAXException("Could not handle skippedEntity: " + ex.getMessage(), ex); } }
@Override public final void startDTD(String name, @Nullable String publicId, String systemId) throws SAXException { try { StringBuilder builder = new StringBuilder("<!DOCTYPE "); builder.append(name); if (publicId != null) { builder.append(" PUBLIC \""); builder.append(publicId); builder.append("\" \""); } else { builder.append(" SYSTEM \""); } builder.append(systemId); builder.append("\">"); dtdInternal(builder.toString()); } catch (XMLStreamException ex) { throw new SAXException("Could not handle startDTD: " + ex.getMessage(), ex); } }
@Override public final void endDocument() throws SAXException { removeAllNamespaceMappings(); try { endDocumentInternal(); } catch (XMLStreamException ex) { throw new SAXException("Could not handle endDocument: " + ex.getMessage(), ex); } }
@Override public final void characters(char[] ch, int start, int length) throws SAXException { try { String data = new String(ch, start, length); if (!this.inCData) { charactersInternal(data); } else { cDataInternal(data); } } catch (XMLStreamException ex) { throw new SAXException("Could not handle characters: " + ex.getMessage(), ex); } }
@Override public final void processingInstruction(String target, String data) throws SAXException { try { processingInstructionInternal(target, data); } catch (XMLStreamException ex) { throw new SAXException("Could not handle processingInstruction: " + ex.getMessage(), ex); } }
@Override public final void skippedEntity(String name) throws SAXException { try { skippedEntityInternal(name); } catch (XMLStreamException ex) { throw new SAXException("Could not handle skippedEntity: " + ex.getMessage(), ex); } }
/** * Constructs a new instance of the {@code StaxEventXmlReader} that reads from * the given {@code XMLEventReader}. The supplied event reader must be in * {@code XMLStreamConstants.START_DOCUMENT} or {@code XMLStreamConstants.START_ELEMENT} state. * @param reader the {@code XMLEventReader} to read from * @throws IllegalStateException if the reader is not at the start of a document or element */ StaxEventXMLReader(XMLEventReader reader) { try { XMLEvent event = reader.peek(); if (event != null && !(event.isStartDocument() || event.isStartElement())) { throw new IllegalStateException("XMLEventReader not at start of document or element"); } } catch (XMLStreamException ex) { throw new IllegalStateException("Could not read first element: " + ex.getMessage()); } this.reader = reader; }
@Override public final void startDocument() throws SAXException { removeAllNamespaceMappings(); newNamespaceMapping(); try { startDocumentInternal(); } catch (XMLStreamException ex) { throw new SAXException("Could not handle startDocument: " + ex.getMessage(), ex); } }
@Override public final void endDocument() throws SAXException { removeAllNamespaceMappings(); try { endDocumentInternal(); } catch (XMLStreamException ex) { throw new SAXException("Could not handle endDocument: " + ex.getMessage(), ex); } }
@Override public final void endElement(String uri, String localName, String qName) throws SAXException { try { endElementInternal(toQName(uri, qName), currentNamespaceMapping()); removeNamespaceMapping(); } catch (XMLStreamException ex) { throw new SAXException("Could not handle endElement: " + ex.getMessage(), ex); } }
@Override public final void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { try { startElementInternal(toQName(uri, qName), atts, currentNamespaceMapping()); newNamespaceMapping(); } catch (XMLStreamException ex) { throw new SAXException("Could not handle startElement: " + ex.getMessage(), ex); } }
private Source readStAXSource(InputStream body, HttpInputMessage inputMessage) { try { XMLInputFactory inputFactory = XMLInputFactory.newInstance(); inputFactory.setProperty(XMLInputFactory.SUPPORT_DTD, isSupportDtd()); inputFactory.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, isProcessExternalEntities()); if (!isProcessExternalEntities()) { inputFactory.setXMLResolver(NO_OP_XML_RESOLVER); } XMLStreamReader streamReader = inputFactory.createXMLStreamReader(body); return new StAXSource(streamReader); } catch (XMLStreamException ex) { throw new HttpMessageNotReadableException( "Could not parse document: " + ex.getMessage(), ex, inputMessage); } }
@Override public final void endElement(String uri, String localName, String qName) throws SAXException { try { endElementInternal(toQName(uri, qName), currentNamespaceMapping()); removeNamespaceMapping(); } catch (XMLStreamException ex) { throw new SAXException("Could not handle endElement: " + ex.getMessage(), ex); } }
@Override public final void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { try { startElementInternal(toQName(uri, qName), atts, currentNamespaceMapping()); newNamespaceMapping(); } catch (XMLStreamException ex) { throw new SAXException("Could not handle startElement: " + ex.getMessage(), ex); } }
private void parse() throws SAXException { try { parseInternal(); } catch (XMLStreamException ex) { Locator locator = null; if (ex.getLocation() != null) { locator = new StaxLocator(ex.getLocation()); } SAXParseException saxException = new SAXParseException(ex.getMessage(), locator, ex); if (getErrorHandler() != null) { getErrorHandler().fatalError(saxException); } else { throw saxException; } } }
@Test public void testGetElementTextThrowsExceptionAtWrongPosition() throws Exception { String xml = "<foo><bar>baz</bar></foo>"; List<XMLEvent> events = readEvents(xml); ListBasedXMLEventReader reader = new ListBasedXMLEventReader(events); assertEquals(START_DOCUMENT, reader.nextEvent().getEventType()); try { reader.getElementText(); fail("Should have thrown XMLStreamException"); } catch (XMLStreamException ex) { // expected assertTrue(ex.getMessage().startsWith("Not at START_ELEMENT")); } }