X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fdata%2FPazpar2ResponseParser.java;h=f9f607ba5628d01a0dea90e3b79f87736f1f312e;hb=2816078831605dbc1c18147760e1212dd30909a8;hp=7cf41df06b53ee2d8019b400e2d8110e9b8111de;hpb=28f8fc1f7a9c010900f73c3f6f95066471e21aee;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/data/Pazpar2ResponseParser.java b/src/main/java/com/indexdata/mkjsf/pazpar2/data/Pazpar2ResponseParser.java index 7cf41df..f9f607b 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/data/Pazpar2ResponseParser.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/data/Pazpar2ResponseParser.java @@ -11,6 +11,7 @@ import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; +import org.apache.log4j.Logger; import org.xml.sax.Attributes; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -37,8 +38,9 @@ public class Pazpar2ResponseParser extends DefaultHandler { private Stack dataElements = new Stack(); private Pazpar2ResponseData result = null; private String xml = null; + private static Logger logger = Logger.getLogger(Pazpar2ResponseParser.class); - private static final List docTypes = + public static final List docTypes = Arrays.asList("bytarget","termlist","show","stat","record","search"); public Pazpar2ResponseParser() { @@ -134,9 +136,14 @@ public class Pazpar2ResponseParser extends DefaultHandler { currentElement.setType(localName); for (int i=0; i< atts.getLength(); i++) { currentElement.setAttribute(atts.getLocalName(i), atts.getValue(i)); - } + } if (!docTypes.contains(localName)) { - dataElements.peek().addElement(localName, currentElement); + if (dataElements.size() == 0) { + logger.info("Encountered unknown top level element [" + localName + "]"); + currentElement.setType(localName); + } else { + dataElements.peek().addElement(localName, currentElement); + } } if (this.xml != null) { // Store XML for doc level elements currentElement.setXml(xml);