List of usage examples for javax.xml.transform.stax StAXSource StAXSource
public StAXSource(final XMLStreamReader xmlStreamReader)
Creates a new instance of a StAXSource
by supplying an XMLStreamReader .
XMLStreamReader
must be a non-null
reference.
XMLStreamReader
must be in XMLStreamConstants#START_DOCUMENT or XMLStreamConstants#START_ELEMENT state.
From source file:Main.java
public static void main(String[] args) throws Exception { XMLInputFactory xif = XMLInputFactory.newInstance(); XMLStreamReader xsr = xif.createXMLStreamReader(new FileReader("input.xml")); xsr.nextTag(); // Advance to statements element TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); while (xsr.nextTag() == XMLStreamConstants.START_ELEMENT) { DOMResult result = new DOMResult(); t.transform(new StAXSource(xsr), result); Node domNode = result.getNode(); }// w w w. j a va 2s.co m }
From source file:Main.java
public static void main(String[] args) throws Exception { XMLInputFactory xif = XMLInputFactory.newInstance(); XMLStreamReader xsr = xif.createXMLStreamReader(new FileReader("input.xml")); xsr.nextTag(); // Advance to statements element TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); while (xsr.nextTag() == XMLStreamConstants.START_ELEMENT) { File file = new File("out/" + xsr.getAttributeValue(null, "account") + ".xml"); t.transform(new StAXSource(xsr), new StreamResult(file)); }/*from w w w . j av a 2 s . co m*/ }
From source file:Main.java
public static void main(String[] args) throws Exception { XMLInputFactory xif = XMLInputFactory.newInstance(); XMLStreamReader xsr = xif.createXMLStreamReader(new FileReader("input.xml")); xsr.nextTag(); // Advance to statements element while (xsr.nextTag() == XMLStreamConstants.START_ELEMENT) { TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); File file = new File("out" + xsr.getAttributeValue(null, "account") + ".xml"); t.transform(new StAXSource(xsr), new StreamResult(file)); }//from w w w. j av a 2s .co m }
From source file:com.cisco.cta.taxii.adapter.ResponseTransformer.java
/** * Transforms TAXII response./*from w w w . j ava2s. c o m*/ * * @param resp HTTP response * @return TaxiiPollResponse if valid TAXII poll response was returned * @throws Exception When any error occurs. */ public TaxiiPollResponse transform(ClientHttpResponse resp) throws Exception { if (resp.getRawStatusCode() == HTTP_OK) { try (InputStream body = resp.getBody()) { TaxiiPollResponseReader responseReader = readerFactory.create(body); Transformer transformer = templates.newTransformer(); transformer.transform(new StAXSource(responseReader), new StreamResult(logWriter)); return responseReader.getResponse(); } } else { throw new IOException("HTTP response status " + resp.getRawStatusCode() + ":" + resp.getStatusText()); } }
From source file:demo.SourceHttpMessageConverter.java
private Source readStAXSource(InputStream body) { try {/* ww w. ja v a2 s . com*/ 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); } }
From source file:org.activiti.bpmn.converter.BpmnXMLConverter.java
public void validateModel(XMLStreamReader xmlStreamReader) throws Exception { Schema schema = createSchema(); Validator validator = schema.newValidator(); validator.validate(new StAXSource(xmlStreamReader)); }
From source file:org.apereo.portal.io.xml.IdentityImportExportTestUtilities.java
public static <T> void testIdentityImportExport(TransactionOperations transactionOperations, final IDataImporter<T> dataImporter, final IDataExporter<?> dataExporter, Resource resource, Function<T, String> getName) throws Exception { final String importData = toString(resource); final XMLInputFactory xmlInputFactory = XMLInputFactory.newFactory(); final XMLEventReader xmlEventReader = xmlInputFactory.createXMLEventReader(new StringReader(importData)); //Unmarshall from XML final Unmarshaller unmarshaller = dataImporter.getUnmarshaller(); final StAXSource source = new StAXSource(xmlEventReader); @SuppressWarnings("unchecked") final T dataImport = (T) unmarshaller.unmarshal(source); //Make sure the data was unmarshalled assertNotNull("Unmarshalled import data was null", dataImport); //Import the data dataImporter.importData(dataImport); //Export the data final String name = getName.apply(dataImport); final Object dataExport = transactionOperations.execute(new TransactionCallback<Object>() { /* (non-Javadoc) * @see org.springframework.transaction.support.TransactionCallback#doInTransaction(org.springframework.transaction.TransactionStatus) *///from w w w. j a v a 2 s .c om @Override public Object doInTransaction(TransactionStatus status) { return dataExporter.exportData(name); } }); //Make sure the data was exported assertNotNull("Exported data was null", dataExport); //Marshall to XML final Marshaller marshaller = dataExporter.getMarshaller(); final StringWriter result = new StringWriter(); marshaller.marshal(dataExport, new StreamResult(result)); //Compare the exported XML data with the imported XML data, they should match final String resultString = result.toString(); try { XMLUnit.setIgnoreWhitespace(true); Diff d = new Diff(new StringReader(importData), new StringReader(resultString)); assertTrue("Export result differs from import" + d, d.similar()); } catch (Exception e) { throw new XmlTestException("Failed to assert similar between import XML and export XML", resultString, e); } catch (Error e) { throw new XmlTestException("Failed to assert similar between import XML and export XML", resultString, e); } }
From source file:org.apereo.portal.io.xml.JaxbPortalDataHandlerService.java
protected Object unmarshallData(final XMLEventReader bufferedXmlEventReader, final IDataImporter<Object> dataImporterExporter) { final Unmarshaller unmarshaller = dataImporterExporter.getUnmarshaller(); try {//ww w. j a v a2s .c o m final StAXSource source = new StAXSource(bufferedXmlEventReader); return unmarshaller.unmarshal(source); } catch (XmlMappingException e) { throw new RuntimeException("Failed to map provided XML to portal data", e); } catch (IOException e) { throw new RuntimeException("Failed to read the provided XML data", e); } catch (XMLStreamException e) { throw new RuntimeException("Failed to create StAX Source to read XML data", e); } }
From source file:org.apereo.portal.portlets.sitemap.SitemapPortletController.java
/** * Display the user sitemap.//from w w w . ja v a 2 s .c o m * * @param request * @return "sitemapView" and a supporting model * @throws XMLStreamException * @throws IllegalStateException if components required for the SiteMap portlet fail to auto-wire */ @RequestMapping public ModelAndView displaySitemap(PortletRequest request) throws XMLStreamException { Map<String, Object> model = new HashMap<String, Object>(); if (this.xsltPortalUrlProvider == null) { throw new IllegalStateException( "Sitemap portlet requires a XsltPortalUrlProvider but it failed to " + "auto-wire"); } if (this.attributeIncorporationComponent == null) { throw new IllegalStateException( "Sitemap portlet requires a StAXPipelineComponent with qualifier structureAttributeIncorporationComponent but it failed to auto-wire"); } if (this.portalRequestUtils == null) { throw new IllegalStateException( "Sitemap portlet requires an IPortalRequestUtils but it failed to " + "auto-wire"); } // retrieve the user layout with structure attributes applied (required in order to display tab groups) final HttpServletRequest httpServletRequest = this.portalRequestUtils.getPortletHttpRequest(request); final HttpServletResponse httpServletResponse = this.portalRequestUtils.getOriginalPortalResponse(request); final PipelineEventReader<XMLEventReader, XMLEvent> reader = attributeIncorporationComponent .getEventReader(httpServletRequest, httpServletResponse); // create a Source from the user's layout document StAXSource source = new StAXSource(reader.getEventReader()); model.put("source", source); model.put(XsltPortalUrlProvider.CURRENT_REQUEST, httpServletRequest); model.put(XsltPortalUrlProvider.XSLT_PORTAL_URL_PROVIDER, this.xsltPortalUrlProvider); model.put(USE_TAB_GROUPS, useTabGroups); model.put(USER_LANG, ObjectUtils.toString(request.getLocale())); return new ModelAndView("sitemapView", model); }
From source file:org.apereo.portal.rendering.xslt.XSLTComponent.java
@Override public PipelineEventReader<XMLEventReader, XMLEvent> getEventReader(HttpServletRequest request, HttpServletResponse response) {//from w ww . j a v a 2s. c o m final PipelineEventReader<XMLEventReader, XMLEvent> pipelineEventReader = this.wrappedComponent .getEventReader(request, response); final Transformer transformer = this.transformerSource.getTransformer(request, response); //Setup a URIResolver based on the current resource loader transformer.setURIResolver(this.uriResolver); //Configure the Transformer via injected class if (this.xsltParameterSource != null) { final Map<String, Object> transformerParameters = this.xsltParameterSource.getParameters(request, response); if (transformerParameters != null) { this.logger.debug("{} - Setting Transformer Parameters: ", this.beanName, transformerParameters); for (final Map.Entry<String, Object> transformerParametersEntry : transformerParameters .entrySet()) { final String name = transformerParametersEntry.getKey(); final Object value = transformerParametersEntry.getValue(); if (value != null) { transformer.setParameter(name, value); } } } final Properties outputProperties = this.xsltParameterSource.getOutputProperties(request, response); if (outputProperties != null) { this.logger.debug("{} - Setting Transformer Output Properties: ", this.beanName, outputProperties); transformer.setOutputProperties(outputProperties); } } //The event reader from the previous component in the pipeline final XMLEventReader eventReader = pipelineEventReader.getEventReader(); //Wrap the event reader in a stream reader to avoid a JDK bug final XMLStreamReader streamReader; try { streamReader = new FixedXMLEventStreamReader(eventReader); } catch (XMLStreamException e) { throw new RuntimeException("Failed to create XMLStreamReader from XMLEventReader", e); } final Source xmlReaderSource = new StAXSource(streamReader); //Setup logging for the transform transformer.setErrorListener(this.errorListener); //Transform to a SAX ContentHandler to avoid JDK bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6775588 final XMLEventBufferWriter eventWriterBuffer = new XMLEventBufferWriter(); final ContentHandler contentHandler = StaxUtils.createLexicalContentHandler(eventWriterBuffer); contentHandler.setDocumentLocator(new LocatorImpl()); final SAXResult outputTarget = new SAXResult(contentHandler); try { this.logger.debug("{} - Begining XML Transformation", this.beanName); transformer.transform(xmlReaderSource, outputTarget); this.logger.debug("{} - XML Transformation complete", this.beanName); } catch (TransformerException e) { throw new RuntimeException("Failed to transform document", e); } final String mediaType = transformer.getOutputProperty(OutputKeys.MEDIA_TYPE); final List<XMLEvent> eventBuffer = eventWriterBuffer.getEventBuffer(); final XMLEventReader outputEventReader = new XMLEventBufferReader(eventBuffer.listIterator()); final Map<String, String> outputProperties = pipelineEventReader.getOutputProperties(); final PipelineEventReaderImpl<XMLEventReader, XMLEvent> pipelineEventReaderImpl = new PipelineEventReaderImpl<XMLEventReader, XMLEvent>( outputEventReader, outputProperties); pipelineEventReaderImpl.setOutputProperty(OutputKeys.MEDIA_TYPE, mediaType); return pipelineEventReaderImpl; }