Re: [xml-dev] XSLT that does uppercase translation of all attributes and elements...
OK, this time I'll post to the list...!
WORKING:
-uppercase elements
-correctly copies over namespaces & prefixes
NOT WORKING:
- It does not uppercase the attributes.
<?xml version="1.0" encoding="UTF-8"?>
<?altova_samplexml D:\Source\Services\SoaServices\webMethods\Wrappers\Incident\CAD\IS\IncidentService\Data\Samples\Test\writeOffIncident_VisionCreated_7_Rq.xml?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="identity.xslt"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="*" >
<xsl:copy>
<!-- <xsl:element name="{local-name()}" namespace="{namespace-uri()}"> -->
<!--
<xsl:for-each select="../@*">
<xsl:attribute name="{name()}" >
<xsl:value-of select="translate(. , $vLowercaseChars_CONST , $vUppercaseChars_CONST)"/>
</xsl:attribute>
</xsl:for-each>
-->
<xsl:apply-templates select="node()|@*"/>
<!-- </xsl:element>
-->
</xsl:copy>
</xsl:template>
<xsl:template match="text()" >
<xsl:value-of select="translate(. , $vLowercaseChars_CONST , $vUppercaseChars_CONST)"/>
</xsl:template>
<xsl:variable name="vLowercaseChars_CONST" select="'abcdefghijklmnopqrstuvwxyz'"/>
<xsl:variable name="vUppercaseChars_CONST" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
</xsl:stylesheet>
ps. Michael,
RE:
<xsl:copy-of select="namespace::*">
I had put that in, however it puts all the namespaces in all of the elements.
Not sure how to put it in just the right places :(
Thanks
Cheers
Minas Casiou | ESB Technical Architect I&I | MRP - Mainframe Replacement Program | BTS | New South Wales Police
Phone: 02 9689 7610 | Eaglenet: 79610 | Mobile: 0431 103 925 | email: [email protected]
| Minas Casiou/1115635/Staff/NSWPolice
06/12/2006 11:21 |
|
Sorry guys, this is what I've currently got.
WORKING:
-uppercase elements
-correctly copies over namespaces & prefixes
NOT WORKING:
- It does not uppercase the attributes.
<?xml version="1.0" encoding="UTF-8"?>
<?altova_samplexml D:\Source\Services\SoaServices\webMethods\Wrappers\Incident\CAD\IS\IncidentService\Data\Samples\Test\writeOffIncident_VisionCreated_7_Rq.xml?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="identity.xslt"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="*" >
<xsl:copy>
<!-- <xsl:element name="{local-name()}" namespace="{namespace-uri()}"> -->
<!--
<xsl:for-each select="../@*">
<xsl:attribute name="{name()}" >
<xsl:value-of select="translate(. , $vLowercaseChars_CONST , $vUppercaseChars_CONST)"/>
</xsl:attribute>
</xsl:for-each>
-->
<xsl:apply-templates select="node()|@*"/>
<!-- </xsl:element>
-->
</xsl:copy>
</xsl:template>
<xsl:template match="text()" >
<xsl:value-of select="translate(. , $vLowercaseChars_CONST , $vUppercaseChars_CONST)"/>
</xsl:template>
<xsl:variable name="vLowercaseChars_CONST" select="'abcdefghijklmnopqrstuvwxyz'"/>
<xsl:variable name="vUppercaseChars_CONST" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
</xsl:stylesheet>
Thanks
Cheers
Minas Casiou | ESB Technical Architect I&I | MRP - Mainframe Replacement Program | BTS | New South Wales Police
Phone: 02 9689 7610 | Eaglenet: 79610 | Mobile: 0431 103 925 | email: [email protected]
| David Carlisle <[email protected]>
06/12/2006 09:22 |
|
you don't need the prefix declarations as you have removed all the
prefixes, the result is namespace equivalent, prefixes are (or are
supposed to be) a syntactic artifact that don't really matter. what
matters are the namespace names (URIs) and you have preserved those.
However if you want to use prefixed names in the output change your use
of
<xsl:element name="{local-name()}" namespace="
{namespace-uri()}">
to
<xsl:copy>
David
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.
[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
Or unsubscribe: [email protected]
subscribe: [email protected]
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
All mail is subject to content scanning for possible violation of New South Wales Police
electronic Mail Policy. All persons are required to familiarise themselves with the
content of the policy located on the NSWP Intranet BULLETIN BOARD.
| This message and any attachment is confidential and may be privileged or otherwise protected from disclosure. If you have received it by mistake, please let us know by reply and then delete it from your system; you should not copy the message or disclose its contents to anyone. |