Generating HTML Documents with Links

Before we leave the topic of IDs, we’ll look at a more complicated stylesheet—one that generates HTML. We want to list all the components and parts in our document, and we want to create hyperlinks between them. So, we’ll list the components and the parts they use; each part name will be a link to a description of that part. We’ll do the same thing when we list each part and the components that use it. Our source document has changed slightly for the purposes of our next few examples:

<?xml version="1.0"?>
<!-- parts-list3.xml -->
<!DOCTYPE parts-list [
<!ELEMENT parts-list       (component+, part+, supplier+)>

<!ELEMENT component        (name, partref+, description)>
<!ATTLIST component        component-id ID #REQUIRED>

<!ELEMENT name             (#PCDATA)>

<!ELEMENT partref          EMPTY>
<!ATTLIST partref          refid IDREF #REQUIRED>

<!ELEMENT part             (name, description)>
<!ATTLIST part             part-id ID #REQUIRED
                           supplier CDATA #REQUIRED>

<!ELEMENT description      (#PCDATA|partref)*>

<!ELEMENT supplier         (name)>
<!ATTLIST supplier         country CDATA #REQUIRED
                           vendor-id CDATA #REQUIRED> ]> <parts-list> <component component-id="C28392-33-TT"> <name>Turnip Twaddler</name> <partref refid="P81952-26-PK"/> <partref refid="P86679-52-SP"/> <partref refid="P81472-68-FD"/> <partref refid="P88107-39-GT"/> <description> If you've got turnips to twaddle, this is the tool for you! Comes with a <partref refid="P81472-68-FD"/>. </description> </component> <component component-id="C28100-38-CT"> <name>Clam Teaser</name> ...

Get XSLT, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.