Package net.sf.saxon.tinytree

Examples of net.sf.saxon.tinytree.TinyBuilder


            current = (Item)pe;
            position++;
            return current;
        } else if (pe instanceof StartDocumentEvent || pe instanceof StartElementEvent) {
            SubtreeIterator sub = new SubtreeIterator(base, pe);
            TinyBuilder builder = new TinyBuilder();
            builder.setPipelineConfiguration(pipe);
            TreeReceiver receiver = new TreeReceiver(builder);
            builder.setPipelineConfiguration(pipe);
            EventIteratorToReceiver.copy(sub, receiver);
            current = builder.getCurrentRoot();
            position++;
            return current;
        } else {
            throw new IllegalStateException(pe.getClass().getName());
        }
View Full Code Here


     */

    public NodeInfo getElementNode() throws XPathException {
        if (elementNode == null) {
            int len = bufferedAttributes.getLength();
            TinyBuilder builder = new TinyBuilder();
            builder.setSizeParameters(new int[]{2, len+2, namespacesSize+2, 16});
            builder.setPipelineConfiguration(getPipelineConfiguration());
            builder.open();
            builder.startElement(elementNameCode, StandardNames.XS_UNTYPED_ATOMIC, 0, 0);
            for (int i=0; i<namespacesSize; i++) {
                builder.namespace(namespaces[i], 0);
            }
            for (int i=0; i<len; i++) {
                builder.attribute(bufferedAttributes.getNameCode(i), StandardNames.XS_UNTYPED_ATOMIC,
                        bufferedAttributes.getValue(i), 0, 0);
            }
            builder.startContent();
            builder.endElement();
            elementNode = builder.getCurrentRoot();
        }
        return elementNode;
    }
View Full Code Here

     * Start of a document node.
    */

    public void startDocument(int properties) throws XPathException {
        if (tree==null) {
            builder = new TinyBuilder();
            builder.setConfiguration(config);
            builder.setSizeParameters(treeSizeParameters);

            NamespaceReducer reducer = new NamespaceReducer();
            reducer.setUnderlyingReceiver(builder);
View Full Code Here

        }

        if (tree==null) {

            documentLevel = 0;
            builder = new TinyBuilder();
            builder.setConfiguration(config);
            builder.setSizeParameters(treeSizeParameters);
            builder.setDocumentLocator(locator);

            NamespaceReducer reducer = new NamespaceReducer();
View Full Code Here

            // TODO: use an Outputter that delayes the decision whether to build a
            // TextFragment or a TinyTree until the first element is encountered, to
            // avoid the overhead of using a TinyTree for text-only trees. This would
            // make the static analysis superfluous.

            TinyBuilder builder = new TinyBuilder();
            //System.err.println("Build doc " + builder);
            builder.setSizeParameters(treeSizeParameters);
            builder.setLineNumbering(controller.getConfiguration().isLineNumbering());

            Receiver receiver = builder;
            receiver.setSystemId(baseURI);
            receiver.setConfiguration(controller.getConfiguration());
            receiver.open();
            receiver.startDocument(0);
            c2.changeOutputDestination(null,
                    receiver,
                    false,
                    validationAction,
                    schemaType);
            processChildren(c2);
            //c2.resetOutputDestination(old);
            receiver.endDocument();
            receiver.close();
            //System.err.println("End build doc " + builder);

            root = builder.getCurrentDocument();
        }
        return root;
    }
