public void require(int type, String namespaceURI, String localName) throws XMLStreamException { int currType = getEventType(); if (currType != type) { throw new XMLStreamException("Expected " + XMLStreamUtils.getEventTypeName(type) + " but found " + XMLStreamUtils.getEventTypeName(currType), getStableLocation()); } }
public String getNamespaceURI() { switch (getEventType()) { case XMLStreamConstants.START_ELEMENT : case XMLStreamConstants.END_ELEMENT : return getName().getNamespaceURI(); default : throw new IllegalStreamStateException( "Expected START_ELEMENT or END_ELEMENT state, but found " + getEventTypeName(), getStableLocation()); } }
public String getPrefix() { switch (getEventType()) { case XMLStreamConstants.START_ELEMENT : case XMLStreamConstants.END_ELEMENT : return getName().getPrefix(); default : throw new IllegalStreamStateException( "Expected START_ELEMENT or END_ELEMENT but was " + getEventTypeName(), getStableLocation()); } }
public String getElementText() throws XMLStreamException { if (getEventType() != XMLStreamConstants.START_ELEMENT) { throw new XMLStreamException("Expected START_ELEMENT but found " + getEventTypeName(), getStableLocation()); } // save the element name and location so we can use it in the error message // as needed. QName elemName = getName(); Location elemLocation = getStableLocation(); // read text events until the end tag is reached StringBuffer content = null; for (int eventType = next(); eventType != END_ELEMENT; eventType = next()) { if (hasText()) { if (content == null) { content = new StringBuffer(); } content.append(getText()); } else { throw new XMLStreamException("Encountered " + getEventTypeName() + " event within text-only element " + elemName, elemLocation); } } // return content return (content == null ? "" : content.toString()); }
public int nextTag() throws XMLStreamException { for (int eventType = next(); hasNext(); eventType = next()) { switch (eventType) { case START_ELEMENT : case END_ELEMENT : return eventType; case CHARACTERS : case CDATA : if (!isWhiteSpace()) { // throw an error break; } else { // fall through } case SPACE : case PROCESSING_INSTRUCTION : case COMMENT : // skip it continue; default : // stop and throw an error break; } } throw new XMLStreamException("Encountered " + getEventTypeName() + " when expecting START_ELEMENT or END_ELEMENT", getStableLocation()); }