Inside Xslt

XML Base Support

One of the additions to the XSLT 1.1 working draft was support for the W3C XML Base specification. As of this writing, the XML Base specification is in Proposed Recommendation form (dated 20 December 2000), and you can find the current version of this document at www.w3.org/TR/xmlbase/.

This specification enables you to provide a base URI for XML and XSL documents, just like the HTML <BASE> element. (In fact, the HTML <BASE> element is the reason XBase existsW3C is committed to giving XML all the power HTML 4.0 linking has, and then build on that.) As you recall, one of the properties of XSL elements is their base URI, and now you can use XML Base to set that URI. However, no XSLT processors that I know of support XML Base yet.

You can find full coverage of XML Base in Inside XML . Heres how it works in overview: You can use the xml:base attribute in an XML document to set the documents base URI. The other URIs in the document are then resolved using that value as a base. Note that xml:base uses the xml namespace; the xml namespace is predefined in XML as " http://www.w3.org/XML/1998/namespace ". The following example uses XML links (that is, XLinks, as also covered in Inside XML ):

<?xml version="1.0"?> <MOVIE_REVIEW xmlns:xlink = "http://www.w3.org/1999/xlink" xml:base="http://www.starpowder.com/" xlink:type = "simple" xlink:show = "new" xlink:href="reviews.xml"> Mr. Blandings Builds His Dream House </MOVIE_REVIEW>

Using the value assigned to the xml:base attribute, the URI in this examples xlink:href attribute, reviews.xml, is resolved to the full URI http://www.starpowder.com/reviews.xml. In this way, you can use xml:base to provide a base URI for a document or a specific element.

In the XSLT 1.1 working draft, every node has an associated URI called its base URI, which is used for resolving attribute values that represent relative URIs into absolute URIs. Heres how you determine the base URI:

Setting the base URI of documents and elements can be useful if you have an extensive set of documents to work with. If you reorganize that document set, you need to reset only the base URI as appropriate, not all individual URIs. As I said, however, no XSLT processors that I know of have any support for XML Base yet.

Категории