<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="libxmlb"/>
  <c:include name="xmlb.h"/>
  <namespace name="Xmlb"
             version="1.0"
             shared-library="libxmlb.so.1"
             c:identifier-prefixes="Xb"
             c:symbol-prefixes="xb">
    <class name="Builder"
           c:symbol-prefix="builder"
           c:type="XbBuilder"
           parent="GObject.Object"
           glib:type-name="XbBuilder"
           glib:get-type="xb_builder_get_type"
           glib:type-struct="BuilderClass">
      <source-position filename="../src/xb-builder.h" line="32"/>
      <constructor name="new" c:identifier="xb_builder_new" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder.c"
             line="1044">Creates a new builder.</doc>
        <source-position filename="../src/xb-builder.h" line="56"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-builder.c"
               line="1049">a new #XbBuilder</doc>
          <type name="Builder" c:type="XbBuilder*"/>
        </return-value>
      </constructor>
      <method name="add_fixup"
              c:identifier="xb_builder_add_fixup"
              version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-builder.c"
             line="983">Adds a function that will get run on every #XbBuilderNode compile creates
for the silo. This is run after all the #XbBuilderSource fixups have been
run.</doc>
        <source-position filename="../src/xb-builder.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="985">a #XbBuilder</doc>
            <type name="Builder" c:type="XbBuilder*"/>
          </instance-parameter>
          <parameter name="fixup" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="986">a #XbBuilderFixup</doc>
            <type name="BuilderFixup" c:type="XbBuilderFixup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_locale"
              c:identifier="xb_builder_add_locale"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder.c"
             line="606">Adds a locale to the builder. Locales added first will be prioritised over
locales added later.</doc>
        <source-position filename="../src/xb-builder.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="608">a #XbSilo</doc>
            <type name="Builder" c:type="XbBuilder*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="609">a locale, e.g. "en_US"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="append_guid"
              c:identifier="xb_builder_append_guid"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder.c"
             line="947">Adds the GUID to the internal correctness hash.</doc>
        <source-position filename="../src/xb-builder.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="949">a #XbSilo</doc>
            <type name="Builder" c:type="XbBuilder*"/>
          </instance-parameter>
          <parameter name="guid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="950">any text, typcically a filename or GUID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="compile"
              c:identifier="xb_builder_compile"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-builder.c"
             line="666">Compiles a #XbSilo.</doc>
        <source-position filename="../src/xb-builder.h" line="63"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-builder.c"
               line="675">a #XbSilo, or %NULL for error</doc>
          <type name="Silo" c:type="XbSilo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="668">a #XbSilo</doc>
            <type name="Builder" c:type="XbBuilder*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="669">some #XbBuilderCompileFlags, e.g. %XB_BUILDER_SOURCE_FLAG_LITERAL_TEXT</doc>
            <type name="BuilderCompileFlags" c:type="XbBuilderCompileFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="670">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure"
              c:identifier="xb_builder_ensure"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-builder.c"
             line="843">Ensures @file is up to date, and returns a compiled #XbSilo.

If @silo is being used by a query (e.g. in another thread) then all node
data is immediately invalid.</doc>
        <source-position filename="../src/xb-builder.h" line="67"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-builder.c"
               line="856">a #XbSilo, or %NULL for error</doc>
          <type name="Silo" c:type="XbSilo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="845">a #XbSilo</doc>
            <type name="Builder" c:type="XbBuilder*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="846">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="847">some #XbBuilderCompileFlags, e.g. %XB_BUILDER_COMPILE_FLAG_IGNORE_INVALID</doc>
            <type name="BuilderCompileFlags" c:type="XbBuilderCompileFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="848">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="import_node"
              c:identifier="xb_builder_import_node"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder.c"
             line="586">Adds a node tree to the builder.</doc>
        <source-position filename="../src/xb-builder.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="588">a #XbSilo</doc>
            <type name="Builder" c:type="XbBuilder*"/>
          </instance-parameter>
          <parameter name="bn" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="589">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="import_source"
              c:identifier="xb_builder_import_source"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder.c"
             line="176">Adds a #XbBuilderSource to the #XbBuilder.</doc>
        <source-position filename="../src/xb-builder.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="178">a #XbSilo</doc>
            <type name="Builder" c:type="XbBuilder*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="179">a #XbBuilderSource</doc>
            <type name="BuilderSource" c:type="XbBuilderSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_profile_flags"
              c:identifier="xb_builder_set_profile_flags"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-builder.c"
             line="965">Enables or disables the collection of profiling data.</doc>
        <source-position filename="../src/xb-builder.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="967">a #XbBuilder</doc>
            <type name="Builder" c:type="XbBuilder*"/>
          </instance-parameter>
          <parameter name="profile_flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder.c"
                 line="968">some #XbSiloProfileFlags, e.g. %XB_SILO_PROFILE_FLAG_DEBUG</doc>
            <type name="SiloProfileFlags" c:type="XbSiloProfileFlags"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="BuilderClass"
            c:type="XbBuilderClass"
            glib:is-gtype-struct-for="Builder">
      <source-position filename="../src/xb-builder.h" line="32"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_xb_reserved1" introspectable="0">
        <callback name="_xb_reserved1">
          <source-position filename="../src/xb-builder.h" line="25"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved2" introspectable="0">
        <callback name="_xb_reserved2">
          <source-position filename="../src/xb-builder.h" line="26"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved3" introspectable="0">
        <callback name="_xb_reserved3">
          <source-position filename="../src/xb-builder.h" line="27"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved4" introspectable="0">
        <callback name="_xb_reserved4">
          <source-position filename="../src/xb-builder.h" line="28"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved5" introspectable="0">
        <callback name="_xb_reserved5">
          <source-position filename="../src/xb-builder.h" line="29"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved6" introspectable="0">
        <callback name="_xb_reserved6">
          <source-position filename="../src/xb-builder.h" line="30"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved7" introspectable="0">
        <callback name="_xb_reserved7">
          <source-position filename="../src/xb-builder.h" line="31"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <bitfield name="BuilderCompileFlags" c:type="XbBuilderCompileFlags">
      <doc xml:space="preserve"
           filename="../src/xb-builder.h"
           line="34">The flags for converting to XML.</doc>
      <source-position filename="../src/xb-builder.h" line="54"/>
      <member name="none"
              value="0"
              c:identifier="XB_BUILDER_COMPILE_FLAG_NONE">
        <doc xml:space="preserve"
             filename="../src/xb-builder.h"
             line="36">No extra flags to use</doc>
      </member>
      <member name="native_langs"
              value="2"
              c:identifier="XB_BUILDER_COMPILE_FLAG_NATIVE_LANGS">
        <doc xml:space="preserve"
             filename="../src/xb-builder.h"
             line="37">Only load native languages</doc>
      </member>
      <member name="ignore_invalid"
              value="4"
              c:identifier="XB_BUILDER_COMPILE_FLAG_IGNORE_INVALID">
        <doc xml:space="preserve"
             filename="../src/xb-builder.h"
             line="38">Ignore invalid files without an error</doc>
      </member>
      <member name="single_lang"
              value="8"
              c:identifier="XB_BUILDER_COMPILE_FLAG_SINGLE_LANG">
        <doc xml:space="preserve"
             filename="../src/xb-builder.h"
             line="39">Only store a single language</doc>
      </member>
      <member name="watch_blob"
              value="16"
              c:identifier="XB_BUILDER_COMPILE_FLAG_WATCH_BLOB">
        <doc xml:space="preserve"
             filename="../src/xb-builder.h"
             line="40">Watch the XMLB file for changes</doc>
      </member>
      <member name="ignore_guid"
              value="32"
              c:identifier="XB_BUILDER_COMPILE_FLAG_IGNORE_GUID">
        <doc xml:space="preserve"
             filename="../src/xb-builder.h"
             line="41">Ignore the cache GUID value</doc>
      </member>
    </bitfield>
    <class name="BuilderFixup"
           c:symbol-prefix="builder_fixup"
           c:type="XbBuilderFixup"
           parent="GObject.Object"
           glib:type-name="XbBuilderFixup"
           glib:get-type="xb_builder_fixup_get_type"
           glib:type-struct="BuilderFixupClass">
      <source-position filename="../src/xb-builder-fixup.h" line="29"/>
      <constructor name="new"
                   c:identifier="xb_builder_fixup_new"
                   version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-builder-fixup.c"
             line="171">Creates a function that will get run on every #XbBuilderNode compile creates.</doc>
        <source-position filename="../src/xb-builder-fixup.h" line="36"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-builder-fixup.c"
               line="180">a new #XbBuilderFixup</doc>
          <type name="BuilderFixup" c:type="XbBuilderFixup*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-fixup.c"
                 line="173">a text ID value, e.g. `AppStreamUpgrade`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-fixup.c"
                 line="174">a callback</doc>
            <type name="BuilderFixupFunc" c:type="XbBuilderFixupFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-fixup.c"
                 line="175">user pointer to pass to @func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_free"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-fixup.c"
                 line="176">a function which gets called to free @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_max_depth"
              c:identifier="xb_builder_fixup_get_max_depth"
              version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-builder-fixup.c"
             line="105">Gets the maximum depth used for this fixup, if each node is being visited.</doc>
        <source-position filename="../src/xb-builder-fixup.h" line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-fixup.c"
               line="111">integer, or -1 if unset</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-fixup.c"
                 line="107">a #XbBuilderFixup</doc>
            <type name="BuilderFixup" c:type="XbBuilderFixup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_max_depth"
              c:identifier="xb_builder_fixup_set_max_depth"
              version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-builder-fixup.c"
             line="123">Sets the maximum depth used for this fixup. Use a @max_depth of 0 to only
visit the root node.

