This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Transforming an XML document linked to a XML schema
- From: "Purnima Fernando" <Purnima dot Fernando at TodaySystems dot com dot au>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Wed, 30 Jan 2002 10:37:50 +1100
- Subject: RE: [xsl] Transforming an XML document linked to a XML schema
- Reply-to: xsl-list at lists dot mulberrytech dot com
I am using Excelon Stylus Studio.
I have also tries Xalan for the transformation.
My Style sheet is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- Define the output type -->
<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
<!-- Ignore text nodes -->
<xsl:template match="text()|@*"/>
<!-- Matches the root tag -->
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/bpxml/developer">
<html>
<body>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1"/>
<title>Development Specifications - BuildPro Objects</title>
</head>
<h1>BuildPro Version 8 Developer (xdev)</h1>
<p>Copyright (c) 1999-2002 TODAY Systems, Inc.<br/>
Company Confidential Document</p>
<h3>BuildPro Objects</h3>
<hr/>
<table border="1" width="100%">
<tr>
<td align="center">
<b>Object</b>
</td>
<td>
</td>
</tr>
<xsl:apply-templates/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="Component">
<tr>
<td>
<b>
<xsl:value-of select="@Name"/>
</b>
</td>
<td>
<table width="100%" border="1">
<tr>
<td align="center" width="11%">
<b>Property</b>
</td>
<td align="center" width="53%">
<b>Description</b>
</td>
<td align="center" width="5%">
<b>Required</b>
</td>
<td align="center" width="5%">
<b>Type</b>
</td>
<td align="center" width="6%">
<b>Default</b>
</td>
<td align="center" width="12%">
<b>Options</b>
</td>
<td align="center" width="8%">
<b>Limits</b>
</td>
</tr>
<xsl:apply-templates/>
</table>
</td>
</tr>
</xsl:template>
<xsl:template match="Property">
<tr>
<td>
<xsl:value-of select="@Name"/>
</td>
<td>
<xsl:choose>
<xsl:when test="boolean(string(Description))">
<xsl:value-of select="Description"/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:choose>
<xsl:when test="boolean(string(@Required))">
<xsl:value-of select="@Required"/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:choose>
<xsl:when test="boolean(string(Type))">
<xsl:value-of select="Type"/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:choose>
<xsl:when test="boolean(string(Default))">
<xsl:value-of select="Default"/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:choose>
<xsl:when test="boolean(string(Option))">
<xsl:for-each select="Option">
<xsl:value-of select="."/>
<br/>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:choose>
<xsl:when test="boolean(string(Limit))">
<xsl:for-each select="Limit">
<xsl:value-of select="."/>
<br/>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
<xsl:if test="Property">
<tr>
<td colspan="7">
<hr/>
</td>
</tr>
<xsl:apply-templates select="Property"/>
<tr>
<td colspan="7">
<hr/>
</td>
</tr>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
The XML file is as follows:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bpxml version="1.0" xmlns="http://www.todaysystems.com.au"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.todaysystems.com.au
BuildProObjects.xsd">
<developer>
<Component Name="DataDictionary">
<Property Name="MaxLength" Required="True">
<Description>Maximum number of characters that the field can hold. If
occurrences are used the max length is 99.</Description>
<Type>Number</Type>
<Default>1</Default>
<Limit>1 - 32000</Limit>
</Property>
<Property Name="Occurrences">
<Description>Number of occurrences for this Dictionary object. Multiple
occurrences, or subscripts, enable you to refer to a number of consecutive
items using the same dictionary name.</Description>
<Type>Number</Type>
<Default>1</Default>
<Limit>1 - 255</Limit>
</Property>
<Property Name="Description">
<Property Name="Short">
<Description>Short summary description using up to 20
characters.</Description>
<Type>Text</Type>
<Default>Untitled</Default>
<Limit>20 Chars</Limit>
</Property>
<Property Name="Long">
<Description>A long description of the object.</Description>
<Type>Text</Type>
<Default>Untitled</Default>
<Limit>180 Chars</Limit>
</Property>
</Property>
<Property Name="LastModified">
<Description>The last date and time the object was modified in the
format CCYY-MM-DDThh-mm-ss</Description>
<Type>DateTime</Type>
</Property>
</Component>
</developer>
</bpxml>
Purnima Fernando
Can't think of any reason for that, but it would help to know what's in your
stylesheet and what XSLT processor and XML parser you are using.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list