Skip to content
Select Git revision
  • master default protected
  • gxml-0.20
  • ricotz/memory-leaks
  • gxml-0.18
  • cherry-pick-e2fcf662
  • gxml-0.16
  • vala/issue548
  • gxml-0.14
  • gxml-0.12
  • gxml-0.10
  • gxml-0.8
  • gxml-0-6
  • gxml-0-4
  • jgs
  • serialization_isolation
  • serialization
  • newattr
  • xpath
  • style
  • gsoc2013
  • 0.20.4
  • 0.20.3
  • 0.20.2
  • 0.20.1
  • 0.18.2
  • 0.20.0
  • 0.19.0
  • 0.18.1
  • 0.18.0
  • 0.16.3
  • 0.16.2
  • 0.16.1
  • 0.16.0
  • 0.15.90
  • 0.15.2
  • 0.14.3
  • 0.14.2
  • 0.14.1
  • 0.14.0
  • 0.13.98
40 results

gxml

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Daniel Mustieles authored
    978d86fa
    History
    GXml provides a GObject API for manipulating XML and a Serializable
    framework from GObject to XML.
    
    GXml provide a DOM level 4 API and CSS Selectors Level 3 for XML with multiple backends.
    
    * A backend wrapping around libxml2 for read/write, the GNode class series
    * A GObject based tree backend, a more closed DOM4 implementation support is present,
      the GomNode class series.
    
    There is a GObject based tree backend, using libxml2 just to read XML files,
    the TNode [Unmaintained], offering just DOM leve 1 API.
    
    Compile:
      Requirements:
       * vala
       * libgee
       * libxml2
    
      Optional Requirements:
        * valadoc: we generate documentation using valadoc.  If it's not
          packaged for your distro (like Fedora) follow the instructions
          at:
    
          https://live.gnome.org/Valadoc
    
      Autotools build system:
    
      $ ./configure
      $ make
      $ make install
    
      Meson build system:
    
      $ meson _build
      $ cd _build
      $ ninja
      $ ninja install
      
      NOTE : GXml can be used as meson subproject for others projects
        * create a file named 'gxml.wrap' (or another name, but keep .wrap extension) with this content:
            [wrap-git]
            directory=gxml
            url=https://gitlab.gnome.org/GNOME/gxml.git
            revision=master
        * put .wrap file inside 'subprojects' folder (folder at the root of project)
        * in your meson.build file, call this subproject like this:
            subproject('gxml').get_variable('any_variable_inside_build_files') (replace 'gxml' with the name of your .wrap file)
            subproject('gxml').get_variable('libgxml_build_dir')
          or, as dependency:
            gxml = dependency('gxml-0.18', fallback : [ 'gxml', 'any_variable_inside_build_files' ]) (replace 'gxml' with the name of your .wrap file)
            gxml = dependency('gxml-0.18', fallback : [ 'gxml', 'libgxml_dep' ]) (replace 'gxml' with the name of your .wrap file)
    
    
      You can use some common ./configure options like --prefix=$SOMEPATH to specify
      where to install it.
    
    Test: You can run the test suite, which is gxml_test, which you may
      have installed into your $PATH.  You should actually run it from
      test/, though, as it requires .xml files that are currently just
      relatively referenced.
    
      $ cd test/
      $ ./gxml_test
    
      Autotools build system:
    
      $ make test
    
      Meson build system:
    
      $ meson test
    
    
    
    Writing documentation
    
      We use Valadoc, http://www.valadoc.org/, which is probably the best
      solution to generate both valadoc documentation and HTML gtk-doc
      documentation.
    
      Installation for DevHelp:
    
      Make sure you have valadoc installed, documentation is automatically
      generated, then install it, your documentation will be available in
      DevHelp.
    
      Some notes:
    
      - Documentation for overriding functions/methods is shown in
        valadoc, but not in gtkdoc.  For gtkdoc, you can only go up to the
        original superclass to see what's been available, even if it's
        been overridden.  (Would we want this to be any different for
        gtkdoc?)
    
      - We don't get an Object Hierarchy in our gtkdoc with valadoc :(
        TODO: write a patch to valadoc :D
    
      - We can't highlight special macro values like NULL/null, TRUE/true,
        or FALSE/false consistently.  For gtkdoc, you can use #NULL, but
        then in the vala code, we see "#NULL" instead of "null", and the
        reverse.
        TODO: write a patch to valadoc :D
    
      - Multi-line descriptions will only have the first line appear in
        valadoc.
    
      - For the gtkdoc or valadoc to be visible in devhelp and you're installing into
        an abnormal prefix, consider placing a symlink to your prefix
        installed gtk-doc in /usr/share/gtk-doc/html/.  For example,
        $ ln -s ~/.local/share/gtk-doc/html/gxml /usr/share/gtk-doc/html
    
      - Valadoc's documentation use JavaScript to navigate over inherited
        methods and properties, but DevHelp have no support for that.
        TODO: write a patch to DevHelp to support Valadoc's JavaScript