Re: dbus-binding-tool Unable to load "%s": Attribute "xmlns:tp" is invalid on <node> element in this context



On Saturday 01 March 2008 16:06:47 alban browaeys free fr wrote:
> I got :
> Unable to load "%s": Attribute "xmlns:tp" is invalid on <node> element
> in this context
> while the Makefile call dbus-binding-tool since
> http://svn.gnome.org/viewvc/NetworkManager?view=revision&revision=3345
>
> for example from NetworkManager/libnm-glib/ :
>  dbus-binding-tool --prefix=nm_access_point --mode=glib-client
> --output=nm-access-point-bindings.h ../introspection/nm-access-point.xml
>
> How do you build NetworkManager to avoid this issue ?

See the thread "[PATCH] NM DBUS api documentation build system". Dan talked 
about patching dbus-binding-tool to ignore unknown namespaces; I don't know 
if that has happened but you don't have that addition.  In the meantime you 
can do this to clean the docu stuff out of the introspection xml:

DROP_NAMESPACE="perl -pe '$$hash = 
chr(35);s{xmlns:tp="http://telepathy\.freedesktop\.org/wiki/DbusSpec$${hash}extensions-v0"}
{}g'"

mkdir introspection-dirty
mv introspection/nm-*.xml introspection-dirty
for i in introspection-dirty/*.xml
do
xmlfile=`basename $i`
xsltproc spec-to-introspect.xsl $xmlfile \
  | $DROP_NAMESPACE  >  introspection/$xmlfile
done

DROP_NAMESPACE=... should all be on one line of course.

(Dan, I still have the version of the docu build system that cleans the xml, 
if you want to reconsider...)

HTH

Will



-- 
Will Stephenson
IRC: Bille
<!-- Remove Telepathy extensions from a D-Bus interface, trying to leave only
DTD-compliant introspection XML. The output still needs to be subjected to the
following sed filter:
sed -e 's xmlns:tp="http://telepathy\.freedesktop\.org/wiki/DbusSpec.extensions-v0"@@g'

The master copy of this stylesheet is in the Telepathy spec repository -
please make any changes there.

Copyright (C) 2006, 2007 Collabora Limited

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0";
  exclude-result-prefixes="tp">

  <xsl:template match="*">
    <xsl:copy>
      <xsl:for-each select="@*">
        <xsl:if test="not(starts-with(name(), 'tp:'))">
          <xsl:copy/>
        </xsl:if>
      </xsl:for-each>
      <xsl:apply-templates/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="tp:*"/>
  <xsl:template match="text()"/>

  <xsl:output method="xml" indent="yes" encoding="UTF-8"
    omit-xml-declaration="no"
    doctype-system="http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd";
    doctype-public="-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" />

</xsl:stylesheet>

<!-- vim:set sw=2 sts=2 et: -->


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