Setting a maximum depth may increase performance considerably if using
fixup functions on large and deeply nested XML files.</doc>
        <source-position filename="../src/xb-builder-fixup.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-fixup.c"
                 line="125">a #XbBuilderFixup</doc>
            <type name="BuilderFixup" c:type="XbBuilderFixup*"/>
          </instance-parameter>
          <parameter name="max_depth" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-fixup.c"
                 line="126">integer, -1 for "all"</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="BuilderFixupClass"
            c:type="XbBuilderFixupClass"
            glib:is-gtype-struct-for="BuilderFixup">
      <source-position filename="../src/xb-builder-fixup.h" line="29"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_xb_reserved1" introspectable="0">
        <callback name="_xb_reserved1">
          <source-position filename="../src/xb-builder-fixup.h" line="22"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved2" introspectable="0">
        <callback name="_xb_reserved2">
          <source-position filename="../src/xb-builder-fixup.h" line="23"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved3" introspectable="0">
        <callback name="_xb_reserved3">
          <source-position filename="../src/xb-builder-fixup.h" line="24"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved4" introspectable="0">
        <callback name="_xb_reserved4">
          <source-position filename="../src/xb-builder-fixup.h" line="25"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved5" introspectable="0">
        <callback name="_xb_reserved5">
          <source-position filename="../src/xb-builder-fixup.h" line="26"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved6" introspectable="0">
        <callback name="_xb_reserved6">
          <source-position filename="../src/xb-builder-fixup.h" line="27"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved7" introspectable="0">
        <callback name="_xb_reserved7">
          <source-position filename="../src/xb-builder-fixup.h" line="28"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <callback name="BuilderFixupFunc" c:type="XbBuilderFixupFunc" throws="1">
      <source-position filename="../src/xb-builder-fixup.h" line="31"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <type name="BuilderFixup" c:type="XbBuilderFixup*"/>
        </parameter>
        <parameter name="bn" transfer-ownership="none">
          <type name="BuilderNode" c:type="XbBuilderNode*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="BuilderNode"
           c:symbol-prefix="builder_node"
           c:type="XbBuilderNode"
           parent="GObject.Object"
           glib:type-name="XbBuilderNode"
           glib:get-type="xb_builder_node_get_type"
           glib:type-struct="BuilderNodeClass">
      <source-position filename="../src/xb-builder-node.h" line="28"/>
      <constructor name="new"
                   c:identifier="xb_builder_node_new"
                   version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="745">Creates a new builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="52"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="751">a new #XbBuilderNode</doc>
          <type name="BuilderNode" c:type="XbBuilderNode*"/>
        </return-value>
        <parameters>
          <parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="747">An element name, e.g. "component"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_child"
              c:identifier="xb_builder_node_add_child"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="367">Adds a child builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="369">A XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="370">A XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_flag"
              c:identifier="xb_builder_node_add_flag"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="54">Adds a flag to the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="56">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="flag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="57">a #XbBuilderNodeFlags</doc>
            <type name="BuilderNodeFlags" c:type="XbBuilderNodeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="depth"
              c:identifier="xb_builder_node_depth"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="347">Gets the depth of the node tree, where 0 is the root node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="349">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="export"
              c:identifier="xb_builder_node_export"
              version="0.1.5"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="907">Exports the node to XML.</doc>
        <source-position filename="../src/xb-builder-node.h" line="102"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="915">XML data, or %NULL for an error</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="909">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="910">some #XbNodeExportFlags, e.g. #XB_NODE_EXPORT_FLAG_NONE</doc>
            <type name="NodeExportFlags" c:type="XbNodeExportFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attr"
              c:identifier="xb_builder_node_get_attr"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="111">Gets an attribute from the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="118">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="113">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="114">attribute name, e.g. `type`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attr_as_uint"
              c:identifier="xb_builder_node_get_attr_as_uint"
              version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="136">Gets an attribute from the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="143">integer, or 0 if unset</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="138">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="139">attribute name, e.g. `priority`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_child"
              c:identifier="xb_builder_node_get_child"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="475">Finds a child builder node by the element name, and optionally text value.</doc>
        <source-position filename="../src/xb-builder-node.h" line="87"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="483">a new #XbBuilderNode, or %NULL if not found</doc>
          <type name="BuilderNode" c:type="XbBuilderNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="477">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="478">An element name, e.g. "url"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="479">node text, e.g. "gimp.desktop"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_children"
              c:identifier="xb_builder_node_get_children"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="457">Gets the children of the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="463">children</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="BuilderNode"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="459">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_element"
              c:identifier="xb_builder_node_get_element"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="75">Gets the element from the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="81">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="77">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent"
              c:identifier="xb_builder_node_get_parent"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="437">Gets the parent node for the current node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="91"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="443">a new #XbBuilderNode, or %NULL no parent exists.</doc>
          <type name="BuilderNode" c:type="XbBuilderNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="439">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text"
              c:identifier="xb_builder_node_get_text"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="158">Gets the text from the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="164">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="160">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_as_uint"
              c:identifier="xb_builder_node_get_text_as_uint"
              version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="176">Gets the text from the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="182">integer, or 0 if unset</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="178">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_flag"
              c:identifier="xb_builder_node_has_flag"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="35">Checks a flag on the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="42">%TRUE if @flag is set</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="37">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="flag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="38">a #XbBuilderNodeFlags</doc>
            <type name="BuilderNodeFlags" c:type="XbBuilderNodeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert"
              c:identifier="xb_builder_node_insert"
              version="0.1.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="764">Creates a new builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="53"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-builder-node.c"
               line="772">a new #XbBuilderNode</doc>
          <type name="BuilderNode" c:type="XbBuilderNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="parent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="766">A XbBuilderNode, or %NULL</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="767">An element name, e.g. "component"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="768">any attributes to add to the node, terminated by %NULL</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_text"
              c:identifier="xb_builder_node_insert_text"
              version="0.1.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="804">Creates a new builder node with optional node text.</doc>
        <source-position filename="../src/xb-builder-node.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="806">A XbBuilderNode, or %NULL</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="807">An element name, e.g. "id"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="808">node text, e.g. "gimp.desktop"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="809">any attributes to add to the node, terminated by %NULL</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_attr"
              c:identifier="xb_builder_node_remove_attr"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="321">Removes an attribute from the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="323">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="324">attribute name, e.g. `type`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_child"
              c:identifier="xb_builder_node_remove_child"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="392">Removes a child builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="394">A XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="395">A XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_attr"
              c:identifier="xb_builder_node_set_attr"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="283">Adds an attribute to the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="285">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="286">attribute name, e.g. `type`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="287">attribute value, e.g. `desktop`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_element"
              c:identifier="xb_builder_node_set_element"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="93">Sets the element name on the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="95">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="96">a string element</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text"
              c:identifier="xb_builder_node_set_text"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="206">Sets the text on the builder node.</doc>
        <source-position filename="../src/xb-builder-node.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="208">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="209">a string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="text_len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="210">length of @text, or -1 if @text is NUL terminated</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="sort_children"
              c:identifier="xb_builder_node_sort_children"
              version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="600">Sorts the node children using a custom sort function.</doc>
        <source-position filename="../src/xb-builder-node.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="602">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="603">a #XbBuilderNodeSortFunc</doc>
            <type name="BuilderNodeSortFunc" c:type="XbBuilderNodeSortFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="604">user pointer to pass to @func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="traverse"
              c:identifier="xb_builder_node_traverse"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="548">Traverses a tree starting from @self. It calls the given function for each
node visited.

The traversal can be halted at any point by returning TRUE from @func.</doc>
        <source-position filename="../src/xb-builder-node.h" line="93"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="550">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
          <parameter name="order" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="551">a #GTraverseType, e.g. %G_PRE_ORDER</doc>
            <type name="GLib.TraverseType" c:type="GTraverseType"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="552">a #GTraverseFlags, e.g. %G_TRAVERSE_ALL</doc>
            <type name="GLib.TraverseFlags" c:type="GTraverseFlags"/>
          </parameter>
          <parameter name="max_depth" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="553">the maximum depth of the traversal, or -1 for no limit</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="4">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="554">a #XbBuilderNodeTraverseFunc</doc>
            <type name="BuilderNodeTraverseFunc"
                  c:type="XbBuilderNodeTraverseFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="555">user pointer to pass to @func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="unlink"
              c:identifier="xb_builder_node_unlink"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.c"
             line="414">Unlinks a #XbBuilderNode from a tree, resulting in two separate trees.

This should not be used from the function called by xb_builder_node_traverse()
otherwise the entire tree will not be traversed.

Instead use xb_builder_node_add_flag(bn,XB_BUILDER_NODE_FLAG_IGNORE);</doc>
        <source-position filename="../src/xb-builder-node.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-node.c"
                 line="416">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="BuilderNodeClass"
            c:type="XbBuilderNodeClass"
            glib:is-gtype-struct-for="BuilderNode">
      <source-position filename="../src/xb-builder-node.h" line="28"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_xb_reserved1" introspectable="0">
        <callback name="_xb_reserved1">
          <source-position filename="../src/xb-builder-node.h" line="21"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved2" introspectable="0">
        <callback name="_xb_reserved2">
          <source-position filename="../src/xb-builder-node.h" line="22"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved3" introspectable="0">
        <callback name="_xb_reserved3">
          <source-position filename="../src/xb-builder-node.h" line="23"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved4" introspectable="0">
        <callback name="_xb_reserved4">
          <source-position filename="../src/xb-builder-node.h" line="24"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved5" introspectable="0">
        <callback name="_xb_reserved5">
          <source-position filename="../src/xb-builder-node.h" line="25"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved6" introspectable="0">
        <callback name="_xb_reserved6">
          <source-position filename="../src/xb-builder-node.h" line="26"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved7" introspectable="0">
        <callback name="_xb_reserved7">
          <source-position filename="../src/xb-builder-node.h" line="27"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <bitfield name="BuilderNodeFlags" c:type="XbBuilderNodeFlags">
      <doc xml:space="preserve"
           filename="../src/xb-builder-node.h"
           line="30">The flags used when building a node.</doc>
      <source-position filename="../src/xb-builder-node.h" line="44"/>
      <member name="none" value="0" c:identifier="XB_BUILDER_NODE_FLAG_NONE">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.h"
             line="32">No extra flags to use</doc>
      </member>
      <member name="ignore"
              value="1"
              c:identifier="XB_BUILDER_NODE_FLAG_IGNORE">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.h"
             line="33">Do not include this node in the silo</doc>
      </member>
      <member name="literal_text"
              value="2"
              c:identifier="XB_BUILDER_NODE_FLAG_LITERAL_TEXT">
        <doc xml:space="preserve"
             filename="../src/xb-builder-node.h"
             line="34">Assume the node CDATA is already valid</doc>
      </member>
    </bitfield>
    <callback name="BuilderNodeSortFunc" c:type="XbBuilderNodeSortFunc">
      <source-position filename="../src/xb-builder-node.h" line="48"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="bn1" transfer-ownership="none">
          <type name="BuilderNode" c:type="XbBuilderNode*"/>
        </parameter>
        <parameter name="bn2" transfer-ownership="none">
          <type name="BuilderNode" c:type="XbBuilderNode*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="BuilderNodeTraverseFunc"
              c:type="XbBuilderNodeTraverseFunc">
      <source-position filename="../src/xb-builder-node.h" line="46"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="bn" transfer-ownership="none">
          <type name="BuilderNode" c:type="XbBuilderNode*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="BuilderSource"
           c:symbol-prefix="builder_source"
           c:type="XbBuilderSource"
           parent="GObject.Object"
           glib:type-name="XbBuilderSource"
           glib:get-type="xb_builder_source_get_type"
           glib:type-struct="BuilderSourceClass">
      <source-position filename="../src/xb-builder-source.h" line="31"/>
      <constructor name="new"
                   c:identifier="xb_builder_source_new"
                   version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.c"
             line="609">Creates a new builder source.</doc>
        <source-position filename="../src/xb-builder-source.h" line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-builder-source.c"
               line="614">a new #XbBuilderSource</doc>
          <type name="BuilderSource" c:type="XbBuilderSource*"/>
        </return-value>
      </constructor>
      <method name="add_adapter"
              c:identifier="xb_builder_source_add_adapter"
              version="0.1.7"
              introspectable="0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.c"
             line="353">Adds a function that can be used to convert streams loaded with
