W3C home > Mailing lists > Public > public-html-bugzilla@w3.org > June 2009

[Bug 7059] [blocked on xpathwg] Forking XPath

From: <bugzilla@wiggum.w3.org>
Date: Tue, 30 Jun 2009 06:31:58 +0000
To: public-html-bugzilla@w3.org
Message-Id: <E1MLWso-0004f2-2u@wiggum.w3.org>
http://www.w3.org/Bugs/Public/show_bug.cgi?id=7059





--- Comment #15 from Henri Sivonen <hsivonen@iki.fi>  2009-06-30 06:31:57 ---
(In reply to comment #14)
> As I understand, you want a path expression with no prefixes to match elements
> from either documents whose HTML elements are in no namespace, or documents
> whose HTML elements are in the HTML namespace.

No. As of HTML5, HTML elements (elements that implement the HTMLElement DOM
interface) are always in the http://www.w3.org/1999/xhtml namespace (like with
TagSoup). Elements that aren't in a namespace aren't HTML elements (and,
therefore, don't implement the HTMLElement interface). All parser-inserted
element nodes in HTML documents are in one of these three namespaces:
http://www.w3.org/1999/xhtml
http://www.w3.org/2000/svg
http://www.w3.org/1998/Math/MathML

The HTMLness of a document is an implementation-internal boolean on the object
that implements the Document interface. "HTML document" refers to a DOM tree
with the HTMLness bit set--not to the byte stream. ("Document" refers to the
parsed representation--not to the source text here.)

No-namespace nodes can be introduced to HTML documents only by a script calling
createElementNS(null, ...) or by moving a no-namespace node from an XML
document into an HTML document. 

(Note that XSLT cannot introduce no-namespace nodes into HTML documents,
because the namespace is changed to http://www.w3.org/1999/xhtml when an XSLT
program tries to do so: bug 6776. Also note that XSLT programs still can
introduce no-namespace nodes into XML documents, i.e. documents whose HTMLness
bit is false.)

For compatibility with existing XPath 1.0 expressions whose authors have
assumed that HTML elements aren't in a namespace, no-namespace XPath
expressions need to match against nodes whose namespace is
http://www.w3.org/1999/xhtml when the owner document of those nodes has been
marked as an HTML document. 

> As I understand, this affects only document.evaluate(), which applies only to
> one document at a time.

This affects any API that allows the evaluation of XPath expressions against
DOM trees whose HTMLness bit is true. Thus, it also applies to the
XSLTProcessor API:
https://developer.mozilla.org/en/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations

Note that when XSLT is applied to an XML document that has the xml-stylesheet
PI and that is being loaded from the network, the input DOM doesn't have the
HTMLness bit set, so this doesn't apply.


-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Tuesday, 30 June 2009 06:32:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 30 June 2009 06:32:09 GMT