Class XSLDocument

  • All Implemented Interfaces:
    NodeInfo, DOMLocator, Source, SourceLocator, Element, NamedNodeMap, Node, Locator

    public class XSLDocument
    extends StyleElement
    An xsl:document (formerly saxon:output) element in the stylesheet.
    The xsl:document element takes an attribute href="filename". The filename will often contain parameters, e.g. {position()} to ensure that a different file is produced for each element instance.
    There is a further attribute method=xml|html|text which determines the format of the output file (default XML). Alternatively the xsl:document element may take a next-in-chain attribute in which case output is directed to another stylesheet. Any unrecognized namespaced attributes are interepreted as attribute value templates, and their values are added to the output properties, for use by a user-defined Emitter.
    • Field Detail

      • sequence

        protected int sequence
    • Constructor Detail

      • XSLDocument

        public XSLDocument()
    • Method Detail

      • isInstruction

        public boolean isInstruction()
        Determine whether this node is an instruction.
        Overrides:
        isInstruction in class StyleElement
        Returns:
        true - it is an instruction
      • mayContainTemplateBody

        public boolean mayContainTemplateBody()
        Determine whether this type of element is allowed to contain a template-body
        Overrides:
        mayContainTemplateBody in class StyleElement
        Returns:
        true: yes, it may contain a template-body
      • process

        public void process​(Context context)
                     throws TransformerException
        Description copied from class: StyleElement
        Process: called to do the real work of this stylesheet element. This method must be implemented in each subclass.
        Specified by:
        process in class StyleElement
        Parameters:
        context - The context in the source XML document, giving access to the current node, the current variables, etc.
        Throws:
        TransformerException
      • getSequenceNumber

        protected final long getSequenceNumber()
        Get the node sequence number (in document order). Sequence numbers are monotonic but not consecutive. In the current implementation, parent nodes (elements and roots) have a zero least-significant word, while namespaces, attributes, text nodes, comments, and PIs have the top word the same as their owner and the bottom half reflecting their relative position.
        Overrides:
        getSequenceNumber in class NodeImpl
      • hasChildNodes

        public final boolean hasChildNodes()
        Determine if the node has any children.
        Specified by:
        hasChildNodes in interface Node
        Specified by:
        hasChildNodes in interface NodeInfo
        Overrides:
        hasChildNodes in class NodeImpl
        Returns:
        true if the node has any children, false if the node has no children.
      • enumerateChildren

        public final AxisEnumeration enumerateChildren​(NodeTest test)
        Get an enumeration of the children of this node
      • getFirstChild

        public final Node getFirstChild()
        Get the first child node of the element
        Specified by:
        getFirstChild in interface Node
        Overrides:
        getFirstChild in class NodeImpl
        Returns:
        the first child node of the required type, or null if there are no children
      • getLastChild

        public final Node getLastChild()
        Get the last child node of the element
        Specified by:
        getLastChild in interface Node
        Overrides:
        getLastChild in class NodeImpl
        Returns:
        the last child of the element, or null if there are no children
      • getChildNodes

        public final NodeList getChildNodes()
        Return a NodeList that contains all children of this node. If there are no children, this is a NodeList containing no nodes.
        Specified by:
        getChildNodes in interface Node
        Overrides:
        getChildNodes in class NodeImpl
      • getNthChild

        protected final NodeImpl getNthChild​(int n)
        Get the nth child node of the element (numbering from 0)
        Returns:
        the last child of the element, or null if there is no n'th child
      • getStringValue

        public String getStringValue()
        Return the string-value of the node, that is, the concatenation of the character content of all descendent elements and text nodes.
        Returns:
        the accumulated character content of the element, including descendant elements.
      • useChildrenArray

        public void useChildrenArray​(NodeImpl[] array)
        Supply an array to be used for the array of children. For system use only.
      • addChild

        public void addChild​(NodeImpl node,
                             int index)
        Add a child node to this node. For system use only. Note: normalizing adjacent text nodes is the responsibility of the caller.
      • removeChild

        public void removeChild​(int index)
        Remove node at given index. Will always be followed by a renumberChildren().
      • renumberChildren

        public void renumberChildren()
        Renumber the children of a given parent node. For system use only
      • dropChildren

        public void dropChildren()
        Drop a branch of the tree. The target element remains in the tree, but its children are disconnected from the parent. Unless there are other references to the children (e.g. in a variable) they will be deleted from memory next time the garbage collector comes round.
      • compact

        public void compact​(int size)
        Compact the space used by this node
      • getNodeValue

        public String getNodeValue()
        Get the node value as defined in the DOM. This is not the same as the XPath string-value.
        Specified by:
        getNodeValue in interface Node
        Overrides:
        getNodeValue in class AbstractNode