David Leffingwell created XERCESC-2239:
------------------------------------------
Summary: When XMLUni::fgDOMWRTSplitCdataSections is true (the
default) invalid XML characters are allowed by DOMWriter
Key: XERCESC-2239
URL: https://issues.apache.org/jira/browse/XERCESC-2239
Project: Xerces-C++
Issue Type: Bug
Components: DOM
Affects Versions: 3.2.0
Reporter: David Leffingwell
// Create a Document with a CDATA section that contains an invalid XML
character (e.g. 0x1b).
// This should fail when serializing the Document, but it does not when
XMLUni::fgDOMWRTSplitCdataSections is true.
struct XercesDeleter
{
template<typename T>
void operator()(T* data) const
{
if (data) { data->release(); };
}
};
typedef std::unique_ptr<XERCES_CPP_NAMESPACE::DOMLSSerializer,XercesDeleter>
DOMWriterPtr;
typedef std::unique_ptr<XERCES_CPP_NAMESPACE::DOMDocument,XercesDeleter>
DOMDocumentPtr;
XMLPlatformUtils::Initialize();
DOMImplementation* impl =
DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("LS"));
// Create DOM with a CDATA section
DOMDocumentPtr document(impl->createDocument());
DOMElement* element =
document->createElementNS(XMLString::transcode("http://schemas.openxmlformats.org/wordprocessingml/2006/main"),
XMLString::transcode("w:t"));
document->appendChild(element);
DOMCDATASection* codesection = document->createCDATASection(XercesString(code));
element->appendChild(codesection);
DOMWriterPtr writer(impl->createLSSerializer());
writer->writeToString(document.get())
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]