xsl-list
[Top] [All Lists]

[xsl] Matching elements based on element type:

2006-07-17 08:57:30
Hello,

I have an xml file that looks like this:

<top>
   <a>123</a>
   <b>456</b>
   <c>789</c>
</top>


And has a schema as follows:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";>
   <xs:element name="top">
       <xs:complexType>
           <xs:sequence>
               <xs:element name="a" type="my_type"/>
               <xs:element name="b" type="my_type"/>
               <xs:element name="c" type="my_type"/>
           </xs:sequence>
       </xs:complexType>
   </xs:element>
   <xs:simpleType name="my_type">
       <xs:restriction base="xs:string"/>
   </xs:simpleType>
</xs:schema>

That is, the elements a,b,c all have the type my_type but have
different element names.

I want an xslt stylesheet that has a single template for all elements
of type my_type. Something like:
<xsl:template match="top">
   <xsl:apply-templates/>
</xsl:template>

<xsl:template match="*[type()=my_type]">
    <xsl:value-of select="."/>
</xsl:template>

Only there is no type() function in XPath....

Is there any other way I could do this?

Best Regards,
David Belius

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--