Package javax.xml.stream.events

Examples of javax.xml.stream.events.XMLEvent


    if (!(e.getMessage() instanceof XMLEvent)) {
      ctx.sendUpstream(e);
      return;
    }

    final XMLEvent event = (XMLEvent) e.getMessage();
   
    if (event.isStartDocument() || event.isEndDocument())
      return;
   
    if (depth < skip && event.isStartElement()) {
      ctx.sendUpstream(e);
      depth++;
      return;
    }
   
    if (depth <= skip && event.isEndElement()) {
      ctx.sendUpstream(e);
      depth--;
      return;
    }
   
    writer.add(event);

    if (event.isStartElement()) {
      depth++;
    } else if (event.isEndElement()) {
      depth--;

      if (depth == skip) {
        writer.flush();
        Channels.fireMessageReceived(ctx, XMLElementImpl.fromElement(document.getDocumentElement()));
View Full Code Here


  }

  @Override
  public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
    if (e.getMessage() instanceof XMLEvent) {
      final XMLEvent event = (XMLEvent) e.getMessage();

      switch (status) {
      case CONNECT:
        if (event.isStartElement()) {
          final StartElement element = event.asStartElement();

          if (STREAM_NAME.equals(element.getName()) && XMPPNamespaces.ACCEPT.equals(element.getNamespaceURI(null))) {
            if (!serverName.equals(element.getAttributeByName(new QName("from")).getValue())) {
              throw new Exception("server name mismatch");
            }
            streamID = element.getAttributeByName(new QName("id")).getValue();

            status = Status.AUTHENTICATE;
            Channels.write(ctx.getChannel(), ChannelBuffers.copiedBuffer("<handshake>" + Hashing.sha1().hashString(streamID + secret, CharsetUtil.UTF_8).toString() + "</handshake>", CharsetUtil.UTF_8));
          }
        } else {
          throw new Exception("Expected stream:stream element");
        }
        break;
      case AUTHENTICATE:
      case READY:
        if (event.isEndElement()) {
          final EndElement element = event.asEndElement();

          if (STREAM_NAME.equals(element.getName())) {
            Channels.disconnect(ctx.getChannel());
            return;
          }
View Full Code Here

    }
  }

  private void loadItunesLibraryIndex() throws XMLStreamException {
    while (xmlEventReader.hasNext()) {
      XMLEvent event = xmlEventReader.nextEvent();
      if (event.isStartElement()) {
        startElement(event.asStartElement().getName().getLocalPart());
      } else if (event.isEndElement()) {
        endElement(event.asEndElement().getName().getLocalPart());
      } else if (event.isCharacters()) {
        characters(event.asCharacters().getData());
      }
    }
  }
View Full Code Here

         XMLEventReader reader = xmlInputFactory.createXMLEventReader(stream);

         // parse the complete document
         while (reader.hasNext()) {

            XMLEvent event = reader.nextEvent();

            // this events means we can abort
            if (event.isEndDocument()) {
               break;
            }

            // we need the element name on the stack before processing the event
            if (event.isStartElement()) {
               stack.push(event.asStartElement().getName().getLocalPart());
            }

            // any event processing is done in this method
            handleEvent(event);

            // we can remove the last element from the stack after the event has been processed
            if (event.isEndElement()) {
               stack.pop();
            }

         }
View Full Code Here

  }

  private static final QName ORM_VERSION_ATTRIBUTE_QNAME = new QName( "version" );

  private XmlDocument read(XMLEventReader staxEventReader, Origin origin) {
    XMLEvent event;
    try {
      event = staxEventReader.peek();
      while ( event != null && !event.isStartElement() ) {
        staxEventReader.nextEvent();
        event = staxEventReader.peek();
      }
    }
    catch ( Exception e ) {
      throw new InvalidMappingException( "Error accessing stax stream", origin, e );
    }

    if ( event == null ) {
      throw new InvalidMappingException( "Could not locate root element", origin );
    }

    final String rootElementName = event.asStartElement().getName().getLocalPart();

    if ( "entity-mappings".equals( rootElementName ) ) {
      final Attribute attribute = event.asStartElement().getAttributeByName( ORM_VERSION_ATTRIBUTE_QNAME );
      final String explicitVersion = attribute == null ? null : attribute.getValue();
      validateMapping(
          SupportedOrmXsdVersion.parse( explicitVersion, origin ),
          staxEventReader,
          origin
View Full Code Here

  @Override
  protected XMLEvent internalNextEvent() throws XMLStreamException {
    //If there is an iterator to read from reset was called, use the iterator
    //until it runs out of events.
    if (this.bufferReader != null) {
      final XMLEvent event = this.bufferReader.next();

      //If nothing left in the iterator, remove the reference and fall through to direct reading
      if (!this.bufferReader.hasNext()) {
        this.bufferReader = null;
      }

      return event;
    }

    //Get the next event from the underlying reader
    final XMLEvent event = this.getParent().nextEvent();

    //if buffering add the event
    if (this.eventLimit != 0) {
      this.eventBuffer.offer(event);
View Full Code Here

  }

  @Override
  public XMLEvent peek() throws XMLStreamException {
    if (this.bufferReader != null) {
      final XMLEvent event = this.bufferReader.next();
      this.bufferReader.previous(); //move the iterator back
      return event;
    }
    return super.peek();
  }
View Full Code Here

    peekedEvent = internalNext(true);
    return peekedEvent;
  }

  protected final XMLEvent internalNext(boolean peek) throws XMLStreamException {
    XMLEvent event = null;

    if (peekedEvent != null) {
      event = peekedEvent;
      peekedEvent = null;
      return event;
    }

    do {
      event = super.getParent().nextEvent();

      //If there are pruned elements in the queue filtering events is still needed
      if (!prunedElements.isEmpty()) {
        //If another start element add it to the queue
        if (event.isStartElement()) {
          final StartElement startElement = event.asStartElement();
          prunedElements.push(startElement.getName());
        }
        //If end element pop the newest name of the queue and double check that the start/end elements match up
        else if (event.isEndElement()) {
          final QName startElementName = prunedElements.pop();

          final EndElement endElement = event.asEndElement();
          final QName endElementName = endElement.getName();

          if (!startElementName.equals(endElementName)) {
            throw new IllegalArgumentException("Malformed XMLEvent stream. Expected end element for " + startElementName + " but found end element for " + endElementName);
          }
        }

        event = null;
      }
      else {
        final XMLEvent filteredEvent = this.filterEvent(event, peek);

        //If the event is being removed and it is a start element all elements until the matching
        //end element need to be removed as well
        if (filteredEvent == null && event.isStartElement()) {
          final StartElement startElement = event.asStartElement();
View Full Code Here

  /* (non-Javadoc)
   * @see javax.xml.stream.XMLEventReader#getElementText()
   */
  @Override
  public final String getElementText() throws XMLStreamException {
    XMLEvent event = this.previousEvent;
    if (event == null) {
      throw new XMLStreamException("Must be on START_ELEMENT to read next text, element was null");
    }
    if (!event.isStartElement()) {
      throw new XMLStreamException("Must be on START_ELEMENT to read next text", event.getLocation());
    }

    final StringBuilder text = new StringBuilder();
    while (!event.isEndDocument()) {
      switch (event.getEventType()) {
        case XMLStreamConstants.CHARACTERS:
        case XMLStreamConstants.SPACE:
        case XMLStreamConstants.CDATA: {
          final Characters characters = event.asCharacters();
          text.append(characters.getData());
          break;
        }
        case XMLStreamConstants.ENTITY_REFERENCE: {
          final EntityReference entityReference = (EntityReference)event;
          final EntityDeclaration declaration = entityReference.getDeclaration();
          text.append(declaration.getReplacementText());
          break;
        }
        case XMLStreamConstants.COMMENT:
        case XMLStreamConstants.PROCESSING_INSTRUCTION: {
          //Ignore
          break;
        }
        default: {
          throw new XMLStreamException("Unexpected event type '" + XMLStreamConstantsUtils.getEventName(event.getEventType()) + "' encountered. Found event: " + event, event.getLocation());
        }
      }

      event = this.nextEvent();
    }
View Full Code Here

  /* (non-Javadoc)
   * @see javax.xml.stream.XMLEventReader#nextTag()
   */
  @Override
  public final XMLEvent nextTag() throws XMLStreamException {
    XMLEvent event = this.nextEvent();
    while ((event.isCharacters() && event.asCharacters().isWhiteSpace())
        || event.isProcessingInstruction()
        || event.getEventType() == XMLStreamConstants.COMMENT) {

      event = this.nextEvent();
    }

    if (!event.isStartElement()  && event.isEndElement()) {
      throw new XMLStreamException("Unexpected event type '" + XMLStreamConstantsUtils.getEventName(event.getEventType()) + "' encountered. Found event: " + event, event.getLocation());
    }

    return event;
  }
View Full Code Here

TOP

Related Classes of javax.xml.stream.events.XMLEvent

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.