Spec-Zone.ru › OpenJDK 27

Интерфейс CDATASection

Все суперинтерфейсы:
CharacterData, Node, Text
public interface CDATASection extends Text
Разделы CDATA используются для экранирования блоков текста, содержащих символы, которые иначе рассматривались бы как разметка. Единственный разделитель, распознаваемый в разделе CDATA, — это строка "]]>", завершающая раздел CDATA. Разделы CDATA не могут быть вложенными. Их основное назначение — включение таких материалов, как фрагменты XML, без необходимости экранировать все разделители.

Атрибут CharacterData.data содержит текст, заключённый в раздел CDATA. Обратите внимание, что этот текст может содержать символы, которые необходимо экранировать вне разделов CDATA, и что в зависимости от выбранной для сериализации кодировки символов («набора символов») некоторые символы может быть невозможно записать в составе раздела CDATA.

Интерфейс CDATASection наследует интерфейс CharacterData через интерфейс Text. Соседние узлы CDATASection не объединяются при использовании метода normalize интерфейса Node.

Содержимое раздела CDATA не проверяется лексически, поэтому в нём может присутствовать последовательность символов "]]>", запрещённая в разделе CDATA согласно разделу 2.7 [XML 1.0]. Наличие этой последовательности символов должно приводить к фатальной ошибке при сериализации либо раздел CDATA должен быть разделён перед сериализацией (см. также параметр "split-cdata-sections" интерфейса DOMConfiguration).

Примечание: Поскольку внутри CDATASection не распознаётся разметка, числовые ссылки на символы нельзя использовать в качестве механизма экранирования при сериализации. Поэтому при сериализации CDATASection с кодировкой символов, в которой невозможно представить некоторые из содержащихся в нём символов, необходимо принять соответствующие меры. В противном случае корректный XML сформирован не будет.

Примечание: Одно из возможных решений при сериализации — завершить раздел CDATA перед таким символом, вывести символ с помощью ссылки на символ или сущность и открыть новый раздел CDATA для всех последующих символов текстового узла. Однако следует учитывать, что некоторые библиотеки преобразования кодировок на момент написания документа не возвращают ошибку и не генерируют исключение, если в кодировке отсутствует символ, что затрудняет проверку того, что данные не будут повреждены при сериализации.

См. также Спецификацию основной модели объектов документа (DOM) уровня 3.

Начиная с:
1.4, DOM Level 2

Краткое описание полей

Поля, объявленные в интерфейсе Node

ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
Модификатор и тип Поле Описание
static final short ATTRIBUTE_NODE
Узел является Attr.
static final short CDATA_SECTION_NODE
Узел является CDATASection.
static final short COMMENT_NODE
Узел является Comment.
static final short DOCUMENT_FRAGMENT_NODE
Узел является DocumentFragment.
static final short DOCUMENT_NODE
Узел является Document.
static final short DOCUMENT_POSITION_CONTAINED_BY
Узел содержится в узле-ссылке.
static final short DOCUMENT_POSITION_CONTAINS
Узел содержит узел-ссылку.
static final short DOCUMENT_POSITION_DISCONNECTED
Два узла не связаны.
static final short DOCUMENT_POSITION_FOLLOWING
Узел следует за узлом-ссылкой.
static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
Определение того, какой узел предшествует другому, зависит от реализации.
static final short DOCUMENT_POSITION_PRECEDING
Второй узел предшествует узлу-ссылке.
static final short DOCUMENT_TYPE_NODE
Узел является DocumentType.
static final short ELEMENT_NODE
Узел является Element.
static final short ENTITY_NODE
Узел является Entity.
static final short ENTITY_REFERENCE_NODE
Узел является EntityReference.
static final short NOTATION_NODE
Узел является Notation.
static final short PROCESSING_INSTRUCTION_NODE
Узел является ProcessingInstruction.
static final short TEXT_NODE
Узел является узлом Text.

Краткое описание методов

Методы, объявленные в интерфейсе CharacterData

appendData, deleteData, getData, getLength, insertData, replaceData, setData, substringData
Модификатор и тип Метод Описание
void appendData(String arg)
Добавляет строку в конец символьных данных узла.
void deleteData(int offset, int count)
Удаляет из узла диапазон 16-разрядных единиц.
String getData()
Символьные данные узла, реализующего этот интерфейс.
int getLength()
Количество 16-разрядных единиц, доступных через data и описанный ниже метод substringData.
void insertData(int offset, String arg)
Вставляет строку по указанному смещению в 16-разрядных единицах.
void replaceData(int offset, int count, String arg)
Заменяет символы, начиная с указанного смещения в 16-разрядных единицах, заданной строкой.
void setData(String data)
Символьные данные узла, реализующего этот интерфейс.
String substringData(int offset, int count)
Извлекает диапазон данных из узла.

Методы, объявленные в интерфейсе Node

appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
Модификатор и тип Метод Описание
Node appendChild(Node newChild)
Добавляет узел newChild в конец списка дочерних узлов этого узла.
Node cloneNode(boolean deep)
Возвращает дубликат этого узла, то есть служит универсальным конструктором копирования для узлов.
short compareDocumentPosition(Node other)
Сравнивает узел-ссылку (то есть узел, для которого вызывается этот метод) с другим узлом (переданным в качестве параметра) по их положению в документе и в соответствии с порядком документа.
NamedNodeMap getAttributes()
Объект NamedNodeMap, содержащий атрибуты этого узла (если он является Element), или null в противном случае.
String getBaseURI()
Абсолютный базовый URI этого узла или null, если реализации не удалось получить абсолютный URI.
NodeList getChildNodes()
Объект NodeList, содержащий все дочерние узлы этого узла.
Object getFeature(String feature, String version)
Этот метод возвращает специализированный объект, реализующий специализированные API указанной функции и версии, как указано в .
Node getFirstChild()
Первый дочерний узел этого узла.
Node getLastChild()
Последний дочерний узел этого узла.
String getLocalName()
Возвращает локальную часть квалифицированного имени этого узла.
String getNamespaceURI()
URI пространства имён этого узла или null, если он не задан (см. ).
Node getNextSibling()
Узел, непосредственно следующий за этим узлом.
String getNodeName()
Имя этого узла в зависимости от его типа; см. таблицу выше.
short getNodeType()
Код, представляющий тип базового объекта, как определено выше.
String getNodeValue()
Значение этого узла в зависимости от его типа; см. таблицу выше.
Document getOwnerDocument()
Объект Document, связанный с этим узлом.
Node getParentNode()
Родительский узел этого узла.
String getPrefix()
Префикс пространства имён этого узла или null, если он не задан.
Node getPreviousSibling()
Узел, непосредственно предшествующий этому узлу.
String getTextContent()
Этот атрибут возвращает текстовое содержимое данного узла и его потомков.
Object getUserData(String key)
Получает объект, связанный с ключом в этом узле.
boolean hasAttributes()
Возвращает, имеются ли у этого узла какие-либо атрибуты (если он является элементом).
boolean hasChildNodes()
Возвращает, имеются ли у этого узла дочерние узлы.
Node insertBefore(Node newChild, Node refChild)
Вставляет узел newChild перед существующим дочерним узлом refChild.
boolean isDefaultNamespace(String namespaceURI)
Этот метод проверяет, является ли указанный namespaceURI пространством имён по умолчанию.
boolean isEqualNode(Node arg)
Проверяет, равны ли два узла.
boolean isSameNode(Node other)
Возвращает, является ли этот узел тем же самым узлом, что и заданный.
boolean isSupported(String feature, String version)
Проверяет, реализует ли DOM-реализация определённую функцию и поддерживается ли эта функция данным узлом, как указано в .
String lookupNamespaceURI(String prefix)
Ищет URI пространства имён, связанный с заданным префиксом, начиная с этого узла.
String lookupPrefix(String namespaceURI)
Ищет префикс, связанный с заданным URI пространства имён, начиная с этого узла.
void normalize()
Приводит все узлы Text на всей глубине поддерева под этим Node, включая узлы-атрибуты, к «нормальной» форме, в которой узлы Text разделяются только структурными элементами (например, элементами, комментариями, инструкциями обработки, разделами CDATA и ссылками на сущности), то есть соседних узлов Text и пустых узлов Text нет.
Node removeChild(Node oldChild)
Удаляет дочерний узел, указанный параметром oldChild, из списка дочерних узлов и возвращает его.
Node replaceChild(Node newChild, Node oldChild)
Заменяет дочерний узел oldChild узлом newChild в списке дочерних узлов и возвращает узел oldChild.
void setNodeValue(String nodeValue)
Значение этого узла в зависимости от его типа; см. таблицу выше.
void setPrefix(String prefix)
Префикс пространства имён этого узла или null, если он не задан.
void setTextContent(String textContent)
Этот атрибут возвращает текстовое содержимое данного узла и его потомков.
Object setUserData(String key, Object data, UserDataHandler handler)
Связывает объект с ключом в этом узле.

Методы, объявленные в интерфейсе Text

getWholeText, isElementContentWhitespace, replaceWholeText, splitText
Модификатор и тип Метод Описание
String getWholeText()
Возвращает весь текст узлов Text — логически смежных текстовых узлов данного узла, объединённый в порядке документа.
boolean isElementContentWhitespace()
Возвращает, содержит ли этот текстовый узел пробельные символы в содержимом элемента, которые часто ошибочно называют «игнорируемыми пробелами».
Text replaceWholeText(String content)
Заменяет текст текущего узла и всех логически смежных текстовых узлов указанным текстом.
Text splitText(int offset)
Разбивает этот узел на два узла в указанной позиции offset, оставляя оба узла в дереве в качестве соседних.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API