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

Reply via email to