View Full Code Here

                        } else {
                            Builder builder;
                            if (doc instanceof DocumentImpl) {
                                builder = new TreeBuilder();
                            } else {
                                builder = new TinyBuilder();
                            }
                            builder.setRootNode(doc);
                            builder.setSystemId(result.getSystemId());
                            builder.setConfiguration(config);
                            return builder;
                        }
                    } else {
                        throw new DynamicError("Cannot add to an existing Saxon document");
                    }
                } else {
                    // Non-Saxon DOM
                    DOMEmitter emitter = new DOMEmitter();
                    emitter.setSystemId(result.getSystemId());
                    emitter.setConfiguration(config);
                    emitter.setNode(resultNode);
                    return emitter;
                }
            } else {
                // no result node supplied; we must create our own
                TinyBuilder builder = new TinyBuilder();
                builder.setSystemId(result.getSystemId());
                builder.setConfiguration(config);
                builder.createDocument();
                Document resultDoc = (Document)builder.getCurrentDocument();
                ((DOMResult)result).setNode(resultDoc);
                return builder;
            }
        } else {
            throw new IllegalArgumentException("Unknown type of result: " + result.getClass());
View Full Code Here

        } else {
            // we have a SAXSource or StreamSource
            Builder b;
            if (config.getTreeModel() == Builder.TINY_TREE) {
                b = new TinyBuilder();
            } else {
                b = new TreeBuilder();
            }
            b.setConfiguration(config);
            b.setLineNumbering(config.isLineNumbering());
View Full Code Here

    public TailCall processLeavingTail(XPathContext context) throws XPathException {
        Controller controller = context.getController();
        XPathContext c2 = context.newMinorContext();
        c2.setOrigin(this);
        SequenceReceiver out = c2.getReceiver();
        TinyBuilder builder = new TinyBuilder();
        Receiver receiver = builder;
        receiver.setConfiguration(controller.getConfiguration());
        receiver.open();

        c2.changeOutputDestination(null, receiver, false, Validation.PRESERVE, null);
        processChildren(c2);
        receiver.close();
        DocumentInfo dtdRoot = builder.getCurrentDocument();

        SequenceIterator children = dtdRoot.iterateAxis(Axis.CHILD);
        NodeInfo docType = (NodeInfo) children.next();
        if (docType == null || !("doctype".equals(docType.getLocalPart()))) {
            DynamicError e = new DynamicError("saxon:doctype instruction must contain dtd:doctype");
View Full Code Here

     * @throws XPathException
     */

    public static DocumentInfo wrap(SequenceIterator iterator, Configuration config) throws XPathException {
        NamePool pool = config.getNamePool();
        TinyBuilder builder = new TinyBuilder();

        NamespaceReducer reducer = new NamespaceReducer();
        reducer.setUnderlyingReceiver(builder);
        Receiver tree = reducer;

        tree.setConfiguration(config);
        builder.setConfiguration(config);
        tree.open();

        int resultSequence = pool.allocate("result", RESULT_NS, "sequence");
        int resultDocument = pool.allocate("result", RESULT_NS, "document");
        int resultElement = pool.allocate("result", RESULT_NS, "element");
        int resultAttribute = pool.allocate("result", RESULT_NS, "attribute");
        int resultText = pool.allocate("result", RESULT_NS, "text");
        int resultComment = pool.allocate("result", RESULT_NS, "comment");
        int resultPI = pool.allocate("result", RESULT_NS, "processing-instruction");
        int resultNamespace = pool.allocate("result", RESULT_NS, "namespace");
        int resultAtomicValue = pool.allocate("result", RESULT_NS, "atomic-value");
        int resultType = pool.allocate("", RESULT_NS, "type");


        tree.startElement(resultSequence, -1, 0, 0);
        tree.namespace(pool.allocateNamespaceCode("result", RESULT_NS), 0);
        tree.startContent();

        while (true) {
            Item next = iterator.next();
            if (next == null) {
                break;
            }
            if (next instanceof NodeInfo) {
                switch (((NodeInfo)next).getNodeKind()) {
                    case Type.DOCUMENT:
                        tree.startElement(resultDocument, -1, 0, 0);
                        tree.startContent();
                        ((DocumentInfo)next).copy(tree, NodeInfo.ALL_NAMESPACES, true, 0);
                        tree.endElement();
                        break;
                    case Type.ELEMENT:
                        tree.startElement(resultElement, -1, 0, 0);
                        tree.startContent();
                        ((NodeInfo)next).copy(tree, NodeInfo.ALL_NAMESPACES, true, 0);
                        tree.endElement();
                        break;
                    case Type.ATTRIBUTE:
                        tree.startElement(resultAttribute, -1, 0, 0);
                        ((NodeInfo)next).copy(tree, NodeInfo.ALL_NAMESPACES, true, 0);
                        tree.startContent();
                        tree.endElement();
                        break;
                    case Type.TEXT:
                        tree.startElement(resultText, -1, 0, 0);
                        tree.startContent();
                        ((NodeInfo)next).copy(tree, NodeInfo.ALL_NAMESPACES, true, 0);
                        tree.endElement();
                        break;
                    case Type.COMMENT:
                        tree.startElement(resultComment, -1, 0, 0);
                        tree.startContent();
                        ((NodeInfo)next).copy(tree, NodeInfo.ALL_NAMESPACES, true, 0);
                        tree.endElement();
                        break;
                    case Type.PROCESSING_INSTRUCTION:
                        tree.startElement(resultPI, -1, 0, 0);
                        tree.startContent();
                        ((NodeInfo)next).copy(tree, NodeInfo.ALL_NAMESPACES, true, 0);
                        tree.endElement();
                        break;
                    case Type.NAMESPACE:
                        tree.startElement(resultNamespace, -1, 0, 0);
                        ((NodeInfo)next).copy(tree, NodeInfo.ALL_NAMESPACES, true, 0);
                        tree.startContent();
                        tree.endElement();
                        break;
                }
            } else {
                tree.startElement(resultAtomicValue, -1, 0, 0);
                tree.attribute(resultType, -1, Type.displayTypeName(next), 0, 0);
                tree.startContent();
                tree.characters(next.getStringValue(), 0, 0);
                tree.endElement();
            }

        }
        tree.endElement();
        tree.close();
        return builder.getCurrentDocument();
    }
View Full Code Here

     */

    public Builder makeBuilder() {
        Builder b;
        if (treeModel==Builder.TINY_TREE)  {
            b = new TinyBuilder();
        } else {
            b = new TreeBuilder();
        }
        b.setTiming(config.isTiming());
        b.setLineNumbering(config.isLineNumbering());
View Full Code Here

TOP

Related Classes of net.sf.saxon.tinytree.TinyBuilder

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.