Example usage for javax.xml.stream.events Attribute getValue

List of usage examples for javax.xml.stream.events Attribute getValue

Introduction

In this page you can find the example usage for javax.xml.stream.events Attribute getValue.

Prototype

public String getValue();

Source Link

Document

Gets the normalized value of this attribute

Usage

From source file:com.vistatec.ocelot.xliff.okapi.OkapiXLIFFFactory.java

@Override
public XLIFFVersion detectXLIFFVersion(File detectVersion) throws IOException, XMLStreamException {
    try (BOMInputStream bomInputStream = new BOMInputStream(new FileInputStream(detectVersion),
            ByteOrderMark.UTF_8, ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_16LE, ByteOrderMark.UTF_32BE,
            ByteOrderMark.UTF_32LE)) {// w  w  w  .  j a  v  a  2s . co m
        String bom = "UTF-8";
        if (bomInputStream.hasBOM()) {
            bom = bomInputStream.getBOMCharsetName();
        }

        XMLInputFactory xml = XMLInputFactory.newInstance();
        XMLEventReader reader = xml.createXMLEventReader(bomInputStream, bom);
        while (reader.hasNext()) {
            XMLEvent event = reader.nextEvent();
            switch (event.getEventType()) {
            case XMLEvent.START_ELEMENT:
                StartElement startElement = (StartElement) event;
                String localPart = startElement.getName().getLocalPart();
                if (localPart.equals("xliff")) {
                    @SuppressWarnings("unchecked")
                    Iterator<Attribute> attrs = startElement.getAttributes();
                    while (attrs.hasNext()) {
                        Attribute attr = attrs.next();
                        if (isXliffVersionAttributeName(attr.getName())) {
                            String value = attr.getValue();
                            reader.close();
                            if ("2.0".equals(value)) {
                                return XLIFFVersion.XLIFF20;
                            } else {
                                return XLIFFVersion.XLIFF12;
                            }
                        }
                    }
                }
                break;

            default:
                break;
            }
        }
        throw new IllegalStateException("Could not detect XLIFF version");
    }
}

From source file:com.hp.application.automation.tools.octane.tests.TestResultIterator.java

@Override
public boolean hasNext() {
    try {//from  w ww .j  a v a 2  s .c om
        while (items.isEmpty() && !closed) {
            if (reader.hasNext()) {
                XMLEvent event = reader.nextEvent();
                if (event instanceof StartElement) {
                    StartElement element = (StartElement) event;
                    String localName = element.getName().getLocalPart();
                    if ("test_run".equals(localName)) {
                        String moduleName = element.getAttributeByName(new QName("module")).getValue();
                        String packageName = element.getAttributeByName(new QName("package")).getValue();
                        String className = element.getAttributeByName(new QName("class")).getValue();
                        String testName = element.getAttributeByName(new QName("name")).getValue();
                        long duration = Long
                                .valueOf(element.getAttributeByName(new QName("duration")).getValue());
                        TestResultStatus status = TestResultStatus
                                .fromPrettyName(element.getAttributeByName(new QName("status")).getValue());
                        long started = Long
                                .valueOf(element.getAttributeByName(new QName("started")).getValue());
                        items.add(new JUnitTestResult(moduleName, packageName, className, testName, status,
                                duration, started, null, null));
                    } else if ("build".equals(localName)) {
                        serverId = element.getAttributeByName(new QName("server_id")).getValue();
                        jobId = element.getAttributeByName(new QName("job_id")).getValue();
                        buildId = element.getAttributeByName(new QName("build_id")).getValue();
                        Attribute subType = element.getAttributeByName(new QName("sub_type"));
                        if (subType != null) {
                            this.subType = subType.getValue();
                        }
                    }
                }
            } else {
                closed = true;
                IOUtils.closeQuietly(input);
                reader.close();
            }
        }
        return !items.isEmpty();
    } catch (XMLStreamException e) {
        throw new RuntimeException(e);
    }
}

From source file:StAXEventTreeViewer.java

