Package com.xmlcalabash.util

Examples of com.xmlcalabash.util.TreeWriter


       
        RuntimeValue href = getOption(_href);
        String base = href.getBaseURI().toASCIIString();
        URI uri = href.getBaseURI().resolve(href.getString());

        TreeWriter tree = new TreeWriter(runtime);
        tree.startDocument(step.getNode().getBaseURI());
        tree.addStartElement(XProcConstants.c_result);
        tree.startContent();

        tree.addText(uri.toASCIIString());

        performDelete(href, base, recursive, fail_on_error);

        tree.addEndElement();
        tree.endDocument();

        result.write(tree.getResult());
    }
View Full Code Here


                                read = src.read(buffer, 0, bufsize);
                            }
                        }
                    });

                    TreeWriter tree = new TreeWriter(runtime);
                    tree.startDocument(step.getNode().getBaseURI());
                    tree.addStartElement(XProcConstants.c_result);
                    tree.startContent();

                    tree.addText(uri.toASCIIString());

                    tree.addEndElement();
                    tree.endDocument();

                    result.write(tree.getResult());
                }
            });

            store.deleteEntry(href.getString(), base);
View Full Code Here

            error(e);
        }

        @Override
        public void error(SAXParseException e) throws SAXException {
            TreeWriter treeWriter = new TreeWriter(runtime);
            treeWriter.startDocument(docBaseURI);
            treeWriter.addStartElement(XProcConstants.c_error);

            if (e.getLineNumber()!=-1) {
                treeWriter.addAttribute(_line, ""+e.getLineNumber());
            }

            if (e.getColumnNumber()!=-1) {
                treeWriter.addAttribute(_column, ""+e.getColumnNumber());
            }

            treeWriter.startContent();

            treeWriter.addText(e.toString());

            treeWriter.addEndElement();
            treeWriter.addText("\n");
            treeWriter.endDocument();

            step.reportError(treeWriter.getResult());

            if (validationException == null) {
                validationException = e;
            }
        }
View Full Code Here

            // Ignore warnings?
        }

        @Override
        public void error(TransformerException e) throws TransformerException {
            TreeWriter treeWriter = new TreeWriter(runtime);
            treeWriter.startDocument(docBaseURI);
            treeWriter.addStartElement(XProcConstants.c_error);

            SourceLocator loc = e.getLocator();
            if (loc != null) {
                if (loc.getLineNumber() != -1) {
                    treeWriter.addAttribute(_line, ""+loc.getLineNumber());
                }

                if (loc.getColumnNumber() != -1) {
                    treeWriter.addAttribute(_column, ""+loc.getColumnNumber());
                }
            }

            treeWriter.startContent();

            treeWriter.addText(e.toString());

            treeWriter.addEndElement();
            treeWriter.addText("\n");
            treeWriter.endDocument();

            step.reportError(treeWriter.getResult());

            if (validationException == null) {
                validationException = e;
            }
        }
View Full Code Here

                        throw new IOException(e);
                    }
                }
            });

            TreeWriter tree = new TreeWriter(runtime);
            tree.startDocument(step.getNode().getBaseURI());
            tree.addStartElement(XProcConstants.c_result);
            tree.startContent();
            tree.addText(id.toASCIIString());
            tree.addEndElement();
            tree.endDocument();
            result.write(tree.getResult());
        } catch (XProcException e) {
            throw e;
        } catch (Exception e) {
            if (e.getCause() instanceof SaxonApiException) {
                throw (SaxonApiException) e.getCause();
View Full Code Here

            throw XProcException.dynamicError(21);
        }

        RuntimeValue href = getOption(_href);

        TreeWriter tree = new TreeWriter(runtime);
        tree.startDocument(step.getNode().getBaseURI());
        tree.addStartElement(XProcConstants.c_result);
        tree.startContent();

        try {
            DataStore store = runtime.getDataStore();
            URI uri = store.createList(href.getString(), href.getBaseURI().toASCIIString());
            tree.addText(uri.toASCIIString());
        } catch (FileNotFoundException e) {
            throw new XProcException(step.getNode(), "Cannot mkdir: file exists: " + href.getString());
        } catch (IOException e) {
            throw new XProcException(step.getNode(), "Mkdir failed for: " + href.getString());
        }

        tree.addEndElement();
        tree.endDocument();

        result.write(tree.getResult());
    }
