List of usage examples for javax.xml.stream XMLStreamReader getElementText
public String getElementText() throws XMLStreamException;
From source file:org.osaf.cosmo.model.text.XhtmlPreferenceFormat.java
public Preference parse(String source, EntityFactory entityFactory) throws ParseException { Preference pref = entityFactory.createPreference(); try {/* w ww . j ava 2s. c om*/ if (source == null) throw new ParseException("Source has no XML data", -1); StringReader sr = new StringReader(source); XMLStreamReader reader = createXmlReader(sr); boolean inPreference = false; while (reader.hasNext()) { reader.next(); if (!reader.isStartElement()) continue; if (hasClass(reader, "preference")) { if (log.isDebugEnabled()) log.debug("found preference element"); inPreference = true; continue; } if (inPreference && hasClass(reader, "key")) { if (log.isDebugEnabled()) log.debug("found key element"); String key = reader.getElementText(); if (StringUtils.isBlank(key)) handleParseException("Key element must not be empty", reader); pref.setKey(key); continue; } if (inPreference && hasClass(reader, "value")) { if (log.isDebugEnabled()) log.debug("found value element"); String value = reader.getElementText(); if (StringUtils.isBlank(value)) value = ""; pref.setValue(value); continue; } } reader.close(); } catch (XMLStreamException e) { handleXmlException("Error reading XML", e); } return pref; }
From source file:org.osaf.cosmo.model.text.XhtmlSubscriptionFormat.java
public CollectionSubscription parse(String source, EntityFactory entityFactory) throws ParseException { CollectionSubscription sub = entityFactory.createCollectionSubscription(); try {/*from w ww . j ava2 s. c o m*/ if (source == null) throw new ParseException("Source has no XML data", -1); StringReader sr = new StringReader(source); XMLStreamReader reader = createXmlReader(sr); boolean inLocalSub = false; boolean inCollection = false; boolean inTicket = false; while (reader.hasNext()) { reader.next(); if (!reader.isStartElement()) continue; if (hasClass(reader, "local-subscription")) { if (log.isDebugEnabled()) log.debug("found local-subscription element"); inLocalSub = true; continue; } if (inLocalSub && hasClass(reader, "name")) { if (log.isDebugEnabled()) log.debug("found name element"); String name = reader.getElementText(); if (StringUtils.isBlank(name)) handleParseException("Name element must not be empty", reader); sub.setDisplayName(name); continue; } if (inLocalSub && hasClass(reader, "collection")) { if (log.isDebugEnabled()) log.debug("found collection element"); inCollection = true; inTicket = false; continue; } if (inCollection && hasClass(reader, "uuid")) { if (log.isDebugEnabled()) log.debug("found uuid element"); String uuid = reader.getElementText(); if (StringUtils.isBlank(uuid)) handleParseException("Uuid element must not be empty", reader); sub.setCollectionUid(uuid); continue; } if (inLocalSub && hasClass(reader, "ticket")) { if (log.isDebugEnabled()) log.debug("found ticket element"); inCollection = false; inTicket = true; continue; } if (inTicket && hasClass(reader, "key")) { if (log.isDebugEnabled()) log.debug("found key element"); String key = reader.getElementText(); if (StringUtils.isBlank(key)) handleParseException("Key element must not be empty", reader); sub.setTicketKey(key); continue; } } reader.close(); } catch (XMLStreamException e) { handleXmlException("Error reading XML", e); } return sub; }
From source file:org.osaf.cosmo.model.text.XhtmlTicketFormat.java
public Ticket parse(String source, EntityFactory entityFactory) throws ParseException { String key = null;/* w w w . j av a2 s .co m*/ TicketType type = null; Integer timeout = null; try { if (source == null) throw new ParseException("Source has no XML data", -1); StringReader sr = new StringReader(source); XMLStreamReader reader = createXmlReader(sr); boolean inTicket = false; while (reader.hasNext()) { reader.next(); if (!reader.isStartElement()) continue; if (hasClass(reader, "ticket")) { if (log.isDebugEnabled()) log.debug("found ticket element"); inTicket = true; continue; } if (inTicket && hasClass(reader, "key")) { if (log.isDebugEnabled()) log.debug("found key element"); key = reader.getElementText(); if (StringUtils.isBlank(key)) handleParseException("Key element must not be empty", reader); continue; } if (inTicket && hasClass(reader, "type")) { if (log.isDebugEnabled()) log.debug("found type element"); String typeId = reader.getAttributeValue(null, "title"); if (StringUtils.isBlank(typeId)) handleParseException("Ticket type title must not be empty", reader); type = TicketType.createInstance(typeId); continue; } if (inTicket && hasClass(reader, "timeout")) { if (log.isDebugEnabled()) log.debug("found timeout element"); String timeoutString = reader.getAttributeValue(null, "title"); if (StringUtils.isBlank(timeoutString)) timeout = null; else timeout = Integer.getInteger(timeoutString); continue; } } if (type == null || key == null) handleParseException("Ticket must have type and key", reader); reader.close(); } catch (XMLStreamException e) { handleXmlException("Error reading XML", e); } Ticket ticket = entityFactory.createTicket(type); ticket.setKey(key); if (timeout == null) ticket.setTimeout(Ticket.TIMEOUT_INFINITE); else ticket.setTimeout(timeout); return ticket; }
From source file:org.pentaho.di.trans.steps.webservices.WebService.java
private void compatibleProcessRows(InputStream anXml, Object[] rowData, RowMetaInterface rowMeta, boolean ignoreNamespacePrefix, String encoding) throws KettleException { // First we should get the complete string // The problem is that the string can contain XML or any other format such as HTML saying the service is no longer // available. // We're talking about a WEB service here. // As such, to keep the original parsing scheme, we first read the content. // Then we create an input stream from the content again. // It's elaborate, but that way we can report on the failure more correctly. ///*from www . j ava2s.c o m*/ String response = readStringFromInputStream(anXml, encoding); // Create a new reader to feed into the XML Input Factory below... // StringReader stringReader = new StringReader(response.toString()); // TODO Very empirical : see if we can do something better here try { XMLInputFactory vFactory = XMLInputFactory.newInstance(); XMLStreamReader vReader = vFactory.createXMLStreamReader(stringReader); Object[] outputRowData = RowDataUtil.allocateRowData(data.outputRowMeta.size()); int outputIndex = 0; boolean processing = false; boolean oneValueRowProcessing = false; for (int event = vReader.next(); vReader.hasNext(); event = vReader.next()) { switch (event) { case XMLStreamConstants.START_ELEMENT: // Start new code // START_ELEMENT= 1 // if (log.isRowLevel()) { logRowlevel("START_ELEMENT / " + vReader.getAttributeCount() + " / " + vReader.getNamespaceCount()); } // If we start the xml element named like the return type, // we start a new row // if (log.isRowLevel()) { logRowlevel("vReader.getLocalName = " + vReader.getLocalName()); } if (Const.isEmpty(meta.getOutFieldArgumentName())) { // getOutFieldArgumentName() == null if (oneValueRowProcessing) { WebServiceField field = meta.getFieldOutFromWsName(vReader.getLocalName(), ignoreNamespacePrefix); if (field != null) { outputRowData[outputIndex++] = getValue(vReader.getElementText(), field); putRow(data.outputRowMeta, outputRowData); oneValueRowProcessing = false; } else { if (meta.getOutFieldContainerName().equals(vReader.getLocalName())) { // meta.getOutFieldContainerName() = vReader.getLocalName() if (log.isRowLevel()) { logRowlevel("OutFieldContainerName = " + meta.getOutFieldContainerName()); } oneValueRowProcessing = true; } } } } else { // getOutFieldArgumentName() != null if (log.isRowLevel()) { logRowlevel("OutFieldArgumentName = " + meta.getOutFieldArgumentName()); } if (meta.getOutFieldArgumentName().equals(vReader.getLocalName())) { if (log.isRowLevel()) { logRowlevel("vReader.getLocalName = " + vReader.getLocalName()); } if (log.isRowLevel()) { logRowlevel("OutFieldArgumentName = "); } if (processing) { WebServiceField field = meta.getFieldOutFromWsName(vReader.getLocalName(), ignoreNamespacePrefix); if (field != null) { int index = data.outputRowMeta.indexOfValue(field.getName()); if (index >= 0) { outputRowData[index] = getValue(vReader.getElementText(), field); } } processing = false; } else { WebServiceField field = meta.getFieldOutFromWsName(vReader.getLocalName(), ignoreNamespacePrefix); if (meta.getFieldsOut().size() == 1 && field != null) { // This can be either a simple return element, or a complex type... // try { if (meta.isPassingInputData()) { for (int i = 0; i < rowMeta.getValueMetaList().size(); i++) { ValueMetaInterface valueMeta = getInputRowMeta().getValueMeta(i); outputRowData[outputIndex++] = valueMeta.cloneValueData(rowData[i]); } } outputRowData[outputIndex++] = getValue(vReader.getElementText(), field); putRow(data.outputRowMeta, outputRowData); } catch (WstxParsingException e) { throw new KettleStepException("Unable to get value for field [" + field.getName() + "]. Verify that this is not a complex data type by looking at the response XML.", e); } } else { for (WebServiceField curField : meta.getFieldsOut()) { if (!Const.isEmpty(curField.getName())) { outputRowData[outputIndex++] = getValue(vReader.getElementText(), curField); } } processing = true; } } } else { if (log.isRowLevel()) { logRowlevel("vReader.getLocalName = " + vReader.getLocalName()); } if (log.isRowLevel()) { logRowlevel("OutFieldArgumentName = " + meta.getOutFieldArgumentName()); } } } break; case XMLStreamConstants.END_ELEMENT: // END_ELEMENT= 2 if (log.isRowLevel()) { logRowlevel("END_ELEMENT"); } // If we end the xml element named as the return type, we // finish a row if ((meta.getOutFieldArgumentName() == null && meta.getOperationName().equals(vReader.getLocalName()))) { oneValueRowProcessing = false; } else if (meta.getOutFieldArgumentName() != null && meta.getOutFieldArgumentName().equals(vReader.getLocalName())) { putRow(data.outputRowMeta, outputRowData); processing = false; } break; case XMLStreamConstants.PROCESSING_INSTRUCTION: // PROCESSING_INSTRUCTION= 3 if (log.isRowLevel()) { logRowlevel("PROCESSING_INSTRUCTION"); } break; case XMLStreamConstants.CHARACTERS: // CHARACTERS= 4 if (log.isRowLevel()) { logRowlevel("CHARACTERS"); } break; case XMLStreamConstants.COMMENT: // COMMENT= 5 if (log.isRowLevel()) { logRowlevel("COMMENT"); } break; case XMLStreamConstants.SPACE: // PROCESSING_INSTRUCTION= 6 if (log.isRowLevel()) { logRowlevel("PROCESSING_INSTRUCTION"); } break; case XMLStreamConstants.START_DOCUMENT: // START_DOCUMENT= 7 if (log.isRowLevel()) { logRowlevel("START_DOCUMENT"); } if (log.isRowLevel()) { logRowlevel(vReader.getText()); } break; case XMLStreamConstants.END_DOCUMENT: // END_DOCUMENT= 8 if (log.isRowLevel()) { logRowlevel("END_DOCUMENT"); } break; case XMLStreamConstants.ENTITY_REFERENCE: // ENTITY_REFERENCE= 9 if (log.isRowLevel()) { logRowlevel("ENTITY_REFERENCE"); } break; case XMLStreamConstants.ATTRIBUTE: // ATTRIBUTE= 10 if (log.isRowLevel()) { logRowlevel("ATTRIBUTE"); } break; case XMLStreamConstants.DTD: // DTD= 11 if (log.isRowLevel()) { logRowlevel("DTD"); } break; case XMLStreamConstants.CDATA: // CDATA= 12 if (log.isRowLevel()) { logRowlevel("CDATA"); } break; case XMLStreamConstants.NAMESPACE: // NAMESPACE= 13 if (log.isRowLevel()) { logRowlevel("NAMESPACE"); } break; case XMLStreamConstants.NOTATION_DECLARATION: // NOTATION_DECLARATION= 14 if (log.isRowLevel()) { logRowlevel("NOTATION_DECLARATION"); } break; case XMLStreamConstants.ENTITY_DECLARATION: // ENTITY_DECLARATION= 15 if (log.isRowLevel()) { logRowlevel("ENTITY_DECLARATION"); } break; default: break; } } } catch (Exception e) { throw new KettleStepException( BaseMessages.getString(PKG, "WebServices.ERROR0010.OutputParsingError", response.toString()), e); } }
From source file:org.rhq.plugins.hadoop.HadoopServerConfigurationDelegate.java
public static void parseAndAssignProps(File configFile, Map<String, PropertySimple> props) throws XMLStreamException, IOException { FileInputStream in = new FileInputStream(configFile); XMLStreamReader rdr = XML_INPUT_FACTORY.createXMLStreamReader(in); try {//w w w . j a v a 2s. com boolean inProperty = false; String propertyName = null; String propertyValue = null; while (rdr.hasNext()) { int event = rdr.next(); String tag = null; switch (event) { case XMLStreamReader.START_ELEMENT: tag = rdr.getName().getLocalPart(); if (PROPERTY_TAG_NAME.equals(tag)) { inProperty = true; } else if (inProperty && NAME_TAG_NAME.equals(tag)) { propertyName = rdr.getElementText(); } else if (inProperty && VALUE_TAG_NAME.equals(tag)) { propertyValue = rdr.getElementText(); } break; case XMLStreamReader.END_ELEMENT: tag = rdr.getName().getLocalPart(); if (PROPERTY_TAG_NAME.equals(tag)) { inProperty = false; PropertySimple prop = props.get(propertyName); if (prop != null) { prop.setValue(propertyValue); } propertyName = null; propertyValue = null; } break; } } } finally { rdr.close(); in.close(); } }
From source file:org.socraticgrid.workbench.ontomodel.service.SyntacticalOntoModelServiceImpl.java
/** * Extracts all the Fact Types used in a process definition. * Each Fact Type is declared as:/*from w w w . ja v a2 s . c o m*/ * * <bpmn2:textAnnotation id="_92807518-95EC-447B-A292-D46C9D5958E9"> * <bpmn2:text>KMRCustom--Diagnosis--code--49320</bpmn2:text> * </bpmn2:textAnnotation> * * In the previous example, Diagnosis is the Fact Type * * @param processXml * @return * @throws XMLStreamException */ private Set<String> getProcessFactTypesFromXml(String processXml) throws XMLStreamException { Set<String> facts = new HashSet<String>(); XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader reader = factory.createXMLStreamReader(new ByteArrayInputStream(processXml.getBytes())); boolean parsingTextAnnotation = false; //<bpmn2:text>KMRCustom--Diagnosis--code--49320</bpmn2:text> while (reader.hasNext()) { switch (reader.next()) { case XMLStreamReader.START_ELEMENT: if ("bpmn2".equals(reader.getName().getPrefix()) && "textAnnotation".equals(reader.getName().getLocalPart())) { parsingTextAnnotation = true; } if (parsingTextAnnotation && "bpmn2".equals(reader.getName().getPrefix()) && "text".equals(reader.getName().getLocalPart())) { String text = reader.getElementText(); if (text.startsWith("KMRCustom--")) { String[] parts = text.split("--"); facts.add(parts[1]); } } break; case XMLStreamReader.END_ELEMENT: if ("bpmn2".equals(reader.getName().getPrefix()) && "textAnnotation".equals(reader.getName().getLocalPart())) { parsingTextAnnotation = false; } } } return facts; }
From source file:org.springmodules.remoting.xmlrpc.stax.AbstractStaxXmlRpcParser.java
/** * Creates a new <code>StructMember</code> from the current element being * read in the specified <code>StreamReader</code>. * //from w w w .ja va2 s . com * @param reader * the <code>StreamReader</code>. * @return the new <code>StructMember</code>. * @throws XmlRpcInvalidPayloadException * if the element contains an unknown child. Only one "name" element * and one "value" element are allowed inside an "member" element. * @see #parseValueElement(XMLStreamReader) */ protected final XmlRpcMember parseMemberElement(XMLStreamReader reader) throws XMLStreamException { String name = null; XmlRpcElement value = null; while (reader.hasNext()) { int event = reader.next(); String localName = null; switch (event) { case XMLStreamConstants.START_ELEMENT: localName = reader.getLocalName(); if (XmlRpcElementNames.NAME.equals(localName)) { name = reader.getElementText(); } else if (XmlRpcElementNames.VALUE.equals(localName)) { value = parseValueElement(reader); } else { XmlRpcParsingUtils.handleUnexpectedElementFound(localName); } break; case XMLStreamConstants.END_ELEMENT: localName = reader.getLocalName(); if (XmlRpcElementNames.MEMBER.equals(localName)) { if (!StringUtils.hasText(name)) { throw new XmlRpcInvalidPayloadException("The struct member should have a name"); } return new XmlRpcMember(name, value); } } } // we should never reach this point. return null; }
From source file:org.springmodules.remoting.xmlrpc.stax.AbstractStaxXmlRpcParser.java
/** * Creates a new Object from the current element being read in the specified * <code>StreamReader</code>. * // www .j a v a2s. c om * @param reader * the <code>StreamReader</code>. * @return the created Object. * @throws XmlRpcInvalidPayloadException * if the element contains an unknown child. * @see #parseArrayElement(XMLStreamReader) * @see #parseStructElement(XMLStreamReader) */ protected final XmlRpcElement parseValueElement(XMLStreamReader reader) throws XMLStreamException { while (reader.hasNext()) { int event = reader.next(); String localName = null; switch (event) { case XMLStreamConstants.START_ELEMENT: localName = reader.getLocalName(); if (XmlRpcElementNames.ARRAY.equals(localName)) { return parseArrayElement(reader); } else if (XmlRpcElementNames.BASE_64.equals(localName)) { String source = reader.getElementText(); return new XmlRpcBase64(source); } else if (XmlRpcElementNames.BOOLEAN.equals(localName)) { String source = reader.getElementText(); return new XmlRpcBoolean(source); } else if (XmlRpcElementNames.DATE_TIME.equals(localName)) { String source = reader.getElementText(); return new XmlRpcDateTime(source); } else if (XmlRpcElementNames.DOUBLE.equals(localName)) { String source = reader.getElementText(); return new XmlRpcDouble(source); } else if (XmlRpcElementNames.I4.equals(localName) || XmlRpcElementNames.INT.equals(localName)) { String source = reader.getElementText(); return new XmlRpcInteger(source); } else if (XmlRpcElementNames.STRING.equals(localName) || XmlRpcElementNames.INT.equals(localName)) { String source = reader.getElementText(); return new XmlRpcString(source); } else if (XmlRpcElementNames.STRUCT.equals(localName)) { return parseStructElement(reader); } else { XmlRpcParsingUtils.handleUnexpectedElementFound(localName); } case XMLStreamConstants.CHARACTERS: String source = reader.getText(); return new XmlRpcString(source); } } // we should not reach this point. return null; }
From source file:org.unitedinternet.cosmo.model.text.XhtmlCollectionFormat.java
public CollectionItem parse(String source, EntityFactory entityFactory) throws ParseException { CollectionItem collection = entityFactory.createCollection(); try {// w ww. j a v a 2 s . c o m if (source == null) { throw new ParseException("Source has no XML data", -1); } StringReader sr = new StringReader(source); XMLStreamReader reader = createXmlReader(sr); boolean inCollection = false; while (reader.hasNext()) { reader.next(); if (!reader.isStartElement()) { continue; } if (hasClass(reader, "collection")) { if (LOG.isDebugEnabled()) { LOG.debug("found collection element"); } inCollection = true; continue; } if (inCollection && hasClass(reader, "name")) { if (LOG.isDebugEnabled()) { LOG.debug("found name element"); } String name = reader.getElementText(); if (StringUtils.isBlank(name)) { throw new ParseException("Empty name not allowed", reader.getLocation().getCharacterOffset()); } collection.setDisplayName(name); continue; } if (inCollection && hasClass(reader, "uuid")) { if (LOG.isDebugEnabled()) { LOG.debug("found uuid element"); } String uuid = reader.getElementText(); if (StringUtils.isBlank(uuid)) { throw new ParseException("Empty uuid not allowed", reader.getLocation().getCharacterOffset()); } collection.setUid(uuid); continue; } } reader.close(); } catch (XMLStreamException e) { handleXmlException("Error reading XML", e); } return collection; }
From source file:org.unitedinternet.cosmo.model.text.XhtmlPreferenceFormat.java
public Preference parse(String source, EntityFactory entityFactory) throws ParseException { Preference pref = entityFactory.createPreference(); try {// ww w . j a v a 2 s . c om if (source == null) { throw new ParseException("Source has no XML data", -1); } StringReader sr = new StringReader(source); XMLStreamReader reader = createXmlReader(sr); boolean inPreference = false; while (reader.hasNext()) { reader.next(); if (!reader.isStartElement()) { continue; } if (hasClass(reader, "preference")) { if (LOG.isDebugEnabled()) { LOG.debug("found preference element"); } inPreference = true; continue; } if (inPreference && hasClass(reader, "key")) { if (LOG.isDebugEnabled()) { LOG.debug("found key element"); } String key = reader.getElementText(); if (StringUtils.isBlank(key)) { handleParseException("Key element must not be empty", reader); } pref.setKey(key); continue; } if (inPreference && hasClass(reader, "value")) { if (LOG.isDebugEnabled()) { LOG.debug("found value element"); } String value = reader.getElementText(); if (StringUtils.isBlank(value)) { value = ""; } pref.setValue(value); continue; } } reader.close(); } catch (XMLStreamException e) { handleXmlException("Error reading XML", e); } return pref; }