Joachim Zobel schrieb am 24.10.2011 um 07:34 (+0200):
> On Sun, 2011-10-23 at 23:49 +0200, Michael Ludwig wrote:
> > There is a namespace prefix in your pattern that cannot be
> > bound to a namespace because you didn't declare any.
> 
> Yeah, missed that.
> 
> jo@vostro:~$ echo '<?xml version="1.0"?><dummy xmlns:a="test"/>' |
> xmllint --pattern "//a:b" -
> Pattern //a:b failed to compile

To clarify:

The prefix has to be bound where the pattern using the prefix is
to be compiled.

In your example, you're declaring (but not using) it on the doc;
but that doesn't automagically provide the pattern to the bit of
code that is instructed to compile the pattern.

Check out the registerNs method (as well as the other register*
methods) in the Perl interface to libxml2 for an example of what
I'm referring to.

I still don't know what that --pattern switch is supposed to
do, but I cannot see how it is supposed to cope with namespace
prefixes; it seems to be lacking the command line equivalent of
the registerNs method.

Michael
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to