Subject: [xsl] Namespace handling question From: Bridger Dyson-Smith <bdysonsmith@xxxxxxxxx> Date: Fri, 14 May 2010 14:36:06 -0400 |
All - thanks for reading. I'm trying to generate OAI records for a series of XML files; while I have the bulk of the processing working, I'm stuck on a namespaces issue. I understand how to include/add a namespace to my output file, I'm curious if there's a way to keep all of the namespace information in the XML header - primarily to keep things tidy. I've found a short XSL from Michael Kay on the dpawson website for cleaning up the XML after the initial transform and I've incorporated that as a second step in the process. Is there a good way to combine the two? And a second, related question: there is an xsi:schemaLocation that I apparently need to include in the XML header. Attempts at using <xsl:import-schema> and <xsl:namespace> haven't yielded correct results. Would someone be willing to recommend a method for this? (See the final example for my goal output). I'm using XLST 2.0 and the Saxon-HE 9.2.0.6 in the oXygen editor. Again, many thanks. Please excuse me if this has been beaten to death - web searches and the list archives have so far refused to answer this. Best, Bridger My original XML looks something like this: <root> <row> <title>Mice</title> <author>Kat, Krazy</author> <subject>bricks</subject> <number>01101100011011110111011001100101</number> </row> </root> And I'm processing with the following XSL: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <xsl:output method="xml" media-type="text/xml" indent="yes"/> <xsl:template match="/"> <xsl:apply-templates /> </xsl:template> <xsl:template match="row"> <xsl:for-each select="."> <xsl:result-document href="{concat(child::title, child::number, '.xml')}"> <xsl:element name="oai_dc:dc"> <xsl:namespace name="oai_dc" select="'http://www.openarchives.org/OAI/2.0/oai_dc/'"/> <xsl:namespace name="xsi" select="'http://www.w3.org/2001/XMLSchema-instance'"/> <xsl:element name="dc:publisher">Ignatz Mouse Publishers</xsl:element> <xsl:element name="dc:creator"><xsl:value-of select="child::author"/></xsl:element> <xsl:element name="dc:title"><xsl:value-of select="child::title"/></xsl:element> <xsl:element name="dc:subject"><xsl:value-of select="child::subject"/></xsl:element> <xsl:element name="dc:identifier"><xsl:value-of select="child::number"/></xsl:element> </xsl:element> </xsl:result-document> </xsl:for-each> </xsl:template> </xsl:stylesheet> Currently my results look like this: <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <dc:publisher xmlns:dc="http://purl.org/dc/elements/1.1/">Ignatz Mouse Publishers</dc:publisher> <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Kat, Krazy</dc:creator> <dc:title xmlns:dc="http://purl.org/dc/elements/1.1/">Mice</dc:title> <dc:subject xmlns:dc="http://purl.org/dc/elements/1.1/">bricks</dc:subject> <dc:identifier xmlns:dc="http://purl.org/dc/elements/1.1/">01101100011011110111011001100101</dc:identifier> </oai_dc:dc> where I like to get results closer to this: <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"> <dc:publisher>Ignatz Mouse Publishers</dc:publisher> <dc:creator>Kat, Krazy</dc:creator> <dc:title>Mice</dc:title> <dc:subject>bricks</dc:subject> <dc:identifier>01101100011011110111011001100101</dc:identifier> </oai_dc:dc> I arrived here by using my XSLT, Michael's cleaning XSLT, and then a find/replace in the files.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] xslt 2.1 saxon:discard-do, Michael Kay | Thread | Re: [xsl] Namespace handling questi, David Carlisle |
Re: [xsl] Re: Dynamic number of sor, Dimitre Novatchev | Date | Re: [xsl] Namespace handling questi, David Carlisle |
Month |