Search in sources :

Example 26 with EndElement

use of javax.xml.stream.events.EndElement in project Payara by payara.

the class DomainXmlTransformer method getAddedEventBeforeEndElement.

/**
 * Write a new element with the specified name and attribute before the end element is written out
 * @return the end element
 */
private XMLEvent getAddedEventBeforeEndElement(XMLEvent event, XMLEventWriter writer, String elementName, String attributeName, String attributeValue) throws XMLStreamException {
    Attribute newAttribute = xmlEventFactory.createAttribute(attributeName, attributeValue);
    Set attributes = new HashSet();
    attributes.add(newAttribute);
    EndElement oldEvent = event.asEndElement();
    StartElement newStartEvent = xmlEventFactory.createStartElement(new QName(elementName), attributes.iterator(), oldEvent.getNamespaces());
    writer.add(newStartEvent);
    return xmlEventFactory.createEndElement(newStartEvent.getName(), newStartEvent.getNamespaces());
}
Also used : StartElement(javax.xml.stream.events.StartElement) HashSet(java.util.HashSet) Set(java.util.Set) Attribute(javax.xml.stream.events.Attribute) EndElement(javax.xml.stream.events.EndElement) QName(javax.xml.namespace.QName) HashSet(java.util.HashSet)

Example 27 with EndElement

use of javax.xml.stream.events.EndElement in project wso2-synapse by wso2.

the class SimpleXMLEventAllocatorTest method testStartEndElement.

@Test
public void testStartEndElement() throws XMLStreamException {
    XMLStreamReader reader = createXmlStreamReader("<alice/>");
    StartElement startElement = eventAllocator.allocate(reader).asStartElement();
    verify(startElement, XMLStreamConstants.START_ELEMENT, "<alice>");
    Assert.assertEquals(new QName("alice"), startElement.getName());
    Assert.assertNotNull(startElement.getNamespaceContext());
    Assert.assertFalse(startElement.getAttributes().hasNext());
    Assert.assertFalse(startElement.getNamespaces().hasNext());
    Assert.assertNull(startElement.getNamespaceURI("foo"));
    reader.next();
    EndElement endElement = eventAllocator.allocate(reader).asEndElement();
    verify(endElement, XMLStreamConstants.END_ELEMENT, "</alice>");
    Assert.assertEquals(new QName("alice"), endElement.getName());
    Assert.assertFalse(endElement.getNamespaces().hasNext());
}
Also used : StartElement(javax.xml.stream.events.StartElement) XMLStreamReader(javax.xml.stream.XMLStreamReader) EndElement(javax.xml.stream.events.EndElement) QName(javax.xml.namespace.QName) Test(org.junit.Test)

Example 28 with EndElement

use of javax.xml.stream.events.EndElement in project wso2-synapse by wso2.

the class SimpleXMLEventFactoryTest method testCreateEndElement_Name_Namespaces.

@Test
public void testCreateEndElement_Name_Namespaces() throws XMLStreamException {
    Namespace namespace = factory.createNamespace("foo", "http://foo");
    EndElement event = factory.createEndElement(new QName("http://foo", "bar", "foo"), Arrays.asList(namespace).iterator());
    verify(event, XMLStreamConstants.END_ELEMENT, "</foo:bar>");
    Assert.assertEquals(namespace, event.getNamespaces().next());
}
Also used : EndElement(javax.xml.stream.events.EndElement) QName(javax.xml.namespace.QName) Namespace(javax.xml.stream.events.Namespace) Test(org.junit.Test)

Example 29 with EndElement

use of javax.xml.stream.events.EndElement in project wso2-synapse by wso2.

the class SimpleXMLEventFactoryTest method testCreateEndElement_Prefix_NamespaceURI_LocalName_Namespaces.

