[Serial] XHTML Serialization

Dear XSL Working Group,
Dear XML Query Working Group,

  These are my comments on section 6 of the current XSLT 2.0 and XQuery
1.0 Serialization Working Draft:

[...]
  Equally, it is entirely under the control of the person or process
  that creates the instance of the data model whether the output
  conforms to XHTML Strict, XHTML Transitional, XHTML Frameset, or
  XHTML Basic.
[...]

Please change the enumeration of document types to something more
general, there is no "XHTML Strict" document type (it would be "XHTML
1.0 Strict") and some document types such as XHTML 1.1 are missing.

[...]
  Given an empty instance of an XHTML element whose content model is not
  EMPTY (for example, an empty title or paragraph) the serializer MUST
  NOT use the minimized form.
[...]

It is not clear to me how it is determined whether an element has such a
content model, please specify clearly how this is determined and whether
implementations should/may/etc. apply these rules to elements for which
the algorithm to determine the content model defines no result, e.g. the
algorithm is unlikely to define the rules for the "wbr" element which is
a proprietary element with a content model of EMPTY.

[...]
  The serializer SHOULD output namespace declarations in a way that is
  consistent with the requirements of the XHTML DTD if this is possible.
  The DTD requires the declaration xmlns="http://www.w3.org/1999/xhtml"
  to appear on the html element, and only on the html element. 
[...]

This is only true for XHTML 1.0 document types, XHTML 1.1 for example
allows xmlns="http://www.w3.org/1999/xhtml" on all elements.

It is not clear to me whether the note following the item above is a
clarification of the requirement or an additional suggestion. If it is
an additional suggestion, please change the document so that
implementations SHOULD implement what the note describes, if it is a
clarification, please make this more obvious in the document.

[...]
  If the instance of the data model includes a head element in the XHTML
  namespace, and the include-content-type parameter has the value yes,
  the xhtml output method MUST add a meta element immediately after the
  start-tag of the head element specifying the character encoding
  actually used.
[...]

It is not clear what "immediately after" means here, I would expect that
the meta element is the first child of the head element, but in the
example it is the second node (preceded by a whitespace text node).

The example is non-conforming as it lacks the trailing space before />,
please change the example to conform to the specification.

[...]
  The content type SHOULD be set to the value given for the media-type
  parameter; the default value for XHTML is text/html. The value
  application/xhtml+xml, registered in [RFC3236], MAY also be used.
[...]

It is not clear to me what you mean here, there are only two behaviors
that make sense to me, either

  * the value is always text/html
  * the value is always the value given
    for media-type defaulting to text/html

It is never acceptable to use application/xhtml+xml unless explicitly
requested (among other things, some user agents fail to recognize the
charset parameter if the type is not text/html), please change the text
to state that the value must be set to the value given for the
media-type or text/html if no media-type is specified.

[...]
  If the instance of the data model includes a head element that has a
  meta element child, the serializer SHOULD replace any content
  attribute of the meta element, or add such an attribute, with the
  value as described above, rather than output a new meta element.
[...]

Please change this text to limit the behavior to meta elements with
http-equiv="Content-Type" (where the value of the attribute is case-
insensitive).

Please add a note that this process removes possible parameters in the
attribute value, i.e. that

  <meta http-equiv="Content-Type"
        content="text/html;version='3.0'" />

in the data model instance would be replaced by e.g.

  <meta http-equiv="Content-Type"
        content="text/html;charset=utf-8" />

Please add a note that this serialization is insufficient to meet all
the requirements to deliver XHTML documents to legacy user agents, for
example, if the instance of the data model includes

  <p xml:lang="en">...</p>

the serializer does not serialize it to

  <p xml:lang="en" lang="en">...</p>

which would however be necessary to make this information available to
user agents that only look at the lang attribute.

regards.

Received on Monday, 8 November 2004 00:11:22 UTC