- From: <bugzilla@jessica.w3.org>
- Date: Wed, 05 Dec 2012 14:51:59 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20245 Bug ID: 20245 Summary: [Ser 3.0] Empty elements in XHTML output method Classification: Unclassified Product: XPath / XQuery / XSLT Version: Last Call drafts Hardware: PC OS: All Status: NEW Severity: normal Priority: P2 Component: Serialization 3.0 Assignee: zongaro@ca.ibm.com Reporter: mike@saxonica.com QA Contact: public-qt-comments@w3.org Reading the draft of 2012-10-02, section 6, first two bullets, we read (my numbering): (1) If (1x) an element node that has no child nodes is recognized as an HTML element, and (1a) the html-version serialization parameter is absent or has a value less than 5.0, and the content model of the HTML element is not EMPTY (for example, an empty title or paragraph); or (1b) the value of the html-version serialization parameter is 5.0, and the HTML element is not a void element, (1c) the serializer MUST NOT use the minimized form. That is, it MUST output <p></p> and not <p />. (2) If (2x) an element that has no children is recognized as an HTML element, and (2a) the html-version serialization parameter is absent or has a value less than 5.0, and the content model of the HTML element is EMPTY (for example, an empty title or paragraph); or (2b) the value of the html-version serialization parameter is 5.0, and the HTML element is not a void element, (2c) the serializer MUST use the minimized tag syntax, for example <br /> After much staring at this, I think that (A) in (2b), "is not a void element" should read "is a void element" (B) in (2a), the example should refer to say hr and img rather than to title and paragraph. I think the rules would be easier to read with some refactoring. I would suggest: [Definition] An element is *always-empty* if either (a) the html-version serialization parameter is absent or has a value less than 5.0 and the content model is EMPTY (that is, it is one of the elements "area", "base", "basefont", "br", "col", "embed", "frame", "hr", "img", "input", "isindex", "link", "meta", "param"), or (b) the html-version serialization parameter has the value 5.0 and the element is a void element in HTML5, that is it is one of "area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr" If an element node that has no child nodes is recognized as an HTML element then: (a) if the element is *always-empty* then the serializer MUST use the minimized tag syntax (for example it must use <br />), and if the html-version serialization parameter is absent or has a value less than 5.0, it MUST include a space before the trailing />, e.g. <br />, <hr /> and <img src="karen.jpg" alt="Karen" />. (b) otherwise (the element is not *always-empty*), the serializer MUST NOT use the minimized tag syntax (for example it must use <p></p>) This leaves the serializer to its own discretion for elements not recognized as HTML elements, and perhaps the rule should say this explicitly. -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Wednesday, 5 December 2012 14:52:01 UTC