Philip Taylor wrote:
Shane McCarron wrote:
[...]
http://www3.aptest.com/standards/rdfa-html/
[...]
How are xmlns:* attributes meant to be processed?
To elaborate: Specifications exist for XML Namespaces, but as far as I'm
aware nothing exists to define the meaning or processing of similar
syntax in text/html. So I'd want something somewhere to define some
processing requirements vaguely like:
The <def>pseudo-namespace mapping context</def> is a map from prefix
strings to namespace strings, and is defined as follows:
The pseudo-namespace mapping context of a Document node is the empty
map.
The pseudo-namespace mapping context of a DocumentFragment node is
the empty map.
The pseudo-namespace mapping context of an Element 'e' is computed
as follows:
* If the parent node of 'e' is null, let 'm' be the empty map.
Otherwise, let 'm' be the pseudo-namespace mapping context of
the parent node of 'e'.
* For each attribute in 'e' that is in no namespace, and whose
local name consists of the case-sensitive string "xmlns:"
followed by a non-zero-length string of characters 'p', and
whose value is not the empty string:
* Update 'm' so that 'p' is mapped onto the value of the
attribute. (This might replace an existing map entry.)
* For each attribute in 'e' that is in the namespace
"http://www.w3.org/2000/xmlns/":
* Update 'm' so that the attribute's local name is mapped onto
the value of the attribute. (This might replace an existing
map entry.)
(Note: This assumes XML parsers will insert xmlns:* attributes
into the DOM, which probably isn't guaranteed.)
* The pseudo-namespace mapping context of 'e' is 'm'.
Where [RDFaSYNTAX] currently says:
"2. Using the prefix and the current in-scope mappings, obtain the
URI that the prefix maps to."
replace the step with:
"2. Let 'm' be the pseudo-namespace mapping context of the element
with which this CURIE is associated. If the prefix is not in 'm'
(case-sensitively), abort these steps and do some kind of error
handling that's not defined yet. Otherwise, obtain the URI that the
prefix maps to."
I just made this up now so it's probably not especially correct or
well-written (e.g. maybe the definition should be turned inside out),
but I think it defines enough detail to determine the output of the
markup examples I gave in my previous email and it generally agrees with
the very rough testing I performed on some JS-based and html5lib-based
RDFa implementations.
--
Philip Taylor
pj...@cam.ac.uk