public void buildTree(DefaultTreeModel treeModel, DefaultMutableTreeNode current, File file)
        throws XMLStreamException, FileNotFoundException {

    XMLInputFactory inputFactory = XMLInputFactory.newInstance();
    XMLEventReader reader = inputFactory.createXMLEventReader(new FileInputStream(file));
    while (reader.hasNext()) {
        XMLEvent event = reader.nextEvent();
        switch (event.getEventType()) {
        case XMLStreamConstants.START_DOCUMENT:
            StartDocument startDocument = (StartDocument) event;
            DefaultMutableTreeNode version = new DefaultMutableTreeNode(startDocument.getVersion());
            current.add(version);/*ww w  .jav  a  2 s.c o  m*/

            current.add(new DefaultMutableTreeNode(startDocument.isStandalone()));
            current.add(new DefaultMutableTreeNode(startDocument.standaloneSet()));
            current.add(new DefaultMutableTreeNode(startDocument.encodingSet()));
            current.add(new DefaultMutableTreeNode(startDocument.getCharacterEncodingScheme()));
            break;
        case XMLStreamConstants.START_ELEMENT:
            StartElement startElement = (StartElement) event;
            QName elementName = startElement.getName();

            DefaultMutableTreeNode element = new DefaultMutableTreeNode(elementName.getLocalPart());
            current.add(element);
            current = element;

            if (!elementName.getNamespaceURI().equals("")) {
                String prefix = elementName.getPrefix();
                if (prefix.equals("")) {
                    prefix = "[None]";
                }
                DefaultMutableTreeNode namespace = new DefaultMutableTreeNode(
                        "prefix=" + prefix + ",URI=" + elementName.getNamespaceURI());
                current.add(namespace);
            }

            for (Iterator it = startElement.getAttributes(); it.hasNext();) {
                Attribute attr = (Attribute) it.next();
                DefaultMutableTreeNode attribute = new DefaultMutableTreeNode("Attribute (name="
                        + attr.getName().getLocalPart() + ",value=" + attr.getValue() + "')");
                String attURI = attr.getName().getNamespaceURI();
                if (!attURI.equals("")) {
                    String attPrefix = attr.getName().getPrefix();
                    if (attPrefix.equals("")) {
                        attPrefix = "[None]";
                    }
                    attribute.add(new DefaultMutableTreeNode("prefix = " + attPrefix + ", URI = " + attURI));
                }
                current.add(attribute);
            }
            break;
        case XMLStreamConstants.END_ELEMENT:
            current = (DefaultMutableTreeNode) current.getParent();
            break;
        case XMLStreamConstants.CHARACTERS:
            Characters characters = (Characters) event;
            if (!characters.isIgnorableWhiteSpace() && !characters.isWhiteSpace()) {
                String data = characters.getData();
                if (data.length() != 0) {
                    current.add(new DefaultMutableTreeNode(characters.getData()));
                }
            }
            break;
        case XMLStreamConstants.DTD:
            DTD dtde = (DTD) event;
            current.add(new DefaultMutableTreeNode(dtde.getDocumentTypeDeclaration()));
        default:
            System.out.println(event.getClass().getName());
        }
    }
}

From source file:com.streamsets.pipeline.lib.salesforce.BulkRecordCreator.java

private Field pullMap(XMLEventReader reader) throws StageException, XMLStreamException {
    LinkedHashMap<String, Field> map = new LinkedHashMap<>();
    String type = null;/*from ww  w  .  j  a v a2  s .com*/

    while (reader.hasNext()) {
        XMLEvent event = reader.nextEvent();
        if (event.isStartElement()) {
            if (event.asStartElement().getName().getLocalPart().equals(TYPE)) {
                // Move to content
                event = reader.nextEvent();
                type = event.asCharacters().getData().toLowerCase();
                // Consume closing tag
                reader.nextEvent();
            } else {
                String fieldName = event.asStartElement().getName().getLocalPart();
                Attribute attr = event.asStartElement().getAttributeByName(XSI_TYPE);
                if (attr != null && attr.getValue().equals(S_OBJECT)) {
                    // Element is a nested record
                    map.put(fieldName, pullMap(reader));
                } else {
                    event = reader.nextEvent();
                    if (event.isCharacters()) {
                        // Element is a field value
                        String fieldValue = event.asCharacters().getData();
                        if (type == null) {
                            throw new StageException(Errors.FORCE_38);
                        }
                        com.sforce.soap.partner.Field sfdcField = getFieldMetadata(type, fieldName);

                        Field field = createField(fieldValue, sfdcField);
                        if (conf.createSalesforceNsHeaders) {
                            setHeadersOnField(field, getFieldMetadata(type, fieldName));
                        }

                        map.put(fieldName, field);

                        // Consume closing tag
                        reader.nextEvent();
                    } else if (event.isStartElement()) {
                        // Element is a nested list of records
                        // Advance over <done>, <queryLocator> to record list
                        while (!(event.isStartElement()
                                && event.asStartElement().getName().getLocalPart().equals(RECORDS))) {
                            event = reader.nextEvent();
                        }

                        // Read record list
                        List<Field> recordList = new ArrayList<>();
                        while (event.isStartElement()
                                && event.asStartElement().getName().getLocalPart().equals(RECORDS)) {
                            recordList.add(pullMap(reader));
                            event = reader.nextEvent();
                        }
                        map.put(fieldName, Field.create(recordList));
                    }
                }
            }
        } else if (event.isEndElement()) {
            // Done with record
            return Field.createListMap(map);
        }
    }

    throw new StageException(Errors.FORCE_39);
}