View Full Code Here

        */

        qe = QueryExecutionFactory.create(query, dataset);
        results = qe.execSelect();

        TreeWriter tree = new TreeWriter(runtime);
        tree.startDocument(step.getNode().getBaseURI());
        tree.addStartElement(s_sparql);
        tree.startContent();

        tree.addStartElement(s_head);
        tree.startContent();

        for (String var : results.getResultVars()) {
            tree.addStartElement(s_variable);
            tree.addAttribute(_name, var);
            tree.startContent();
            tree.addEndElement();
        }

        tree.addEndElement();

        tree.addStartElement(s_results);
        tree.startContent();

        while (results.hasNext()) {
            QuerySolution soln = results.next();

            tree.addStartElement(s_result);
            tree.startContent();

            Iterator<String> iter = soln.varNames();
            while (iter.hasNext()) {
                String var = iter.next();

                tree.addStartElement(s_binding);
                tree.addAttribute(_name, var);
                tree.startContent();

                RDFNode node = soln.get(var);

                if (node.isLiteral()) {
                    Literal lit = node.asLiteral();
                    tree.addStartElement(s_literal);

                    if (lit.getLanguage() == null || "".equals(lit.getLanguage())) {
                        String dt = lit.getDatatypeURI();
                        if (dt == null || "".equals(dt)) {
                            // nop
                        } else {
                            tree.addAttribute(_datatype, dt);
                        }
                    } else {
                        tree.addAttribute(XProcConstants.xml_lang, node.asLiteral().getLanguage());
                    }

                    tree.addText(node.asLiteral().toString());
                    tree.addEndElement();
                } else if (node.isResource()) {
                    Resource rsrc = node.asResource();

                    if (rsrc.toString().startsWith("http://marklogic.com/semantics/blank/")) {
                        tree.addStartElement(s_bnode);
                        tree.startContent();
                        tree.addText(rsrc.toString());
                        tree.addEndElement();
                    } else {
                        tree.addStartElement(s_uri);
                        tree.startContent();
                        tree.addText(rsrc.toString());
                        tree.addEndElement();
                    }
                } else {
                    throw new XProcException("Unexpected node type in sparql results");
                }

                tree.addEndElement();
            }

            tree.addEndElement();
        }

        tree.addEndElement();
        tree.addEndElement();
        tree.endDocument();

        qe.close();

        result.write(tree.getResult());
    }
