Package org.keycloak.saml.common.util
Class StaxParserUtil
java.lang.Object
org.keycloak.saml.common.util.StaxParserUtil
Utility for the stax based parser
- Since:
- Feb 8, 2010
- Author:
- Anil.Saldhana@redhat.com
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic XMLEvent
advance
(XMLEventReader xmlEventReader) Consume the next eventstatic XMLEvent
bypassElementBlock
(XMLEventReader xmlEventReader) Bypass an entire XML element block.static void
bypassElementBlock
(XMLEventReader xmlEventReader, String tag) Bypass an entire XML element block from startElement to endElement.static void
bypassElementBlock
(XMLEventReader xmlEventReader, QName tag) Bypass an entire XML element block from startElement to endElement.static String
getAttributeValue
(Attribute attribute) Given anAttribute
, get its trimmed valuestatic String
getAttributeValue
(StartElement startElement, String tag) Deprecated.static String
getAttributeValue
(StartElement startElement, QName attrQName) Get the Attribute valuestatic String
getAttributeValue
(StartElement startElement, HasQName attrName) Get the Attribute valuestatic String
getAttributeValueRP
(Attribute attribute) Given anAttribute
, get its trimmed value, replacing every occurrence of ${..} by corresponding system property valuestatic String
getAttributeValueRP
(StartElement startElement, HasQName attrName) Get the Attribute value, replacing every occurrence of ${..} by corresponding system property valuestatic boolean
getBooleanAttributeValue
(StartElement startElement, String tag) Deprecated.static boolean
getBooleanAttributeValue
(StartElement startElement, String tag, boolean defaultValue) Deprecated.static Boolean
getBooleanAttributeValue
(StartElement startElement, HasQName attrName) Get the Attribute valuestatic Boolean
getBooleanAttributeValueRP
(StartElement startElement, HasQName attrName) Get the Attribute value, replacing every occurrence of ${..} by corresponding system property valuestatic Element
getDOMElement
(XMLEventReader xmlEventReader) Given that theXMLEventReader
is inXMLStreamConstants.START_ELEMENT
mode, we parse into a DOM Elementstatic String
getElementName
(EndElement endElement) Return the name of the end elementstatic String
getElementName
(StartElement startElement) Return the name of the start elementstatic String
getElementText
(XMLEventReader xmlEventReader) Get the element text.static String
getElementTextRP
(XMLEventReader xmlEventReader) Get the element text, replacing every occurrence of ${..} by corresponding system property valuestatic Integer
getIntegerAttributeValue
(StartElement startElement, HasQName attrName) Get the Attribute valuestatic Integer
getIntegerAttributeValueRP
(StartElement startElement, HasQName attrName) Get the Attribute value, replacing every occurrence of ${..} by corresponding system property valuestatic String
getLineColumnNumber
(Location location) Given aLocation
, return a formatted string [lineNum,colNum]static Long
getLongAttributeValue
(StartElement startElement, HasQName attrName) Get the Attribute valuestatic Long
getLongAttributeValueRP
(StartElement startElement, HasQName attrName) Get the Attribute valuestatic EndElement
getNextEndElement
(XMLEventReader xmlEventReader) Get the nextEndElement
static XMLEvent
getNextEvent
(XMLEventReader xmlEventReader) Get the next xml eventstatic StartElement
getNextStartElement
(XMLEventReader xmlEventReader) Get the nextStartElement
static String
getRequiredAttributeValue
(StartElement startElement, HasQName attrName) static String
getRequiredAttributeValueRP
(StartElement startElement, HasQName attrName) getRequiredStringListAttributeValue
(StartElement startElement, HasQName attrName) Parse a space delimited list of stringsstatic URI
getUriAttributeValue
(StartElement startElement, HasQName attrName) Get the Attribute valuestatic Duration
getXmlDurationAttributeValue
(StartElement startElement, HasQName attrName) Get the Attribute valuestatic XMLEventReader
Get the XML event readerstatic XMLEventReader
getXMLEventReader
(String xml) static XMLEventReader
getXMLEventReader
(Source source) Get the XML event readerstatic XMLGregorianCalendar
getXmlTimeAttributeValue
(StartElement startElement, HasQName attrName) Get the Attribute valuestatic String
getXSITypeValue
(StartElement startElement) Given a start element, obtain the xsi:type definedstatic boolean
hasTextAhead
(XMLEventReader xmlEventReader) Return whether the next event is going to be textstatic boolean
matches
(EndElement endElement, String tag) Match that the end element with the expected tagstatic boolean
matches
(StartElement startElement, String tag) Match that the start element with the expected tagstatic XMLEvent
peek
(XMLEventReader xmlEventReader) Peek at the next eventstatic EndElement
peekNextEndElement
(XMLEventReader xmlEventReader) Peek the nextEndElement
static StartElement
peekNextStartElement
(XMLEventReader xmlEventReader) Peek the nextStartElement
static XMLEvent
peekNextTag
(XMLEventReader xmlEventReader) Peek the nextStartElement
orEndElement
.static final String
Given a string, trim itstatic void
validate
(InputStream doc, InputStream sch) static void
validate
(EndElement endElement, String tag) Validate that the end element has the expected tagstatic void
validate
(StartElement startElement, String tag) Deprecated.static void
validate
(StartElement startElement, QName tag) Validate that the start element has the expected tagstatic boolean
wasWhitespacePeeked
(XMLEventReader xmlEventReader, XMLEvent xmlEvent) Advances reader if character whitespace encountered
-
Constructor Details
-
StaxParserUtil
public StaxParserUtil()
-
-
Method Details
-
validate
- Throws:
ParsingException
-
bypassElementBlock
public static void bypassElementBlock(XMLEventReader xmlEventReader, String tag) throws ParsingException Bypass an entire XML element block from startElement to endElement. It is expected that thexmlEventReader
is positioned at (has not yet read) the start element of the block it should bypass.- Parameters:
xmlEventReader
-tag
- Tag of the XML element that we need to bypass- Throws:
ParsingException
-
bypassElementBlock
public static void bypassElementBlock(XMLEventReader xmlEventReader, QName tag) throws ParsingException Bypass an entire XML element block from startElement to endElement. It is expected that thexmlEventReader
is positioned at (has not yet read) the start element of the block it should bypass.- Parameters:
xmlEventReader
-tag
- Tag of the XML element that we need to bypass- Throws:
ParsingException
-
bypassElementBlock
Bypass an entire XML element block. It is expected that thexmlEventReader
is positioned at (has not yet read) the start element of the block it should bypass.- Parameters:
xmlEventReader
-- Throws:
ParsingException
-
wasWhitespacePeeked
Advances reader if character whitespace encountered- Parameters:
xmlEventReader
-xmlEvent
-- Returns:
-
getAttributeValue
Given anAttribute
, get its trimmed value- Parameters:
attribute
-- Returns:
-
getAttributeValueRP
Given anAttribute
, get its trimmed value, replacing every occurrence of ${..} by corresponding system property value- Parameters:
attribute
-- Returns:
-
getAttributeValue
Deprecated.Get the Attribute value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
-
getAttributeValue
Get the Attribute value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
-
getAttributeValueRP
Get the Attribute value, replacing every occurrence of ${..} by corresponding system property value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
- See Also:
-
getAttributeValue
Get the Attribute value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
-
getUriAttributeValue
Get the Attribute value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
-
getXmlTimeAttributeValue
public static XMLGregorianCalendar getXmlTimeAttributeValue(StartElement startElement, HasQName attrName) throws ParsingException Get the Attribute value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
- Throws:
ParsingException
-
getXmlDurationAttributeValue
public static Duration getXmlDurationAttributeValue(StartElement startElement, HasQName attrName) throws ParsingException Get the Attribute value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
- Throws:
ParsingException
-
getIntegerAttributeValue
Get the Attribute value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
-
getIntegerAttributeValueRP
Get the Attribute value, replacing every occurrence of ${..} by corresponding system property value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
-
getLongAttributeValue
Get the Attribute value- Parameters:
startElement
-attrName
-
-
getLongAttributeValueRP
Get the Attribute value- Parameters:
startElement
-attrName
-
-
getBooleanAttributeValue
Get the Attribute value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
-
getBooleanAttributeValueRP
Get the Attribute value, replacing every occurrence of ${..} by corresponding system property value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
-
getBooleanAttributeValue
Deprecated.Get the Attribute value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
- false if attribute not set
-
getBooleanAttributeValue
@Deprecated public static boolean getBooleanAttributeValue(StartElement startElement, String tag, boolean defaultValue) Deprecated.Get the Attribute value- Parameters:
startElement
-tag
- localpart of the qname of the attribute- Returns:
- false if attribute not set
-
getRequiredAttributeValue
public static String getRequiredAttributeValue(StartElement startElement, HasQName attrName) throws ParsingException - Throws:
ParsingException
-
getRequiredAttributeValueRP
public static String getRequiredAttributeValueRP(StartElement startElement, HasQName attrName) throws ParsingException - Throws:
ParsingException
-
getRequiredStringListAttributeValue
public static List<String> getRequiredStringListAttributeValue(StartElement startElement, HasQName attrName) throws ParsingException Parse a space delimited list of strings- Parameters:
startElement
-attrName
-- Returns:
- Throws:
ParsingException
-
getDOMElement
Given that theXMLEventReader
is inXMLStreamConstants.START_ELEMENT
mode, we parse into a DOM Element- Parameters:
xmlEventReader
-- Returns:
- Throws:
ParsingException
-
getElementText
Get the element text. FollowingXMLEventReader.getElementText()
: Precondition: the current event is START_ELEMENT. Postcondition: The current event is the corresponding END_ELEMENT.- Parameters:
xmlEventReader
-- Returns:
- A trimmed string value
- Throws:
ParsingException
-
getElementTextRP
Get the element text, replacing every occurrence of ${..} by corresponding system property value- Parameters:
xmlEventReader
-- Returns:
- A trimmed string value with all property references replaced if any. If there are no valid references the input string will be returned
- Throws:
ParsingException
-
getXMLEventReader
Get the XML event reader- Parameters:
is
-- Returns:
-
getXMLEventReader
-
getXMLEventReader
Get the XML event reader- Parameters:
source
-- Returns:
-
getLineColumnNumber
Given aLocation
, return a formatted string [lineNum,colNum]- Parameters:
location
-- Returns:
-
getNextEvent
Get the next xml event- Parameters:
xmlEventReader
-- Returns:
- Throws:
ParsingException
-
getNextStartElement
public static StartElement getNextStartElement(XMLEventReader xmlEventReader) throws ParsingException Get the nextStartElement
- Parameters:
xmlEventReader
-- Returns:
- Throws:
ParsingException
-
getNextEndElement
Get the nextEndElement
- Parameters:
xmlEventReader
-- Returns:
- Throws:
ParsingException
-
getElementName
Return the name of the start element- Parameters:
startElement
-- Returns:
-
getElementName
Return the name of the end element- Parameters:
endElement
-- Returns:
-
getXSITypeValue
Given a start element, obtain the xsi:type defined- Parameters:
startElement
-- Returns:
- Throws:
RuntimeException
- if xsi:type is missing
-
hasTextAhead
Return whether the next event is going to be text- Parameters:
xmlEventReader
-- Returns:
- Throws:
ParsingException
-
matches
Match that the start element with the expected tag- Parameters:
startElement
-tag
-- Returns:
- boolean if the tags match
-
matches
Match that the end element with the expected tag- Parameters:
endElement
-tag
-- Returns:
- boolean if the tags match
-
peek
Peek at the next event- Parameters:
xmlEventReader
-- Returns:
- Throws:
ParsingException
-
advance
Consume the next event- Parameters:
xmlEventReader
-- Returns:
- Throws:
ParsingException
-
peekNextStartElement
public static StartElement peekNextStartElement(XMLEventReader xmlEventReader) throws ParsingException Peek the nextStartElement
- Parameters:
xmlEventReader
-- Returns:
- Throws:
ParsingException
-
peekNextTag
Peek the nextStartElement
orEndElement
.- Parameters:
xmlEventReader
-- Returns:
- Throws:
ParsingException
-
peekNextEndElement
Peek the nextEndElement
- Parameters:
xmlEventReader
-- Returns:
- Throws:
ParsingException
-
trim
Given a string, trim it- Parameters:
str
-- Returns:
-
validate
Deprecated.Validate that the start element has the expected tag- Parameters:
startElement
-tag
-- Throws:
RuntimeException
- mismatch
-
validate
Validate that the start element has the expected tag- Parameters:
startElement
-tag
-- Throws:
RuntimeException
- mismatch
-
validate
Validate that the end element has the expected tag- Parameters:
endElement
-tag
-- Throws:
RuntimeException
- mismatch
-