xb_builder_source_load_xml().</doc>
        <source-position filename="../src/xb-builder-source.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="355">a #XbBuilderSource</doc>
            <type name="BuilderSource" c:type="XbBuilderSource*"/>
          </instance-parameter>
          <parameter name="content_types" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="356">mimetypes, e.g. `application/x-desktop,application/gzip`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="357">a callback, or %NULL</doc>
            <type name="BuilderSourceAdapterFunc"
                  c:type="XbBuilderSourceAdapterFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="358">user pointer to pass to @func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_free"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="359">a function which gets called to free @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_converter"
              c:identifier="xb_builder_source_add_converter"
              version="0.1.1"
              introspectable="0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.c"
             line="310">Adds a function that can be used to convert files loaded with
xb_builder_source_load_xml().

This function is now deprecated, and xb_builder_source_add_adapter() can be
used instead. The latter allows chaining streams rather than just one #GFile
to #GInputStream conversion.</doc>
        <source-position filename="../src/xb-builder-source.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="312">a #XbBuilderSource</doc>
            <type name="BuilderSource" c:type="XbBuilderSource*"/>
          </instance-parameter>
          <parameter name="content_types" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="313">mimetypes, e.g. `application/x-desktop,application/gzip`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="314">a callback</doc>
            <type name="BuilderSourceConverterFunc"
                  c:type="XbBuilderSourceConverterFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="315">user pointer to pass to @func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_free"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="316">a function which gets called to free @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_fixup"
              c:identifier="xb_builder_source_add_fixup"
              version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.c"
             line="265">Adds a function that will get run on every #XbBuilderNode compile creates
with this source.</doc>
        <source-position filename="../src/xb-builder-source.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="267">a #XbBuilderSource</doc>
            <type name="BuilderSource" c:type="XbBuilderSource*"/>
          </instance-parameter>
          <parameter name="fixup" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="268">a #XbBuilderFixup</doc>
            <type name="BuilderFixup" c:type="XbBuilderFixup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_node_func"
              c:identifier="xb_builder_source_add_node_func"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.c"
             line="284">Adds a function that will get run on every #XbBuilderNode compile creates.</doc>
        <source-position filename="../src/xb-builder-source.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="286">a #XbBuilderSource</doc>
            <type name="BuilderSource" c:type="XbBuilderSource*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="287">a text ID value, e.g. `AppStreamUpgrade`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="288">a callback</doc>
            <type name="BuilderSourceNodeFunc"
                  c:type="XbBuilderSourceNodeFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="289">user pointer to pass to @func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_free"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="290">a function which gets called to free @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_bytes"
              c:identifier="xb_builder_source_load_bytes"
              version="0.1.2"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.c"
             line="223">Loads XML data and begins to build a #XbSilo.</doc>
        <source-position filename="../src/xb-builder-source.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-source.c"
               line="232">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="225">a #XbBuilderSource</doc>
            <type name="BuilderSource" c:type="XbBuilderSource*"/>
          </instance-parameter>
          <parameter name="bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="226">a #GBytes</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="227">some #XbBuilderSourceFlags, e.g. %XB_BUILDER_SOURCE_FLAG_LITERAL_TEXT</doc>
            <type name="BuilderSourceFlags" c:type="XbBuilderSourceFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_file"
              c:identifier="xb_builder_source_load_file"
              version="0.1.1"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.c"
             line="72">Loads an optionally compressed XML file to build a #XbSilo.</doc>
        <source-position filename="../src/xb-builder-source.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-source.c"
               line="82">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="74">a #XbBuilderSource</doc>
            <type name="BuilderSource" c:type="XbBuilderSource*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="75">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="76">some #XbBuilderSourceFlags, e.g. %XB_BUILDER_SOURCE_FLAG_LITERAL_TEXT</doc>
            <type name="BuilderSourceFlags" c:type="XbBuilderSourceFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="77">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_xml"
              c:identifier="xb_builder_source_load_xml"
              version="0.1.1"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.c"
             line="181">Loads XML data and begins to build a #XbSilo.</doc>
        <source-position filename="../src/xb-builder-source.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-source.c"
               line="190">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="183">a #XbBuilderSource</doc>
            <type name="BuilderSource" c:type="XbBuilderSource*"/>
          </instance-parameter>
          <parameter name="xml" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="184">XML data</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="185">some #XbBuilderSourceFlags, e.g. %XB_BUILDER_SOURCE_FLAG_LITERAL_TEXT</doc>
            <type name="BuilderSourceFlags" c:type="XbBuilderSourceFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_info"
              c:identifier="xb_builder_source_set_info"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.c"
             line="145">Sets an optional information metadata node on the root node.</doc>
        <source-position filename="../src/xb-builder-source.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="147">a #XbBuilderSource</doc>
            <type name="BuilderSource" c:type="XbBuilderSource*"/>
          </instance-parameter>
          <parameter name="info"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="148">a #XbBuilderNode</doc>
            <type name="BuilderNode" c:type="XbBuilderNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_prefix"
              c:identifier="xb_builder_source_set_prefix"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.c"
             line="162">Sets an optional prefix on the root node. This makes any nodes added
using this source reside under a common shared parent node.</doc>
        <source-position filename="../src/xb-builder-source.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="164">a #XbBuilderSource</doc>
            <type name="BuilderSource" c:type="XbBuilderSource*"/>
          </instance-parameter>
          <parameter name="prefix"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source.c"
                 line="165">an XPath prefix, e.g. `installed`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <callback name="BuilderSourceAdapterFunc"
              c:type="XbBuilderSourceAdapterFunc"
              introspectable="0"
              throws="1">
      <source-position filename="../src/xb-builder-source.h" line="58"/>
      <return-value>
        <type name="Gio.InputStream" c:type="GInputStream*"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <type name="BuilderSource" c:type="XbBuilderSource*"/>
        </parameter>
        <parameter name="ctx" transfer-ownership="none">
          <type name="BuilderSourceCtx" c:type="XbBuilderSourceCtx*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="BuilderSourceClass"
            c:type="XbBuilderSourceClass"
            glib:is-gtype-struct-for="BuilderSource">
      <source-position filename="../src/xb-builder-source.h" line="31"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_xb_reserved1" introspectable="0">
        <callback name="_xb_reserved1">
          <source-position filename="../src/xb-builder-source.h" line="24"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved2" introspectable="0">
        <callback name="_xb_reserved2">
          <source-position filename="../src/xb-builder-source.h" line="25"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved3" introspectable="0">
        <callback name="_xb_reserved3">
          <source-position filename="../src/xb-builder-source.h" line="26"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved4" introspectable="0">
        <callback name="_xb_reserved4">
          <source-position filename="../src/xb-builder-source.h" line="27"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved5" introspectable="0">
        <callback name="_xb_reserved5">
          <source-position filename="../src/xb-builder-source.h" line="28"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved6" introspectable="0">
        <callback name="_xb_reserved6">
          <source-position filename="../src/xb-builder-source.h" line="29"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved7" introspectable="0">
        <callback name="_xb_reserved7">
          <source-position filename="../src/xb-builder-source.h" line="30"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <callback name="BuilderSourceConverterFunc"
              c:type="XbBuilderSourceConverterFunc"
              introspectable="0"
              throws="1">
      <source-position filename="../src/xb-builder-source.h" line="53"/>
      <return-value>
        <type name="Gio.InputStream" c:type="GInputStream*"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <type name="BuilderSource" c:type="XbBuilderSource*"/>
        </parameter>
        <parameter name="file" transfer-ownership="none">
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </callback>
    <class name="BuilderSourceCtx"
           c:symbol-prefix="builder_source_ctx"
           c:type="XbBuilderSourceCtx"
           parent="GObject.Object"
           glib:type-name="XbBuilderSourceCtx"
           glib:get-type="xb_builder_source_ctx_get_type"
           glib:type-struct="BuilderSourceCtxClass">
      <source-position filename="../src/xb-builder-source-ctx.h" line="26"/>
      <method name="get_bytes"
              c:identifier="xb_builder_source_ctx_get_bytes"
              version="0.1.7"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source-ctx.c"
             line="43">Returns the data currently being processed.</doc>
        <source-position filename="../src/xb-builder-source-ctx.h" line="30"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-source-ctx.c"
               line="51">a #GInputStream</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source-ctx.c"
                 line="45">a #XbBuilderSourceCtx</doc>
            <type name="BuilderSourceCtx" c:type="XbBuilderSourceCtx*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source-ctx.c"
                 line="46">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_filename"
              c:identifier="xb_builder_source_ctx_get_filename"
              version="0.1.7">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source-ctx.c"
             line="69">Returns the basename of the file currently being processed.</doc>
        <source-position filename="../src/xb-builder-source-ctx.h" line="29"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-source-ctx.c"
               line="75">a filename, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source-ctx.c"
                 line="71">a #XbBuilderSourceCtx</doc>
            <type name="BuilderSourceCtx" c:type="XbBuilderSourceCtx*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stream"
              c:identifier="xb_builder_source_ctx_get_stream"
              version="0.1.7">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source-ctx.c"
             line="25">Returns the input stream currently being processed.</doc>
        <source-position filename="../src/xb-builder-source-ctx.h" line="28"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-builder-source-ctx.c"
               line="31">a #GInputStream</doc>
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-builder-source-ctx.c"
                 line="27">a #XbBuilderSourceCtx</doc>
            <type name="BuilderSourceCtx" c:type="XbBuilderSourceCtx*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="BuilderSourceCtxClass"
            c:type="XbBuilderSourceCtxClass"
            glib:is-gtype-struct-for="BuilderSourceCtx">
      <source-position filename="../src/xb-builder-source-ctx.h" line="26"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_xb_reserved1" introspectable="0">
        <callback name="_xb_reserved1">
          <source-position filename="../src/xb-builder-source-ctx.h"
                           line="19"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved2" introspectable="0">
        <callback name="_xb_reserved2">
          <source-position filename="../src/xb-builder-source-ctx.h"
                           line="20"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved3" introspectable="0">
        <callback name="_xb_reserved3">
          <source-position filename="../src/xb-builder-source-ctx.h"
                           line="21"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved4" introspectable="0">
        <callback name="_xb_reserved4">
          <source-position filename="../src/xb-builder-source-ctx.h"
                           line="22"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved5" introspectable="0">
        <callback name="_xb_reserved5">
          <source-position filename="../src/xb-builder-source-ctx.h"
                           line="23"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved6" introspectable="0">
        <callback name="_xb_reserved6">
          <source-position filename="../src/xb-builder-source-ctx.h"
                           line="24"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved7" introspectable="0">
        <callback name="_xb_reserved7">
          <source-position filename="../src/xb-builder-source-ctx.h"
                           line="25"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <bitfield name="BuilderSourceFlags" c:type="XbBuilderSourceFlags">
      <doc xml:space="preserve"
           filename="../src/xb-builder-source.h"
           line="33">The flags for converting to XML.</doc>
      <source-position filename="../src/xb-builder-source.h" line="47"/>
      <member name="none" value="0" c:identifier="XB_BUILDER_SOURCE_FLAG_NONE">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.h"
             line="35">No extra flags to use</doc>
      </member>
      <member name="literal_text"
              value="1"
              c:identifier="XB_BUILDER_SOURCE_FLAG_LITERAL_TEXT">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.h"
             line="36">Do not attempt to repair XML whitespace</doc>
      </member>
      <member name="watch_file"
              value="2"
              c:identifier="XB_BUILDER_SOURCE_FLAG_WATCH_FILE">
        <doc xml:space="preserve"
             filename="../src/xb-builder-source.h"
             line="37">Watch the source file for changes</doc>
      </member>
    </bitfield>
    <callback name="BuilderSourceNodeFunc"
              c:type="XbBuilderSourceNodeFunc"
              throws="1">
      <source-position filename="../src/xb-builder-source.h" line="49"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <type name="BuilderSource" c:type="XbBuilderSource*"/>
        </parameter>
        <parameter name="bn" transfer-ownership="none">
          <type name="BuilderNode" c:type="XbBuilderNode*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Machine"
           c:symbol-prefix="machine"
           c:type="XbMachine"
           parent="GObject.Object"
           glib:type-name="XbMachine"
           glib:get-type="xb_machine_get_type"
           glib:type-struct="MachineClass">
      <source-position filename="../src/xb-machine.h" line="29"/>
      <constructor name="new" c:identifier="xb_machine_new" version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="1811">Creates a new virtual machine.</doc>
        <source-position filename="../src/xb-machine.h" line="80"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-machine.c"
               line="1816">a new #XbMachine</doc>
          <type name="Machine" c:type="XbMachine*"/>
        </return-value>
      </constructor>
      <method name="add_method"
              c:identifier="xb_machine_add_method"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="113">Adds a new function to the virtual machine. Registered functions can then be
