mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-07 13:41:21 +00:00
GUACAMOLE-497: Fall back to qualified name of XML element if SAX parser does not provide local name.
This commit is contained in:
@@ -84,6 +84,10 @@ public class DocumentHandler extends DefaultHandler {
|
|||||||
public void startElement(String uri, String localName, String qName,
|
public void startElement(String uri, String localName, String qName,
|
||||||
Attributes attributes) throws SAXException {
|
Attributes attributes) throws SAXException {
|
||||||
|
|
||||||
|
// If the SAX implementation does not provide the local name, the
|
||||||
|
// qualified name should be used instead
|
||||||
|
String name = localName.isEmpty() ? qName : localName;
|
||||||
|
|
||||||
// Get current state
|
// Get current state
|
||||||
DocumentHandlerState current = getCurrentState();
|
DocumentHandlerState current = getCurrentState();
|
||||||
|
|
||||||
@@ -94,7 +98,7 @@ public class DocumentHandler extends DefaultHandler {
|
|||||||
if (current == null) {
|
if (current == null) {
|
||||||
|
|
||||||
// Validate element name
|
// Validate element name
|
||||||
if (!localName.equals(rootElementName))
|
if (!name.equals(rootElementName))
|
||||||
throw new SAXException("Root element must be '" + rootElementName + "'");
|
throw new SAXException("Root element must be '" + rootElementName + "'");
|
||||||
|
|
||||||
handler = root;
|
handler = root;
|
||||||
@@ -103,12 +107,12 @@ public class DocumentHandler extends DefaultHandler {
|
|||||||
// Otherwise, get handler from parent
|
// Otherwise, get handler from parent
|
||||||
else {
|
else {
|
||||||
TagHandler parent_handler = current.getTagHandler();
|
TagHandler parent_handler = current.getTagHandler();
|
||||||
handler = parent_handler.childElement(localName);
|
handler = parent_handler.childElement(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If no handler returned, the element was not expected
|
// If no handler returned, the element was not expected
|
||||||
if (handler == null)
|
if (handler == null)
|
||||||
throw new SAXException("Unexpected element: '" + localName + "'");
|
throw new SAXException("Unexpected element: '" + name + "'");
|
||||||
|
|
||||||
// Initialize handler
|
// Initialize handler
|
||||||
handler.init(attributes);
|
handler.init(attributes);
|
||||||
|
Reference in New Issue
Block a user