|
Subject: RE: [xsl] Namespace match error. XSL to convert attribute-centric to element-centric. From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 15 Nov 2007 11:14:01 -0000 |
name() gives you a lexical QName (prefix:local) and xsl:element requires
that if you use a prefixed QName in the name attribute, with no namespace
attribute, then the prefix must be declared in the stylesheet.
If you really want to create an element called <xsi:type> then use
<xsl:element name="{name()}" namespace="{namespace-uri()}"> as suggested.
However, I can't imagine what use an element called <xsi:type> might be to
anyone.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Kerry, Richard [mailto:richard.kerry@xxxxxxxxxxx]
> Sent: 15 November 2007 09:59
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Namespace match error. XSL to convert
> attribute-centric to element-centric.
>
>
>
> I'm trying to convert an xml document from attribute-centric
> to element-centric using the following stylesheet.
> (This is ConvertToElements2.xsl referred to below)
>
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> exclude-result-prefixes="xs"
> version="2.0">
>
> <xsl:template match="/">
> <xsl:apply-templates/>
> </xsl:template>
>
> <xsl:template match="@*" >
> <xsl:element name="{name()}">
> <xsl:value-of select=3D"."/>
> </xsl:element>
> </xsl:template>
>
> <xsl:template match="*" >
> <xsl:element name="{name()}">
> <xsl:apply-templates select="@*" />
> <xsl:apply-templates/>
> </xsl:element>
> </xsl:template>
>
> </xsl:stylesheet>
>
>
> If I apply it to the following data :
>
> <?xml version="1.0" encoding="UTF-8"?>
> <slots xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="generic_snmp_slots.xsd">
> <slot name="RevMajor" use="yes" description="The Major
> Revision level."/> </slots>
>
> I get an error as follows (this is using Saxon, on Windows XP):
>
> (some lines of batchfile removed)
>
> C:\Projects\Drivers\Mib>set
> CLASSPATH=3DC:/Downloads/Saxon/saxonb8-9j/saxon8.jar
> C:\Projects\Drivers\Mib>java net.sf.saxon.Transform
> Slots4.xml C:/Projects/Tools_RK/Xsl/ConvertToElements2.xsl
> outfile=3DSlots4_Elements.xml
>
> Error at xsl:element on line 12 of
> file:/C:/Projects/Tools_RK/Xsl/ConvertToElements2.xsl:
> XTDE0830: Undeclared prefix in element name: xsi Transformation
> failed: Run-time errors were reported
>
>
>
>
>
> I take it this error is due to the "xsi:" namespace of the
> "xsi:noNamespaceSchemaLocation" attribute of my source data.
> How can I handle this ?
> I thought matching "*" would match everything. Do I need to
> tell it to ignore namespaces ? Or match namespaces somehow ?
> Or is this an XML error (wrong name for the schema attribute
> perhaps) that is thus nothing to do with XSL ?
>
>
>
> Uncertainly,
> Richard.
>
>
>
>
>
> Richard Kerry
> Colledia Control Engineer
> Siemens IT Solutions and Services Ltd
> Room 457 Design Building, BBC Television Centre, Wood Lane,
> London, W12 7RJ
> T: +44 (0)20 82259063 F: +44 (0)20 8576 8182 M: +44 (0)7921 244993
> Email: richard.kerry@xxxxxxxxxxx
> <blocked::mailto:richard.kerry@xxxxxxxxxxx>
> Website: www.siemens.co.uk/it-solutions
> <blocked::outbind://47/www.siemens.co.uk/it-solutions>
>
> This e-mail contains confidential information and is for the
> exclusive use of the addressee/s. If you are not the
> addressee, then any distribution, copying or use of this
> e-mail is prohibited. If received in error, please advise the
> sender and delete it immediately. We accept no liability for
> any loss or damage suffered by any person arising from use of
> this e-mail.
>
> Siemens IT Solutions and Services Limited Registered No:
> 1203466 England Registered Office: Faraday House, Sir William
> Siemens Square, Frimley, Camberley, GU16 8QD
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Namespace match error. XS, Andrew Welch | Thread | RE: [xsl] Namespace match error. XS, Kerry, Richard |
| RE: [xsl] problem for extracting in, Miren | Date | Re: [xsl] problem for extracting in, David Carlisle |
| Month |