Red Hat Bugzilla – Bug 101508
xmllint doesn't allow " in attribute values delimited by '
Last modified: 2007-04-18 12:56:33 EDT
Description of problem:
xmllint considers the following tag to be in error:
However, the XML version 1.0, 2nd edition standard at
defines the allowed syntax of an attribute value as
AttValue ::= '"' ([^<&"] | Reference)* '"'
| "'" ([^<&'] | Reference)* "'"
which allows double quotes (") within an attribute value if that attribute
value is delimited by single quotes (').
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create a file "foo.xml" with the following content:
<?xml version="1.0" ?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
<para>foo bar baz</para>
2. Run the command "xmllint --valid --noout foo.xml"
foo.xml:5: validity error: Syntax of value for attribute id of sect1 is not valid
Should not complain about the indicated attribute value.
Not a bug. The id attribute is defined as being of type ID by the
DocBook DTD and ' is not a valid character in such a name (it is not
possible to derive it from the Name production). It's a validity error,
not a well-formedness error. Your XML is well formed, but doesn't
match the requirement of the DocBook DTD. It's a good idea to spend
a bit more time reading that spec all the terms and behaviour I describe
are defined in it.
To be more precise the validity constraint broken by your document