View Full Code Here

        boolean failOnError = getOption(_fail_on_error, true);

        logger.trace(MessageFormatter.nodeMessage(step.getNode(), "Checking info for " + uri));

        TreeWriter tree = new TreeWriter(runtime);
        tree.startDocument(step.getNode().getBaseURI());

        if ("file".equals(uri.getScheme())) {
            File file = new File(uri.getPath());

            if (!file.exists()) {
                if (failOnError) {
                    throw new XProcException(err_fu01);
                } else {
                    tree.addStartElement(c_error);
                    tree.addText("File not found");
                    tree.addEndElement();
                    tree.endDocument();
                    result.write(tree.getResult());
                    return;
                }
            }

            if (file.isDirectory()) {
                tree.addStartElement(c_directory);
            } else if (file.isFile()) {
                tree.addStartElement(c_file);
            } else {
                tree.addStartElement(c_other);
            }

            tree.addAttribute(_href, uri.toASCIIString());

            if (file.canRead())  { tree.addAttribute(_readable, "true"); }
            if (file.canWrite()) { tree.addAttribute(_writable, "true"); }
            if (file.isHidden()) { tree.addAttribute(_hidden, "true"); }
            tree.addAttribute(_size, "" + file.length());

            GregorianCalendar cal = new GregorianCalendar();
            cal.setTimeInMillis(file.lastModified());

            TimeZone tz = TimeZone.getDefault();
            long gmt = file.lastModified() - tz.getRawOffset();
            if (tz.useDaylightTime() && tz.inDaylightTime(cal.getTime())) {
                gmt -= tz.getDSTSavings();
            }
            cal.setTimeInMillis(gmt);
            tree.addAttribute(_last_modified, String.format("%1$04d-%2$02d-%3$02dT%4$02d:%5$02d:%6$02dZ",
                    cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1, cal.get(Calendar.DAY_OF_MONTH),
                    cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND)));

            tree.startContent();
            tree.addEndElement();
        } else {
            tree.addStartElement(c_uri);

            // Let's try HTTP
            HttpRequest httpReq = new HttpRequest(runtime, step);
            Pipe inputPipe = new Pipe(runtime);
            Pipe outputPipe = new Pipe(runtime);
            httpReq.setInput("source", inputPipe);
            httpReq.setOutput("result", outputPipe);

            TreeWriter req = new TreeWriter(runtime);
            req.startDocument(step.getNode().getBaseURI());
            req.addStartElement(XProcConstants.c_request);
            req.addAttribute(_method, "HEAD");
            req.addAttribute(_href, uri.toASCIIString());
            req.addAttribute(_status_only, "true");
            req.addAttribute(_detailed, "true");

            for (QName name : new QName[] {_username, _password, _auth_method, _send_authorization } ) {
                RuntimeValue v = getOption(name);
                if (v != null) { req.addAttribute(name, v.getString()); }
            }

            req.startContent();
            req.addEndElement();
            req.endDocument();

            inputPipe.write(req.getResult());

            httpReq.run();

            XdmNode result = S9apiUtils.getDocumentElement(outputPipe.read());
            int status = Integer.parseInt(result.getAttributeValue(_status));
View Full Code Here

            throw new XProcException(step.getNode(), "Unexpected encoding: " + encoding);
        } else {
            escapedContent = extractText(doc);
        }

        TreeWriter tree = new TreeWriter(runtime);
        tree.startDocument(doc.getBaseURI());

        XdmSequenceIterator iter = doc.axisIterator(Axis.CHILD);
        XdmNode child = (XdmNode) iter.next();
        while (child.getNodeKind() != XdmNodeKind.ELEMENT) {
            tree.addSubtree(child);
            child = (XdmNode) iter.next();
        }
        tree.addStartElement(child);
        tree.addAttributes(child);
        tree.startContent();

        if ("text/html".equals(contentType)) {
            XdmNode tagDoc = null;
            if ("tagsoup".equals(runtime.htmlParser())) {
                tagDoc = tagSoup(escapedContent);
            } else {
                tagDoc = parseHTML(escapedContent);
            }
            if (namespace == null) {
                tree.addSubtree(tagDoc);
            } else {
                remapDefaultNamespace(tree, tagDoc);
            }
        } else if ("application/json".equals(contentType) || "text/json".equals(contentType)) {
            JSONTokener jt = new JSONTokener(escapedContent);
            XdmNode jsonDoc = JSONtoXML.convert(runtime.getProcessor(), jt, runtime.jsonFlavor());
            tree.addSubtree(jsonDoc);
        } else if (!"application/xml".equals(contentType)) {
            throw XProcException.stepError(51);
        } else {
            // Put a wrapper around it so that it doesn't have to have a single root...
            escapedContent = "<wrapper>" + escapedContent + "</wrapper>";

            StringReader sr = new StringReader(escapedContent);

            // Make sure the nodes in the unescapedContent get the right base URI
            InputSource is = new InputSource(sr);
            is.setSystemId(doc.getBaseURI().toASCIIString());

            XdmNode unesc = runtime.parse(is);

            // Now ignore the wrapper that we added...
            XdmNode dummyWrapper = S9apiUtils.getDocumentElement(unesc);
            XdmSequenceIterator realNodes = dummyWrapper.axisIterator(Axis.CHILD);
            while (realNodes.hasNext()) {
                unesc = (XdmNode) realNodes.next();
                if (namespace == null) {
                    tree.addSubtree(unesc);
                } else {
                    remapDefaultNamespace(tree, unesc);
                }
            }
        }

        tree.addEndElement();
        tree.endDocument();
        result.write(tree.getResult());
    }
View Full Code Here

    if (!same && getOption(_fail_if_not_equal, false)) {
      throw XProcException.stepError(19);
    }

    TreeWriter treeWriter = new TreeWriter(runtime);
    treeWriter.startDocument(step.getNode().getBaseURI());
    treeWriter.addStartElement(c_result);
    treeWriter.startContent();
    treeWriter.addText(String.valueOf(same));
    treeWriter.addEndElement();
    treeWriter.endDocument();

    result.write(treeWriter.getResult());
  }
View Full Code Here

TOP

Related Classes of com.xmlcalabash.util.TreeWriter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.