import javax.xml.parsers.SAXParser;\r
import javax.xml.parsers.SAXParserFactory;\r
\r
+import org.apache.log4j.Logger;\r
import org.xml.sax.Attributes;\r
import org.xml.sax.InputSource;\r
import org.xml.sax.SAXException;\r
private Stack<Pazpar2ResponseData> dataElements = new Stack<Pazpar2ResponseData>();\r
private Pazpar2ResponseData result = null;\r
private String xml = null;\r
+ private static Logger logger = Logger.getLogger(Pazpar2ResponseParser.class);\r
\r
- private static final List<String> docTypes = \r
+ public static final List<String> docTypes = \r
Arrays.asList("bytarget","termlist","show","stat","record","search");\r
\r
public Pazpar2ResponseParser() { \r
currentElement.setType(localName);\r
for (int i=0; i< atts.getLength(); i++) {\r
currentElement.setAttribute(atts.getLocalName(i), atts.getValue(i));\r
- }\r
+ } \r
if (!docTypes.contains(localName)) {\r
- dataElements.peek().addElement(localName, currentElement);\r
+ if (dataElements.size() == 0) {\r
+ logger.info("Encountered unknown top level element [" + localName + "]");\r
+ currentElement.setType(localName);\r
+ } else {\r
+ dataElements.peek().addElement(localName, currentElement);\r
+ }\r
}\r
if (this.xml != null) { // Store XML for doc level elements\r
currentElement.setXml(xml);\r