private static XMLEventReader getXMLEventReader(StAXSource source) throws XMLStreamException { XMLEventReader reader = source.getXMLEventReader(); if (reader == null) { XMLInputFactory inputFactory = XMLType.getXmlInputFactory(); reader = inputFactory.createXMLEventReader(source.getXMLStreamReader()); } return reader; }
private static XMLEventReader getXMLEventReader(StAXSource source) throws XMLStreamException { XMLEventReader reader = source.getXMLEventReader(); if (reader == null) { XMLInputFactory inputFactory = XMLType.getXmlInputFactory(); reader = inputFactory.createXMLEventReader(source.getXMLStreamReader()); } return reader; }
private static XMLEventReader getXMLEventReader(StAXSource source) throws XMLStreamException { XMLEventReader reader = source.getXMLEventReader(); if (reader == null) { XMLInputFactory inputFactory = XMLType.getXmlInputFactory(); reader = inputFactory.createXMLEventReader(source.getXMLStreamReader()); } return reader; }
public static PlanNode fromXml(String planString) throws XMLStreamException { XMLInputFactory inputFactory = XMLType.getXmlInputFactory(); XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(planString)); while (reader.hasNext()&& (reader.nextTag() != XMLStreamConstants.END_ELEMENT)) { String element = reader.getLocalName(); if (element.equals("node")) { //$NON-NLS-1$ Properties props = getAttributes(reader); PlanNode planNode = new PlanNode(props.getProperty("name"));//$NON-NLS-1$ planNode.setParent(null); buildNode(reader, planNode); return planNode; } throw new XMLStreamException(JDBCPlugin.Util.gs("unexpected_element", reader.getName(), "node"),reader.getLocation());//$NON-NLS-1$ //$NON-NLS-2$ } return null; }
public static Type isXml(Reader reader) throws TransformationException { Type type = Type.ELEMENT; XMLInputFactory inputFactory = XMLType.getXmlInputFactory(); try{ XMLStreamReader xmlReader = inputFactory.createXMLStreamReader(reader); int event = xmlReader.getEventType(); if (event == XMLEvent.START_DOCUMENT && xmlReader.getLocation().getColumnNumber() != 1) { type = Type.DOCUMENT; } while (xmlReader.hasNext()) { xmlReader.next(); } } catch (Exception e){ throw new TransformationException(CorePlugin.Event.TEIID10070, e, CorePlugin.Util.gs(CorePlugin.Event.TEIID10070)); } finally { try { reader.close(); } catch (IOException e) { } } return type; }
public static PlanNode fromXml(String planString) throws XMLStreamException { XMLInputFactory inputFactory = XMLType.getXmlInputFactory(); XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(planString)); while (reader.hasNext()&& (reader.nextTag() != XMLStreamConstants.END_ELEMENT)) { String element = reader.getLocalName(); if (element.equals("node")) { //$NON-NLS-1$ Properties props = getAttributes(reader); PlanNode planNode = new PlanNode(props.getProperty("name"));//$NON-NLS-1$ planNode.setParent(null); buildNode(reader, planNode); return planNode; } throw new XMLStreamException(JDBCPlugin.Util.gs("unexpected_element", reader.getName(), "node"),reader.getLocation());//$NON-NLS-1$ //$NON-NLS-2$ } return null; }
@Override public StAXSource getStaxSource() throws SQLException { try { XMLEventReader eventReader = getXMLEventReader(v.getSource(StAXSource.class)); eventReader = XMLType.getXmlInputFactory().createFilteredReader(eventReader, declarationOmittingFilter); return new StAXSource(eventReader); } catch (XMLStreamException e) { throw new SQLException(e); } } };
public static Type isXml(Reader reader) throws TransformationException { Type type = Type.ELEMENT; XMLInputFactory inputFactory = XMLType.getXmlInputFactory(); try{ XMLStreamReader xmlReader = inputFactory.createXMLStreamReader(reader); int event = xmlReader.getEventType(); if (event == XMLEvent.START_DOCUMENT && xmlReader.getLocation().getColumnNumber() != 1) { type = Type.DOCUMENT; } while (xmlReader.hasNext()) { xmlReader.next(); } } catch (Exception e){ throw new TransformationException(CorePlugin.Event.TEIID10070, e, CorePlugin.Util.gs(CorePlugin.Event.TEIID10070)); } finally { try { reader.close(); } catch (IOException e) { } } return type; }
@Override public StAXSource getStaxSource() throws SQLException { try { XMLEventReader eventReader = getXMLEventReader(v.getSource(StAXSource.class)); eventReader = XMLType.getXmlInputFactory().createFilteredReader(eventReader, declarationOmittingFilter); return new StAXSource(eventReader); } catch (XMLStreamException e) { throw new SQLException(e); } } };
@Override public StAXSource getStaxSource() throws SQLException { try { XMLEventReader eventReader = getXMLEventReader(v.getSource(StAXSource.class)); eventReader = XMLType.getXmlInputFactory().createFilteredReader(eventReader, declarationOmittingFilter); return new StAXSource(eventReader); } catch (XMLStreamException e) { throw new SQLException(e); } } };
public XMLInputStream(StAXSource source, XMLOutputFactory outFactory, String encoding) throws XMLStreamException { reader = source.getXMLEventReader(); if (reader == null) { this.reader = XMLType.getXmlInputFactory().createXMLEventReader(source.getXMLStreamReader()); } this.writer = outFactory.createXMLEventWriter(baos, encoding); }
public static FunctionMetadataReader parseFunctions(InputStream content) throws XMLStreamException { XMLInputFactory inputFactory=XMLType.getXmlInputFactory(); XMLStreamReader reader = inputFactory.createXMLStreamReader(content); FunctionMetadataReader fmr = new FunctionMetadataReader(); while (reader.hasNext() && (reader.nextTag() != XMLStreamConstants.END_ELEMENT)) { switch (Namespace.forUri(reader.getNamespaceURI())) { case XMI: { Element element = Element.forName(reader.getLocalName()); switch (element) { case XMI: parseFunctions(reader, fmr); while(reader.hasNext() && reader.next() != XMLStreamConstants.END_DOCUMENT); break; } break; } } } return fmr; }
public XMLReader(StAXSource source, XMLOutputFactory outFactory) throws XMLStreamException { reader = source.getXMLEventReader(); if (reader == null) { this.reader = XMLType.getXmlInputFactory().createXMLEventReader(source.getXMLStreamReader()); } this.writer = outFactory.createXMLEventWriter(new Writer() { @Override public void write(char[] cbuf, int off, int len) throws IOException { builder.append(cbuf, off, len); } @Override public void flush() throws IOException { } @Override public void write(String str, int off, int len) throws IOException { builder.append(str, off, len); } @Override public void close() throws IOException { } }); }
public static VDBMetaData unmarshell(InputStream content) throws XMLStreamException { XMLInputFactory inputFactory=XMLType.getXmlInputFactory(); XMLStreamReader reader = inputFactory.createXMLStreamReader(content); try {
public static VDBMetaData unmarshell(InputStream content) throws XMLStreamException { XMLInputFactory inputFactory=XMLType.getXmlInputFactory(); XMLStreamReader reader = inputFactory.createXMLStreamReader(content); try {
@Test public void testStreaming() throws Exception { StringBuilder xmlBuilder = new StringBuilder(); xmlBuilder.append("<root>"); for (int i = 0; i < 1000; i++) { xmlBuilder.append("<a></a>"); xmlBuilder.append("<b></b>"); } xmlBuilder.append("</root>"); String xml = xmlBuilder.toString(); StAXSource source = new StAXSource(XMLType.getXmlInputFactory().createXMLEventReader(new StringReader(xml))); XMLInputStream is = new XMLInputStream(source, XMLOutputFactory.newFactory()); byte[] bytes = ObjectConverterUtil.convertToByteArray(is); String string = new String(bytes, "UTF-8"); assertTrue(string, string.startsWith("<?xml version=\"1.0\"")); //omit document declaration assertEquals(xml, string.substring(string.indexOf("><") + 1)); }
@Test public void testStreaming() throws Exception { StringBuilder xmlBuilder = new StringBuilder(); xmlBuilder.append("<root>"); for (int i = 0; i < 1000; i++) { xmlBuilder.append("<a></a>"); xmlBuilder.append("<b></b>"); } xmlBuilder.append("</root>"); String xml = xmlBuilder.toString(); StAXSource source = new StAXSource(XMLType.getXmlInputFactory().createXMLEventReader(new StringReader(xml))); XMLReader is = new XMLReader(source, XMLOutputFactory.newFactory()); String str = ObjectConverterUtil.convertToString(is); assertTrue(str, str.startsWith("<?xml version=\"1.0\"")); //omit document declaration assertEquals(xml, str.substring(str.indexOf("><") + 1)); }
@Test public void testUTF16Streaming() throws Exception { StringBuilder xmlBuilder = new StringBuilder(); xmlBuilder.append("<root>"); for (int i = 0; i < 1000; i++) { xmlBuilder.append("<a></a>"); xmlBuilder.append("<b></b>"); } xmlBuilder.append("</root>"); String xml = xmlBuilder.toString(); StAXSource source = new StAXSource(XMLType.getXmlInputFactory().createXMLEventReader(new StringReader(xml))); XMLInputStream is = new XMLInputStream(source, XMLOutputFactory.newFactory(), "UTF-16"); byte[] bytes = ObjectConverterUtil.convertToByteArray(is); String string = new String(bytes, "UTF-16"); assertTrue(string, string.startsWith("<?xml version=\"1.0\"")); //omit document declaration assertEquals(xml, string.substring(string.indexOf("><") + 1)); }
@Test public void testRepairingNamespaces() throws Exception { XMLOutputFactory factory = XMLSystemFunctions.getOutputFactory(true); ByteArrayOutputStream baos = new ByteArrayOutputStream(); XMLEventWriter writer = factory.createXMLEventWriter(baos); XMLEventReader reader = XMLType.getXmlInputFactory().createXMLEventReader(new StringReader("<a xmlns:x=\"http://foo\"><b x:y=\"1\"/></a>")); reader.nextTag(); reader = XMLType.getXmlInputFactory().createFilteredReader(reader, new EventFilter() { @Override public boolean accept(XMLEvent arg0) { if (arg0.isStartDocument() || arg0.isEndDocument()) { return false; } if (arg0.isEndElement() && ((EndElement)arg0).getName().getLocalPart().equals("a")) { return false; } return true; } }); writer.add(reader); writer.close(); assertEquals("<b xmlns=\"\" xmlns:x=\"http://foo\" x:y=\"1\"></b>", new String(baos.toByteArray(), "UTF-8")); }
@Test public void testTypeConversion() throws Exception { BufferManager bm = BufferManagerFactory.getStandaloneBufferManager(); String str = "hello world"; Object source = new StreamSource(new StringReader(str)); XMLType xml = (XMLType) ConnectorWorkItem.convertToRuntimeType(bm, source, DataTypeManager.DefaultDataClasses.XML, null); assertEquals(str, xml.getString()); source = new StAXSource(XMLType.getXmlInputFactory().createXMLEventReader(new StringReader("<a/>"))); xml = (XMLType) ConnectorWorkItem.convertToRuntimeType(bm, source, DataTypeManager.DefaultDataClasses.XML, null); XMLInputFactory in = XMLType.getXmlInputFactory(); XMLStreamReader reader = in.createXMLStreamReader(new StringReader(xml.getString())); assertEquals(XMLEvent.START_DOCUMENT, reader.getEventType()); assertEquals(XMLEvent.START_ELEMENT, reader.next()); assertEquals("a", reader.getLocalName()); assertEquals(XMLEvent.END_ELEMENT, reader.next()); byte[] bytes = str.getBytes(Streamable.ENCODING); source = new InputStreamFactory.BlobInputStreamFactory(BlobType.createBlob(bytes)); BlobType blob = (BlobType) ConnectorWorkItem.convertToRuntimeType(bm, source, DataTypeManager.DefaultDataClasses.BLOB, null); assertArrayEquals(bytes, ObjectConverterUtil.convertToByteArray(blob.getBinaryStream())); }