used as methods.

You need to add a custom function using xb_machine_add_method() before using
methods that may reference it, for example xb_machine_add_opcode_fixup().</doc>
        <source-position filename="../src/xb-machine.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="115">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="116">function name, e.g. `contains`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="n_opcodes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="117">minimum number of opcodes required on the stack</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="method_cb"
                     transfer-ownership="none"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="118">function to call</doc>
            <type name="MachineMethodFunc" c:type="XbMachineMethodFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="119">user pointer to pass to @method_cb, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_free"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="120">a function which gets called to free @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_opcode_fixup"
              c:identifier="xb_machine_add_opcode_fixup"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="155">Adds an opcode fixup. Fixups can be used to optimize the stack of opcodes or
to add support for a nonstandard feature, for instance supporting missing
attributes to functions.</doc>
        <source-position filename="../src/xb-machine.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="157">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="opcodes_sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="158">signature, e.g. `INTE,TEXT`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="fixup_cb"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="159">callback</doc>
            <type name="MachineOpcodeFixupFunc"
                  c:type="XbMachineOpcodeFixupFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="160">user pointer to pass to @fixup_cb</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_free"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="161">a function which gets called to free @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_operator"
              c:identifier="xb_machine_add_operator"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="81">Adds a new operator to the virtual machine. Operators can then be used
instead of explicit methods like `eq()`.

You need to add a custom operator using xb_machine_add_operator() before
using xb_machine_parse(). Common operators like `&lt;=` and `=` are built-in
and do not have to be added manually.</doc>
        <source-position filename="../src/xb-machine.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="83">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="84">operator string, e.g. `==`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="85">function name, e.g. `contains`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_text_handler"
              c:identifier="xb_machine_add_text_handler"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="184">Adds a text handler. This allows the virtual machine to support nonstandard
encoding or shorthand mnemonics for standard functions.</doc>
        <source-position filename="../src/xb-machine.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="186">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="handler_cb"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="187">callback</doc>
            <type name="MachineTextHandlerFunc"
                  c:type="XbMachineTextHandlerFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="188">user pointer to pass to @handler_cb</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_free"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="189">a function which gets called to free @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_stack_size"
              c:identifier="xb_machine_get_stack_size"
              version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="1129">Gets the maximum stack size used for the machine.</doc>
        <source-position filename="../src/xb-machine.h" line="149"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-machine.c"
               line="1135">integer</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1131">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="opcode_func_new"
              c:identifier="xb_machine_opcode_func_new"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="222">Creates a new opcode for a registered function. Some standard opcodes are
registered by default, for instance `eq` or `ge`. Other opcodes have to be
added using xb_machine_add_method().</doc>
        <source-position filename="../src/xb-machine.h" line="118"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-machine.c"
               line="231">a new #XbOpcode, or %NULL</doc>
          <type name="Opcode" c:type="XbOpcode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="224">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="func_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="225">function name, e.g. `eq`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="opcode_to_string"
              c:identifier="xb_machine_opcode_to_string"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="822">Returns a string representing the specific opcode.</doc>
        <source-position filename="../src/xb-machine.h" line="120"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-machine.c"
               line="829">text</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="824">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="opcode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="825">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="opcodes_to_string"
              c:identifier="xb_machine_opcodes_to_string"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="839">Returns a string representing a set of opcodes.</doc>
        <source-position filename="../src/xb-machine.h" line="123"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-machine.c"
               line="846">text</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="841">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="opcodes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="842">a #XbStack of opcodes</doc>
            <type name="Stack" c:type="XbStack*"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse"
              c:identifier="xb_machine_parse"
              version="0.1.1"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="750">Parses an XPath predicate. Not all of XPath 1.0 or XPath 1.0 is supported,
and new functions and mnemonics can be added using xb_machine_add_method()
and xb_machine_add_text_handler().</doc>
        <source-position filename="../src/xb-machine.h" line="83"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-machine.c"
               line="761">opcodes, or %NULL on error</doc>
          <type name="Stack" c:type="XbStack*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="752">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="753">predicate to parse, e.g. `contains(text(),'xyx')`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="text_len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="754">length of @text, or -1 if @text is `NUL` terminated</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_full"
              c:identifier="xb_machine_parse_full"
              version="0.1.4"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="637">Parses an XPath predicate. Not all of XPath 1.0 or XPath 1.0 is supported,
and new functions and mnemonics can be added using xb_machine_add_method()
and xb_machine_add_text_handler().</doc>
        <source-position filename="../src/xb-machine.h" line="88"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-machine.c"
               line="649">opcodes, or %NULL on error</doc>
          <type name="Stack" c:type="XbStack*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="639">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="640">predicate to parse, e.g. `contains(text(),'xyx')`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="text_len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="641">length of @text, or -1 if @text is `NUL` terminated</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="642">#XbMachineParseFlags, e.g. %XB_MACHINE_PARSE_FLAG_OPTIMIZE</doc>
            <type name="MachineParseFlags" c:type="XbMachineParseFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="run"
              c:identifier="xb_machine_run"
              version="0.1.1"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="856">Runs a set of opcodes on the virtual machine.

It is safe to call this function from a different thread to the one that
created the #XbMachine.</doc>
        <source-position filename="../src/xb-machine.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-machine.c"
               line="869">a new #XbOpcode, or %NULL</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="858">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="opcodes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="859">a #XbStack of opcodes</doc>
            <type name="Stack" c:type="XbStack*"/>
          </parameter>
          <parameter name="result"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="860">return status after running @opcodes</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
          <parameter name="exec_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="861">per-run user data that is passed to all the XbMachineMethodFunc functions</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_debug_flags"
              c:identifier="xb_machine_set_debug_flags"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="64">Sets the debug level of the virtual machine.</doc>
        <source-position filename="../src/xb-machine.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="66">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="67">#XbMachineDebugFlags, e.g. %XB_MACHINE_DEBUG_FLAG_SHOW_STACK</doc>
            <type name="MachineDebugFlags" c:type="XbMachineDebugFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stack_size"
              c:identifier="xb_machine_set_stack_size"
              version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="1108">Sets the maximum stack size used for the machine.

