[XML-SIG] 4xslt - passing parameters

Uche Ogbuji uche.ogbuji@fourthought.com
Mon, 11 Nov 2002 00:08:54 -0700

> > 
> > Yes, you should be able to do that. How exactly are you invoking the
> > transformation? If you have a Processor instance proc, and you are calling,
> > e.g.
> >   
> >   proc.runStream(str)
> >   
> > then you can simply add the keyword argument topLevelParams with a
> > dictionary of parameters as its value. For example:
> > 
> >   result = proc.runStream(str, topLevelParams={'page': 27})
> I'm not sure if this works, though it might (let me know if it does). 
> The problem is that the key in the dictionary must contain the namespace
> of the variable as well.  So assuming the variable is referenced as
> "$page" then the dictionary that is passed in must be:
>   {('','page'),27}

No.  You don't have to pass in a namespace.  BTW, your example is wrong in 
either case because the empty namespace is None, not '' (I suggest always 
using xml.dom.EMPTY_NAMESPACE.

Anyway, Just as XSLT standard parameters default to no namespace if no prefix 
is used, so do 4XSLT's from the command line.

It has always been this way.

Uche Ogbuji                                    Fourthought, Inc.
http://uche.ogbuji.net    http://4Suite.org    http://fourthought.com
Python&XML column: 2. Introducing PyXML - http://www.xml.com/pub/a/2002/09/25/py.html
The Past, Present and Future of Web Services 1 - http://www.webservices.org/index.php/article/articleview/663/1/24/
The Past, Present and Future of Web Services 2 - 'http://www.webservices.org/index.php/article/articleview/679/1/24/
Serenity through markup - http://adtmag.com/article.asp?id=6807
Tip: Using generators for XML processing - http://www-106.ibm.com/developerworks/xml/library/x-tipgenr.html