Expand Qt XML documentation on behavior changes in Qt 6
Adds a more detailed overview of behavior changes between Qt 5 and Qt 6 in the Qt XML module. This update is based on multiple reported tickets highlighting behavior differences, where users requested further explanations. Fixes: QTBUG-134503 Pick-to: 6.9 6.8 Change-Id: I2e25268c6de7fd7e3a0e0244b83bb2ba616ef60e Reviewed-by: Safiyyah Moosa <safiyyah.moosa@qt.io> Reviewed-by: Mate Barany <mate.barany@qt.io>
This commit is contained in:
parent
7bec2f6b42
commit
275396b013
@ -12,7 +12,18 @@
|
|||||||
|
|
||||||
We try to maintain binary and source compatibility for all the public
|
We try to maintain binary and source compatibility for all the public
|
||||||
APIs in each release. But some changes were inevitable in an effort to
|
APIs in each release. But some changes were inevitable in an effort to
|
||||||
make Qt a better framework.
|
make Qt a better framework and align with modern standards.
|
||||||
|
|
||||||
|
Qt 6 enforces XML 1.0 rules more strictly than Qt 5. In Qt 5,the XML
|
||||||
|
parser was more lenient, allowing certain constructs that were not
|
||||||
|
compliant with the XML 1.0 specification.
|
||||||
|
Qt 6 corrects this behavior, ensuring that XML handling follows
|
||||||
|
the standard properly. If your application relies on behavior
|
||||||
|
that was incorrectly permitted in Qt 5, you may need to adjust your
|
||||||
|
XML documents or processing logic accordingly.
|
||||||
|
|
||||||
|
For more details on XML 1.0 rules, see the official W3C XML specification:
|
||||||
|
\l {https://www.w3.org/TR/xml/} {Extensible Markup Language (XML) 1.0 (Fifth Edition)}
|
||||||
|
|
||||||
In this topic we summarize those changes in Qt XML, and provide
|
In this topic we summarize those changes in Qt XML, and provide
|
||||||
guidance to handle them.
|
guidance to handle them.
|
||||||
@ -70,10 +81,34 @@
|
|||||||
\li Undeclared namespace prefixes are no longer allowed.
|
\li Undeclared namespace prefixes are no longer allowed.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
If you use QDomDocument and rely on any of these, you must update
|
For more details see:
|
||||||
your code and XML documents accordingly.
|
\l {https://www.w3.org/TR/xml/#AVNormalize} {Attribute-Value Normalization in XML 1.0}
|
||||||
|
|
||||||
\section3 Spacing-only text nodes
|
\section2 Control characters
|
||||||
|
|
||||||
|
In Qt 6, control characters such as U+0000—U+001F, U+007F, and U+0080—U+009F
|
||||||
|
are now correctly rejected per XML 1.0 rules.
|
||||||
|
They were incorrectly allowed in Qt 5.
|
||||||
|
Before using XML with Qt6 ensure that your XML documents contain only valid
|
||||||
|
XML 1.0-compliant characters. If control characters are necessary, encode
|
||||||
|
them using text-safe format.
|
||||||
|
|
||||||
|
For more details see:
|
||||||
|
\l {https://www.w3.org/TR/xml/#charsets} {Characters in XML 1.0}
|
||||||
|
|
||||||
|
\section2 HTML Entities in XML
|
||||||
|
|
||||||
|
In Qt 6, HTML entities are no longer valid unless explicitly declared in a
|
||||||
|
Document Type Definition (DTD). In Qt 5, certain HTML-specific entities
|
||||||
|
(e.g., \c{ }) were allowed, even without declaration. To ensure
|
||||||
|
compatibility in Qt 6 use numeric character references, define required
|
||||||
|
entities in a DTD or if your content relies on HTML entities, process
|
||||||
|
the XML as HTML instead.
|
||||||
|
|
||||||
|
For more details see:
|
||||||
|
\l {https://www.w3.org/TR/xml/#charencoding} {Character Encoding in Entities in XML 1.0}
|
||||||
|
|
||||||
|
\section2 Spacing-only text nodes
|
||||||
|
|
||||||
By default, text nodes containing only spacing characters are stripped
|
By default, text nodes containing only spacing characters are stripped
|
||||||
and won't appear in the QDomDocument. The Qt 5 way of changing this behavior
|
and won't appear in the QDomDocument. The Qt 5 way of changing this behavior
|
||||||
@ -82,7 +117,10 @@
|
|||||||
you can pass QDomDocument::ParseOption::PreserveSpacingOnlyNodes as a parse
|
you can pass QDomDocument::ParseOption::PreserveSpacingOnlyNodes as a parse
|
||||||
option, to specify that spacing-only text nodes must be preserved.
|
option, to specify that spacing-only text nodes must be preserved.
|
||||||
|
|
||||||
\section2 Qt Core5 compatibility library
|
If you use QDomDocument and rely on any of these, you must update
|
||||||
|
your code and XML documents accordingly.
|
||||||
|
|
||||||
|
\section1 Qt Core5 compatibility library
|
||||||
|
|
||||||
If your application or library cannot be ported right now, the \l
|
If your application or library cannot be ported right now, the \l
|
||||||
QXmlSimpleReader and related classes still exist in Qt5Compat to keep
|
QXmlSimpleReader and related classes still exist in Qt5Compat to keep
|
||||||
|
Loading…
x
Reference in New Issue
Block a user