xsl-list
[Top] [All Lists]

Re: XSLT for toplevel element in xml

2004-05-17 14:07:58

One.xml looks like
--------------------
<?xml version = '1.0' encoding = 'UTF-8'?>
<!-- Example configuration file. The schema rules are defined in
     the schema definition file configuration.xsd which also
     includes explanatory comments -->
<abc:configuration xmlns:abc="http://oracle.com/xmlns/abcd/configuration"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://oracle.com/xmlns/abcd/configuration 
configuration.xsd" cache="false" rmi="true">

  <drillOutDir>/files</drillOutDir>

  <started status="true"></started>

  <server useLogFile="true" logLevel="error">
    <activation enabled="true" maxSessions="20" timeout="30">
      </activation>
  </server>
 </abc:configuration>

==========================================================

One.xsl looks like
------------------
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
xmlns:fo="http://www.w3.org/1999/XSL/Format"; 
xmlns:abc="http://www.oracle.com/abcd/configuration";>
  <xsl:output method="xml" encoding="UTF-8"/>

 <xsl:template match="abc:configuration">
   <xsl:copy>
    <xsl:copy-of select="@*[local-name() != 'rmi']"/>
    <xsl:attribute 
name="useConnectionMgmt"><xsl:text>true</xsl:text></xsl:attribute>
    <xsl:attribute 
name="metadataReposAvailable"><xsl:text>true</xsl:text></xsl:attribute>
   </xsl:copy>
  </xsl:template>

 <xsl:template match="*">
  <xsl:copy>
   <xsl:copy-of select="@*"/>
   <xsl:apply-templates/>
  </xsl:copy>
 </xsl:template>
</xsl:stylesheet>



Michael Kay wrote:

template match="abc:configuration"

is correct. Perhaps you got the namespace URI wrong. Show us a complete
example of the problem.

Michael Kay

-----Original Message-----
From: Nishi Bhonsle [mailto:nishi(_dot_)bhonsle(_at_)oracle(_dot_)com]
Sent: 17 May 2004 17:59
To: xsl list
Subject: [xsl] XSLT for toplevel element in xml


Hi:

I have a xml say One.xml that has the toplevel element as the
following --

<abc:configuration
xmlns:abc="http://oracle.com/xmlns/abc/configuration";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; locale="en"
cache="false" rmi="true">
...
..
....
....
</abc:configuration>


I need to transform One.xml to Two.xml in such a way that
Two.xml contains some additional attributes in the
abc:configuration tag
ie

<abc:configuration
xmlns:abc="http://oracle.com/xmlns/abc/configuration";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; locale="en"
cache="false" rmi="true" new_tag="true" new_tag2="false">

I tried to use several ways as rules for the <xsl:template
match=.....--
1) template match="abc:configuration"
2) template match="local-name(abc:configuration)
3) template match="@*[(starts-with(name(),'abc:'))]"

But it does not work. Only after replacing the
abc:configuration by configuration in One.xml and writing a
rule to match configuration it works.
Can you suggest a resolution to this?

Thanks, Nishi.


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