[xquery-talk] namespace questions
Uwe Küssner
UweKuessner at web.de
Mon May 8 16:13:18 PDT 2006
> -----Ursprüngliche Nachricht-----
> Von: "Michael Kay" <mhk at mhk.me.uk>
> Gesendet: 08.05.06 14:06:39
> An: 'Uwe Küssner' <UweKuessner at web.de>
> Betreff: RE: [xquery-talk] namespace questions
> When I run this with Saxon, from the command line, the output is:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <foo xmlns:sam="http://www.aaa.aaa/a">
> <local xmlns="uri">content</local>
> </foo>
>
> as expected.
>
> How are you running it?
this is the right question !
i use the oxygenxml plugin for eclipse.
when i use saxon from command line the output is as expected :-)
thank you.
uwe küsssner
----------------------------------------------------------------------------
>
> I would regard any serializer that doesn't output the namespace declarations
> as seriously buggy.
>
> Michael Kay
> http://www.saxonica.com/
>
> > -----Original Message-----
> > From: Uwe Küssner [mailto:UweKuessner at web.de]
> > Sent: 08 May 2006 12:32
> > To: Michael Kay; talk at xquery.com
> > Subject: RE: [xquery-talk] namespace questions
> >
> > dear michael kay,
> >
> > thank you for your answer, as far as I understand you, something like
> >
> > let $x := element {QName('uri', 'local')} { 'content' }
> > return <foo xmlns:sam="http://www.aaa.aaa/a"> {$x} </foo>
> >
> > should do the job. right ?
> > but the result is:
> >
> > <foo>
> > <local>content</local>
> > </foo>
> >
> > both namespaces are not present.
> > is it because i have to configure the serialization (with
> > saxon), as Martin Probst said ?
> >
> > probst >his is a serialization issue and depends on the
> > implementation you probst >use. I.e. in X-Hive a simple
> > .toString() on an XML element won't add probst >XML namespace
> > declarations, but you can always use an XML serializer probst
> > >and set DomConfiguration.FEATURE_NAMESPACES to true in its config.
> >
> > thank you.
> >
> > uwe kuessner
> >
> >
> > > -----Ursprüngliche Nachricht-----
> > > Von: "Michael Kay" <mhk at mhk.me.uk>
> > > Gesendet: 08.05.06 10:23:27
> > > An: <talk at xquery.com>
> > > Betreff: RE: [xquery-talk] namespace questions
> >
> >
> > > > I use the follwing xquery:
> > > >
> > > > declare namespace sam="http://www.aaa.aaa/a"; declare
> > > > namespace huhu="http://www.aaa.aaa/b"; let $extern := <a
> > > > namespace="huhu"/> return
> > > > <foo>
> > > > <sam:bar/>
> > > > {element {concat($extern/@namespace,":","ele")} {"text"}}
> > > > </foo>
> > > >
> > > > which generates:
> > > >
> > > > <foo>
> > > > <sam:bar/>
> > > > <huhu:ele>text</huhu:ele>
> > > > </foo>
> > > >
> > > > Questions:
> > > > 1. What is necessary to create the missing namespace
> > > > declarations xmlns:sam=http://www.aaa.aaa/a in the foo
> > element ?
> > >
> > > Write <foo xmlns:sam="http://www.aaa.aaa/a"/>.
> > >
> > > There are two kinds of namespace declarations in XQuery.
> > "declare namespace"
> > > defines a namespace binding that can be used anywhere in
> > the query, but
> > > which is not copied into constructed elements. An
> > xmlns="xyz" declaration in
> > > a direct element constructor defines a binding that can be
> > used anywhere
> > > lexically within that element constructor, and which is
> > also copied to the
> > > result element.
> > >
> > > > 2. If the second line (declare namespace
> > > > huhu=http://www.aaa.aaa/b; is missing ) there is a runtime
> > > > error. (Undeclared prefix in element name:huhu). If the
> > > > prefix huhu of the namespace is not known in advance, but
> > > > only at run time, is it still possible to construct a node
> > > > <huhu:ele> ?
> > >
> > > Yes, supply a value of type xs:QName(), which you can
> > construct dynamically
> > > if you know the namespace URI and local name.
> > >
> > > element {QName('uri', 'local')} { content }
> > >
> > > Michael Kay
> > > http://www.saxonica.com/
> > >
> >
> >
>
More information about the talk
mailing list