xsl-list
[Top] [All Lists]

RE: [xsl] Matching elements based on element type:

2006-07-17 09:07:31

You write

<xsl:template match="element(*, my_type)">

and use a schema-aware XSLT 2.0 processor.

Michael Kay
http://www.saxonica.com/

 

-----Original Message-----
From: David B [mailto:daavidb(_at_)gmail(_dot_)com] 
Sent: 17 July 2006 16:57
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Matching elements based on element type:

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>
--~--



--~------------------------------------------------------------------
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>
--~--