Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
Table of Contents

MistypedCDATASection

Since: PMD 5.0

Priority: Medium (3)

An XML CDATA section begins with a <![CDATA[ marker, which has only one [, and ends with a ]]> marker, which has two ].

This rule is defined by the following XPath expression:

//cdata-section[starts-with(@Text,'[') or ends-with(@Text,']')]

Example(s):

<root>
    <child>
        <![CDATA[[ character data ]]> - this cdata section is valid, but it contains an
        additional square bracket at the beginning.
        It should probably be just <![CDATA[ character data ]]>.
    </child>
    <child>
        <![CDATA[ character data ]]]> - this cdata section is valid, but it contains an
        additional square bracket in the end.
        It should probably be just <![CDATA[ character data ]]>.
    </child>
</root>

Use this rule by referencing it:

<rule ref="category/xml/errorprone.xml/MistypedCDATASection" />