Интерфейс CDATASection
- Все суперинтерфейсы:
- CharacterData, Node, Text
public interface CDATASection extends Text
Разделы CDATA используются для экранирования блоков текста, содержащих символы, которые в противном случае рассматривались бы как разметка. Единственным разделителем, распознаваемым в разделе CDATA, является строка "]]>", которая завершает раздел CDATA. Разделы CDATA не могут быть вложены. Их основная цель — включение материалов, таких как фрагменты XML, без необходимости экранирования всех разделителей.
Атрибут CharacterData.data содержит текст, содержащийся в разделе CDATA. Обратите внимание, что это может содержать символы, которые необходимо экранировать вне разделов CDATA, и что в зависимости от выбранного кодирования символов ("charset") для сериализации, некоторые символы могут быть невозможно записать в качестве части раздела CDATA.
Интерфейс CDATASection наследуется от интерфейса CharacterData через интерфейс Text. Соседние узлы CDATASection не объединяются с помощью метода normalize интерфейса Node.
Лексическая проверка содержимого раздела CDATA не выполняется, и поэтому в содержимом может быть последовательность символов "]]>", которая является незаконной в разделе CDATA в соответствии с разделом 2.7 [XML 1.0]. Наличие этой последовательности символов должно привести к ошибке при сериализации, или раздел cdata должен быть разделен перед сериализацией (см. также параметр "split-cdata-sections" в интерфейсе DOMConfiguration).
Примечание: Поскольку разметка не распознаётся внутри CDATASection, числовые ссылки на символы не могут использоваться в качестве механизма экранирования при сериализации. Поэтому необходимо принять меры при сериализации CDATASection с кодировкой символов, где некоторые содержащиеся символы не могут быть представлены. Отсутствие таких мер приведет к тому, что XML не будет правильно сформирован.
Примечание: Одним из потенциальных решений при сериализации является завершение раздела CDATA перед символом, вывод символа с помощью числовой ссылки или ссылки на сущность, и открытие нового раздела CDATA для любых последующих символов в текстовом узле. Однако следует отметить, что некоторые библиотеки преобразования кода на момент написания не возвращают ошибку или исключение при отсутствии символа в кодировке, что затрудняет задачу по обеспечению того, чтобы данные не были повреждены при сериализации.
См. также Спецификацию уровня 3 ядра DOM (Document Object Model).
Поля
Наследуемые поля от интерфейса org.w3c.dom.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
Методы
Наследуемые методы от интерфейса org.w3c.dom.Text
getWholeText, isElementContentWhitespace, replaceWholeText, splitText
Наследуемые методы от интерфейса org.w3c.dom.CharacterData
appendData, deleteData, getData, getLength, insertData, replaceData, setData, substringData
Наследуемые методы от интерфейса org.w3c.dom.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
© 1993, 2020, 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.