This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Transforming an XML document linked to a XML schema


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>&nbsp;
						</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>&nbsp;
					</xsl:otherwise>
				</xsl:choose>
			</td>
			<td>
				<xsl:choose>
					<xsl:when test="boolean(string(@Required))">
						<xsl:value-of select="@Required"/>
					</xsl:when>
					<xsl:otherwise>&nbsp;
					</xsl:otherwise>
				</xsl:choose>
			</td>
			<td>
				<xsl:choose>
					<xsl:when test="boolean(string(Type))">
						<xsl:value-of select="Type"/>
					</xsl:when>
					<xsl:otherwise>&nbsp;
					</xsl:otherwise>
				</xsl:choose>
			</td>
			<td>
				<xsl:choose>
					<xsl:when test="boolean(string(Default))">
						<xsl:value-of select="Default"/>
					</xsl:when>
					<xsl:otherwise>&nbsp;
					</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>&nbsp;
					</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>&nbsp;
					</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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]