Subject: RE: [xsl] Changing a specific attribute value From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 28 Feb 2005 21:49:13 -0000 |
match="vr:Resource/@xsi:type[@xsi:type='q1:ConeSearch'] You mean match="vr:Resource/@xsi:type[.='q1:ConeSearch'] An xsi:type attribute never has an xsi:type attribute. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: andrew cooke [mailto:acooke@xxxxxxxx] > Sent: 28 February 2005 21:23 > To: xsl > Subject: [xsl] Changing a specific attribute value > > > Hi, > > Sorry to bother you. I'm going round in circles here and would > appreciate help with the following. > > I would like to transform data like: > > ... > <metadata> > <vr:Resource xmlns:vr="http://www.ivoa.net/xml/VOResource/v0.10" > xmlns:oai="http://www.openarchives.org/OAI/2.0/" > xmlns:oxf="http://www.orbeon.com/oxf/processors" > xmlns:carn="http://www.cacr.caltech.edu/projects/us-vo/schemas > /Carnivore" > xmlns:p="http://www.orbeon.com/oxf/pipeline" xsi:type="q1:ConeSearch" > updated="2005-02-11"> > <title xmlns="http://www.ivoa.net/xml/VOResource/v0.10" > xmlns:q1="http://www.ivoa.net/xml/ConeSearch/v0.3">Sloan Digitized Sky > Survey(DR3)</title> > <shortName xmlns="http://www.ivoa.net/xml/VOResource/v0.10" > ... > > so that the "xsitype" attribute of vr:Resource has the value > "cs:ConeSearch" (yes, there's something suspicious in that q1 is > defined as a namespace abbreviation in the next element - > that's not my > problem, I am treating the attribute value as a simple string) > > I am trying to use the following template: > > <xsl:stylesheet version="2.0"> > <xsl:template match="vr:Resource"> > <vr:Resource> > <xsl:apply-templates select="@*"/> > <xsl:apply-templates select="*"/> > </vr:Resource> > </xsl:template> > <xsl:template > match="vr:Resource/@xsi:type[@xsi:type='q1:ConeSearch']" > priority="2"> > <xsl:attribute name="xsi:type">cs:ConeSearch</xsl:attribute> > </xsl:template> > <xsl:template match="vr:Resource/@*"> > <xsl:copy-of select="."/> > </xsl:template> > <xsl:template match="*"> > <xsl:copy> > <xsl:apply-templates/> > </xsl:copy> > </xsl:template> > </xsl:stylesheet> > > This is inside a pipeline system, and the namespace > defintions are in the > environment. However, this is not working (the element and > attributes are > copied - if I supply a different element name it is used - but the > attribute value for xsi:type is unaltered). My questions are: > > - Why isn't this changing the attribute value? > > - Why do I need to explicitly apply the templates to each attribute? > Shouldn't that be done by the built-in rules? (If I don't, > it seems to > only process attributes "up to" the xsi:type). > > I'm basing my solution on > http://www.stylusstudio.com/xsllist/200402/post30540.html if that > helps explain anything. > > Help would be very much appreciated. There's something I'm > missing when > it comes to attributes, and I don't understand what it is. > > Thanks, > Andrew > > -- > ` __ _ __ ___ ___| |_____ work web site: > http://www.ctio.noao.edu/~andrew > / _` / _/ _ \/ _ \ / / -_) personal web site: > http://www.acooke.org/andrew > \__,_\__\___/\___/_\_\___| list: > http://www.acooke.org/andrew/compute.html
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Changing a specific attribute, andrew cooke | Thread | [no subject], Unknown |
[xsl] Changing a specific attribute, andrew cooke | Date | [xsl] [ANN] practice.xsltwiki.com i, M. David Peterson |
Month |