The stack size will be affective for new jobs started with xb_machine_run()
and xb_machine_parse().</doc>
        <source-position filename="../src/xb-machine.h" line="147"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1110">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="stack_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1111">integer</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="stack_pop"
              c:identifier="xb_machine_stack_pop"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="954">Pops an opcode from the stack.</doc>
        <source-position filename="../src/xb-machine.h" line="127"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-machine.c"
               line="961">a new #XbOpcode, or %NULL</doc>
          <type name="Opcode" c:type="XbOpcode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="956">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="stack" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="957">a #XbStack</doc>
            <type name="Stack" c:type="XbStack*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stack_push"
              c:identifier="xb_machine_stack_push"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="978">Adds an opcode to the stack.</doc>
        <source-position filename="../src/xb-machine.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="980">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="stack" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="981">a #XbStack</doc>
            <type name="Stack" c:type="XbStack*"/>
          </parameter>
          <parameter name="opcode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="982">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stack_push_integer"
              c:identifier="xb_machine_stack_push_integer"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="1087">Adds an integer literal to the stack.</doc>
        <source-position filename="../src/xb-machine.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1089">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="stack" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1090">a #XbStack</doc>
            <type name="Stack" c:type="XbStack*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1091">integer literal</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="stack_push_steal"
              c:identifier="xb_machine_stack_push_steal"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="1001">Adds an stolen opcode to the stack.</doc>
        <source-position filename="../src/xb-machine.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1003">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="stack" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1004">a #XbStack</doc>
            <type name="Stack" c:type="XbStack*"/>
          </parameter>
          <parameter name="opcode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1005">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stack_push_text"
              c:identifier="xb_machine_stack_push_text"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="1024">Adds a text literal to the stack, copying @str.</doc>
        <source-position filename="../src/xb-machine.h" line="135"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1026">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="stack" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1027">a #XbStack</doc>
            <type name="Stack" c:type="XbStack*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1028">text literal</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stack_push_text_static"
              c:identifier="xb_machine_stack_push_text_static"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="1045">Adds static text literal to the stack.</doc>
        <source-position filename="../src/xb-machine.h" line="138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1047">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="stack" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1048">a #XbStack</doc>
            <type name="Stack" c:type="XbStack*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1049">text literal</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stack_push_text_steal"
              c:identifier="xb_machine_stack_push_text_steal"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-machine.c"
             line="1066">Adds a stolen text literal to the stack.</doc>
        <source-position filename="../src/xb-machine.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1068">a #XbMachine</doc>
            <type name="Machine" c:type="XbMachine*"/>
          </instance-parameter>
          <parameter name="stack" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1069">a #XbStack</doc>
            <type name="Stack" c:type="XbStack*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-machine.c"
                 line="1070">text literal</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="MachineClass"
            c:type="XbMachineClass"
            glib:is-gtype-struct-for="Machine">
      <source-position filename="../src/xb-machine.h" line="29"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_xb_reserved1" introspectable="0">
        <callback name="_xb_reserved1">
          <source-position filename="../src/xb-machine.h" line="22"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved2" introspectable="0">
        <callback name="_xb_reserved2">
          <source-position filename="../src/xb-machine.h" line="23"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved3" introspectable="0">
        <callback name="_xb_reserved3">
          <source-position filename="../src/xb-machine.h" line="24"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved4" introspectable="0">
        <callback name="_xb_reserved4">
          <source-position filename="../src/xb-machine.h" line="25"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved5" introspectable="0">
        <callback name="_xb_reserved5">
          <source-position filename="../src/xb-machine.h" line="26"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved6" introspectable="0">
        <callback name="_xb_reserved6">
          <source-position filename="../src/xb-machine.h" line="27"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved7" introspectable="0">
        <callback name="_xb_reserved7">
          <source-position filename="../src/xb-machine.h" line="28"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <bitfield name="MachineDebugFlags" c:type="XbMachineDebugFlags">
      <doc xml:space="preserve"
           filename="../src/xb-machine.h"
           line="31">The flags to control the amount of debugging is generated.</doc>
      <source-position filename="../src/xb-machine.h" line="47"/>
      <member name="none" value="0" c:identifier="XB_MACHINE_DEBUG_FLAG_NONE">
        <doc xml:space="preserve"
             filename="../src/xb-machine.h"
             line="33">No debug flags to use</doc>
      </member>
      <member name="show_stack"
              value="1"
              c:identifier="XB_MACHINE_DEBUG_FLAG_SHOW_STACK">
        <doc xml:space="preserve"
             filename="../src/xb-machine.h"
             line="34">Show the stack addition and removal</doc>
      </member>
      <member name="show_parsing"
              value="2"
              c:identifier="XB_MACHINE_DEBUG_FLAG_SHOW_PARSING">
        <doc xml:space="preserve"
             filename="../src/xb-machine.h"
             line="35">Show the XPath predicate parsing</doc>
      </member>
      <member name="show_optimizer"
              value="4"
              c:identifier="XB_MACHINE_DEBUG_FLAG_SHOW_OPTIMIZER">
        <doc xml:space="preserve"
             filename="../src/xb-machine.h"
             line="36">Show the optimizer operation</doc>
      </member>
    </bitfield>
    <callback name="MachineMethodFunc" c:type="XbMachineMethodFunc" throws="1">
      <source-position filename="../src/xb-machine.h" line="73"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <type name="Machine" c:type="XbMachine*"/>
        </parameter>
        <parameter name="stack" transfer-ownership="none">
          <type name="Stack" c:type="XbStack*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
        <parameter name="exec_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="4">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="MachineOpcodeFixupFunc"
              c:type="XbMachineOpcodeFixupFunc"
              throws="1">
      <source-position filename="../src/xb-machine.h" line="63"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <type name="Machine" c:type="XbMachine*"/>
        </parameter>
        <parameter name="opcodes" transfer-ownership="none">
          <type name="Stack" c:type="XbStack*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="MachineParseFlags" c:type="XbMachineParseFlags">
      <doc xml:space="preserve"
           filename="../src/xb-machine.h"
           line="49">The flags to control the parsing behaviour.</doc>
      <source-position filename="../src/xb-machine.h" line="61"/>
      <member name="none" value="0" c:identifier="XB_MACHINE_PARSE_FLAG_NONE">
        <doc xml:space="preserve"
             filename="../src/xb-machine.h"
             line="51">No flags set</doc>
      </member>
      <member name="optimize"
              value="1"
              c:identifier="XB_MACHINE_PARSE_FLAG_OPTIMIZE">
        <doc xml:space="preserve"
             filename="../src/xb-machine.h"
             line="52">Run an optimization pass on the predicate</doc>
      </member>
    </bitfield>
    <callback name="MachineTextHandlerFunc"
              c:type="XbMachineTextHandlerFunc"
              throws="1">
      <source-position filename="../src/xb-machine.h" line="67"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <type name="Machine" c:type="XbMachine*"/>
        </parameter>
        <parameter name="opcodes" transfer-ownership="none">
          <type name="Stack" c:type="XbStack*"/>
        </parameter>
        <parameter name="text" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="handled" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="4">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Node"
           c:symbol-prefix="node"
           c:type="XbNode"
           parent="GObject.Object"
           glib:type-name="XbNode"
           glib:get-type="xb_node_get_type"
           glib:type-struct="NodeClass">
      <source-position filename="../src/xb-node.h" line="26"/>
      <method name="export"
              c:identifier="xb_node_export"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="354">Exports the node back to XML.</doc>
        <source-position filename="../src/xb-node.h" line="50"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="362">XML data, or %NULL for an error</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="356">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="357">some #XbNodeExportFlags, e.g. #XB_NODE_EXPORT_FLAG_NONE</doc>
            <type name="NodeExportFlags" c:type="XbNodeExportFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attr" c:identifier="xb_node_get_attr" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="283">Gets some attribute text data for a specific node.</doc>
        <source-position filename="../src/xb-node.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="290">a string, or %NULL for unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="285">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="286">an attribute name, e.g. "type"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attr_as_uint"
              c:identifier="xb_node_get_attr_as_uint"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="309">Gets some attribute text data for a specific node.</doc>
        <source-position filename="../src/xb-node.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="316">a guint64, or %G_MAXUINT64 if unfound</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="311">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="312">an attribute name, e.g. `type`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_child"
              c:identifier="xb_node_get_child"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="172">Gets the first child node for the current node.</doc>
        <source-position filename="../src/xb-node.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="178">a #XbNode, or %NULL</doc>
          <type name="Node" c:type="XbNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="174">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_children"
              c:identifier="xb_node_get_children"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="196">Gets all the children for the current node.</doc>
        <source-position filename="../src/xb-node.h" line="63"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="202">an array of children</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Node"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="198">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_data" c:identifier="xb_node_get_data" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="26">Gets any data that has been set on the node using xb_node_set_data().</doc>
        <source-position filename="../src/xb-node.h" line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="33">a #GBytes, or %NULL if not found</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="28">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="29">a string key, e.g. `fwupd::RemoteId`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_depth"
              c:identifier="xb_node_get_depth"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="336">Gets the depth of the node to a root.</doc>
        <source-position filename="../src/xb-node.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="342">a integer, where 0 is the root node iself.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="338">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_element"
              c:identifier="xb_node_get_element"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="265">Gets the element name for a specific node.</doc>
        <source-position filename="../src/xb-node.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="271">a string, or %NULL for unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="267">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_next" c:identifier="xb_node_get_next" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="148">Gets the next sibling node for the current node.</doc>
        <source-position filename="../src/xb-node.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="154">a #XbNode, or %NULL</doc>
          <type name="Node" c:type="XbNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="150">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent"
              c:identifier="xb_node_get_parent"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="124">Gets the parent node for the current node.</doc>
        <source-position filename="../src/xb-node.h" line="60"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="130">a #XbNode, or %NULL</doc>
          <type name="Node" c:type="XbNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="126">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_root" c:identifier="xb_node_get_root" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="100">Gets the root node for the node.</doc>
        <source-position filename="../src/xb-node.h" line="59"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="106">a #XbNode, or %NULL</doc>
          <type name="Node" c:type="XbNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="102">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="xb_node_get_text" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="221">Gets the text data for a specific node.</doc>
        <source-position filename="../src/xb-node.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="227">a string, or %NULL for unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="223">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_as_uint"
              c:identifier="xb_node_get_text_as_uint"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="239">Gets some attribute text data for a specific node.</doc>
        <source-position filename="../src/xb-node.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node.c"
               line="245">a guint64, or %G_MAXUINT64 if unfound</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="241">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="query"
              c:identifier="xb_node_query"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-node-query.c"
             line="17">Searches the silo using an XPath query, returning up to @limit results.

It is safe to call this function from a different thread to the one that
created the #XbSilo.

Please note: Only a subset of XPath is supported.</doc>
        <source-position filename="../src/xb-node-query.h" line="16"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/xb-node-query.c"
               line="31">results, or %NULL if unfound</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Node"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="19">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="20">an XPath, e.g. `id[abe.desktop]`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="limit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="21">maximum number of results to return, or 0 for "all"</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_attr"
              c:identifier="xb_node_query_attr"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-node-query.c"
             line="141">Searches the node using an XPath query, returning up to one result.

It is safe to call this function from a different thread to the one that
created the #XbSilo.

Please note: Only a subset of XPath is supported.</doc>
        <source-position filename="../src/xb-node-query.h" line="32"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node-query.c"
               line="155">a string, or %NULL if unfound</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="143">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="144">An XPath, e.g. `/components/component[@type=desktop]/id[abe.desktop]`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="145">an attribute name, e.g. `type`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_attr_as_uint"
              c:identifier="xb_node_query_attr_as_uint"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-node-query.c"
             line="248">Searches the node using an XPath query, returning up to one result.

It is safe to call this function from a different thread to the one that
created the #XbSilo.

Please note: Only a subset of XPath is supported.</doc>
        <source-position filename="../src/xb-node-query.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node-query.c"
               line="262">a guint64, or %G_MAXUINT64 if unfound</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="250">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="251">An XPath, e.g. `/components/component[@type=desktop]/id[abe.desktop]`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="252">an attribute name, e.g. `type`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_export"
              c:identifier="xb_node_query_export"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-node-query.c"
             line="183">Searches the node using an XPath query, returning an XML string of the
result and any children.

It is safe to call this function from a different thread to the one that
created the #XbSilo.

Please note: Only a subset of XPath is supported.</doc>
        <source-position filename="../src/xb-node-query.h" line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node-query.c"
               line="197">a string, or %NULL if unfound</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="185">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="186">An XPath, e.g. `/components/component[@type=desktop]/id[abe.desktop]`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_first"
              c:identifier="xb_node_query_first"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-node-query.c"
             line="70">Searches the node using an XPath query, returning up to one result.

Please note: Only a tiny subset of XPath 1.0 is supported.</doc>
        <source-position filename="../src/xb-node-query.h" line="23"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-node-query.c"
               line="80">a #XbNode, or %NULL if unfound</doc>
          <type name="Node" c:type="XbNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="72">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="73">An XPath, e.g. `/components/component[@type=desktop]/id[abe.desktop]`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_full"
              c:identifier="xb_node_query_full"
              version="0.1.4"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-node-query.c"
             line="44">Searches the silo using an prepared query.

It is safe to call this function from a different thread to the one that
created the #XbSilo.

Please note: Only a subset of XPath is supported.</doc>
        <source-position filename="../src/xb-node-query.h" line="20"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/xb-node-query.c"
               line="57">results, or %NULL if unfound</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Node"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="46">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="query" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="47">an #XbQuery</doc>
            <type name="Query" c:type="XbQuery*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_text"
              c:identifier="xb_node_query_text"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-node-query.c"
             line="100">Searches the node using an XPath query, returning up to one result.

