List of usage examples for javax.xml.stream.events XMLEvent asEndElement
public EndElement asEndElement();
From source file:org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.java
private EntityCollection entitySet(final XMLEventReader reader, final StartElement start, final EdmEntityType edmEntityType) throws XMLStreamException, EdmPrimitiveTypeException, DeserializerException { if (!Constants.QNAME_ATOM_ELEM_FEED.equals(start.getName())) { return null; }/*from w w w . j ava 2s . c o m*/ final EntityCollection entitySet = new EntityCollection(); final Attribute xmlBase = start.getAttributeByName(Constants.QNAME_ATTR_XML_BASE); if (xmlBase != null) { entitySet.setBaseURI(URI.create(xmlBase.getValue())); } boolean foundEndFeed = false; while (reader.hasNext() && !foundEndFeed) { final XMLEvent event = reader.nextEvent(); if (event.isStartElement()) { if (countQName.equals(event.asStartElement().getName())) { count(reader, event.asStartElement(), entitySet); } else if (Constants.QNAME_ATOM_ELEM_ID.equals(event.asStartElement().getName())) { common(reader, event.asStartElement(), entitySet, "id"); } else if (Constants.QNAME_ATOM_ELEM_LINK.equals(event.asStartElement().getName())) { final Attribute rel = event.asStartElement() .getAttributeByName(QName.valueOf(Constants.ATTR_REL)); if (rel != null) { if (Constants.NEXT_LINK_REL.equals(rel.getValue())) { final Attribute href = event.asStartElement() .getAttributeByName(QName.valueOf(Constants.ATTR_HREF)); if (href != null) { entitySet.setNext(URI.create(href.getValue())); } } if (Constants.NS_DELTA_LINK_REL.equals(rel.getValue())) { final Attribute href = event.asStartElement() .getAttributeByName(QName.valueOf(Constants.ATTR_HREF)); if (href != null) { entitySet.setDeltaLink(URI.create(href.getValue())); } } } } else if (Constants.QNAME_ATOM_ELEM_ENTRY.equals(event.asStartElement().getName())) { entitySet.getEntities().add(entity(reader, event.asStartElement(), edmEntityType)); } else if (entryRefQName.equals(event.asStartElement().getName())) { entitySet.getEntities().add(entityRef(event.asStartElement())); } } if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) { foundEndFeed = true; } } return entitySet; }
From source file:org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.java
private void consumeParameters(final EdmAction edmAction, final XMLEventReader reader, final StartElement start, final Map<String, Parameter> parameters) throws DeserializerException, EdmPrimitiveTypeException, XMLStreamException { List<String> parameterNames = edmAction.getParameterNames(); if (edmAction.isBound()) { // The binding parameter must not occur in the payload. parameterNames = parameterNames.subList(1, parameterNames.size()); }/*from w ww. ja v a2 s . c om*/ boolean foundEndElement = false; while (reader.hasNext() && !foundEndElement) { final XMLEvent event = reader.nextEvent(); if (event.isStartElement()) { boolean found = false; for (String paramName : parameterNames) { if (paramName.equals(event.asStartElement().getName().getLocalPart())) { found = true; Parameter parameter = createParameter(reader, event.asStartElement(), paramName, edmAction.getParameter(paramName)); Parameter previous = parameters.put(paramName, parameter); if (previous != null) { throw new DeserializerException("Duplicate property detected", DeserializerException.MessageKeys.DUPLICATE_PROPERTY); } break; // for } } if (!found) { throw new DeserializerException( "failed to read " + event.asStartElement().getName().getLocalPart(), DeserializerException.MessageKeys.UNKNOWN_CONTENT); } } if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) { foundEndElement = true; } } }
From source file:org.dataconservancy.model.builder.WrappingEventReaderTest.java
private void commonFileWrappingTest(XMLEventReader reader) throws XMLStreamException { assertTrue(reader.hasNext()); // START_ELEMENT File XMLEvent e = reader.nextEvent(); assertEquals(START_ELEMENT, e.getEventType()); assertEquals(E_FILE, e.asStartElement().getName().getLocalPart()); assertTrue(reader.hasNext()); // START_ELEMENT doc e = reader.nextEvent();/* w w w .j a va 2 s . c o m*/ assertEquals(START_ELEMENT, e.getEventType()); assertEquals("doc", e.asStartElement().getName().getLocalPart()); assertTrue(reader.hasNext()); // CHARACTERS e = reader.nextEvent(); assertEquals(CHARACTERS, e.getEventType()); assertTrue(reader.hasNext()); // END_ELEMENT doc e = reader.nextEvent(); assertEquals(END_ELEMENT, e.getEventType()); assertEquals("doc", e.asEndElement().getName().getLocalPart()); assertTrue(reader.hasNext()); // END_ELEMENT File e = reader.nextEvent(); assertEquals(END_ELEMENT, e.getEventType()); assertEquals(E_FILE, e.asEndElement().getName().getLocalPart()); }
From source file:org.dataconservancy.model.builder.WrappingEventReaderTest.java
private void commonPeekFileTest(XMLEventReader reader) throws XMLStreamException { // The input XML is: // <File><doc> </doc></File> // <File> XMLEvent peekEvent = reader.peek(); assertEquals(START_ELEMENT, peekEvent.getEventType()); assertEquals(E_FILE, peekEvent.asStartElement().getName().getLocalPart()); // idempotent assertEquals(peekEvent, reader.peek()); XMLEvent actualEvent = reader.nextEvent(); assertEquals(peekEvent, actualEvent); // <doc> peekEvent = reader.peek();/* ww w.j a v a2s.c o m*/ assertEquals(START_ELEMENT, peekEvent.getEventType()); assertEquals("doc", peekEvent.asStartElement().getName().getLocalPart()); // idempotent assertEquals(peekEvent, reader.peek()); actualEvent = reader.nextEvent(); assertEquals(peekEvent, actualEvent); peekEvent = reader.peek(); assertEquals(CHARACTERS, peekEvent.getEventType()); // idempotent assertEquals(peekEvent, reader.peek()); actualEvent = reader.nextEvent(); assertEquals(peekEvent, actualEvent); // </doc> peekEvent = reader.peek(); assertEquals(END_ELEMENT, peekEvent.getEventType()); assertEquals("doc", peekEvent.asEndElement().getName().getLocalPart()); // idempotent assertEquals(peekEvent, reader.peek()); actualEvent = reader.nextEvent(); assertEquals(peekEvent, actualEvent); // </File> peekEvent = reader.peek(); assertEquals(END_ELEMENT, peekEvent.getEventType()); assertEquals(E_FILE, peekEvent.asEndElement().getName().getLocalPart()); // idempotent assertEquals(peekEvent, reader.peek()); actualEvent = reader.nextEvent(); // fails, bc we are preserving namespaces? assertEquals(peekEvent, actualEvent); // do this instead assertEquals(peekEvent.asEndElement().getName().getLocalPart(), actualEvent.asEndElement().getName().getLocalPart()); }
From source file:org.eclipse.smila.utils.xml.stax.XmlSnippetSplitter.java
/** * Checks if the current tag is the end of a snippet. * /*from ww w. j ava 2 s .c o m*/ * @param event * the XMLEvent * @return true if the tag name and the start/end tag settings of the _end MarkerTag match the current events * properties. */ private boolean isSnippetEnd(final XMLEvent event) { boolean condition = false; if (_end.isEndTag()) { condition = event.isEndElement(); } else { condition = event.isStartElement(); } return condition && _end.getName().equals(event.asEndElement().getName().getLocalPart()); }
From source file:org.mcisb.subliminal.SubliminalUtils.java
/** * //from www . j av a 2s.co m * @param elementName * @param is * @param onlyValues * @return Collection * @throws XMLStreamException * @throws UnsupportedEncodingException */ private static Collection<String> getElements(final String elementName, final InputStream is, final boolean onlyValues) throws XMLStreamException, UnsupportedEncodingException { final Collection<String> elements = new ArrayList<>(); final ByteArrayOutputStream os = new ByteArrayOutputStream(); final XMLEventReader reader = XMLInputFactory.newInstance() .createXMLEventReader(new InputStreamReader(is, Charset.defaultCharset().name())); final XMLEventWriter writer = XMLOutputFactory.newInstance() .createXMLEventWriter(new OutputStreamWriter(os, Charset.defaultCharset().name())); boolean read = false; String characters = null; while (reader.peek() != null) { final XMLEvent event = (XMLEvent) reader.next(); switch (event.getEventType()) { case XMLStreamConstants.START_DOCUMENT: case XMLStreamConstants.END_DOCUMENT: { // Ignore. break; } case XMLStreamConstants.START_ELEMENT: { read = read || elementName.equals(event.asStartElement().getName().getLocalPart()); if (read && !onlyValues) { writer.add(event); } break; } case XMLStreamConstants.ATTRIBUTE: { if (read && !onlyValues) { writer.add(event); } break; } case XMLStreamConstants.CHARACTERS: { if (read && !onlyValues) { writer.add(event); } characters = event.asCharacters().getData(); break; } case XMLStreamConstants.END_ELEMENT: { if (read && !onlyValues) { writer.add(event); } if (elementName.equals(event.asEndElement().getName().getLocalPart())) { writer.flush(); if (characters != null) { elements.add(characters); } os.reset(); read = false; } break; } default: { // Ignore break; } } } return elements; }
From source file:org.mcisb.util.xml.XmlWriter.java
/** * //from ww w . j a v a2 s. c o m * * @param event * @throws XMLStreamException */ protected void write(final XMLEvent event) throws XMLStreamException { if (event.isStartDocument()) { writeStartDocument(); } else if (event.isEndDocument()) { writeEndDocument(); } else if (event.isStartElement()) { writeStartElement(event.asStartElement()); } else if (event.isEndElement()) { writeEndElement(event.asEndElement()); } else if (event.isCharacters()) { if (event.asCharacters().getData().matches(WHITE_SPACE)) { // Ignore... return; } writeCharacters(event.asCharacters()); } }
From source file:org.omegat.util.TMXReader2.java
/** * External TMX - level 2. Replace all tags into shortcuts. */// w w w .j a v a2s. co m protected void parseSegExtLevel2() throws Exception { segContent.setLength(0); segInlineTag.setLength(0); inlineTagHandler.reset(); int inlineLevel = 0; while (true) { XMLEvent e = xml.nextEvent(); switch (e.getEventType()) { case XMLEvent.START_ELEMENT: StartElement eStart = e.asStartElement(); if ("hi".equals(eStart.getName().getLocalPart())) { // tag should be skipped break; } inlineLevel++; segInlineTag.setLength(0); if ("bpt".equals(eStart.getName().getLocalPart())) { inlineTagHandler.startBPT(getAttributeValue(eStart, "i"), getAttributeValue(eStart, "x")); inlineTagHandler.setTagShortcutLetter( StringUtil.getFirstLetterLowercase(getAttributeValue(eStart, "type"))); } else if ("ept".equals(eStart.getName().getLocalPart())) { inlineTagHandler.startEPT(getAttributeValue(eStart, "i")); } else if ("it".equals(eStart.getName().getLocalPart())) { inlineTagHandler.startOTHER(); inlineTagHandler.setOtherTagShortcutLetter( StringUtil.getFirstLetterLowercase(getAttributeValue(eStart, "type"))); inlineTagHandler.setCurrentPos(getAttributeValue(eStart, "pos")); } else if ("ph".equals(eStart.getName().getLocalPart())) { inlineTagHandler.startOTHER(); inlineTagHandler.setOtherTagShortcutLetter( StringUtil.getFirstLetterLowercase(getAttributeValue(eStart, "type"))); } else { inlineTagHandler.startOTHER(); } break; case XMLEvent.END_ELEMENT: EndElement eEnd = e.asEndElement(); if ("hi".equals(eEnd.getName().getLocalPart())) { // tag should be skipped break; } inlineLevel--; if ("seg".equals(eEnd.getName().getLocalPart())) { return; } boolean slashBefore = false; boolean slashAfter = false; int tagName = StringUtil.getFirstLetterLowercase(segInlineTag.toString()); Integer tagN; if ("bpt".equals(eEnd.getName().getLocalPart())) { if (tagName != 0) { inlineTagHandler.setTagShortcutLetter(tagName); } else { tagName = inlineTagHandler.getTagShortcutLetter(); } tagN = inlineTagHandler.endBPT(); } else if ("ept".equals(eEnd.getName().getLocalPart())) { slashBefore = true; tagName = inlineTagHandler.getTagShortcutLetter(); tagN = inlineTagHandler.endEPT(); } else if ("it".equals(eEnd.getName().getLocalPart())) { if (tagName != 0) { inlineTagHandler.setOtherTagShortcutLetter(tagName); } else { tagName = inlineTagHandler.getOtherTagShortcutLetter(); } tagN = inlineTagHandler.endOTHER(); if ("end".equals(inlineTagHandler.getCurrentPos())) { slashBefore = true; } } else if ("ph".equals(eEnd.getName().getLocalPart())) { if (tagName != 0) { inlineTagHandler.setOtherTagShortcutLetter(tagName); } else { tagName = inlineTagHandler.getOtherTagShortcutLetter(); } tagN = inlineTagHandler.endOTHER(); if (useSlash) { slashAfter = true; } } else { tagN = inlineTagHandler.endOTHER(); if (useSlash) { slashAfter = true; } } if (tagName == 0) { tagName = 'f'; } if (tagN == null) { // check error of TMX reading Log.logErrorRB("TMX_ERROR_READING_LEVEL2", e.getLocation().getLineNumber(), e.getLocation().getColumnNumber()); errorsCount++; segContent.setLength(0); // wait for end seg while (true) { XMLEvent ev = xml.nextEvent(); switch (ev.getEventType()) { case XMLEvent.END_ELEMENT: EndElement evEnd = (EndElement) ev; if ("seg".equals(evEnd.getName().getLocalPart())) { return; } } } } segContent.append('<'); if (slashBefore) { segContent.append('/'); } segContent.appendCodePoint(tagName); segContent.append(Integer.toString(tagN)); if (slashAfter) { segContent.append('/'); } segContent.append('>'); break; case XMLEvent.CHARACTERS: Characters c = (Characters) e; if (inlineLevel == 0) { segContent.append(c.getData()); } else { segInlineTag.append(c.getData()); } break; } } }
From source file:org.openhab.binding.dwdunwetter.internal.data.DwdWarningsData.java
/** * Refreshes the Warnings Data/* w ww .j a v a 2 s . c o m*/ */ public boolean refresh() { String rawData = dataAccessCached.getValue(); if (StringUtils.isEmpty(rawData)) { logger.debug("No Data from Endpoint"); return false; } cityData.clear(); try { XMLInputFactory inputFactory = XMLInputFactory.newInstance(); XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(rawData)); XMLEventReader eventReader = inputFactory.createXMLEventReader(reader); DwdWarningData gemeindeData = new DwdWarningData(); boolean insideGemeinde = false; while (eventReader.hasNext()) { XMLEvent event = eventReader.nextEvent(); if (!insideGemeinde && event.isStartElement()) { DwdXmlTag xmlTag = DwdXmlTag.getDwdXmlTag(event.asStartElement().getName().getLocalPart()); switch (xmlTag) { case WARNUNGEN_GEMEINDEN: gemeindeData = new DwdWarningData(); insideGemeinde = true; break; default: break; } } else if (insideGemeinde && event.isStartElement()) { DwdXmlTag xmlTag = DwdXmlTag.getDwdXmlTag(event.asStartElement().getName().getLocalPart()); switch (xmlTag) { case SEVERITY: gemeindeData.setSeverity(Severity.getSeverity(getValue(eventReader))); break; case DESCRIPTION: gemeindeData.setDescription(getValue(eventReader)); break; case EFFECTIVE: gemeindeData.setEffective(getTimestampValue(eventReader)); break; case EXPIRES: gemeindeData.setExpires(getTimestampValue(eventReader)); break; case EVENT: gemeindeData.setEvent(getValue(eventReader)); break; case STATUS: gemeindeData.setStatus(getValue(eventReader)); break; case MSGTYPE: gemeindeData.setMsgType(getValue(eventReader)); break; case HEADLINE: gemeindeData.setHeadline(getValue(eventReader)); break; case ONSET: gemeindeData.setOnset(getTimestampValue(eventReader)); break; case ALTITUDE: gemeindeData.setAltitude(getBigDecimalValue(eventReader)); break; case CEILING: gemeindeData.setCeiling(getBigDecimalValue(eventReader)); break; case IDENTIFIER: gemeindeData.setId(getValue(eventReader)); break; case INSTRUCTION: gemeindeData.setInstruction(getValue(eventReader)); break; case URGENCY: gemeindeData.setUrgency(Urgency.getUrgency(getValue(eventReader))); break; default: break; } } else if (insideGemeinde && event.isEndElement()) { DwdXmlTag xmlTag = DwdXmlTag.getDwdXmlTag(event.asEndElement().getName().getLocalPart()); switch (xmlTag) { case WARNUNGEN_GEMEINDEN: if (!gemeindeData.isTest() && !gemeindeData.isCancel()) { cityData.add(gemeindeData); } insideGemeinde = false; break; default: break; } } } } catch (XMLStreamException e) { logger.debug("Exception while parsing the XML Response", e); return false; } Collections.sort(cityData, new SeverityComparator()); return true; }
From source file:org.openhim.mediator.denormalization.EnrichRegistryStoredQueryActor.java
private String enrichStoredQueryXML(Identifier id, InputStream xml) throws XMLStreamException { XMLEventReader reader = XMLInputFactory.newInstance().createXMLEventReader(xml); StringWriter output = new StringWriter(); XMLEventWriter writer = XMLOutputFactory.newInstance().createXMLEventWriter(output); XMLEventFactory eventFactory = XMLEventFactory.newFactory(); String curSlot = null;//from w w w. ja v a2s .c o m boolean patientIdSlot = false; while (reader.hasNext()) { XMLEvent event = reader.nextEvent(); if (event.getEventType() == XMLEvent.START_ELEMENT) { StartElement elem = event.asStartElement(); if ("Slot".equals(elem.getName().getLocalPart())) { curSlot = elem.getAttributeByName(new QName("name")).getValue(); } else if ("Value".equals(elem.getName().getLocalPart()) && ParseRegistryStoredQueryActor.PATIENT_ID_SLOT_TYPE.equals(curSlot)) { patientIdSlot = true; writer.add(event); } } else if (event.getEventType() == XMLEvent.END_ELEMENT) { EndElement elem = event.asEndElement(); if (patientIdSlot && "Value".equals(elem.getName().getLocalPart())) { XMLEvent ecidEvent = eventFactory.createCharacters("'" + id.toString() + "'"); writer.add(ecidEvent); patientIdSlot = false; } } if (!patientIdSlot) { writer.add(event); } } writer.close(); return output.toString(); }