@Test
public void testCreateEndElement_Prefix_NamespaceURI_LocalName_Namespaces() throws XMLStreamException {
    Namespace namespace = factory.createNamespace("foo", "http://foo");
    EndElement event = factory.createEndElement("foo", "http://foo", "bar", Arrays.asList(namespace).iterator());
    verify(event, XMLStreamConstants.END_ELEMENT, "</foo:bar>");
    Assert.assertEquals(namespace, event.getNamespaces().next());
}
Also used : EndElement(javax.xml.stream.events.EndElement) Namespace(javax.xml.stream.events.Namespace) Test(org.junit.Test)

Example 30 with EndElement

use of javax.xml.stream.events.EndElement in project tomee by apache.

the class StaxCompare method compare.

public static boolean compare(final XMLEventReader a, final XMLEventReader b, final StringBuilder message) {
    XMLEvent eventA;
    XMLEvent eventB;
    int eventType;
    try {
        while ((eventA = nextInterestingEvent(a)) != null & (eventB = nextInterestingEvent(b)) != null) {
            if ((eventType = eventA.getEventType()) != eventB.getEventType()) {
                message.append("events of different types: ").append(eventA).append(", ").append(eventB);
                return false;
            }
            if (eventType == XMLStreamConstants.START_ELEMENT) {
                final StartElement startA = eventA.asStartElement();
                final StartElement startB = eventB.asStartElement();
                if (!startA.getName().getLocalPart().equals(startB.getName().getLocalPart())) {
                    message.append("Different elements ").append(startA.getName()).append(", ").append(startB.getName()).append(" at location ").append(eventA.getLocation());
                    return false;
                }
            } else if (eventType == XMLStreamConstants.END_ELEMENT) {
                final EndElement endA = eventA.asEndElement();
                final EndElement endB = eventB.asEndElement();
                if (!endA.getName().getLocalPart().equals(endB.getName().getLocalPart())) {
                    message.append("Different elements ").append(endA.getName()).append(", ").append(endB.getName()).append(" at location ").append(eventA.getLocation());
                    return false;
                }
            } else if (eventType == XMLStreamConstants.CHARACTERS) {
                final Characters endA = eventA.asCharacters();
                final Characters endB = eventB.asCharacters();
                if (!endA.getData().equals(endB.getData())) {
                    message.append("Different content ").append(endA.getData()).append(", ").append(endB.getData()).append(" at location ").append(eventA.getLocation());
                    return false;
                }
            }
        }
        if (eventA != null) {
            message.append("A is longer: ").append(eventA.getLocation());
            return false;
        }
        if (eventB != null) {
            message.append("B is longer: ").append(eventB.getLocation());
            return false;
        }
    } catch (final XMLStreamException e) {
        message.append("Exception processing ").append(e.getMessage());
        return false;
    }
    return true;
}
Also used : StartElement(javax.xml.stream.events.StartElement) XMLStreamException(javax.xml.stream.XMLStreamException) EndElement(javax.xml.stream.events.EndElement) Characters(javax.xml.stream.events.Characters) XMLEvent(javax.xml.stream.events.XMLEvent)

Aggregations

EndElement (javax.xml.stream.events.EndElement)41 XMLEvent (javax.xml.stream.events.XMLEvent)32 StartElement (javax.xml.stream.events.StartElement)30 QName (javax.xml.namespace.QName)15 XMLEventReader (javax.xml.stream.XMLEventReader)12 Attribute (javax.xml.stream.events.Attribute)12 Characters (javax.xml.stream.events.Characters)11 XMLStreamException (javax.xml.stream.XMLStreamException)10 XMLInputFactory (javax.xml.stream.XMLInputFactory)9 InputStream (java.io.InputStream)5 ArrayList (java.util.ArrayList)5 HashMap (java.util.HashMap)4 Test (org.junit.Test)4 IOException (java.io.IOException)3 Namespace (javax.xml.stream.events.Namespace)3 ByteArrayInputStream (java.io.ByteArrayInputStream)2 FileNotFoundException (java.io.FileNotFoundException)2 BigInteger (java.math.BigInteger)2 Base64 (java.util.Base64)2 Iterator (java.util.Iterator)2