All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.w3c.dom.Text Maven / Gradle / Ivy

The newest version!
/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

/*
 * This file is available under and governed by the GNU General Public
 * License version 2 only, as published by the Free Software Foundation.
 * However, the following notice accompanied the original version of this
 * file and, per its terms, should not be removed:
 *
 * Copyright (c) 2004 World Wide Web Consortium,
 *
 * (Massachusetts Institute of Technology, European Research Consortium for
 * Informatics and Mathematics, Keio University). All Rights Reserved. This
 * work is distributed under the W3C(r) Software License [1] in the hope that
 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
 */

package org.w3c.dom;

/**
 * The Text interface inherits from CharacterData
 * and represents the textual content (termed character data in XML) of an Element or Attr. If there is no
 * markup inside an element's content, the text is contained in a single
 * object implementing the Text interface that is the only
 * child of the element. If there is markup, it is parsed into the
 * information items (elements, comments, etc.) and Text nodes
 * that form the list of children of the element.
 * 

When a document is first made available via the DOM, there is only one * Text node for each block of text. Users may create adjacent * Text nodes that represent the contents of a given element * without any intervening markup, but should be aware that there is no way * to represent the separations between these nodes in XML or HTML, so they * will not (in general) persist between DOM editing sessions. The * Node.normalize() method merges any such adjacent * Text objects into a single node for each block of text. *

No lexical check is done on the content of a Text node * and, depending on its position in the document, some characters must be * escaped during serialization using character references; e.g. the * characters "<&" if the textual content is part of an element or of * an attribute, the character sequence "]]>" when part of an element, * the quotation mark character " or the apostrophe character ' when part of * an attribute. *

See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Text extends CharacterData { /** * Breaks this node into two nodes at the specified offset, * keeping both in the tree as siblings. After being split, this node * will contain all the content up to the offset point. A * new node of the same type, which contains all the content at and * after the offset point, is returned. If the original * node had a parent node, the new node is inserted as the next sibling * of the original node. When the offset is equal to the * length of this node, the new node has no data. * @param offset The 16-bit unit offset at which to split, starting from * 0. * @return The new node, of the same type as this node. * @exception DOMException * INDEX_SIZE_ERR: Raised if the specified offset is negative or greater * than the number of 16-bit units in data. *
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. */ public Text splitText(int offset) throws DOMException; /** * Returns whether this text node contains * element content whitespace, often abusively called "ignorable whitespace". The text node is * determined to contain whitespace in element content during the load * of the document or if validation occurs while using * Document.normalizeDocument(). * @since 1.5, DOM Level 3 */ public boolean isElementContentWhitespace(); /** * Returns all text of Text nodes logically-adjacent text * nodes to this node, concatenated in document order. *
For instance, in the example below wholeText on the * Text node that contains "bar" returns "barfoo", while on * the Text node that contains "foo" it returns "barfoo". * *

     *                     +-----+
     *                     | <p> |
     *                     +-----+
     *                       /\
     *                      /  \
     *               /-----\    +-------+
     *               | bar |    | &ent; |
     *               \-----/    +-------+
     *                              |
     *                              |
     *                           /-----\
     *                           | foo |
     *                           \-----/
     * 
* Figure: barTextNode.wholeText value is "barfoo" * * @since 1.5, DOM Level 3 */ public String getWholeText(); /** * Replaces the text of the current node and all logically-adjacent text * nodes with the specified text. All logically-adjacent text nodes are * removed including the current node unless it was the recipient of the * replacement text. *

This method returns the node which received the replacement text. * The returned node is:

*
    *
  • null, when the replacement text is * the empty string; *
  • *
  • the current node, except when the current node is * read-only; *
  • *
  • a new Text node of the same type ( * Text or CDATASection) as the current node * inserted at the location of the replacement. *
  • *
*

For instance, in the above example calling * replaceWholeText on the Text node that * contains "bar" with "yo" in argument results in the following:

* *
     *                     +-----+
     *                     | <p> |
     *                     +-----+
     *                        |
     *                        |
     *                     /-----\
     *                     | yo  |
     *                     \-----/
     * 
* Figure: barTextNode.replaceWholeText("yo") modifies the * textual content of barTextNode with "yo" * *

Where the nodes to be removed are read-only descendants of an * EntityReference, the EntityReference must * be removed instead of the read-only nodes. If any * EntityReference to be removed has descendants that are * not EntityReference, Text, or * CDATASection nodes, the replaceWholeText * method must fail before performing any modification of the document, * raising a DOMException with the code * NO_MODIFICATION_ALLOWED_ERR.

*

For instance, in the example below calling * replaceWholeText on the Text node that * contains "bar" fails, because the EntityReference node * "ent" contains an Element node which cannot be removed.

* @param content The content of the replacing Text node. * @return The Text node created with the specified content. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if one of the Text * nodes being replaced is readonly. * @since 1.5, DOM Level 3 */ public Text replaceWholeText(String content) throws DOMException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy