Subject: Re: Answers to review questions in "Beginning XSLT": Chapter 10
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Fri, 21 Mar 2003 09:06:14 +0000
|
Hi Lars,
> 2. What format can the values of ID attributes take?
>
> Answer:
> They have to be XML Names, which means they must start with a
> letter, underscore, or colon, and contain only "alphanumeric"
> characters (which include '.' | '-' | '_' | ':' plus other similar
> punctuation in Unicode). In particular, no spaces are allowed.
There are a couple of things here. You say "plus other similar
punctuation in Unicode". Actually, XML names can only include the
punctuation characters you list: '.', '-', '_' and ':'. The ':'
character should not be used in IDs nowadays because the Namespaces in
XML Rec. stated that you should use NCNames instead of full XML Names.
NCNames (non-colonised names) can't contain a colon.
> 4. What three types of arguments can the id() function take and what
> does it return from each?
>
> Answer:
> id() can take a string containing a single ID, in which case it returns
> the element that has that ID.
> id() can take a string containing multiple IDs separated by space, in
> which case it returns a node set consisting of the elements that have
> those IDs.
> id() can take a node set, in which case id() returns a node set
> consisting of the elements whose IDs are the values of nodes in the
> argument node set.
Yes, and if the nodes have values that are space-separated IDs, then
those get used.
> 7. Construct a stylesheet that groups <Film> elements by their <Year>
> children and by their rating attributes.
>
> Answer:
That looks good (I assume it worked!). Another challenge is a
stylesheet that will group first by Year and then (within that) by
rating. [I think that's what I meant by the question, but I admit that
it's not worded clearly.]
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|