- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Fri, 15 Jun 2007 14:48:34 +0100
- To: GRDDL Working Group <public-grddl-wg@w3.org>
Sketch of end-user documentation: This module is intended to be imported into GRDDL transforms written in XSLT1, in order to produce appropriate xml:base and xml:lang attributes. There are three named templates, one of which should be called when producing an element within the GRDDL output, which needs to have xml:lang, xml:base attributes or both added according to generally useful rules. The three templates are: xa:lang - may produce an xml:lang attribute. xa:base - may produce an xml:base attribute. xa:base-and-lang - may produce either or both attributes. When there is no information, the templates do not produce attributes. Each template has a single parameter named "node". This can be omitted and defaults to the current() node. The rules used by the templates are as follows: First, for non-XHTML documents: - xml:lang is produced according to the inheritance rules, applied to $node, as given in the XML Recommendation - xml:base is produced according to the inheritance rules, applied to $node, as given in the XML Base Recommendation. However, an xml:base on the root element is ignored, since this will be handled by the GRDDL aware agent. Second, for XHTML documents, in the default processing mode: - xml:lang is produced according to the inheritance rules, applied to $node, as given in the XHTML Recommendation: in particular, if both xml:lang and lang attributes are present in the ancestors of $node, xml:lang is used. If only one is present, then that is used. - xml:base is not produced at all, and any xml:base attributes are ignored. xml:base is not supported in XHTML (see the XHTML Recommendation, in particular the DTD). An HTML Base element, if any, will be handled by the GRDDL aware agent Since, in some instances, a transform may wish to honour xml:base attributes within an XHTML document, despite it not being supported by the Recommendation, it is possible to change the processing mode by setting the variable xa:use-xml-base-in-xhtml to true, e.g. <xsl:variable name="xa:use-xml-base-in-xhtml" select="true()" /> In this case, the processing of xml:base in XHTML documents then follows this rule: - xml:base is produced according to the inheritance rules, applied to $node, as given in the XML Base Recommendation, this includes an xml:base on the root element which may not be handled by the GRDDL aware agent. ==== Note: whenever I have to consider a relative xml:base that needs resolving against some other base value, I give up with a terminate="yes". Jeremy -- Hewlett-Packard Limited registered Office: Cain Road, Bracknell, Berks RG12 1HN Registered No: 690597 England
Received on Friday, 15 June 2007 13:49:15 UTC