From source file:fr.openwide.talendalfresco.rest.client.ClientImportCommand.java

protected void handleResponseContentEvent(XMLEvent event) {
    String[] resultLog;/* www.  j  a  v a2 s  .  c om*/
    boolean isSuccessLog;
    switch (event.getEventType()) {
    case XMLEvent.START_ELEMENT:
        StartElement startElement = event.asStartElement();
        String elementName = startElement.getName().getLocalPart();
        if (RestConstants.RES_IMPORT_SUCCESS.equals(elementName)) {
            isSuccessLog = true;
        } else if (RestConstants.RES_IMPORT_ERROR.equals(elementName)) {
            isSuccessLog = false;
        } else {
            break;
        }

        Attribute noderefAttr = startElement.getAttributeByName(new QName(RestConstants.RES_IMPORT_NODEREF));
        String noderef = (noderefAttr == null) ? null : noderefAttr.getValue();
        Attribute doctypeAttr = startElement.getAttributeByName(new QName(RestConstants.RES_IMPORT_DOCTYPE));
        String doctype = (doctypeAttr == null) ? null : doctypeAttr.getValue();
        resultLog = new String[] { elementName, // error or success
                startElement.getAttributeByName(new QName(RestConstants.RES_IMPORT_NAMEPATH)).getValue(),
                startElement.getAttributeByName(new QName(RestConstants.RES_IMPORT_MESSAGE)).getValue(),
                startElement.getAttributeByName(new QName(RestConstants.RES_IMPORT_DATE)).getValue(), noderef,
                doctype };
        resultLogs.add(resultLog);
        if (isSuccessLog) {
            successLogs.add(resultLog);
        } else { // errorLog
            errorLogs.add(resultLog);
        }
        break;
    }
}

From source file:com.msopentech.odatajclient.testservice.utils.XMLUtilities.java

public static Map.Entry<Integer, XmlElement> getAtomElement(final XMLEventReader reader,
        final XMLEventWriter discarded, final String name,
        final Collection<Map.Entry<String, String>> filterAttrs, final int initialDepth, final int minDepth,
        final int maxDepth, final boolean filterInOr) throws Exception {

    int depth = initialDepth;
    StartElement start = null;/*from  w w  w. ja va2 s  . c  o m*/

    while (reader.hasNext() && start == null) {
        final XMLEvent event = reader.nextEvent();

        if (event.getEventType() == XMLStreamConstants.START_ELEMENT) {
            depth++;

            if ((StringUtils.isBlank(name)
                    || name.trim().equals(event.asStartElement().getName().getLocalPart()))
                    && (minDepth < 0 || minDepth <= depth) && (maxDepth < 0 || maxDepth >= depth)) {

                boolean match = filterAttrs == null || filterAttrs.isEmpty() || !filterInOr;

                for (Map.Entry<String, String> filterAttr : filterAttrs == null
                        ? Collections.<Map.Entry<String, String>>emptySet()
                        : filterAttrs) {
                    final Attribute attr = event.asStartElement()
                            .getAttributeByName(new QName(filterAttr.getKey().trim()));

                    if (attr == null || !filterAttr.getValue().trim().equals(attr.getValue())) {
                        match = filterInOr ? match : false;
                    } else {
                        match = filterInOr ? true : match;
                    }
                }

                if (match) {
                    start = event.asStartElement();
                }
            }

        } else if (event.getEventType() == XMLStreamConstants.END_ELEMENT) {
            depth--;
        }

        if (start == null) {
            if (discarded != null) {
                discarded.add(event);
            }
        }
    }

    if (start == null) {
        throw new Exception(String.format("Could not find an element named '%s'", name));
    }

    return new SimpleEntry<Integer, XmlElement>(Integer.valueOf(depth - 1), getAtomElement(start, reader));
}

From source file:org.eclipse.swordfish.core.configuration.xml.XmlToPropertiesTransformerImpl.java

