Attribute defaults with a DTD have special parsing rules, different from other strings. That means that characters found there may look like an undefined parameter entity reference "within a markup declaration", but they aren't ... so they can't be violating the PEs in Internal Subset WFC.
<!DOCTYPE doc [ <!ENTITY % e "foo"> <!ELEMENT doc (#PCDATA)> <!ATTLIST doc a1 CDATA "%e;"> ]> <doc></doc>
Expected result | Actual result for gnu.xml.aelfred2.XmlReader |
---|---|
<?xml version="1.0" encoding="UTF-8"?> <ConformanceResults> <startDocument/> <startElement> <namespaceURI/> <localName>doc</localName> <qualifiedName>doc</qualifiedName> <attributes> <attribute> <namespaceURI/> <localName>a1</localName> <qualifiedName>a1</qualifiedName> <value>%e;</value> <type>CDATA</type> </attribute> </attributes> </startElement> <endElement> <namespaceURI/> <localName>doc</localName> <qualifiedName>doc</qualifiedName> </endElement> <endDocument/> </ConformanceResults> | <?xml version="1.0" encoding="UTF-8"?> <ConformanceResults> <startDocument/> <endDocument/> <bug reason="Parser should only throw SAXExceptions" type="java.lang.ArrayIndexOutOfBoundsException">1 >= 1</bug> </ConformanceResults> |