xsl-list
[Top] [All Lists]

Re: [xsl] Global namespace prefixes (Corrected Examples)

2008-11-13 18:51:31

On Nov 13, 2008, at 3:30 PM, Michael Kay wrote:


The crux of my question is this:

Is there a way to get namespace prefix declarations into the
root element of the result tree through the XSLT API?

With XSLT 2.0, use the xsl:namespace instruction


I'm stuck with XSLT 1.0


With XSLT 1.0, you can use xsl:copy-of to copy a namespace node from the
source document to the result document.

But that only works if the namespace exists in the source document.

In my situation I am using information found in the source document to create a new namespace.

The intention is that every Attribute element gets recast to a new element in a namespace that is unique to the base.document.

So these:

<?xml version="1.0" encoding="UTF-8"?>
<Dataset xmlns="http://xml.opendap.org/ns/DAP/3.2#"; base="http://base.document ">
  <Attribute name="Conventions" >CF-1.0</Attribute>
  <Attribute name="logname" >olson</Attribute>
  <Attribute name="host" >bb0001en</Attribute>
</Dataset>

Currently become this:

<?xml version="1.0" encoding="UTF-8"?>
<output xmlns:dap="http://xml.opendap.org/ns/DAP/3.2#";>
<ns0:Conventions xmlns:ns0="http://base.document/att#";>CF-1.0</ ns0:Conventions>
 <ns1:logname xmlns:ns1="http://base.document/att#";>olson</ns1:logname>
 <ns2:host xmlns:ns2="http://base.document/att#";>bb0001en</ns2:host>
</output>


Which is correct, but what I am trying to get is this:


<?xml version="1.0" encoding="UTF-8"?>
<output xmlns:dap="http://xml.opendap.org/ns/DAP/3.2#"; xmlns:att="http://base.document/att# ">
 <att:Conventions>CF-1.0</ttt:Conventions>
 <att:logname>olson</att:logname>
 <att:host>bb0001en</att:host>
</output>






Michael Kay
http://www.saxonica.com/


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


============================================================
Nathan Potter                 Oregon State University, COAS
ndp at coas.oregonstate.edu   104 Ocean. Admin. Bldg.
541 737 2293 voice            Corvallis, OR   97331-5503
541 737 2064 fax



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--