It is safe to call this function from a different thread to the one that
created the #XbSilo.

Please note: Only a subset of XPath is supported.</doc>
        <source-position filename="../src/xb-node-query.h" line="26"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node-query.c"
               line="113">a string, or %NULL if unfound</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="102">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="103">An XPath, e.g. `/components/component[@type=desktop]/id[abe.desktop]`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_text_as_uint"
              c:identifier="xb_node_query_text_as_uint"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-node-query.c"
             line="216">Searches the node using an XPath query, returning up to one result.

It is safe to call this function from a different thread to the one that
created the #XbSilo.

Please note: Only a subset of XPath is supported.</doc>
        <source-position filename="../src/xb-node-query.h" line="29"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-node-query.c"
               line="229">a guint64, or %G_MAXUINT64 if unfound</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="218">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node-query.c"
                 line="219">An XPath, e.g. `/components/component[@type=desktop]/id[abe.desktop]`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_data" c:identifier="xb_node_set_data" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-node.c"
             line="45">Sets some data on the node which can be retrieved using xb_node_get_data().</doc>
        <source-position filename="../src/xb-node.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="47">a #XbNode</doc>
            <type name="Node" c:type="XbNode*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="48">a string key, e.g. `fwupd::RemoteId`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-node.c"
                 line="49">a #GBytes</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="NodeClass"
            c:type="XbNodeClass"
            glib:is-gtype-struct-for="Node">
      <source-position filename="../src/xb-node.h" line="26"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_xb_reserved1" introspectable="0">
        <callback name="_xb_reserved1">
          <source-position filename="../src/xb-node.h" line="19"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved2" introspectable="0">
        <callback name="_xb_reserved2">
          <source-position filename="../src/xb-node.h" line="20"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved3" introspectable="0">
        <callback name="_xb_reserved3">
          <source-position filename="../src/xb-node.h" line="21"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved4" introspectable="0">
        <callback name="_xb_reserved4">
          <source-position filename="../src/xb-node.h" line="22"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved5" introspectable="0">
        <callback name="_xb_reserved5">
          <source-position filename="../src/xb-node.h" line="23"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved6" introspectable="0">
        <callback name="_xb_reserved6">
          <source-position filename="../src/xb-node.h" line="24"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved7" introspectable="0">
        <callback name="_xb_reserved7">
          <source-position filename="../src/xb-node.h" line="25"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <bitfield name="NodeExportFlags" c:type="XbNodeExportFlags">
      <doc xml:space="preserve"
           filename="../src/xb-node.h"
           line="28">The flags for converting to XML.</doc>
      <source-position filename="../src/xb-node.h" line="48"/>
      <member name="none" value="0" c:identifier="XB_NODE_EXPORT_FLAG_NONE">
        <doc xml:space="preserve"
             filename="../src/xb-node.h"
             line="30">No extra flags to use</doc>
      </member>
      <member name="add_header"
              value="1"
              c:identifier="XB_NODE_EXPORT_FLAG_ADD_HEADER">
        <doc xml:space="preserve"
             filename="../src/xb-node.h"
             line="31">Add an XML header to the data</doc>
      </member>
      <member name="format_multiline"
              value="2"
              c:identifier="XB_NODE_EXPORT_FLAG_FORMAT_MULTILINE">
        <doc xml:space="preserve"
             filename="../src/xb-node.h"
             line="32">Split up children with a newline</doc>
      </member>
      <member name="format_indent"
              value="4"
              c:identifier="XB_NODE_EXPORT_FLAG_FORMAT_INDENT">
        <doc xml:space="preserve"
             filename="../src/xb-node.h"
             line="33">Indent the XML by child depth</doc>
      </member>
      <member name="include_siblings"
              value="8"
              c:identifier="XB_NODE_EXPORT_FLAG_INCLUDE_SIBLINGS">
        <doc xml:space="preserve"
             filename="../src/xb-node.h"
             line="34">Include the siblings when converting</doc>
      </member>
      <member name="only_children"
              value="16"
              c:identifier="XB_NODE_EXPORT_FLAG_ONLY_CHILDREN">
        <doc xml:space="preserve"
             filename="../src/xb-node.h"
             line="35">Only export the children of the node</doc>
      </member>
    </bitfield>
    <record name="Opcode"
            c:type="XbOpcode"
            glib:type-name="XbOpcode"
            glib:get-type="xb_opcode_get_type"
            c:symbol-prefix="opcode">
      <source-position filename="../src/xb-opcode.h" line="63"/>
      <constructor name="func_new"
                   c:identifier="xb_opcode_func_new"
                   version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="347">Creates an opcode for a specific function. Custom functions can be registered
using xb_machine_add_func() and retrieved using xb_machine_opcode_func_new().</doc>
        <source-position filename="../src/xb-opcode.h" line="80"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="354">a #XbOpcode</doc>
          <type name="Opcode" c:type="XbOpcode*"/>
        </return-value>
        <parameters>
          <parameter name="func" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="349">a function index</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="integer_new"
                   c:identifier="xb_opcode_integer_new"
                   version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="426">Creates an opcode with an literal integer.</doc>
        <source-position filename="../src/xb-opcode.h" line="81"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="432">a #XbOpcode</doc>
          <type name="Opcode" c:type="XbOpcode*"/>
        </return-value>
        <parameters>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="428">a integer value</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="text_new"
                   c:identifier="xb_opcode_text_new"
                   version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="254">Creates a new text literal opcode. The @str argument is copied internally
and is not tied to the lifecycle of the #XbOpcode.</doc>
        <source-position filename="../src/xb-opcode.h" line="82"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="261">a #XbOpcode</doc>
          <type name="Opcode" c:type="XbOpcode*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="256">a string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="text_new_static"
                   c:identifier="xb_opcode_text_new_static"
                   version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="304">Creates a new text literal opcode, where @str is either static text or will
outlive the #XbOpcode lifecycle.</doc>
        <source-position filename="../src/xb-opcode.h" line="83"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="311">a #XbOpcode</doc>
          <type name="Opcode" c:type="XbOpcode*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="306">a string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="text_new_steal"
                   c:identifier="xb_opcode_text_new_steal"
                   version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="325">Creates a new text literal opcode, stealing the @str. Once the opcode is
finalized g_free() will be called on @str.</doc>
        <source-position filename="../src/xb-opcode.h" line="84"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="332">a #XbOpcode</doc>
          <type name="Opcode" c:type="XbOpcode*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="327">a string</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="cmp_str" c:identifier="xb_opcode_cmp_str" version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="159">Checks if the opcode can be compared using the string value.</doc>
        <source-position filename="../src/xb-opcode.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="165">#%TRUE if this opcode can be compared as an string</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="161">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="cmp_val" c:identifier="xb_opcode_cmp_val" version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="142">Checks if the opcode can be compared using the integer value.</doc>
        <source-position filename="../src/xb-opcode.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="148">#%TRUE if this opcode can be compared as an integer</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="144">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind"
              c:identifier="xb_opcode_get_kind"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="126">Gets the opcode kind.</doc>
        <source-position filename="../src/xb-opcode.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="132">a #XbOpcodeKind, e.g. %XB_OPCODE_KIND_INTEGER</doc>
          <type name="OpcodeKind" c:type="XbOpcodeKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="128">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_str" c:identifier="xb_opcode_get_str" version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="201">Gets the string value stored on the opcode.</doc>
        <source-position filename="../src/xb-opcode.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="207">a string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="203">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_val" c:identifier="xb_opcode_get_val" version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="184">Gets the integer value stored in the opcode. This may be a function ID,
a index into the string table or a literal integer.</doc>
        <source-position filename="../src/xb-opcode.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="191">value, or 0 for unset.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="186">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="xb_opcode_ref" version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="237">Increments the refcount of the opcode.</doc>
        <source-position filename="../src/xb-opcode.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="243">the original @self #XbOpcode instance</doc>
          <type name="Opcode" c:type="XbOpcode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="239">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="xb_opcode_to_string"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="95">Returns a string representing the specific opcode.</doc>
        <source-position filename="../src/xb-opcode.h" line="69"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="101">text</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="97">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="xb_opcode_unref" version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="217">Decrements the reference count of the opcode, freeing the object when the
refcount drops to zero.</doc>
        <source-position filename="../src/xb-opcode.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="219">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="kind_from_string"
                c:identifier="xb_opcode_kind_from_string"
                version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="53">Converts a string to an opcode kind.</doc>
        <source-position filename="../src/xb-opcode.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="59">a #XbOpcodeKind, e.g. %XB_OPCODE_KIND_TEXT</doc>
          <type name="OpcodeKind" c:type="XbOpcodeKind"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="55">a string, e.g. `FUNC`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="xb_opcode_kind_to_string"
                version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="23">Converts the opcode kind to a string.</doc>
        <source-position filename="../src/xb-opcode.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="29">opcode kind, e.g. `FUNC`</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-opcode.c"
                 line="25">a #XbOpcodeKind, e.g. %XB_OPCODE_KIND_FUNCTION</doc>
            <type name="OpcodeKind" c:type="XbOpcodeKind"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <bitfield name="OpcodeFlags" c:type="XbOpcodeFlags">
      <doc xml:space="preserve"
           filename="../src/xb-opcode.h"
           line="13">The opcode flags. The values have been carefully chosen so that a simple
bitmask can be done to know how to compare for equality.

function─┐ ┌─string
bound──┐ │ │ ┌──integer
       │ │ │ │
 X X X X X X X
       8 4 2 1</doc>
      <source-position filename="../src/xb-opcode.h" line="38"/>
      <member name="unknown" value="0" c:identifier="XB_OPCODE_FLAG_UNKNOWN">
      </member>
      <member name="integer" value="1" c:identifier="XB_OPCODE_FLAG_INTEGER">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.h"
             line="16">Integer value set</doc>
      </member>
      <member name="text" value="2" c:identifier="XB_OPCODE_FLAG_TEXT">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.h"
             line="17">Text value set</doc>
      </member>
      <member name="function" value="4" c:identifier="XB_OPCODE_FLAG_FUNCTION">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.h"
             line="18">An operator</doc>
      </member>
      <member name="bound" value="8" c:identifier="XB_OPCODE_FLAG_BOUND">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.h"
             line="19">A bound value, assigned later</doc>
      </member>
    </bitfield>
    <enumeration name="OpcodeKind" c:type="XbOpcodeKind">
      <source-position filename="../src/xb-opcode.h" line="61"/>
      <member name="unknown" value="0" c:identifier="XB_OPCODE_KIND_UNKNOWN">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.h"
             line="42">Unknown opcode</doc>
      </member>
      <member name="integer" value="1" c:identifier="XB_OPCODE_KIND_INTEGER">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.h"
             line="43">A literal integer value</doc>
      </member>
      <member name="text" value="2" c:identifier="XB_OPCODE_KIND_TEXT">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.h"
             line="44">A literal text value</doc>
      </member>
      <member name="function" value="5" c:identifier="XB_OPCODE_KIND_FUNCTION">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.h"
             line="45">An operator</doc>
      </member>
      <member name="bound_unset"
              value="8"
              c:identifier="XB_OPCODE_KIND_BOUND_UNSET">
      </member>
      <member name="bound_integer"
              value="9"
              c:identifier="XB_OPCODE_KIND_BOUND_INTEGER">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.h"
             line="46">A bound integer value</doc>
      </member>
      <member name="bound_text"
              value="10"
              c:identifier="XB_OPCODE_KIND_BOUND_TEXT">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.h"
             line="47">A bound text value</doc>
      </member>
      <member name="indexed_text"
              value="3"
              c:identifier="XB_OPCODE_KIND_INDEXED_TEXT">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.h"
             line="48">An indexed text value</doc>
      </member>
    </enumeration>
    <class name="Query"
           c:symbol-prefix="query"
           c:type="XbQuery"
           parent="GObject.Object"
           glib:type-name="XbQuery"
           glib:get-type="xb_query_get_type"
           glib:type-struct="QueryClass">
      <source-position filename="../src/xb-query.h" line="28"/>
      <constructor name="new"
                   c:identifier="xb_query_new"
                   version="0.1.4"
                   throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-query.c"
             line="435">Creates a query to be used by @silo. It may be quicker to create a query