public void loadConfiguration(URL path) {
    Assert.notNull(path);/*w w w.  j  a v a  2s.  c o  m*/
    InputStream inputStream = null;
    try {
        inputStream = path.openStream();
        XMLInputFactory inputFactory = XMLInputFactory.newInstance();
        LinkedList<String> currentElements = new LinkedList<String>();
        XMLEventReader eventReader = inputFactory.createXMLEventReader(inputStream);
        Map<String, List<String>> props = new HashMap<String, List<String>>();
        // Read the XML document
        while (eventReader.hasNext()) {
            XMLEvent event = eventReader.nextEvent();
            if (event.isCharacters() && !event.asCharacters().isWhiteSpace()) {
                putElement(props, getQualifiedName(currentElements), event.asCharacters().getData());

            } else if (event.isStartElement()) {
                currentElements.add(event.asStartElement().getName().getLocalPart());
                for (Iterator attrIt = event.asStartElement().getAttributes(); attrIt.hasNext();) {
                    Attribute attribute = (Attribute) attrIt.next();
                    putElement(props, getQualifiedName(currentElements) + "[@" + attribute.getName() + "]",
                            attribute.getValue());

                }
            } else if (event.isAttribute()) {
            } else if (event.isEndElement()) {
                String lastElem = event.asEndElement().getName().getLocalPart();
                if (!currentElements.getLast().equals(lastElem)) {
                    throw new UnsupportedOperationException(lastElem + "," + currentElements.getLast());
                }
                currentElements.removeLast();
            }
        }
        properties = flattenProperties(props);
    } catch (Exception ex) {
        throw new SwordfishException(ex);
    } finally {
        if (inputStream != null) {
            try {
                inputStream.close();
            } catch (IOException ex) {
            }
        }
    }
}

From source file:com.amalto.core.load.io.XMLStreamUnwrapper.java

/**
 * Moves to next record in stream and stores it in {@link #stringWriter}.
 *//*from  w  w  w.j  a va  2 s  .  c o m*/
private void moveToNext() {
    try {
        XMLStreamWriter writer = xmlOutputFactory.createXMLStreamWriter(stringWriter);
        boolean hasMadeChanges;
        do {
            if (!reader.hasNext()) {
                break;
            }
            hasMadeChanges = false; // Keep a state to skip line feeds
            final XMLEvent event = reader.nextEvent();
            if (event.isEndElement()) {
                level--;
            } else if (event.isStartElement()) {
                level++;
            } else if (event.isEndDocument()) {
                level--;
            }
            if (level >= RECORD_LEVEL) {
                if (event.isEndElement()) {
                    writer.writeEndElement();
                    hasMadeChanges = true;
                } else if (event.isStartElement()) {
                    final StartElement startElement = event.asStartElement();
                    final QName name = startElement.getName();
                    writer.writeStartElement(name.getNamespaceURI(), name.getLocalPart());
                    boolean isRecordRootElement = (RECORD_LEVEL == level - 1);
                    if (isRecordRootElement) {
                        for (int i = 0; i < rootNamespaceList.size(); i++) {
                            Namespace namespace = rootNamespaceList.get(i);
                            writer.writeNamespace(namespace.getPrefix(), namespace.getNamespaceURI());
                        }
                    }
                    // Declare namespaces (if any)
                    final Iterator elementNamespaces = startElement.getNamespaces();
                    while (elementNamespaces.hasNext()) {
                        Namespace elementNamespace = (Namespace) elementNamespaces.next();
                        if (isRecordRootElement) {
                            if (rootNamespaceList.size() > 0) {
                                for (int i = 0; i < rootNamespaceList.size(); i++) {
                                    Namespace namespace = rootNamespaceList.get(i);
                                    if (!namespace.getPrefix().equals(elementNamespace.getPrefix())
                                            || !namespace.getNamespaceURI()
                                                    .equals(elementNamespace.getNamespaceURI())) {
                                        writer.writeNamespace(elementNamespace.getPrefix(),
                                                elementNamespace.getNamespaceURI());
                                    }
                                }
                            } else {
                                writer.writeNamespace(elementNamespace.getPrefix(),
                                        elementNamespace.getNamespaceURI());
                            }
                        } else {
                            writer.writeNamespace(elementNamespace.getPrefix(),
                                    elementNamespace.getNamespaceURI());
                        }
                    }
                    // Write attributes
                    final Iterator attributes = startElement.getAttributes();
                    while (attributes.hasNext()) {
                        Attribute attribute = (Attribute) attributes.next();
                        QName attributeName = attribute.getName();
                        String value = attribute.getValue();
                        if (StringUtils.isEmpty(attributeName.getNamespaceURI())) {
                            writer.writeAttribute(attributeName.getLocalPart(), value);
                        } else {
                            writer.writeAttribute(attributeName.getNamespaceURI(), attributeName.getLocalPart(),
                                    value);
                        }
                    }
                    hasMadeChanges = true;
                } else if (event.isCharacters()) {
                    final String text = event.asCharacters().getData().trim();
                    if (!text.isEmpty()) {
                        writer.writeCharacters(text);
                        hasMadeChanges = true;
                    }
                }
            }
        } while (level > RECORD_LEVEL || !hasMadeChanges);
        writer.flush();
    } catch (XMLStreamException e) {
        throw new RuntimeException("Unexpected parsing exception.", e);
    }
}

