- TDE version: 14.1.0
- Distribution: Debian Stretch
- Hardware: amd64
When looking in TDE/tdelibs#9, it turns out that it is not clear how one would create interface to top-level nodes that have children but do not accommodate any interface (except Introspectable by default)
Only the root element can omit the node name, as it’s known to be the object that was introspected. If the root does have a name attribute, it must be an absolute object path. If child have object paths, they must be relative.
If a child has any sub-elements, then they must represent a complete introspection of the child. If a child is empty, then it may or may not have sub-elements; the child must be introspected in order to find out. The intent is that if an object knows that its children are “fast” to introspect it can go ahead and return their information, but otherwise it can omit it.
So it should be able to generate node class with Introspectable interface out of
<node> <node name="hardwarecontrol" /> </node>
which it does not
Steps to reproduce
dbus-send --print-reply=literal --system --dest=org.trinitydesktop.hardwarecontrol /org/trinitydesktop org.freedesktop.DBus.Introspectable.Introspect > /tmp/test.xml
cd /tmp && dbusxml2qt3 test.xml
dbusxml2qt3: introspection data file 'test.xml' does not contain any valid interface descriptions
that comes from dbus-1-tqt/tools/dbusxml2qt3/main.cpp
My question here is how is it supposed to work properly? Is it a bug or is it a feature.