Re: [xsl] XML to XML Namespace conversion

Subject: Re: [xsl] XML to XML Namespace conversion
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Mon, 08 Dec 2008 13:28:36 +0100
Casper Voortman wrote:
I have a question regarding writing an XSLT that converts XML into an XML that uses namespace prefixes in the element names. I have written some XSLT's and call myself fairly proficient in it, but namespaces and prefixes is completely new to me.

Here is how you can solve that:


<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:htm="http://www.w3.org/1999/xhtml";
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
  xmlns:dc="http://purl.org/dc/elements/1.1/";
  xmlns:pcv="http://prismstandard.org/namespaces/1.2/pcv/";
  xmlns:prism="http://prismstandard.org/namespaces/1.2/basic/";
  version="1.0">

  <xsl:output method="xml" indent="yes"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="/">
    <rdf:RDF>
      <xsl:apply-templates select="Article/MetaData"/>
    </rdf:RDF>
  </xsl:template>

  <xsl:template match="MetaData">
    <rdf:Description>
      <xsl:apply-templates/>
    </rdf:Description>
  </xsl:template>

  <xsl:template match="ID">
    <dc:identifier>
      <xsl:apply-templates/>
    </dc:identifier>
  </xsl:template>

  <xsl:template match="Type">
    <dc:filetype>
      <xsl:apply-templates/>
    </dc:filetype>
  </xsl:template>

<xsl:template match="Name | State | RouteTo | Size | LengthWords | LengthChars | LengthLines |
Issue | Section | PublicationId | IssueId | SectionId | StateId | LockForOffline">
<xsl:element name="dc:{local-name()}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>


  <xsl:template match="PlacedOn | PlacedOnPage | Modified | Publication">
    <xsl:element name="prism:{local-name()}">
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>


--


	Martin Honnen
	http://JavaScript.FAQTs.com/

Current Thread