From c6eee578665bfd2c3b25b238cf8ae24fee00f9f7 Mon Sep 17 00:00:00 2001 From: Jakub Wieczorek Date: Mon, 26 Oct 2009 22:23:28 +0100 Subject: QXmlStream: Fix parsing of DTDs that contain empty markup declarations like e.g. According to the specification, it is possible for a doctype to contain no markup declarations: http://www.w3.org/TR/xml/#sec-prolog-dtd "intSubset ::= (markupdecl | DeclSep)*" However, currently QXmlStreamReader would raise an error when encountering such a declaration. Merge-request: 1926 Reviewed-by: Peter Hartmann --- src/corelib/xml/qxmlstream.g | 1 + tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.ref | 7 +++++++ tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.xml | 3 +++ 3 files changed, 11 insertions(+) create mode 100644 tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.ref create mode 100644 tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.xml diff --git a/src/corelib/xml/qxmlstream.g b/src/corelib/xml/qxmlstream.g index 22ba33d..9921d41 100644 --- a/src/corelib/xml/qxmlstream.g +++ b/src/corelib/xml/qxmlstream.g @@ -915,6 +915,7 @@ markup ::= markup_start markup_list RBRACK; markup_list ::= markup_decl | space | pereference; markup_list ::= markup_list markup_decl | markup_list space | markup_list pereference; +markup_list ::=; markup_decl ::= element_decl | attlist_decl | entity_decl | entity_done | notation_decl | processing_instruction | comment; diff --git a/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.ref b/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.ref new file mode 100644 index 0000000..ea85e32 --- /dev/null +++ b/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.ref @@ -0,0 +1,7 @@ +StartDocument( ) +Comment( text=" Empty markup declaration in a doctype. " ) +DTD( text=" +" dtdName="doc" ) +StartElement( name="doc" qualifiedName="doc" ) +EndElement( name="doc" qualifiedName="doc" ) +EndDocument( ) diff --git a/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.xml b/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.xml new file mode 100644 index 0000000..1c66c0c --- /dev/null +++ b/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.xml @@ -0,0 +1,3 @@ + + + -- cgit v0.12