[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: X3D XSLT

Subject: Re: X3D XSLT
From: "Darcy Parker" <darcyparker@xxxxxxxxx>
Date: Mon, 2 Jun 2008 15:36:30 -0400
Re:  X3D XSLT
Have you tried David Carlisle's advice?  As he pointed out, you can't
have nested xsl:template elements.

As well, did you consider his additional comment on the nested
Artist_Image elements?  David questioned whether you really have
nested Artist_Image elements... If you don't have nested Artist_Image
elements, then the <xsl:for-each> is an error because you already
matched Artist_Image using the template.

You didn't mention any error messages.  As David pointed out, you may
find it helpful to setup a test outside of your java environment and
use Saxon standalone so that you have visibility to the error
messages.

Perhaps the following is what you're looking for? (I am assuming you
don't have nested Artist_Image elements... and I have moved the inner
<xsl:template> out... and added <xsl:apply-templates>

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output media-type="model/x3d=xml"
			doctype-system="http://www.web3d.org/specifications/x3d-3.2.dtd"
method="xml" encoding="UTF-8" indent="yes"
omit-xml-declaration="yes"/>
			
	<xsl:template match="/">
		<!--Why do you have the &X10; when you have indent="yes"?-->
		<X3D profile="Immersive">&#10;
			<head>&#10;<title/>
			</head>
			<Scene>
				<xsl:apply-templates/>
			</Scene>
		</X3D>
	</xsl:template>

	<xsl:template match="artists">
		<Group>
			<xsl:for-each select="artist">
				<Transform  translation='.8 4 1'>
					<xsl:attribute name="translation">
						<xsl:value-of select="(position() - 1) * 6"/>
					</xsl:attribute>
				</Transform>
				<Shape containerField='children'>
					<xsl:apply-templates select="Artist_Image"/>
				</Shape>
			</xsl:for-each>
		</Group>
	</xsl:template>
	
	<xsl:template match="Artist_Image">
		<Appearance containerField='appearance'>
			<ImageTexture containerField='texture'>
				<xsl:attribute name="url">
					<xsl:value-of select="Artist_Image"/>
				</xsl:attribute>
			</ImageTexture>
			<Material containerField='material' ambientIntensity='0.200'
shininess='0.200' diffuseColor='1 .50196 0'/>
		</Appearance>
		<Box containerField='geometry' size='5 5 0.2'/>
	</xsl:template>

</xsl:stylesheet>

On Mon, Jun 2, 2008 at 3:16 PM, j milo taylor <milo@xxxxxxxxxx> wrote:
> Hi,
>
> This is still not compiling. I have followed Dean's advice, but Netbeans now
> throws up (2 ?) errors
>
> null
> Could not compile stylesheet
> Could not compile stylesheet
> XML validation finished.
>
>
> From this code:
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>   <xsl:output media-type="model/x3d=xml"
> doctype-system="http://www.web3d.org/specifications/x3d-3.2.dtd"
> method="xml" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
>   <xsl:template match="/">
>       <X3D profile="Immersive">&#10;
>           <head>&#10;<title/>
>           </head>
>           <Scene>
>                       <xsl:apply-templates/>
>
>           </Scene>
>       </X3D>
>
>   </xsl:template>
>
>   <xsl:template match="artists">
>       <Group>
>           <xsl:for-each select="artist">
>                         <Transform  translation='.8 4 1'>
>
>                           <xsl:attribute name="translation"><xsl:value-of
> select="(position() - 1) * 6"/>
>                           </xsl:attribute>
> </Transform>
> <xsl:template match="Artist_Image"><!-- something still not right from here
> -->
>       <Shape containerField='children'>
>         <xsl:for-each select="Artist_Image">
>
>                        <Appearance containerField='appearance'>
>                                <ImageTexture containerField='texture'>
>                                                     <xsl:attribute
> name="url"><xsl:value-of select="Artist_Image"/>
>                       </xsl:attribute></ImageTexture>
>                      <Material containerField='material'
> ambientIntensity='0.200' shininess='0.200' diffuseColor='1 .50196 0'/>
>                     </Appearance>
>                     <Box containerField='geometry' size='5 5 0.2'/>
>        </xsl:for-each>
>
> </Shape></xsl:template><!-- until here?-->
>
> </xsl:for-each>
> </Group>
> </xsl:template>
> </xsl:stylesheet>
>
>
> Anyone got any thoughts about this?
>
> Regards
> Milo

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.