/** * Create a SAX {@link XMLReader} that reads from the given StAX {@link XMLStreamReader}. * @param streamReader the StAX stream reader * @return a XMLReader reading from the {@code streamWriter} */ public static XMLReader createXMLReader(XMLStreamReader streamReader) { return new StaxStreamXMLReader(streamReader); }
private void handleEndElement() throws SAXException { if (getContentHandler() != null) { QName qName = this.reader.getName(); if (hasNamespacesFeature()) { getContentHandler().endElement(qName.getNamespaceURI(), qName.getLocalPart(), toQualifiedName(qName)); for (int i = 0; i < this.reader.getNamespaceCount(); i++) { String prefix = this.reader.getNamespacePrefix(i); if (prefix == null) { prefix = ""; } endPrefixMapping(prefix); } } else { getContentHandler().endElement("", "", toQualifiedName(qName)); } } }
private void handleStartElement() throws SAXException { if (getContentHandler() != null) { QName qName = this.reader.getName(); if (hasNamespacesFeature()) { for (int i = 0; i < this.reader.getNamespaceCount(); i++) { startPrefixMapping(this.reader.getNamespacePrefix(i), this.reader.getNamespaceURI(i)); } for (int i = 0; i < this.reader.getAttributeCount(); i++) { String prefix = this.reader.getAttributePrefix(i); String namespace = this.reader.getAttributeNamespace(i); if (StringUtils.hasLength(namespace)) { startPrefixMapping(prefix, namespace); } } getContentHandler().startElement(qName.getNamespaceURI(), qName.getLocalPart(), toQualifiedName(qName), getAttributes()); } else { getContentHandler().startElement("", "", toQualifiedName(qName), getAttributes()); } } }
private void handleCharacters() throws SAXException { if (XMLStreamConstants.CDATA == this.reader.getEventType() && getLexicalHandler() != null) { getLexicalHandler().startCDATA(); } if (getContentHandler() != null) { getContentHandler().characters(this.reader.getTextCharacters(), this.reader.getTextStart(), this.reader.getTextLength()); } if (XMLStreamConstants.CDATA == this.reader.getEventType() && getLexicalHandler() != null) { getLexicalHandler().endCDATA(); } }
if (eventType != XMLStreamConstants.START_DOCUMENT && eventType != XMLStreamConstants.END_DOCUMENT && !documentStarted) { handleStartDocument(); documentStarted = true; case XMLStreamConstants.START_ELEMENT: elementDepth++; handleStartElement(); break; case XMLStreamConstants.END_ELEMENT: elementDepth--; if (elementDepth >= 0) { handleEndElement(); handleProcessingInstruction(); break; case XMLStreamConstants.CHARACTERS: case XMLStreamConstants.SPACE: case XMLStreamConstants.CDATA: handleCharacters(); break; case XMLStreamConstants.START_DOCUMENT: handleStartDocument(); documentStarted = true; break; case XMLStreamConstants.END_DOCUMENT: handleEndDocument(); documentEnded = true; break;
if (getContentHandler() != null) { final Location location = this.reader.getLocation(); getContentHandler().setDocumentLocator(new Locator2() { @Override public int getColumnNumber() { getContentHandler().startDocument(); if (this.reader.standaloneSet()) { setStandalone(this.reader.isStandalone());
private void handleEntityReference() throws SAXException { if (getLexicalHandler() != null) { getLexicalHandler().startEntity(this.reader.getLocalName()); } if (getLexicalHandler() != null) { getLexicalHandler().endEntity(this.reader.getLocalName()); } }
private void handleEndDocument() throws SAXException { if (getContentHandler() != null) { getContentHandler().endDocument(); } }
@Test public void partial() throws Exception { XMLInputFactory inputFactory = XMLInputFactory.newInstance(); XMLStreamReader streamReader = inputFactory.createXMLStreamReader(new StringReader(CONTENT)); streamReader.nextTag(); // skip to root assertEquals("Invalid element", new QName("http://springframework.org/spring-ws", "root"), streamReader.getName()); streamReader.nextTag(); // skip to child assertEquals("Invalid element", new QName("http://springframework.org/spring-ws", "child"), streamReader.getName()); StaxStreamXMLReader xmlReader = new StaxStreamXMLReader(streamReader); ContentHandler contentHandler = mock(ContentHandler.class); xmlReader.setContentHandler(contentHandler); xmlReader.parse(new InputSource()); verify(contentHandler).setDocumentLocator(any(Locator.class)); verify(contentHandler).startDocument(); verify(contentHandler).startElement(eq("http://springframework.org/spring-ws"), eq("child"), eq("child"), any(Attributes.class)); verify(contentHandler).endElement("http://springframework.org/spring-ws", "child", "child"); verify(contentHandler).endDocument(); }
if (eventType != XMLStreamConstants.START_DOCUMENT && eventType != XMLStreamConstants.END_DOCUMENT && !documentStarted) { handleStartDocument(); documentStarted = true; case XMLStreamConstants.START_ELEMENT: elementDepth++; handleStartElement(); break; case XMLStreamConstants.END_ELEMENT: elementDepth--; if (elementDepth >= 0) { handleEndElement(); handleProcessingInstruction(); break; case XMLStreamConstants.CHARACTERS: case XMLStreamConstants.SPACE: case XMLStreamConstants.CDATA: handleCharacters(); break; case XMLStreamConstants.START_DOCUMENT: handleStartDocument(); documentStarted = true; break; case XMLStreamConstants.END_DOCUMENT: handleEndDocument(); documentEnded = true; break;
private void handleCharacters() throws SAXException { if (XMLStreamConstants.CDATA == this.reader.getEventType() && getLexicalHandler() != null) { getLexicalHandler().startCDATA(); } if (getContentHandler() != null) { getContentHandler().characters(this.reader.getTextCharacters(), this.reader.getTextStart(), this.reader.getTextLength()); } if (XMLStreamConstants.CDATA == this.reader.getEventType() && getLexicalHandler() != null) { getLexicalHandler().endCDATA(); } }
if (getContentHandler() != null) { final Location location = this.reader.getLocation(); getContentHandler().setDocumentLocator(new Locator2() { @Override public int getColumnNumber() { getContentHandler().startDocument(); if (this.reader.standaloneSet()) { setStandalone(this.reader.isStandalone());
private void handleDtd() throws SAXException { if (getLexicalHandler() != null) { Location location = this.reader.getLocation(); getLexicalHandler().startDTD(null, location.getPublicId(), location.getSystemId()); } if (getLexicalHandler() != null) { getLexicalHandler().endDTD(); } }
private void handleEndDocument() throws SAXException { if (getContentHandler() != null) { getContentHandler().endDocument(); } }
if (eventType != XMLStreamConstants.START_DOCUMENT && eventType != XMLStreamConstants.END_DOCUMENT && !documentStarted) { handleStartDocument(); documentStarted = true; case XMLStreamConstants.START_ELEMENT: elementDepth++; handleStartElement(); break; case XMLStreamConstants.END_ELEMENT: elementDepth--; if (elementDepth >= 0) { handleEndElement(); handleProcessingInstruction(); break; case XMLStreamConstants.CHARACTERS: case XMLStreamConstants.SPACE: case XMLStreamConstants.CDATA: handleCharacters(); break; case XMLStreamConstants.START_DOCUMENT: handleStartDocument(); documentStarted = true; break; case XMLStreamConstants.END_DOCUMENT: handleEndDocument(); documentEnded = true; break;
private void handleStartElement() throws SAXException { if (getContentHandler() != null) { QName qName = this.reader.getName(); if (hasNamespacesFeature()) { for (int i = 0; i < this.reader.getNamespaceCount(); i++) { startPrefixMapping(this.reader.getNamespacePrefix(i), this.reader.getNamespaceURI(i)); } for (int i = 0; i < this.reader.getAttributeCount(); i++) { String prefix = this.reader.getAttributePrefix(i); String namespace = this.reader.getAttributeNamespace(i); if (StringUtils.hasLength(namespace)) { startPrefixMapping(prefix, namespace); } } getContentHandler().startElement(qName.getNamespaceURI(), qName.getLocalPart(), toQualifiedName(qName), getAttributes()); } else { getContentHandler().startElement("", "", toQualifiedName(qName), getAttributes()); } } }
private void handleEndElement() throws SAXException { if (getContentHandler() != null) { QName qName = this.reader.getName(); if (hasNamespacesFeature()) { getContentHandler().endElement(qName.getNamespaceURI(), qName.getLocalPart(), toQualifiedName(qName)); for (int i = 0; i < this.reader.getNamespaceCount(); i++) { String prefix = this.reader.getNamespacePrefix(i); if (prefix == null) { prefix = ""; } endPrefixMapping(prefix); } } else { getContentHandler().endElement("", "", toQualifiedName(qName)); } } }
private void handleCharacters() throws SAXException { if (getContentHandler() != null && reader.isWhiteSpace()) { getContentHandler() .ignorableWhitespace(reader.getTextCharacters(), reader.getTextStart(), reader.getTextLength()); return; } if (XMLStreamConstants.CDATA == reader.getEventType() && getLexicalHandler() != null) { getLexicalHandler().startCDATA(); } if (getContentHandler() != null) { getContentHandler().characters(reader.getTextCharacters(), reader.getTextStart(), reader.getTextLength()); } if (XMLStreamConstants.CDATA == reader.getEventType() && getLexicalHandler() != null) { getLexicalHandler().endCDATA(); } }
if (getContentHandler() != null) { final Location location = reader.getLocation(); getContentHandler().setDocumentLocator(new Locator2() { getContentHandler().startDocument(); if (reader.standaloneSet()) { setStandalone(reader.isStandalone());
/** * Construct a new instance of the {@code StaxSource} with the specified {@code XMLStreamReader}. * The supplied stream reader must be in {@code XMLStreamConstants.START_DOCUMENT} or * {@code XMLStreamConstants.START_ELEMENT} state. * @param streamReader the {@code XMLStreamReader} to read from * @throws IllegalStateException if the reader is not at the start of a document or element */ StaxSource(XMLStreamReader streamReader) { super(new StaxStreamXMLReader(streamReader), new InputSource()); this.streamReader = streamReader; }