manually and re-use it multiple times.</doc>
        <source-position filename="../src/xb-query.h" line="46"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-query.c"
               line="444">a #XbQuery</doc>
          <type name="Query" c:type="XbQuery*"/>
        </return-value>
        <parameters>
          <parameter name="silo" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="437">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="438">The XPath query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full"
                   c:identifier="xb_query_new_full"
                   version="0.1.6"
                   throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-query.c"
             line="389">Creates a query to be used by @silo. It may be quicker to create a query
manually and re-use it multiple times.</doc>
        <source-position filename="../src/xb-query.h" line="49"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-query.c"
               line="399">a #XbQuery</doc>
          <type name="Query" c:type="XbQuery*"/>
        </return-value>
        <parameters>
          <parameter name="silo" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="391">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="392">The XPath query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="393">some #XbQueryFlags, e.g. #XB_QUERY_FLAG_USE_INDEXES</doc>
            <type name="QueryFlags" c:type="XbQueryFlags"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="bind_str"
              c:identifier="xb_query_bind_str"
              version="0.1.4"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-query.c"
             line="125">Assigns a string to a bound value specified using `?`.</doc>
        <source-position filename="../src/xb-query.h" line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-query.c"
               line="134">%TRUE if the @idx existed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="127">a #XbQuery</doc>
            <type name="Query" c:type="XbQuery*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="128">an integer index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="129">string to assign to the bound variable</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="bind_val"
              c:identifier="xb_query_bind_val"
              version="0.1.4"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-query.c"
             line="159">Assigns a string to a bound value specified using `?`.</doc>
        <source-position filename="../src/xb-query.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-query.c"
               line="168">%TRUE if the @idx existed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="161">a #XbQuery</doc>
            <type name="Query" c:type="XbQuery*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="162">an integer index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="163">value to assign to the bound variable</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_limit"
              c:identifier="xb_query_get_limit"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="../src/xb-query.c"
             line="66">Gets the results limit on this query, where 0 is 'all'.</doc>
        <source-position filename="../src/xb-query.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-query.c"
               line="72">integer, default 0</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="68">a #XbQuery</doc>
            <type name="Query" c:type="XbQuery*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xpath"
              c:identifier="xb_query_get_xpath"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="../src/xb-query.c"
             line="48">Gets the XPath string that created the query.</doc>
        <source-position filename="../src/xb-query.h" line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-query.c"
               line="54">string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="50">a #XbQuery</doc>
            <type name="Query" c:type="XbQuery*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_limit"
              c:identifier="xb_query_set_limit"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="../src/xb-query.c"
             line="84">Sets the results limit on this query, where 0 is 'all'.</doc>
        <source-position filename="../src/xb-query.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="86">a #XbQuery</doc>
            <type name="Query" c:type="XbQuery*"/>
          </instance-parameter>
          <parameter name="limit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-query.c"
                 line="87">integer</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="QueryClass"
            c:type="XbQueryClass"
            glib:is-gtype-struct-for="Query">
      <source-position filename="../src/xb-query.h" line="28"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_xb_reserved1" introspectable="0">
        <callback name="_xb_reserved1">
          <source-position filename="../src/xb-query.h" line="21"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved2" introspectable="0">
        <callback name="_xb_reserved2">
          <source-position filename="../src/xb-query.h" line="22"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved3" introspectable="0">
        <callback name="_xb_reserved3">
          <source-position filename="../src/xb-query.h" line="23"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved4" introspectable="0">
        <callback name="_xb_reserved4">
          <source-position filename="../src/xb-query.h" line="24"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved5" introspectable="0">
        <callback name="_xb_reserved5">
          <source-position filename="../src/xb-query.h" line="25"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved6" introspectable="0">
        <callback name="_xb_reserved6">
          <source-position filename="../src/xb-query.h" line="26"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved7" introspectable="0">
        <callback name="_xb_reserved7">
          <source-position filename="../src/xb-query.h" line="27"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <bitfield name="QueryFlags" c:type="XbQueryFlags">
      <doc xml:space="preserve"
           filename="../src/xb-query.h"
           line="30">The flags used fo query.</doc>
      <source-position filename="../src/xb-query.h" line="44"/>
      <member name="none" value="0" c:identifier="XB_QUERY_FLAG_NONE">
        <doc xml:space="preserve"
             filename="../src/xb-query.h"
             line="32">No extra flags to use</doc>
      </member>
      <member name="optimize" value="1" c:identifier="XB_QUERY_FLAG_OPTIMIZE">
        <doc xml:space="preserve"
             filename="../src/xb-query.h"
             line="33">Optimize the query when possible</doc>
      </member>
      <member name="use_indexes"
              value="2"
              c:identifier="XB_QUERY_FLAG_USE_INDEXES">
        <doc xml:space="preserve"
             filename="../src/xb-query.h"
             line="34">Use the indexed parameters</doc>
      </member>
    </bitfield>
    <class name="Silo"
           c:symbol-prefix="silo"
           c:type="XbSilo"
           parent="GObject.Object"
           glib:type-name="XbSilo"
           glib:get-type="xb_silo_get_type"
           glib:type-struct="SiloClass">
      <source-position filename="../src/xb-silo.h" line="28"/>
      <constructor name="new" c:identifier="xb_silo_new" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="1314">Creates a new silo.</doc>
        <source-position filename="../src/xb-silo.h" line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="1319">a new #XbSilo</doc>
          <type name="Silo" c:type="XbSilo*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_xml"
                   c:identifier="xb_silo_new_from_xml"
                   version="0.1.0"
                   throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="896">Creates a new silo from an XML string.</doc>
        <source-position filename="../src/xb-silo.h" line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="903">a new #XbSilo, or %NULL</doc>
          <type name="Silo" c:type="XbSilo*"/>
        </return-value>
        <parameters>
          <parameter name="xml" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="898">XML string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="export"
              c:identifier="xb_silo_export"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-silo-export.c"
             line="148">Exports the silo back to XML.</doc>
        <source-position filename="../src/xb-silo-export.h" line="16"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-silo-export.c"
               line="156">XML data, or %NULL for an error</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-export.c"
                 line="150">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-export.c"
                 line="151">some #XbNodeExportFlags, e.g. #XB_NODE_EXPORT_FLAG_NONE</doc>
            <type name="NodeExportFlags" c:type="XbNodeExportFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="export_file"
              c:identifier="xb_silo_export_file"
              version="0.1.2"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-silo-export.c"
             line="172">Exports the silo back to an XML file.</doc>
        <source-position filename="../src/xb-silo-export.h" line="19"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-silo-export.c"
               line="182">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-export.c"
                 line="174">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-export.c"
                 line="175">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-export.c"
                 line="176">some #XbNodeExportFlags, e.g. #XB_NODE_EXPORT_FLAG_NONE</doc>
            <type name="NodeExportFlags" c:type="XbNodeExportFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-export.c"
                 line="177">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bytes"
              c:identifier="xb_silo_get_bytes"
              version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="514">Gets the backing object that created the blob.

You should never *ever* modify this data.</doc>
        <source-position filename="../src/xb-silo.h" line="67"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="522">A #GBytes, or %NULL if never set</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="516">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_guid" c:identifier="xb_silo_get_guid" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="536">Gets the GUID used to identify this silo.</doc>
        <source-position filename="../src/xb-silo.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="542">a string, otherwise %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="538">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_profile_string"
              c:identifier="xb_silo_get_profile_string"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="672">Returns the profiling data. This will only return profiling text if
xb_silo_set_profile_flags() was used with %XB_SILO_PROFILE_FLAG_APPEND.</doc>
        <source-position filename="../src/xb-silo.h" line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="679">text profiling data</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="674">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_root" c:identifier="xb_silo_get_root" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="266">Gets the root node for the silo. (MIGHT BE MORE).</doc>
        <source-position filename="../src/xb-silo.h" line="85"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="272">A #XbNode, or %NULL for an error</doc>
          <type name="Node" c:type="XbNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="268">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="xb_silo_get_size" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="414">Gets the number of nodes in the silo.</doc>
        <source-position filename="../src/xb-silo.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="420">a integer, or 0 is an empty blob</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="416">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="invalidate"
              c:identifier="xb_silo_invalidate"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="473">Invalidates a silo. Future calls xb_silo_is_valid() will return %FALSE.</doc>
        <source-position filename="../src/xb-silo.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="475">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_valid" c:identifier="xb_silo_is_valid" version="0.1.0">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="444">Checks is the silo is valid. The usual reason the silo is invalidated is
when the backing mmapped file has changed, or one of the imported files have
been modified.</doc>
        <source-position filename="../src/xb-silo.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="452">%TRUE if valid</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="446">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_from_bytes"
              c:identifier="xb_silo_load_from_bytes"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="563">Loads a silo from memory location.</doc>
        <source-position filename="../src/xb-silo.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="572">%TRUE for success, otherwise @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="565">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
          <parameter name="blob" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="566">a #GBytes</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="567">#XbSiloLoadFlags, e.g. %XB_SILO_LOAD_FLAG_NONE</doc>
            <type name="SiloLoadFlags" c:type="XbSiloLoadFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_file"
              c:identifier="xb_silo_load_from_file"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="779">Loads a silo from file.</doc>
        <source-position filename="../src/xb-silo.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="789">%TRUE for success, otherwise @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="781">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="782">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="783">#XbSiloLoadFlags, e.g. %XB_SILO_LOAD_FLAG_NONE</doc>
            <type name="SiloLoadFlags" c:type="XbSiloLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="784">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query"
              c:identifier="xb_silo_query"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-silo-query.c"
             line="367">Searches the silo using an XPath query, returning up to @limit results.

