Search in sources :

Example 1 with SAXLoopCompositeHandler

use of org.talend.xml.sax.SAXLoopCompositeHandler in project tdi-studio-se by Talend.

the class SimpleSAXLooper method call.

public Object call() throws Exception {
    Reader reader = null;
    try {
        DefaultHandler handler = null;
        if (nodesList.size() > 0) {
            SAXLoopCompositeHandler chd = new SAXLoopCompositeHandler();
            for (int i = 0; i < nodesList.size(); i++) {
                XMLNodes ns = nodesList.get(i);
                chd.register(new SimpleSAXLoopHandler(ns, multiCache));
            }
            handler = chd;
        } else {
            hd = new SimpleSAXLoopHandler(nodes, bcache);
            handler = hd;
        }
        SAXParser saxParser = null;
        if (!ignoreDTD) {
            //orginal code
            saxParser = SAXParserFactory.newInstance().newSAXParser();
        } else {
            SAXParserFactory spf = SAXParserFactory.newInstance();
            spf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
            saxParser = spf.newSAXParser();
        }
        saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", handler);
        if (fileURL != null) {
            // routines.system.UnicodeReader.java is used to ignore the BOM of the source file.
            reader = new UnicodeReader(new java.io.FileInputStream(fileURL), this.charset);
            org.xml.sax.InputSource inSource = new org.xml.sax.InputSource(reader);
            saxParser.parse(inSource, handler);
        } else {
            reader = new UnicodeReader(is, this.charset);
            org.xml.sax.InputSource inSource = new org.xml.sax.InputSource(reader);
            saxParser.parse(inSource, handler);
        }
    } finally {
        try {
            if (reader != null) {
                reader.close();
            }
        } finally {
            if (multiCache != null) {
                multiCache.notifyErrorOccurred();
            }
            if (bcache != null) {
                bcache.notifyErrorOccurred();
            }
        }
    }
    return null;
}
Also used : UnicodeReader(org.talend.xml.sax.io.UnicodeReader) Reader(java.io.Reader) UnicodeReader(org.talend.xml.sax.io.UnicodeReader) XMLNodes(org.talend.xml.sax.simpleparser.model.XMLNodes) DefaultHandler(org.xml.sax.helpers.DefaultHandler) SAXParser(javax.xml.parsers.SAXParser) SAXLoopCompositeHandler(org.talend.xml.sax.SAXLoopCompositeHandler) SAXParserFactory(javax.xml.parsers.SAXParserFactory)

Aggregations

Reader (java.io.Reader)1 SAXParser (javax.xml.parsers.SAXParser)1 SAXParserFactory (javax.xml.parsers.SAXParserFactory)1 SAXLoopCompositeHandler (org.talend.xml.sax.SAXLoopCompositeHandler)1 UnicodeReader (org.talend.xml.sax.io.UnicodeReader)1 XMLNodes (org.talend.xml.sax.simpleparser.model.XMLNodes)1 DefaultHandler (org.xml.sax.helpers.DefaultHandler)1