[XML-DEV Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xml-dev] XSLT that does uppercase translation of all attributes andelements...
- From: Minas Casiou <casi1min@...>
- To: David Carlisle <davidc@...>
- Date: Wed, 6 Dec 2006 11:24:46 +1100
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: casi1min@...
| Minas Casiou/1115635/Staff/NSWPolice
06/12/2006 11:21
|
|
To
| David Carlisle <davidc@...>
|
|
cc
|
|
|
Subject
| Re: [xml-dev] XSLT that does uppercase
translation of all attributes and elements...Link |
|
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: casi1min@...
| David Carlisle <davidc@...>
06/12/2006 09:22
|
|
To
| casi1min@...
|
|
cc
| xml-dev@... xml-dev@...
|
|
Subject
| Re: [xml-dev] XSLT that does uppercase
translation of all attributes and elements... |
|
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: xml-dev-unsubscribe@...
subscribe: xml-dev-subscribe@...
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.
|
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
|