It is safe to call this function from a different thread to the one that
created the #XbSilo.

Please note: Only a subset of XPath is supported.</doc>
        <source-position filename="../src/xb-silo-query.h" line="16"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/xb-silo-query.c"
               line="381">results, or %NULL if unfound</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Node"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-query.c"
                 line="369">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-query.c"
                 line="370">an XPath, e.g. `/components/component[@type=desktop]/id[abe.desktop]`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="limit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-query.c"
                 line="371">maximum number of results to return, or 0 for "all"</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_build_index"
              c:identifier="xb_silo_query_build_index"
              version="0.1.4"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-silo-query.c"
             line="421">Adds the `attr()` or `text()` results of a query to the index.</doc>
        <source-position filename="../src/xb-silo-query.h" line="23"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-silo-query.c"
               line="430">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-query.c"
                 line="423">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-query.c"
                 line="424">An XPath, e.g. `/components/component[@type=desktop]/id[abe.desktop]`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="attr"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-query.c"
                 line="425">Attribute name, e.g. `type`, or NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_first"
              c:identifier="xb_silo_query_first"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-silo-query.c"
             line="394">Searches the silo using an XPath query, returning up to one result.

It is safe to call this function from a different thread to the one that
created the #XbSilo.

Please note: Only a tiny subset of XPath 1.0 is supported.</doc>
        <source-position filename="../src/xb-silo-query.h" line="20"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-silo-query.c"
               line="407">a #XbNode, or %NULL if unfound</doc>
          <type name="Node" c:type="XbNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-query.c"
                 line="396">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
          <parameter name="xpath" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo-query.c"
                 line="397">An XPath, e.g. `/components/component[@type=desktop]/id[abe.desktop]`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_to_file"
              c:identifier="xb_silo_save_to_file"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="837">Saves a silo to a file.</doc>
        <source-position filename="../src/xb-silo.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="846">%TRUE for success, otherwise @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="839">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="840">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="841">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_profile_flags"
              c:identifier="xb_silo_set_profile_flags"
              version="0.1.1">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="691">Enables or disables the collection of profiling data.</doc>
        <source-position filename="../src/xb-silo.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="693">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
          <parameter name="profile_flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="694">some #XbSiloProfileFlags, e.g. %XB_SILO_PROFILE_FLAG_DEBUG</doc>
            <type name="SiloProfileFlags" c:type="XbSiloProfileFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="xb_silo_to_string"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="294">Converts the silo to an internal string representation. This is only
really useful for debugging #XbSilo itself.</doc>
        <source-position filename="../src/xb-silo.h" line="81"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="302">A string, or %NULL for an error</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="296">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="watch_file"
              c:identifier="xb_silo_watch_file"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/xb-silo.c"
             line="729">Adds a file monitor to the silo. If the file or directory for @file changes
then the silo will be invalidated.</doc>
        <source-position filename="../src/xb-silo.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-silo.c"
               line="739">%TRUE for success, otherwise @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="731">a #XbSilo</doc>
            <type name="Silo" c:type="XbSilo*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="732">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/xb-silo.c"
                 line="733">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="guid"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="valid" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="SiloClass"
            c:type="XbSiloClass"
            glib:is-gtype-struct-for="Silo">
      <source-position filename="../src/xb-silo.h" line="28"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_xb_reserved1" introspectable="0">
        <callback name="_xb_reserved1">
          <source-position filename="../src/xb-silo.h" line="21"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved2" introspectable="0">
        <callback name="_xb_reserved2">
          <source-position filename="../src/xb-silo.h" line="22"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved3" introspectable="0">
        <callback name="_xb_reserved3">
          <source-position filename="../src/xb-silo.h" line="23"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved4" introspectable="0">
        <callback name="_xb_reserved4">
          <source-position filename="../src/xb-silo.h" line="24"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved5" introspectable="0">
        <callback name="_xb_reserved5">
          <source-position filename="../src/xb-silo.h" line="25"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved6" introspectable="0">
        <callback name="_xb_reserved6">
          <source-position filename="../src/xb-silo.h" line="26"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_xb_reserved7" introspectable="0">
        <callback name="_xb_reserved7">
          <source-position filename="../src/xb-silo.h" line="27"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <bitfield name="SiloLoadFlags" c:type="XbSiloLoadFlags">
      <doc xml:space="preserve"
           filename="../src/xb-silo.h"
           line="30">The flags for loading a silo.</doc>
      <source-position filename="../src/xb-silo.h" line="44"/>
      <member name="none" value="0" c:identifier="XB_SILO_LOAD_FLAG_NONE">
        <doc xml:space="preserve"
             filename="../src/xb-silo.h"
             line="32">No extra flags to use</doc>
      </member>
      <member name="no_magic"
              value="1"
              c:identifier="XB_SILO_LOAD_FLAG_NO_MAGIC">
        <doc xml:space="preserve"
             filename="../src/xb-silo.h"
             line="33">No not check header signature</doc>
      </member>
      <member name="watch_blob"
              value="2"
              c:identifier="XB_SILO_LOAD_FLAG_WATCH_BLOB">
        <doc xml:space="preserve"
             filename="../src/xb-silo.h"
             line="34">Watch the XMLB file for changes</doc>
      </member>
    </bitfield>
    <bitfield name="SiloProfileFlags" c:type="XbSiloProfileFlags">
      <doc xml:space="preserve"
           filename="../src/xb-silo.h"
           line="46">The flags used when profiling a silo.</doc>
      <source-position filename="../src/xb-silo.h" line="62"/>
      <member name="none" value="0" c:identifier="XB_SILO_PROFILE_FLAG_NONE">
        <doc xml:space="preserve"
             filename="../src/xb-silo.h"
             line="48">No extra flags to use</doc>
      </member>
      <member name="debug" value="1" c:identifier="XB_SILO_PROFILE_FLAG_DEBUG">
        <doc xml:space="preserve"
             filename="../src/xb-silo.h"
             line="49">Output profiling as debug</doc>
      </member>
      <member name="append"
              value="2"
              c:identifier="XB_SILO_PROFILE_FLAG_APPEND">
        <doc xml:space="preserve"
             filename="../src/xb-silo.h"
             line="50">Save profiling in an appended string</doc>
      </member>
      <member name="xpath" value="4" c:identifier="XB_SILO_PROFILE_FLAG_XPATH">
        <doc xml:space="preserve"
             filename="../src/xb-silo.h"
             line="51">Save XPATH queries</doc>
      </member>
    </bitfield>
    <record name="Stack"
            c:type="XbStack"
            glib:type-name="XbStack"
            glib:get-type="xb_stack_get_type"
            c:symbol-prefix="stack">
      <source-position filename="../src/xb-stack.h" line="15"/>
      <method name="pop" c:identifier="xb_stack_pop" version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-stack.c"
             line="60">Pops an opcode off the stack.</doc>
        <source-position filename="../src/xb-stack.h" line="19"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-stack.c"
               line="66">a #XbOpcode</doc>
          <type name="Opcode" c:type="XbOpcode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-stack.c"
                 line="62">a #XbStack</doc>
            <type name="Stack" c:type="XbStack*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="push" c:identifier="xb_stack_push" version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-stack.c"
             line="129">Pushes a new opcode onto the end of the stack</doc>
        <source-position filename="../src/xb-stack.h" line="20"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-stack.c"
               line="136">%TRUE if the opcode was stored on the stack</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-stack.c"
                 line="131">a #XbStack</doc>
            <type name="Stack" c:type="XbStack*"/>
          </instance-parameter>
          <parameter name="opcode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-stack.c"
                 line="132">a #XbOpcode</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="push_steal"
              c:identifier="xb_stack_push_steal"
              version="0.1.3">
        <doc xml:space="preserve"
             filename="../src/xb-stack.c"
             line="149">Pushes a new opcode onto the end of the stack</doc>
        <source-position filename="../src/xb-stack.h" line="22"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-stack.c"
               line="156">%TRUE if the opcode was stored on the stack</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-stack.c"
                 line="151">a #XbStack</doc>
            <type name="Stack" c:type="XbStack*"/>
          </instance-parameter>
          <parameter name="opcode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-stack.c"
                 line="152">a #XbOpcode, which is consumed</doc>
            <type name="Opcode" c:type="XbOpcode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="xb_stack_to_string"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="../src/xb-stack.c"
             line="201">Returns a string representing a stack.</doc>
        <source-position filename="../src/xb-stack.h" line="18"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/xb-stack.c"
               line="207">text</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/xb-stack.c"
                 line="203">a #XbStack</doc>
            <type name="Stack" c:type="XbStack*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <function name="opcode_kind_from_string"
              c:identifier="xb_opcode_kind_from_string"
              moved-to="Opcode.kind_from_string"
              version="0.1.1">
      <doc xml:space="preserve"
           filename="../src/xb-opcode.c"
           line="53">Converts a string to an opcode kind.</doc>
      <source-position filename="../src/xb-opcode.h" line="71"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="59">a #XbOpcodeKind, e.g. %XB_OPCODE_KIND_TEXT</doc>
        <type name="OpcodeKind" c:type="XbOpcodeKind"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="55">a string, e.g. `FUNC`</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="opcode_kind_to_string"
              c:identifier="xb_opcode_kind_to_string"
              moved-to="Opcode.kind_to_string"
              version="0.1.1">
      <doc xml:space="preserve"
           filename="../src/xb-opcode.c"
           line="23">Converts the opcode kind to a string.</doc>
      <source-position filename="../src/xb-opcode.h" line="70"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/xb-opcode.c"
             line="29">opcode kind, e.g. `FUNC`</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="kind" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-opcode.c"
               line="25">a #XbOpcodeKind, e.g. %XB_OPCODE_KIND_FUNCTION</doc>
          <type name="OpcodeKind" c:type="XbOpcodeKind"/>
        </parameter>
      </parameters>
    </function>
    <function name="string_append_union"
              c:identifier="xb_string_append_union"
              version="0.1.2"
              introspectable="0">
      <doc xml:space="preserve"
           filename="../src/xb-string.c"
           line="79">Appends an XPath query into the string, automatically adding the union
operator (`|`) if required.</doc>
      <source-position filename="../src/xb-string.h" line="13"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="xpath" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-string.c"
               line="81">The #GString to operate on</doc>
          <type name="GLib.String" c:type="GString*"/>
        </parameter>
        <parameter name="fmt" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-string.c"
               line="82">The format string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-string.c"
               line="83">varargs for @fmt</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="string_escape"
              c:identifier="xb_string_escape"
              version="0.1.2">
      <doc xml:space="preserve"
           filename="../src/xb-string.c"
           line="181">Escapes XPath control sequences such as newlines, tabs, and forward slashes.</doc>
      <source-position filename="../src/xb-string.h" line="16"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../src/xb-string.c"
             line="187">new string that is safe to use for queries</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/xb-string.c"
               line="183">string, e.g. `app/org.gnome.ghex/x86_64/stable`</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
