XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Jen RSubject: XSLT of XSD
Author: Jen R
Date: 10 Feb 2006 06:54 AM
Hi All,

I have an xsd:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:simpleType name="deviceType">
<xs:restriction base="xs:string">
<xs:enumeration value="Test1"/>
<xs:enumeration value="Test2"/>
<xs:enumeration value="Test3"/>
<xs:enumeration value="Test4"/>
<xs:enumeration value="Test5"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

I would like to do an xslt so that my output looks like:
<?xml version="1.0" encoding="UTF-8"?>
<output name="Test details">
<entry name="Test1" value="Test1"/>
<entry name="Test2" value="Test2"/>
<entry name="Test3" value="Test3"/>
<entry name="Test4" value="Test4"/>
<entry name="Test5" value="Test5"/>
</output>

I tried this xslt(test.xsl) but I get an empty xml file.

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="deviceType">
<output name="Test details">
<xsl:for-each select="xs:schema/xs:simpleType/restriction/xs:enumeration">
<entry>
<name><xsl:value-of select="@value"/></name>
<value><xsl:value-of select="@value"/></value>
</entry>
</xsl:for-each>
</output>
</xsl:template>
</xsl:stylesheet>

Can anyone help?

Regards,
Jen

Postnext
(Deleted User) Subject: XSLT of XSD
Author: (Deleted User)
Date: 10 Feb 2006 09:45 AM
Hi, Jen. You were correct to use namespaces and for-each loops, but you forgot to first define the xs element before using it. This and some other errors in your code sample should be corrected in the following snippet:

<xsl:template match="/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<output name="Test details">
<xsl:for-each select="xs:schema/xs:simpleType/xs:restriction/xs:enumeration">
<entry>
<name>
<xsl:value-of select="@value"/>
</name>
<value>
<xsl:value-of select="@value"/>
</value>
</entry>
</xsl:for-each>
</output>
</xsl:template>

Also, when you have time, check out Mulberry Tech's XSLT forum. It's a great resource for questions about XSLT usage:

http://www.mulberrytech.com/xsl/xsl-list/

David Foster
Stylus Studio Team

Posttop
Jen RSubject: XSLT of XSD
Author: Jen R
Date: 10 Feb 2006 11:10 AM
Thank you.

It works perfectly!

Regards,
Jen

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.