File: Data.xml <?xml version = "1.0"?> <?xml:stylesheet type = "text/xsl" href = "Transform.xslt"?> <book isbn = "111-11111-11"> <title>XML Primer</title> <author> <firstName>Doris</firstName> <lastName>smith</lastName> </author> <chapters> <preface num = "1" pages = "2">Welcome</preface> <chapter num = "1" pages = "4">Easy XML</chapter> <chapter num = "2" pages = "2">Element</chapter> <appendix num = "1" pages = "9">Entities</appendix> </chapters> <media type = "CD"/> </book> File: Transform.xslt <?xml version = "1.0"?> <xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"> <xsl:template match = "/"> <html> <body> <xsl:apply-templates select = "book"/> </body> </html> </xsl:template> <xsl:template match = "book"> <H2> <xsl:value-of select = "title"/> </H2> <xsl:apply-templates/> </xsl:template> <xsl:include href = "author.xsl"/> <xsl:include href = "chapters.xsl"/> <xsl:template match = "*|text()"/> </xsl:stylesheet> File: author.xsl <?xml version = "1.0"?> <xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"> <xsl:template match = "author"> <paragraph>Author: <xsl:value-of select = "lastName"/>, <xsl:value-of select = "firstName"/> </p> </xsl:template> </xsl:stylesheet> File: chapters.xsl <?xml version = "1.0"?> <xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"> <xsl:template match = "chapters"> Chapters: <ul> <xsl:apply-templates select = "chapter"/> </ul> </xsl:template> <xsl:template match = "chapter"> <li> <xsl:value-of select = "."/> </li> </xsl:template> </xsl:stylesheet>