Module  java.xml
软件包  org.w3c.dom

Interface CDATASection

  • All Superinterfaces:
    CharacterDataNodeText


    public interface CDATASection
    extends Text
    CDATA部分用于转义包含否则将被视为标记的字符的文本块。 在CDATA部分中识别的唯一分隔符是“]]>”结束CDATA部分的字符串。 CDATA节无法嵌套。 它们的主要目的是用于包括XML片段等素材,而不需要转义所有的分隔符。

    CharacterData.data属性保存由CDATA部分包含的文本。 请注意,这可能包含需要在CDATA部分之外转义的字符,并且根据为序列化选择的字符编码(“charset”),可能无法将一些字符作为CDATA部分的一部分。

    CharacterData接口通过CDATASection接口继承了Text接口。 相邻的CDATASection节点不会通过使用Node接口的normalize方法合并。

    不对CDATA部分的内容进行词法检查,因此可以在[ XML 1.0 ]的第2.7节中的CDATA部分中的内容中具有字符序列"]]>" 在序列化期间,此字符序列的存在必须产生致命错误,或者在序列化之前必须拆分cdata部分(参见DOMConfiguration接口中的参数"split-cdata-sections" )。

    注意:由于在CDATASection未识别到标记,因此当序列化时,字符数字引用不能用作转义机制。 因此,当使用字符编码序列化CDATASection时,需要采取措施,其中一些包含的字符不能被表示。 否则不会生成格式良好的XML。

    注意:串行化过程中的一个潜在解决方案是在字符之前结束CDATA部分,使用字符引用或实体引用输出字符,并为文本节点中的任何其他字符打开一个新的CDATA部分。 但是请注意,在编写时,某些代码转换库在编码中缺少字符时不会返回错误或异常,从而确保数据在序列化时不会损坏的任务更加困难。

    另见Document Object Model (DOM) Level 3 Core Specification