From source file:org.fcrepo.serialization.JcrXmlSerializer.java

private void validateJCRXML(final File file) throws InvalidSerializationFormatException, IOException {
    int depth = 0;
    try (final FileInputStream fis = new FileInputStream(file)) {
        final XMLEventReader reader = XMLInputFactory.newFactory().createXMLEventReader(fis);
        while (reader.hasNext()) {
            final XMLEvent event = reader.nextEvent();
            if (event.isStartElement()) {
                depth++;/*from w w w .  ja  va 2 s.  co  m*/
                final StartElement startElement = event.asStartElement();
                final Attribute nameAttribute = startElement
                        .getAttributeByName(new QName("http://www.jcp.org/jcr/sv/1.0", "name"));
                if (depth == 1 && nameAttribute != null && "jcr:content".equals(nameAttribute.getValue())) {
                    throw new InvalidSerializationFormatException(
                            "Cannot import JCR/XML starting with content node.");
                }
                if (depth == 1 && nameAttribute != null && "jcr:frozenNode".equals(nameAttribute.getValue())) {
                    throw new InvalidSerializationFormatException("Cannot import historic versions.");
                }
                final QName name = startElement.getName();
                if (!(name.getNamespaceURI().equals("http://www.jcp.org/jcr/sv/1.0")
                        && (name.getLocalPart().equals("node") || name.getLocalPart().equals("property")
                                || name.getLocalPart().equals("value")))) {
                    throw new InvalidSerializationFormatException(
                            "Unrecognized element \"" + name.toString() + "\", in import XML.");
                }
            } else {
                if (event.isEndElement()) {
                    depth--;
                }
            }
        }
        reader.close();
    } catch (XMLStreamException e) {
        throw new InvalidSerializationFormatException(
                "Unable to parse XML" + (e.getMessage() != null ? " (" + e.getMessage() + ")." : "."));
    }
}

From source file:fr.dutra.confluence2wordpress.core.sync.DefaultAttachmentsSynchronizer.java

private Set<Attachment> parseForAttachments(ContentEntityObject page) throws SynchronizationException {
    Set<Attachment> attachments = new HashSet<Attachment>();
    try {//from   w w w  .j  av a 2  s  . c om
        XMLEventReader r = StaxUtils.getReader(page);
        String fileName = null;
        String pageTitle = null;
        String spaceKey = null;
        try {
            while (r.hasNext()) {
                XMLEvent e = r.nextEvent();
                if (e.isStartElement()) {
                    StartElement startElement = e.asStartElement();
                    QName name = startElement.getName();
                    if (name.equals(ATTACHMENT_QNAME)) {
                        Attribute att = startElement.getAttributeByName(FILENAME_QNAME);
                        if (att != null) {
                            fileName = att.getValue();
                        }
                    } else if (name.equals(PAGE_QNAME)) {
                        Attribute title = startElement.getAttributeByName(TITLE_QNAME);
                        if (title != null) {
                            pageTitle = title.getValue();
                        }
                        Attribute space = startElement.getAttributeByName(SPACE_QNAME);
                        if (space != null) {
                            spaceKey = space.getValue();
                        }
                    }
                } else if (e.isEndElement()) {
                    EndElement endElement = e.asEndElement();
                    if (endElement.getName().equals(ATTACHMENT_QNAME)) {
                        ContentEntityObject attachmentPage;
                        if (pageTitle == null) {
                            attachmentPage = page;
                        } else {
                            attachmentPage = pageManager.getPage(spaceKey, pageTitle);
                        }
                        Attachment attachment = attachmentManager.getAttachment(attachmentPage, fileName);
                        attachments.add(attachment);
                        fileName = null;
                        pageTitle = null;
                        spaceKey = null;
                    }
                }
            }
        } finally {
            r.close();
        }
    } catch (XMLStreamException e) {
        throw new SynchronizationException("Cannot read page: " + page.getTitle(), e);
    }
    return attachments;
}