[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Is it possible to set the default namespace with a

Subject: RE: Is it possible to set the default namespace with a dynamically-generated namespace uri?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 13 Mar 2010 07:10:51 -0000
RE:  Is it possible to set the default namespace with a
You need to create elements and attributes with the correct expanded name at
the time you create them. If that means using xsl:element, so be it.
xsl:namespace can only be used to create additional namespace nodes to those
that are created automatically for the prefixes/uris used in element and
attribute names; it can't be used to modify the name of an element or
attribute node.

As always, to understand this you need to understand the data model for
namespaces. An element/attribute name is a triple, containing (prefix, uri,
localname). A namespace node is a pair (prefix, uri). There is a consistency
rule that if an element or attribute name exists containing prefix=P uri=U
then there must be a namespace node (P, U). The namespace fixup process
ensures that this namespace node is created automatically when you create an
element or attribute. xsl:namespace is there to allow you to create
additional namespace nodes, typically for namespaces used in QName-valued
content.

Regards,

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

> -----Original Message-----
> From: Dimitre Novatchev [mailto:dnovatchev@xxxxxxxxx]
> Sent: 12 March 2010 23:45
> To: David Carlisle
> Cc: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re:  Is it possible to set the default
> namespace with a dynamically-generated namespace uri?
>
> > <xsl:element name="foo" namespace="$x"
> >
> > is your friend
> >
> > david
>
> Yes, but this would require creating all the output with <xsl:element>
>
> The OP (in another forum) wants this default namespace to
> apply to literal result elements that are descendents of this
> top node.
> However, they are just copied to the output 1:1 and the
> serializer takes special care to express the fact that they
> belong to no
> namespace, by inserting "  xmlns=''     " on all of them.
>
> It seems to me that using <xsl:namespace> it is not possible
> to specify a default namespace.
>
> I would be very glad if someone provides a concrete code
> sample proving me wrong :)
>
> Cheers,
> Dimitre
>
>
>
>
> On Fri, Mar 12, 2010 at 11:26 AM, David Carlisle
> <davidc@xxxxxxxxx> wrote:
> > On 12/03/2010 19:15, Dimitre Novatchev wrote:
> >>> http://www.w3.org/TR/xslt20/#element-namespace
> >>>
> >>> If the effective value  of the name attribute is a zero-length
> >>> string, a namespace node is added for the default namespace.
> >>>
> >>>
> >>> so
> >>>
> >>> <foo>
> >>> <xsl:namespace name="" select="$x"/>
> >>>
> >>> sets the default namespace to the uri in the variable x.
> >>>
> >>> David
> >>
> >>
> >>
> >> David, I tried this hours before asking the question.
> >>
> >> Saxon raises this error:
> >
> > er because I got it wrong, sorry, I should have checked or known or
> > something.
> >
> > You can add namespace nodes using xsl:namespace but you
> can't change
> > the namespace of a node that's already  been created so <foo>
> > <xsl;namespace name=""
> >
> >
> > doesn't work.
> >
> >
> > <xsl:element name="foo" namespace="$x"
> >
> > is your friend
> >
> > david
> >
> >
> >
>
>
>
> --
> Cheers,
> Dimitre Novatchev
> ---------------------------------------
> Truly great madness cannot be achieved without significant
> intelligence.
> ---------------------------------------
> To invent, you need a good imagination and a pile of junk
> -------------------------------------
> Never fight an inanimate object
> -------------------------------------
> You've achieved success in your field when you don't know
> whether what you're doing is work or play
> -------------------------------------
> I enjoy the massacre of ads. This sentence will slaughter ads
> without a messy bloodbath.

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.