Re: [xml] xpointer xmlns() scheme?



On Fri, Jan 19, 2007 at 11:00:07AM -0800, Bob Stayton wrote:
I'm a big fan of XInclude, and I use xmllint and xsltproc extensively 
because they support the xpointer() scheme of XInclude.  I recently tried 
to process some DocBook5 documents which are in the docbook namespace, and 
I'm not having much luck.  It seems the xmlns() scheme must be specified as 
part of the xpointer attribute for the include element, but it doesn't seem 
to work in libxml2.

<xi:include href="booktest5.xml"
  xpointer="xmlns(db=http://docbook.org/ns/docbook) 
xpointer(//db:dedication)"
  xmlns:xi="http://www.w3.org/2001/XInclude"/>

Am I doing something wrong, or is xmlns() not supported with the xpointer 
scheme?

  That looks right, and libxml2 has the xmlns() scheme support compiled in
if xpointer. However I don't see any test in the regression suite covering
xmlns(), the code in xpointer.c looks fine though, it registers the binding
in the XPath context. If you could make a tiny example showing the problem
with xmllint ...
  Might be broken though:

paphio:~/XML -> cat test.xml
<bar xmlns="http://foo/"/>
paphio:~/XML -> testXPath --xptr 'xmlns(foo=http://foo/)xpointer(//foo:bar)' test.xml
Object is empty (NULL)
Object is a Node Set :
Set contains 0 nodes:
paphio:~/XML -> testXPath --xptr 'xpointer(//foo:bar)' test.xml
XPath error : Undefined namespace prefix
Object is empty (NULL)
Object is a Node Set :
Set contains 0 nodes:
paphio:~/XML -> 

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
veillard redhat com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]