[gxml] API Changes on GXml.Node



commit d9c7fd23901f0a36f018af2844b47d08160e0d81
Author: Daniel Espinosa <esodan gmail com>
Date:   Fri Feb 5 12:58:05 2016 -0600

    API Changes on GXml.Node
    
    * Added new GXml.NodeList as Gee.ArrayList<GXml.Node> replacing
      old GXml.NodeList based on xNode, renaming it to GXml.xNode
    * Added new GXml.ElementList as Gee.ArrayList<GXml.Element>
    * New lists types helps on bindings
    * HtmlDocument and GXml.Node search for properties return a list
      of GXml.Element instead of GXml.Node ones
    * Fixed tests for HtmlDocument API
    * Removed warnings

 NEWS                                         |   15 ++
 gxml/Element.vala                            |   11 ++
 gxml/GHtml.vala                              |   14 +-
 gxml/Node.vala                               |   33 ++++--
 gxml/libxml-Attr.vala                        |    2 +-
 gxml/libxml-BackedNode.vala                  |    2 +-
 gxml/libxml-ChildNodeList.vala               |    2 +-
 gxml/libxml-Document.vala                    |   12 +-
 gxml/libxml-Element.vala                     |    4 +-
 gxml/libxml-Entity.vala                      |    4 +-
 gxml/libxml-LinkedList.vala                  |    2 +-
 gxml/libxml-Node.vala                        |    4 +-
 gxml/libxml-NodeList.vala                    |    2 +-
 test/DocumentTest.vala                       |    6 +-
 test/ElementTest.vala                        |    4 +-
 test/SerializableGeeCollections-Tw-Test.vala |   76 ++++++------
 test/SerializableGeeDualKeyMapTest.vala      |    6 +-
 test/SerializableObjectModel-Tw-Test.vala    |    8 +-
 test/SerializableObjectModelTest.vala        |   22 ++--
 test/TwCDATATest.vala                        |    6 +-
 test/TwCommentTest.vala                      |    6 +-
 test/TwDocumentTest.vala                     |  100 +++++++-------
 test/TwElementTest.vala                      |  184 +++++++++++++++-----------
 test/TwProcessingInstructionTest.vala        |    6 +-
 24 files changed, 301 insertions(+), 230 deletions(-)
---
diff --git a/NEWS b/NEWS
index 14597b5..6c88ee9 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,18 @@
+===============
+Version 0.9.0
+===============
+
+API/ABI break
+
+* GXml.NodeList is now a Gee.ArrayList<GXml.Node> specialiced class for better
+  bindings support. The old class has been renamed to GXml.xNodeList.
+* Most interfaces now return owned properties in order to allow implementations
+  to handle its internals without expose/keep in memory some data, returning
+  objects just on request.
+* New libxml2 implementation called GNode and derivatives, expected to replace
+  old implementation. It is a creating objects on demand.
+* New HtmlDocument for HTML handling
+
 
 ===============
 Version 0.8.2
diff --git a/gxml/Element.vala b/gxml/Element.vala
index 8d7f5f7..c688dcb 100644
--- a/gxml/Element.vala
+++ b/gxml/Element.vala
@@ -65,3 +65,14 @@ public interface GXml.Element : Object, GXml.Node
      */
     public abstract string content { owned get; set; }
 }
+
+
+/**
+ * Convenient class for a list of { link GXml.Element} objects based on
+ * { link Gee.ListArray}, with good support for bindings.
+ */
+public class GXml.ElementList : ArrayList<GXml.Element>
+{
+  public new GXml.Element get (int index) { return base.get (index); }
+  public new GXml.Element[] to_array () { return (GXml.Element[]) ((Gee.Collection<GXml.Element>) 
this).to_array (); }
+}
diff --git a/gxml/GHtml.vala b/gxml/GHtml.vala
index 111e975..2ebc560 100644
--- a/gxml/GHtml.vala
+++ b/gxml/GHtml.vala
@@ -53,19 +53,20 @@ namespace GXml {
                 * Search all { link GXml.Element} with a property called "class" and with a
                 * value as a class apply to a node.
                 */
-               public Gee.List<GXml.Node> get_elements_by_class_name (string klass) {
-                       var rl = new Gee.ArrayList<GXml.Node> ();
+               public GXml.ElementList get_elements_by_class_name (string klass) {
+                       var rl = new GXml.ElementList ();
                        var l = root.get_elements_by_property_value ("class", klass);
                        foreach (GXml.Node n in l) {
+                               if (!(n is GXml.Element)) continue;
                                var p = n.attrs.get ("class");
                                if (p == null) continue;
                                if (" " in p.value) {
                                        foreach (string ks in p.value.split (" ")) {
                                                if (ks == klass)
-                                                       rl.add (n);
+                                                       rl.add ((GXml.Element) n);
                                        }
                                } else if (klass == p.value) {
-                                       rl.add (n);
+                                       rl.add ((GXml.Element) n);
                                }
                        }
                        return rl;
@@ -73,12 +74,13 @@ namespace GXml {
                /**
                 * Get first node where 'id' attribute has given value.
                 */
-               public GXml.Node? get_element_by_id (string id) {
+               public GXml.Element? get_element_by_id (string id) {
                        var l = root.get_elements_by_property_value ("id", id);
                        foreach (GXml.Node n in l) {
+                               if (!(n is Element)) continue;
                                var p = n.attrs.get ("id");
                                if (p == null) continue;
-                               if (p.value == id) return n;
+                               if (p.value == id) return (GXml.Element?) n;
                        }
                        return null;
                }
diff --git a/gxml/Node.vala b/gxml/Node.vala
index da0a433..fb95a49 100644
--- a/gxml/Node.vala
+++ b/gxml/Node.vala
@@ -70,7 +70,7 @@ public interface GXml.Node : Object
    * Get first child with given name, or null. 
    */
   public new GXml.Node? get (string key) {
-    foreach (var child in childs)
+    foreach (var child in children)
       if (child.name == key)
         return child;
     return null;
@@ -79,15 +79,15 @@ public interface GXml.Node : Object
    * Search all child { link GXml.Element} with a given property's name and with
    * value contained in text.
    */
-  public virtual Gee.List<GXml.Node>
+  public virtual GXml.ElementList
    get_elements_by_property_value (string property, string value)
   {
-    var list = new Gee.ArrayList<GXml.Node>();
+    var list = new GXml.ElementList ();
     if (!(this is GXml.Element)) return list;
     foreach (var child in children) {
-      Test.message ("At node: "+child.name);
-      list.add_all (child.get_elements_by_property_value (property, value));
       if (child is GXml.Element) {
+        Test.message ("At node: "+child.name);
+        list.add_all (child.get_elements_by_property_value (property, value));
         Test.message ("Node is Element: "+child.name);
         if (child.attrs == null) continue;
         Test.message ("Searching property: "+property+" in node: "+child.name);
@@ -96,8 +96,8 @@ public interface GXml.Node : Object
           Test.message ("No property :"+ property+" found");
           continue;
         }
-        if (value in ((GXml.Element) cls).value)
-            list.add (child);
+        if (value in cls.value)
+            list.add ((GXml.Element) child);
       }
     }
     return list;
@@ -169,9 +169,11 @@ public interface GXml.Node : Object
 #endif
             continue;
           }
-          var e = doc.create_element (c.name); // TODO: Namespace
-          node.childs.add (e);
-          copy (doc, e, c, deep);
+          try {
+            var e = doc.create_element (c.name); // TODO: Namespace
+            node.childs.add (e);
+            copy (doc, e, c, deep);
+          } catch {}
         }
         if (c is Text) {
           if (c.value == null) {
@@ -191,3 +193,14 @@ public interface GXml.Node : Object
   }
 }
 
+/**
+ * Convenient class for a list of { link GXml.Node} objects based on
+ * { link Gee.ListArray}, with good support for bindings.
+ */
+public class GXml.NodeList : Gee.ArrayList<GXml.Node> {
+  public new GXml.Node get (int index) { return base.get (index); }
+  public new GXml.Node[] to_array () {
+    return (GXml.Node[])  ((Gee.Collection<GXml.Node>) this).to_array ();
+  }
+}
+
diff --git a/gxml/libxml-Attr.vala b/gxml/libxml-Attr.vala
index def42bf..ef2b25c 100644
--- a/gxml/libxml-Attr.vala
+++ b/gxml/libxml-Attr.vala
@@ -159,7 +159,7 @@ namespace GXml {
                /**
                 * { inheritDoc}
                 */
-               public override NodeList? child_nodes {
+               public override xNodeList? child_nodes {
                        get {
                                /* TODO: always create a new one?
                                       no, this is broken, if we keep creating new ones
diff --git a/gxml/libxml-BackedNode.vala b/gxml/libxml-BackedNode.vala
index 14edff6..19d2cfe 100644
--- a/gxml/libxml-BackedNode.vala
+++ b/gxml/libxml-BackedNode.vala
@@ -212,7 +212,7 @@ namespace GXml {
                /**
                 * { inheritDoc}
                 */
-               public override NodeList? child_nodes {
+               public override xNodeList? child_nodes {
                        get {
                                return _child_nodes;
                        }
diff --git a/gxml/libxml-ChildNodeList.vala b/gxml/libxml-ChildNodeList.vala
index 305693b..75a7d40 100644
--- a/gxml/libxml-ChildNodeList.vala
+++ b/gxml/libxml-ChildNodeList.vala
@@ -23,7 +23,7 @@
 
 using Gee;
 
-internal abstract class GXml.ChildNodeList : AbstractBidirList<xNode>, NodeList
+internal abstract class GXml.ChildNodeList : AbstractBidirList<xNode>, xNodeList
 {
                /* TODO: must be live
                   if this reflects children of a node, then must always be current
diff --git a/gxml/libxml-Document.vala b/gxml/libxml-Document.vala
index 2d21f8c..73ca11d 100644
--- a/gxml/libxml-Document.vala
+++ b/gxml/libxml-Document.vala
@@ -80,7 +80,7 @@ namespace GXml {
                 * Perhaps I really should implement a NamedNodeMap :|
                 * TODO: do that
                 */
-               internal List<xElement> dirty_elements = new List<xElement> ();
+               internal GLib.List<xElement> dirty_elements = new GLib.List<xElement> ();
 
                /* TODO: for future reference, find out if internals
                   are only accessible by children when they're
@@ -197,12 +197,12 @@ namespace GXml {
                }
 
                /* A list of strong references to all GXml.Nodes that this xDocument has created  */
-               private List<GXml.xNode> nodes_to_free = new List<GXml.xNode> ();
+               private GLib.List<GXml.xNode> nodes_to_free = new GLib.List<GXml.xNode> ();
                /* A list of references to Xml.Nodes that were created, and may require freeing */
-               private List<Xml.Node*> new_nodes = new List<Xml.Node*> ();
+               private GLib.List<Xml.Node*> new_nodes = new GLib.List<Xml.Node*> ();
 
                ~xDocument () {
-                       List<Xml.Node*> to_free = new List<Xml.Node*> ();
+                       GLib.List<Xml.Node*> to_free = new GLib.List<Xml.Node*> ();
 
                        /* we use two separate loops, because freeing
                           a node frees its descendants, and we might
@@ -825,7 +825,7 @@ namespace GXml {
                 * { link GXml.xElement}s; this must be freed with
                 * { link GLib.Object.unref}.
                 */
-               public NodeList get_elements_by_tag_name (string tag_name) {
+               public xNodeList get_elements_by_tag_name (string tag_name) {
                        // TODO: verify that it is still live :D
                        // TODO: does this ensure that the root element is also included?
                        // TODO: determine whether the use needs to free these lists
@@ -871,7 +871,7 @@ namespace GXml {
                /**
                 * { inheritDoc}
                 */
-               public override NodeList? child_nodes {
+               public override xNodeList? child_nodes {
                        get {
                                // TODO: always create a new one?
                                // TODO: xmlDoc and xmlNode are very similar, but perhaps we shouldn't do 
this :D
diff --git a/gxml/libxml-Element.vala b/gxml/libxml-Element.vala
index f48a9b1..3bc4c15 100644
--- a/gxml/libxml-Element.vala
+++ b/gxml/libxml-Element.vala
@@ -284,7 +284,7 @@ namespace GXml {
                /* This keeps a list of all descendants with a given tag name, so you can do
                   elem.get_elements_by_tag_name ("name") and find them quickly; whenever a
                   node is added to the DOM, all its ancestors have it added to their list */
-               private List<TagNameNodeList> tag_name_lists = new List<TagNameNodeList> ();
+               private GLib.List<TagNameNodeList> tag_name_lists = new GLib.List<TagNameNodeList> ();
 
                /* Adds a new descendant to this elements cached list of child descendants,
                   used to isolate the subtree of nodes when filtering by tag name */
@@ -363,7 +363,7 @@ namespace GXml {
                 * @return A NodeList containing the matching descendants
                 * 
                 */
-               public NodeList get_elements_by_tag_name (string tag_name) {
+               public xNodeList get_elements_by_tag_name (string tag_name) {
                        //TODO: make sure we want to include the current element, I think probably not.
                        TagNameNodeList tagged = new TagNameNodeList (tag_name, this, this.owner_document);
                        //List<xNode> tagged = new List<xNode> ();
diff --git a/gxml/libxml-Entity.vala b/gxml/libxml-Entity.vala
index c17eb3f..a351f17 100644
--- a/gxml/libxml-Entity.vala
+++ b/gxml/libxml-Entity.vala
@@ -31,7 +31,7 @@ namespace GXml {
         */
        public class Entity : xNode {
                private Xml.Entity *entity;
-               private NodeList _entity_list;
+               private xNodeList _entity_list;
 
                /**
                 * A public identifier for the entity. %NULL when unspecified.
@@ -99,7 +99,7 @@ namespace GXml {
 
                // node_value == null
 
-               public override NodeList? child_nodes {
+               public override xNodeList? child_nodes {
                        get {
                                // TODO: always create a new one?
                                //       probably not a good idea; want to create one local one
diff --git a/gxml/libxml-LinkedList.vala b/gxml/libxml-LinkedList.vala
index 8902a01..d6e933d 100644
--- a/gxml/libxml-LinkedList.vala
+++ b/gxml/libxml-LinkedList.vala
@@ -24,7 +24,7 @@
  */
 
 
-internal class GXml.LinkedList : Gee.LinkedList<GXml.xNode>, NodeList
+internal class GXml.LinkedList : Gee.LinkedList<GXml.xNode>, xNodeList
 {
 
        construct { Init.init (); }
diff --git a/gxml/libxml-Node.vala b/gxml/libxml-Node.vala
index 7f3f647..406be6e 100644
--- a/gxml/libxml-Node.vala
+++ b/gxml/libxml-Node.vala
@@ -38,7 +38,7 @@ namespace GXml {
         * URL: [[http://www.w3.org/TR/DOM-Level-1/level-one-core.html#ID-1950641247]]
         */
        public abstract class xNode : GLib.Object, GXml.Node {
-               protected NodeList _child_nodes;
+               protected xNodeList _child_nodes;
                protected NamedAttrMap _attributes = null;
                internal NamespaceAttrNodeList _namespace_definitions = null;
                /* Constructors */
@@ -264,7 +264,7 @@ namespace GXml {
                 * Version: DOM Level 1 Core<<BR>>
                 * URL: [[http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-1451460987]]
                 */
-               public virtual NodeList? child_nodes {
+               public virtual xNodeList? child_nodes {
                        get { return null; }
                        internal set {}
                }
diff --git a/gxml/libxml-NodeList.vala b/gxml/libxml-NodeList.vala
index 19d3343..0fb7ef7 100644
--- a/gxml/libxml-NodeList.vala
+++ b/gxml/libxml-NodeList.vala
@@ -42,7 +42,7 @@ namespace GXml {
         * Version: DOM Level 1 Core<<BR>>
         * URL: [[http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-536297177]]
         */
-       public interface NodeList : GLib.Object, Gee.Iterable<xNode>, Gee.Collection<xNode>
+       public interface xNodeList : GLib.Object, Gee.Iterable<xNode>, Gee.Collection<xNode>
        {
                /* NOTE:
                 * children should define constructors like:
diff --git a/test/DocumentTest.vala b/test/DocumentTest.vala
index 9dc42c0..e113b2d 100644
--- a/test/DocumentTest.vala
+++ b/test/DocumentTest.vala
@@ -341,7 +341,7 @@ class DocumentTest : GXmlTest {
                                ginny.append_child (ginny_email);
                                fragment.append_child (ginny);
 
-                               NodeList authors_list = doc.get_elements_by_tag_name ("Authors");
+                               xNodeList authors_list = doc.get_elements_by_tag_name ("Authors");
                                assert (authors_list.length == 1);
                                xElement authors = (xElement)authors_list.item (0);
                                assert (authors.get_elements_by_tag_name ("Author").length == 2);
@@ -436,7 +436,7 @@ class DocumentTest : GXmlTest {
                        });
                Test.add_func ("/gxml/document/get_elements_by_tag_name", () => {
                                xDocument doc = get_doc ();
-                               NodeList elems = doc.get_elements_by_tag_name ("Email");
+                               xNodeList elems = doc.get_elements_by_tag_name ("Email");
 
                                assert (elems.length == 2);
                                assert (((xElement)elems.item (0)).content == "fweasley hogwarts co uk");
@@ -472,7 +472,7 @@ class DocumentTest : GXmlTest {
                assert (root.node_name == "Sentences");
                assert (root.has_child_nodes () == true);
 
-               NodeList authors = test_doc.get_elements_by_tag_name ("Author");
+               xNodeList authors = test_doc.get_elements_by_tag_name ("Author");
                assert (authors.length == 2);
 
                assert (test_doc.to_string () == "<?xml version=\"1.0\"?>
diff --git a/test/ElementTest.vala b/test/ElementTest.vala
index c00d463..e5a9c61 100644
--- a/test/ElementTest.vala
+++ b/test/ElementTest.vala
@@ -247,7 +247,7 @@ class ElementTest : GXmlTest  {
                                xDocument doc;
                                GXml.xNode root;
                                xElement elem;
-                               NodeList emails;
+                               xNodeList emails;
                                xElement email;
                                xText text;
 
@@ -318,7 +318,7 @@ class ElementTest : GXmlTest  {
                                GXml.xNode b3 = bs.child_nodes.item (7);
                                GXml.xNode t1, t2;
 
-                               NodeList ts = ((xElement)bs).get_elements_by_tag_name ("t");
+                               xNodeList ts = ((xElement)bs).get_elements_by_tag_name ("t");
                                assert (ts.length == 5);
 
                                // Test adding direct child
diff --git a/test/SerializableGeeCollections-Tw-Test.vala b/test/SerializableGeeCollections-Tw-Test.vala
index 33da8ad..129a412 100644
--- a/test/SerializableGeeCollections-Tw-Test.vala
+++ b/test/SerializableGeeCollections-Tw-Test.vala
@@ -234,42 +234,42 @@ class SerializableGeeCollectionsTwTest : GXmlTest
         sb.serialize (ndoc);
         assert (ndoc.root != null);
         assert (ndoc.root.name == "base");
-        assert (ndoc.root.childs.size == 2);
-        var cz = ndoc.root.childs.get (0);
+        assert (ndoc.root.children.size == 2);
+        var cz = ndoc.root.children.get (0);
         assert (cz != null);
         assert (cz.name.down () == "chargezone");
         assert (cz.attrs.get ("name").value == "A1-1");
-        assert (cz.childs.size == 2);
+        assert (cz.children.size == 2);
         bool fmactoy = false;
         bool fmemphis = false;
-        foreach (GXml.Node sh in cz.childs) {
+        foreach (GXml.Node sh in cz.children) {
           if (sh.name == "ship" && sh.attrs.get ("manufacturer").value == "MacToy") {
             fmactoy = true;
             assert (sh.attrs.get ("manufacturer").value == "MacToy");
             assert (sh.attrs.get ("model").value == "A1234");
-            assert (sh.childs.size == 2);
+            assert (sh.children.size == 2);
             bool falphac = false;
             bool fgalax = false;
-            foreach (GXml.Node s in sh.childs){
+            foreach (GXml.Node s in sh.children){
               if (s.name == "space" && s.attrs.get ("name").value == "Alpha Centaury") {
                 falphac = true;
                 assert (s.attrs.get ("name").value == "Alpha Centaury");
-                assert (s.childs.size == 2);
+                assert (s.children.size == 2);
                 bool fearth = false;
                 bool fplaton = false;
-                foreach (GXml.Node p1 in s.childs) {
+                foreach (GXml.Node p1 in s.children) {
                   if (p1.name == "planet" && p1.attrs.get ("name").value == "Earth") {
                     fearth = true;
                     assert (p1.name == "planet");
                     assert (p1.attrs.get ("name").value == "Earth");
-                    assert (p1.childs.size == 2);
-                    var c1 = p1.childs.get (0);
+                    assert (p1.children.size == 2);
+                    var c1 = p1.children.get (0);
                     assert (c1 != null);
                     assert (c1.name == "citizen");
                     assert (c1.attrs.get ("ctype").value == "Human");
                     assert (((Element)c1).content == "1M");
-                    assert (c1.childs.size == 1);
-                    var c2 = p1.childs.get (1);
+                    assert (c1.children.size == 1);
+                    var c2 = p1.children.get (1);
                     assert (c2 != null);
                     assert (c2.name == "citizen");
                     assert (c2.attrs.get ("ctype").value == "Ghost");
@@ -279,7 +279,7 @@ class SerializableGeeCollectionsTwTest : GXmlTest
                     fplaton = true;
                     assert (p1.name == "planet");
                     assert (p1.attrs.get ("name").value == "Platon");
-                    assert (p1.childs.size == 0);
+                    assert (p1.children.size == 0);
                   }
                 }
                 assert (fearth);
@@ -288,22 +288,22 @@ class SerializableGeeCollectionsTwTest : GXmlTest
               if (s.name == "space" && s.attrs.get ("name").value == "Galax") {
                 fgalax = true;
                 assert (s.attrs.get ("name").value == "Galax");
-                assert (s.childs.size == 2);
+                assert (s.children.size == 2);
                 bool fsaminon = false;
-                foreach (GXml.Node p in s.childs) {
+                foreach (GXml.Node p in s.children) {
                   if (p.name == "planet" && p.attrs.get ("name").value == "Saminon") {
                     fsaminon = true;
-                    var h = p.childs.get (0);
+                    var h = p.children.get (0);
                     assert (h != null);
                     assert (h.name == "citizen");
                     assert (h.attrs.get ("ctype").value == "Humanes");
-                    assert (h.childs.size == 1);
+                    assert (h.children.size == 1);
                     assert (((Element) h).content == "100M");
-                    var j = p.childs.get (1);
+                    var j = p.children.get (1);
                     assert (j != null);
                     assert (j.name == "citizen");
                     assert (j.attrs.get ("ctype").value == "Jeties");
-                    assert (j.childs.size == 1);
+                    assert (j.children.size == 1);
                     assert (((Element) j).content == "1000M");
                   }
                 }
@@ -317,26 +317,26 @@ class SerializableGeeCollectionsTwTest : GXmlTest
             assert (sh.name == "ship");
             assert (sh.attrs.get ("manufacturer").value == "Memphis");
             assert (sh.attrs.get ("model").value == "AB1");
-            assert (sh.childs.size == 1);
+            assert (sh.children.size == 1);
             bool fbetac = false;
-            foreach (GXml.Node s in sh.childs){
+            foreach (GXml.Node s in sh.children){
               if (s.name == "space" && s.attrs.get ("name").value == "Beta Centaury") {
                 fbetac = true;
                 assert (s.attrs.get ("name").value == "Beta Centaury");
-                assert (s.childs.size == 2);
+                assert (s.children.size == 2);
                 bool ftronex = false;
                 bool fpalax = false;
-                foreach (GXml.Node p in s.childs) {
+                foreach (GXml.Node p in s.children) {
                   if (p.name == "planet" && p.attrs.get ("name").value == "Tronex") {
                     ftronex = true;
                     assert (p.name == "planet");
                     assert (p.attrs.get ("name").value == "Tronex");
-                    assert (p.childs.size == 2);
-                    var cp = p.childs.get (0);
+                    assert (p.children.size == 2);
+                    var cp = p.children.get (0);
                     assert (cp.name == "citizen");
                     assert (cp.attrs.get ("ctype").value == "Human");
                     assert (((Element)cp).content == "10000M");
-                    var cp2 = p.childs.get (1);
+                    var cp2 = p.children.get (1);
                     assert (cp2.name == "citizen");
                     assert (cp2.attrs.get ("ctype").value == "Cat");
                     assert (((Element)cp2).content == "100000M");
@@ -345,7 +345,7 @@ class SerializableGeeCollectionsTwTest : GXmlTest
                     fpalax = true;
                     assert (p.name == "planet");
                     assert (p.attrs.get ("name").value == "Palax");
-                    assert (p.childs.size == 0);
+                    assert (p.children.size == 0);
                   }
                 }
                 assert (ftronex);
@@ -357,33 +357,33 @@ class SerializableGeeCollectionsTwTest : GXmlTest
         }
         assert (fmactoy);
         assert (fmemphis);
-        var st = ndoc.root.childs.get (1);
+        var st = ndoc.root.children.get (1);
         assert (st != null);
         assert (st.name.down () == "storage");
         assert (st.attrs.get ("name").value == "B4-A4");
-        assert (st.childs.size == 1);
+        assert (st.children.size == 1);
         bool fr = false;
-        foreach (GXml.Node r in st.childs) {
+        foreach (GXml.Node r in st.children) {
           if (r.name == "refaction" && r.attrs.get ("manufacturer").value == "MacToy") {
             fr = true;
             assert (r.name == "refaction");
             assert (r.attrs.get ("manufacturer").value == "MacToy");
             assert (r.attrs.get ("model").value == "Fly045");
-            assert (r.childs.size == 2);
+            assert (r.children.size == 2);
             bool frmactoy = false;
             bool frmega = false;
-            foreach (GXml.Node rsh in r.childs) {
+            foreach (GXml.Node rsh in r.children) {
               if (rsh.name == "ship" && rsh.attrs.get ("manufacturer").value == "MacToy") {
                 frmactoy = true;
                 assert (rsh.attrs.get ("manufacturer").value == "MacToy");
                 assert (rsh.attrs.get ("model").value == "A1234");
-                assert (rsh.childs.size == 0);
+                assert (rsh.children.size == 0);
               }
               if (rsh.name == "ship" && rsh.attrs.get ("manufacturer").value == "MegaTrench") {
                 frmega = true;
                 assert (rsh.attrs.get ("manufacturer").value == "MegaTrench");
                 assert (rsh.attrs.get ("model").value == "G045-1");
-                assert (rsh.childs.size == 0);
+                assert (rsh.children.size == 0);
               }
             }
             assert (frmactoy);
@@ -464,7 +464,7 @@ class SerializableGeeCollectionsTwTest : GXmlTest
         s.serialize (doc);
         assert (doc.root.name == "base");
         //stdout.printf (@"$doc\n");
-        foreach (GXml.Node n in doc.root.childs) {
+        foreach (GXml.Node n in doc.root.children) {
           if (n is Element) {
             if (n.name == "ChargeZone") {
               
@@ -473,10 +473,10 @@ class SerializableGeeCollectionsTwTest : GXmlTest
               bool unkfound = false;
               bool tfound = false;
               bool attrfound = false;
-              foreach (GXml.Node sn in n.childs) {
+              foreach (GXml.Node sn in n.children) {
                 if (sn is Element) {
                   if (sn.name == "refaction") {
-                    foreach (GXml.Node rn in sn.childs) {
+                    foreach (GXml.Node rn in sn.children) {
                       if (rn is Element) {
                         //stdout.printf (@"Refaction current node: '$(rn.node_name)'\n");
                         if (rn.name == "ship") {
@@ -488,7 +488,7 @@ class SerializableGeeCollectionsTwTest : GXmlTest
                               attrfound = true;
                               assert (shanattr.value == "UNKNOWN ATTR");
                             }
-                            foreach (GXml.Node shn in rn.childs) {
+                            foreach (GXml.Node shn in rn.children) {
                               //stdout.printf (@"Refaction: Ship MegaTrench: Node: $(shn.node_name)\n");
                               if (shn is Text) {
                                 tfound = true;
diff --git a/test/SerializableGeeDualKeyMapTest.vala b/test/SerializableGeeDualKeyMapTest.vala
index c02e948..a288c90 100644
--- a/test/SerializableGeeDualKeyMapTest.vala
+++ b/test/SerializableGeeDualKeyMapTest.vala
@@ -144,16 +144,16 @@ class SerializableGeeDualKeyMapTest : GXmlTest
         c.set (o4.owner, o4.name, o4);
         var doc = new TwDocument ();
         var root = doc.create_element ("root");
-        doc.childs.add (root);
+        doc.children.add (root);
         c.serialize (root);
-        assert (root.childs.size == 4);
+        assert (root.children.size == 4);
         bool found1 = false;
         bool found2 = false;
         bool found3 = false;
         bool found4 = false;
         int nodes = 0;
         int i = 0;
-        foreach (GXml.Node n in root.childs) {
+        foreach (GXml.Node n in root.children) {
           nodes++;
           if (n is Element && n.name == "spaces") {
             i++;
diff --git a/test/SerializableObjectModel-Tw-Test.vala b/test/SerializableObjectModel-Tw-Test.vala
index 5912d7f..efb65cb 100644
--- a/test/SerializableObjectModel-Tw-Test.vala
+++ b/test/SerializableObjectModel-Tw-Test.vala
@@ -113,7 +113,7 @@ class SerializableObjectModelTwTest : GXmlTest
          bool com = false;
          bool cus = false;
          bool sal = false;
-         foreach (GXml.Node n in element.childs) {
+         foreach (GXml.Node n in element.children) {
            //stdout.printf (@"Found xElement: $(n.node_name)");
            if (n.name == "tag") {
              //stdout.printf (@"Found: $(n.node_name)");
@@ -302,7 +302,7 @@ class SerializableObjectModelTwTest : GXmlTest
         var p = new Package ();
         var doc = new TwDocument ();
         var r = (Element) doc.create_element ("PACKAGE");
-        doc.childs.add (r);
+        doc.children.add (r);
         r.set_attr ("source", "Mexico/North");
         r.set_attr ("destiny", "Brazil");
         r.set_attr ("Unknown", "2/4.04");
@@ -324,11 +324,11 @@ class SerializableObjectModelTwTest : GXmlTest
         var p = new Package ();
         var doc = new TwDocument ();
         var r = (Element) doc.create_element ("PACKAGE");
-        doc.childs.add (r);
+        doc.children.add (r);
         r.set_attr ("source", "Mexico/North");
         r.set_attr ("destiny", "Brazil");
         var c = (Element) doc.create_element ("Unknown");
-        r.childs.add (c);
+        r.children.add (c);
         c.set_attr ("prop","value");
         p.deserialize (doc);
         assert (p.unknown_serializable_nodes != null);
diff --git a/test/SerializableObjectModelTest.vala b/test/SerializableObjectModelTest.vala
index ef61401..1ea29e0 100644
--- a/test/SerializableObjectModelTest.vala
+++ b/test/SerializableObjectModelTest.vala
@@ -133,7 +133,7 @@ public class Package : ObjectModel
           var str = tags.index (i);
           node = (Element) element.document.create_element ("tag");
           ((Element) node).content = str;
-          element.childs.add (node);
+          element.children.add (node);
         }
       }
     });
@@ -922,17 +922,17 @@ class SerializableObjectModelTest : GXmlTest
                          stdout.printf (@"ERROR: UNKNOWN_ATTRIBUTE: SERIALIZATION: Attribute ignore2 bad 
value $(ignore2.value)");
                          assert_not_reached ();
                        }
-                       if (element.childs.size == 0) {
+                       if (element.children.size == 0) {
                          stdout.printf (@"ERROR: UNKNOWN_ATTRIBUTE: SERIALIZATION: No child nodes");
                          assert_not_reached ();
                        }
-                       assert (element.childs.size == 2);
-                       var unkn = element.childs.get (0);
+                       assert (element.children.size == 2);
+                       var unkn = element.children.get (0);
                        assert (unkn != null);
                        assert (unkn.name == "UnknownNode");
                        int countechilds = 0;
                        GXml.Node child = unkn;
-                       foreach (GXml.Node n in unkn.childs) {
+                       foreach (GXml.Node n in unkn.children) {
                          if (n is GXml.Element) countechilds++;
                          if (n.name == "UnknownChild") child = n;
                        }
@@ -945,7 +945,7 @@ class SerializableObjectModelTest : GXmlTest
                        assert (ca != null);
                        assert (ca.value == "test");
                        countechilds = 0;
-                       foreach (GXml.Node cn in cunkn.childs) {
+                       foreach (GXml.Node cn in cunkn.children) {
                          if (cn is GXml.Element) countechilds++;
                          if (cn.name == "UnknownChildTwo") child = cn;
                        }
@@ -958,9 +958,9 @@ class SerializableObjectModelTest : GXmlTest
                        assert (sca.value == "test");
                        bool found = false;
 #if DEBUG
-                       GLib.message (@"Second unknown child. Childs nodes = $(scunkn.childs.size)");
+                       GLib.message (@"Second unknown child. Childs nodes = $(scunkn.children.size)");
 #endif
-                       foreach (GXml.Node tn in scunkn.childs) {
+                       foreach (GXml.Node tn in scunkn.children) {
                          assert (tn is GXml.Text);
 #if DEBUG
                        GLib.message (@"Second unknown Text child = $(tn.value)");
@@ -968,11 +968,11 @@ class SerializableObjectModelTest : GXmlTest
                          if (tn.value == "SECOND FAKE TEXT") found = true;
                        }
                        assert (found);
-                       var tscunkn = cunkn.childs.get (0);
+                       var tscunkn = cunkn.children.get (0);
                        assert (tscunkn is GXml.Text);
                        assert (element.content == "FAKE TEXT");
                        found = false;
-                       foreach (GXml.Node n in element.childs) {
+                       foreach (GXml.Node n in element.children) {
                          if (n.name == "UnknownNode") {
                            found = true;
                            var direction = ((Element) n).attrs.get ("direction");
@@ -1011,7 +1011,7 @@ class SerializableObjectModelTest : GXmlTest
                        var ndoc = new xDocument ();
                        unknown_property.serialize (ndoc);
                        if (ndoc.document_element.child_nodes.size != 2) {
-                         stdout.printf (@"ERROR: Root incorrect child node number: found 
'$(doc.document_element.childs.size)\n");
+                         stdout.printf (@"ERROR: Root incorrect child node number: found 
'$(doc.document_element.children.size)\n");
                          foreach (GXml.xNode rn in ndoc.document_element.child_nodes) {
                            string nv = "__NULL__";
                            if (rn.node_value != null)
diff --git a/test/TwCDATATest.vala b/test/TwCDATATest.vala
index b9d6ebd..5d4f998 100644
--- a/test/TwCDATATest.vala
+++ b/test/TwCDATATest.vala
@@ -28,11 +28,11 @@ class TwCDATATest : GXmlTest {
                        try {
                                var d = new TwDocument ();
                                var r = d.create_element ("root");
-                               d.childs.add (r);
+                               d.children.add (r);
                                var cd = d.create_cdata ("<test/>");
                                assert (cd.value == "<test/>");
-                               d.root.childs.add (cd);
-                               assert (d.root.childs.size == 1);
+                               d.root.children.add (cd);
+                               assert (d.root.children.size == 1);
                                string str = d.to_string ();
                                assert ("<root><![CDATA[<test/>]]></root>" in str);
 #if DEBUG
diff --git a/test/TwCommentTest.vala b/test/TwCommentTest.vala
index 1b7b741..95e1f46 100644
--- a/test/TwCommentTest.vala
+++ b/test/TwCommentTest.vala
@@ -28,12 +28,12 @@ class TwCommentTest : GXmlTest {
                        try {
                                var d = new TwDocument ();
                                var r = d.create_element ("root");
-                               d.childs.add (r);
+                               d.children.add (r);
                                var c = d.create_comment ("This is a comment");
                                assert (c.name == "#comment");
                                assert (c.value == "This is a comment");
-                               d.root.childs.add (c);
-                               assert (d.root.childs.size == 1);
+                               d.root.children.add (c);
+                               assert (d.root.children.size == 1);
                                string str = d.to_string ();
                                assert ("<root><!--This is a comment--></root>" in str);
 #if DEBUG
diff --git a/test/TwDocumentTest.vala b/test/TwDocumentTest.vala
index 600e994..f9722ea 100644
--- a/test/TwDocumentTest.vala
+++ b/test/TwDocumentTest.vala
@@ -35,9 +35,9 @@ class TwDocumentTest : GXmlTest {
                                var d = new TwDocument ();
                                assert (d.name == "#document");
                                assert (d.root == null);
-                               assert (d.childs != null);
+                               assert (d.children != null);
                                assert (d.attrs != null);
-                               assert (d.childs.size == 0);
+                               assert (d.children.size == 0);
                                assert (d.value == null);
                        }
                        catch (GLib.Error e) {
@@ -53,8 +53,8 @@ class TwDocumentTest : GXmlTest {
                                if (f.query_exists ()) f.delete ();
                                var d = new TwDocument.for_path (GXmlTestConfig.TEST_SAVE_DIR+"/tw-test.xml");
                                var e = d.create_element ("root");
-                               d.childs.add (e);
-                               assert (d.childs.size == 1);
+                               d.children.add (e);
+                               assert (d.children.size == 1);
                                assert (d.root != null);
                                assert (d.root.name == "root");
                                assert (d.root.value == "");
@@ -72,8 +72,8 @@ class TwDocumentTest : GXmlTest {
                                        if (f.query_exists ()) f.delete ();
                                        var d = new TwDocument.for_path 
(GXmlTestConfig.TEST_SAVE_DIR+"/tw-test.xml");
                                        var e = d.create_element ("root");
-                                       d.childs.add (e);
-                                       assert (d.childs.size == 1);
+                                       d.children.add (e);
+                                       assert (d.children.size == 1);
                                        assert (d.root != null);
                                        assert (d.root.name == "root");
                                        assert (d.root.value == "");
@@ -100,8 +100,8 @@ class TwDocumentTest : GXmlTest {
                                        if (f.query_exists ()) f.delete ();
                                        var d = new TwDocument.for_path 
(GXmlTestConfig.TEST_SAVE_DIR+"/tw-test.xml");
                                        var e = d.create_element ("root");
-                                       d.childs.add (e);
-                                       assert (d.childs.size == 1);
+                                       d.children.add (e);
+                                       assert (d.children.size == 1);
                                        assert (d.root != null);
                                        assert (d.root.name == "root");
                                        assert (d.root.value == "");
@@ -137,16 +137,16 @@ class TwDocumentTest : GXmlTest {
                                        if (f.query_exists ()) f.delete ();
                                        var d = new TwDocument.for_path 
(GXmlTestConfig.TEST_SAVE_DIR+"/tw-test.xml");
                                        var e = d.create_element ("root");
-                                       d.childs.add (e);
-                                       assert (d.childs.size == 1);
+                                       d.children.add (e);
+                                       assert (d.children.size == 1);
                                        assert (d.root != null);
                                        assert (d.root.name == "root");
                                        assert (d.root.value == "");
                                        var root = (GXml.Element) d.root;
                                        root.content = "GXml TwDocument Test";
-                                       assert (root.childs.size == 1);
+                                       assert (root.children.size == 1);
                                        assert (root.content == "GXml TwDocument Test");
-                                       var t = root.childs.get (0);
+                                       var t = root.children.get (0);
                                        assert (t.value == "GXml TwDocument Test");
                                        assert (t is GXml.Text);
                                        //GLib.message (@"$d");
@@ -172,21 +172,21 @@ class TwDocumentTest : GXmlTest {
                                        if (f.query_exists ()) f.delete ();
                                        var d = new TwDocument.for_path 
(GXmlTestConfig.TEST_SAVE_DIR+"/tw-test.xml");
                                        var e = d.create_element ("root");
-                                       d.childs.add (e);
-                                       assert (d.childs.size == 1);
+                                       d.children.add (e);
+                                       assert (d.children.size == 1);
                                        assert (d.root != null);
                                        assert (d.root.name == "root");
                                        assert (d.root.value == "");
                                        var root = (GXml.Element) d.root;
                                        var e1 = (GXml.Element) d.create_element ("child");
                                        e1.set_attr ("name","Test1");
-                                       assert (e1.childs.size == 0);
-                                       root.childs.add (e1);
+                                       assert (e1.children.size == 0);
+                                       root.children.add (e1);
                                        var e2 = (GXml.Element) d.create_element ("child");
                                        e2.set_attr ("name","Test2");
-                                       assert (e2.childs.size == 0);
-                                       root.childs.add (e2);
-                                       assert (root.childs.size == 2);
+                                       assert (e2.children.size == 0);
+                                       root.children.add (e2);
+                                       assert (root.children.size == 2);
                                        d.save ();
                                        var istream = f.read ();
                                        uint8[] buffer = new uint8[2048];
@@ -220,8 +220,8 @@ class TwDocumentTest : GXmlTest {
 #endif
                                var d = new TwDocument.for_path 
(GXmlTestConfig.TEST_SAVE_DIR+"/tw-large.xml");
                                var e = d.create_element ("bookstore");
-                               d.childs.add (e);
-                               assert (d.childs.size == 1);
+                               d.children.add (e);
+                               assert (d.children.size == 1);
                                assert (d.root != null);
                                assert (d.root.name == "bookstore");
                                assert (d.root.value == "");
@@ -232,33 +232,33 @@ class TwDocumentTest : GXmlTest {
 #endif
                                for (int i = 0; i < 5000; i++){
                                        var b = (GXml.Element) d.create_element ("book");
-                                       r.childs.add (b);
+                                       r.children.add (b);
                                        var aths = (GXml.Element) d.create_element ("Authors");
-                                       b.childs.add (aths);
+                                       b.children.add (aths);
                                        var ath1 = (GXml.Element) d.create_element ("Author");
-                                       aths.childs.add (ath1);
+                                       aths.children.add (ath1);
                                        var name1 = (GXml.Element) d.create_element ("Name");
                                        name1.content = "Fred";
-                                       ath1.childs.add (name1);
+                                       ath1.children.add (name1);
                                        var email1 = (GXml.Element) d.create_element ("Email");
                                        email1.content = "fweasley hogwarts co uk";
-                                       ath1.childs.add (email1);
+                                       ath1.children.add (email1);
                                        var ath2 = (GXml.Element) d.create_element ("Author");
-                                       aths.childs.add (ath2);
+                                       aths.children.add (ath2);
                                        var name2 = (GXml.Element) d.create_element ("Name");
                                        name2.content = "Greoge";
-                                       ath2.childs.add (name2);
+                                       ath2.children.add (name2);
                                        var email2 = (GXml.Element) d.create_element ("Email");
                                        email2.content = "gweasley hogwarts co uk";
-                                       ath2.childs.add (email2);
+                                       ath2.children.add (email2);
                                }
-                               assert (d.root.childs.size == 5000);
-                               foreach (GXml.Node n in d.root.childs) {
-                                       assert (n.childs.size == 1);
-                                       foreach (GXml.Node cn in n.childs) {
-                                               assert (cn.childs.size == 2);
-                                               foreach (GXml.Node ccn in cn.childs) {
-                                                       assert (ccn.childs.size == 2);
+                               assert (d.root.children.size == 5000);
+                               foreach (GXml.Node n in d.root.children) {
+                                       assert (n.children.size == 1);
+                                       foreach (GXml.Node cn in n.children) {
+                                               assert (cn.children.size == 2);
+                                               foreach (GXml.Node ccn in cn.children) {
+                                                       assert (ccn.children.size == 2);
                                                }
                                        }
                                }
@@ -283,8 +283,8 @@ class TwDocumentTest : GXmlTest {
 #endif
                                var d = new TwDocument.for_path 
(GXmlTestConfig.TEST_SAVE_DIR+"/tw-large.xml");
                                var e = d.create_element ("bookstore");
-                               d.childs.add (e);
-                               assert (d.childs.size == 1);
+                               d.children.add (e);
+                               assert (d.children.size == 1);
                                assert (d.root != null);
                                assert (d.root.name == "bookstore");
                                assert (d.root.value == "");
@@ -295,27 +295,27 @@ class TwDocumentTest : GXmlTest {
 #endif
                                for (int i = 0; i < 30000; i++){
                                        var b = (GXml.Element) d.create_element ("book");
-                                       r.childs.add (b);
+                                       r.children.add (b);
                                        var aths = (GXml.Element) d.create_element ("Authors");
-                                       b.childs.add (aths);
+                                       b.children.add (aths);
                                        var ath1 = (GXml.Element) d.create_element ("Author");
-                                       aths.childs.add (ath1);
+                                       aths.children.add (ath1);
                                        var name1 = (GXml.Element) d.create_element ("Name");
                                        name1.content = "Fred";
-                                       ath1.childs.add (name1);
+                                       ath1.children.add (name1);
                                        var email1 = (GXml.Element) d.create_element ("Email");
                                        email1.content = "fweasley hogwarts co uk";
-                                       ath1.childs.add (email1);
+                                       ath1.children.add (email1);
                                        var ath2 = (GXml.Element) d.create_element ("Author");
-                                       aths.childs.add (ath2);
+                                       aths.children.add (ath2);
                                        var name2 = (GXml.Element) d.create_element ("Name");
                                        name2.content = "Greoge";
-                                       ath2.childs.add (name2);
+                                       ath2.children.add (name2);
                                        var email2 = (GXml.Element) d.create_element ("Email");
                                        email2.content = "gweasley hogwarts co uk";
-                                       ath2.childs.add (email2);
+                                       ath2.children.add (email2);
                                }
-                               assert (d.root.childs.size == 30000);
+                               assert (d.root.children.size == 30000);
                                d.save ();
                                GLib.Test.message ("Reading saved file...");
                                var fr = GLib.File.new_for_path 
(GXmlTestConfig.TEST_SAVE_DIR+"/tw-large.xml");
@@ -347,8 +347,8 @@ class TwDocumentTest : GXmlTest {
                                        dt.save_as (f);
                                        var d = new TwDocument ();
                                        var e = d.create_element ("root");
-                                       d.childs.add (e);
-                                       assert (d.childs.size == 1);
+                                       d.children.add (e);
+                                       assert (d.children.size == 1);
                                        assert (d.root != null);
                                        assert (d.root.name == "root");
                                        assert (d.root.value == "");
@@ -374,7 +374,7 @@ class TwDocumentTest : GXmlTest {
                Test.add_func ("/gxml/tw-document/to_string", () => {
                        var doc = new TwDocument ();
                        var r = doc.create_element ("root");
-                       doc.childs.add (r);
+                       doc.children.add (r);
 #if DEBUG
                        GLib.message (@"$(doc)");
 #endif
diff --git a/test/TwElementTest.vala b/test/TwElementTest.vala
index c334bd2..31b85ee 100644
--- a/test/TwElementTest.vala
+++ b/test/TwElementTest.vala
@@ -27,22 +27,23 @@ using GXml;
 class TwElementTest : GXmlTest {
        public static void add_tests () {
                Test.add_func ("/gxml/tw-element/api", () => {
+                       try {
                        var d = new TwDocument ();
                        var e = (Element) d.create_element ("element");
-                       d.childs.add (e);
-                       assert (d.childs.size == 1);
+                       d.children.add (e);
+                       assert (d.children.size == 1);
                        assert (d.root.name == "element");
                        e.set_attr ("attr1","val1");
                        assert (d.root.attrs.get ("attr1") != null);
                        assert (d.root.attrs.get ("attr1").value == "val1");
                        assert (e.attrs.size == 1);
-                       assert (e.childs.size == 0);
+                       assert (e.children.size == 0);
                        var child = (Element) d.create_element ("child");
                        assert (child != null);
-                       e.childs.add (child);
-                       assert (e.childs.size == 1);
+                       e.children.add (child);
+                       assert (e.children.size == 1);
                        child.set_attr ("cattr1", "cval1");
-                       var c = (Element) e.childs.get (0);
+                       var c = (Element) e.children.get (0);
                        assert (c != null);
                        assert (c.name == "child");
                        assert (c.attrs.get ("cattr1") != null);
@@ -50,119 +51,131 @@ class TwElementTest : GXmlTest {
                        assert (c.content == "");
                        c.content = "";
                        assert (c.content == "");
-                       assert (c.childs.size == 1);
+                       assert (c.children.size == 1);
                        c.content = "HELLO CONTENT";
-                       assert (c.childs.size == 1);
+                       assert (c.children.size == 1);
                        assert (c.content == "HELLO CONTENT");
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/content", () => {
+                       try {
                        var d = new TwDocument ();
                        var e = (Element) d.create_element ("element");
-                       d.childs.add (e);
-                       assert (d.childs.size == 1);
+                       d.children.add (e);
+                       assert (d.children.size == 1);
                        assert (d.root.name == "element");
                        e.content = "HELLO";
                        assert (e.content == "HELLO");
-                       assert (d.root.childs.size == 1);
+                       assert (d.root.children.size == 1);
                        e.content = "TIME";
-                       assert (d.root.childs.size == 1);
+                       assert (d.root.children.size == 1);
                        assert (e.content == "TIME");
                        var t = d.create_text (" OTHER");
-                       e.childs.add (t);
-                       assert (e.childs.size == 2);
-                       assert (d.root.childs.size == 2);
+                       e.children.add (t);
+                       assert (e.children.size == 2);
+                       assert (d.root.children.size == 2);
                        assert (e.content == "TIME OTHER");
-                       e.childs.clear ();
-                       assert (e.childs.size == 0);
+                       e.children.clear ();
+                       assert (e.children.size == 0);
                        assert (e.content == "");
                        var c = d.create_element ("child");
-                       e.childs.add (c);
+                       e.children.add (c);
                        e.content = "KNOW";
-                       assert (e.childs.size == 2);
+                       assert (e.children.size == 2);
                        assert (e.content == "KNOW");
                        e.content = "";
-                       assert (e.childs.size == 2);
-                       e.childs.clear ();
+                       assert (e.children.size == 2);
+                       e.children.clear ();
                        assert (e.content == "");
                        var t1 = d.create_text ("TEXT1");
                        var c1 = d.create_element ("child2");
                        var t2 = d.create_text ("TEXT2");
-                       e.childs.add (t1);
-                       e.childs.add (c1);
-                       e.childs.add (t2);
-                       assert (e.childs.size == 3);
+                       e.children.add (t1);
+                       e.children.add (c1);
+                       e.children.add (t2);
+                       assert (e.children.size == 3);
                        assert (e.content == "TEXT1TEXT2");
                        e.content = null;
-                       assert (e.childs.size == 1);
+                       assert (e.children.size == 1);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/namespaces/default", () => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        // Set default namespace
                        d.set_namespace ("http://www.gnome.org/gxml";, null);
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (d.namespaces.size == 1);
                        string str = d.to_string ();
 #if DEBUG
                        GLib.message (@"$d");
 #endif
                        assert ("<root xmlns=\"http://www.gnome.org/gxml\";>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/namespaces/default-prefix", () => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        // Set default namespace
                        d.set_namespace ("http://www.gnome.org/gxml";, "gxml");
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (d.namespaces.size == 1);
                        string str = d.to_string ();
 #if DEBUG
                        GLib.message (@"$d");
 #endif
                        assert ("<root xmlns:gxml=\"http://www.gnome.org/gxml\";>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/namespaces/default-prefix-null", () => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        // Set default namespace
                        d.set_namespace ("http://www.gnome.org/gxml";, null);
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (d.namespaces.size == 1);
                        string str = d.to_string ();
 #if DEBUG
                        GLib.message (@"$d");
 #endif
                        assert ("<root xmlns=\"http://www.gnome.org/gxml\";>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/namespaces/default/enable-prefix_default_ns", () => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        // Set default namespace
                        d.set_namespace ("http://www.gnome.org/gxml";, "gxml");
                        d.prefix_default_ns = true;
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (d.namespaces.size == 1);
                        string str = d.to_string ();
 #if DEBUG
                        GLib.message (@"$d");
 #endif
                        assert ("<gxml:root xmlns:gxml=\"http://www.gnome.org/gxml\";>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/multiple-namespaces", () => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        r.set_namespace ("http://git.gnome.org/browse/gxml";, "gxml");
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (r.namespaces.size == 1);
                        assert (d.namespaces.size == 1);
                        e.set_namespace ("http://developer.gnome.org/";, "dg");
@@ -170,7 +183,7 @@ class TwElementTest : GXmlTest {
                        assert (r.namespaces.size == 1);
                        assert (d.namespaces.size == 2);
                        var e2 = d.create_element ("nons");
-                       e.childs.add (e2);
+                       e.children.add (e2);
                        e2.set_namespace ("http://www.gnome.org/";, null);
                        assert (e.namespaces.size == 1);
                        assert (r.namespaces.size == 1);
@@ -184,33 +197,35 @@ class TwElementTest : GXmlTest {
                        assert ("</root>" in str);
                        assert ("<dg:child xmlns:dg=\"http://developer.gnome.org/\";>" in str);
                        assert ("<nons xmlns=\"http://www.gnome.org/\"/>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/multiple-namespaces/default/basic", () => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        // Default NS
                        d.set_namespace ("http://git.gnome.org/browse/gxml";, null);
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (d.namespaces.size == 1);
                        e.set_namespace ("http://developer.gnome.org/";, "dg");
                        assert (e.namespaces.size == 1);
                        assert (d.namespaces.size == 2);
                        var e2 = d.create_element ("children");
-                       e.childs.add (e2);
+                       e.children.add (e2);
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (d.namespaces.size == 2);
                        var e3 = d.create_element ("nons");
-                       e.childs.add (e3);
+                       e.children.add (e3);
                        e3.set_namespace ("http://www.gnome.org/";, "ns");
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (e3.namespaces.size == 1);
                        assert (d.namespaces.size == 3);
                        var e4 = d.create_element ("childrenons");
-                       e3.childs.add (e4);
+                       e3.children.add (e4);
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (e3.namespaces.size == 1);
@@ -228,16 +243,18 @@ class TwElementTest : GXmlTest {
                        assert ("<childrenons/>" in str);
                        assert ("</ns:nons>" in str);
                        assert ("</dg:child>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/multiple-namespaces/enable-prefix_default_ns", () => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        d.prefix_default_ns = true;
                        d.set_namespace ("http://git.gnome.org/browse/gxml";, "gxml");
                        r.set_namespace ("http://git.gnome.org/browse/gxml";, "gxml");
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (r.namespaces.size == 1);
                        assert (d.namespaces.size == 1);
                        e.set_namespace ("http://developer.gnome.org/";, "dg");
@@ -245,14 +262,14 @@ class TwElementTest : GXmlTest {
                        assert (r.namespaces.size == 1);
                        assert (d.namespaces.size == 2);
                        var e2 = d.create_element ("nons");
-                       e.childs.add (e2);
+                       e.children.add (e2);
                        e2.set_namespace ("http://www.gnome.org/";, "ns");
                        assert (e.namespaces.size == 1);
                        assert (r.namespaces.size == 1);
                        assert (e2.namespaces.size == 1);
                        assert (d.namespaces.size == 3);
                        var e22 = d.create_element ("nonsd");
-                       e2.childs.add (e22);
+                       e2.children.add (e22);
                        string str = d.to_string ();
 #if DEBUG
                        GLib.message (@"$d");
@@ -263,33 +280,35 @@ class TwElementTest : GXmlTest {
                        assert ("<ns:nons xmlns:ns=\"http://www.gnome.org/\";>" in str);
                        assert ("</ns:nons>" in str);
                        assert ("<gxml:nonsd/>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/multiple-namespaces/default/1", () => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        // Default NS
                        d.set_namespace ("http://git.gnome.org/browse/gxml";, null);
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (d.namespaces.size == 1);
                        e.set_namespace ("http://developer.gnome.org/";, "dg");
                        assert (e.namespaces.size == 1);
                        assert (d.namespaces.size == 2);
                        var e2 = d.create_element ("children");
-                       e.childs.add (e2);
+                       e.children.add (e2);
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (d.namespaces.size == 2);
                        var e3 = d.create_element ("nons");
-                       e.childs.add (e3);
+                       e.children.add (e3);
                        e3.set_namespace ("http://www.gnome.org/";, "ns");
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (e3.namespaces.size == 1);
                        assert (d.namespaces.size == 3);
                        var e4 = d.create_element ("childrenons");
-                       e3.childs.add (e4);
+                       e3.children.add (e4);
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (e3.namespaces.size == 1);
@@ -307,42 +326,44 @@ class TwElementTest : GXmlTest {
                        assert ("<childrenons/>" in str);
                        assert ("</ns:nons>" in str);
                        assert ("</dg:child>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/multiple-namespaces/default/enable-ns_top", () => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        // Default NS
                        d.set_namespace ("http://git.gnome.org/browse/gxml";, null);
                        // All namespaces declaration should be on root node
                        d.ns_top = true;
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (d.namespaces.size == 1);
                        e.set_namespace ("http://developer.gnome.org/";, "dg");
                        assert (e.namespaces.size == 1);
                        assert (d.namespaces.size == 2);
                        var e2 = d.create_element ("children");
-                       e.childs.add (e2);
+                       e.children.add (e2);
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (d.namespaces.size == 2);
                        var e3 = d.create_element ("nons");
-                       e.childs.add (e3);
+                       e.children.add (e3);
                        e3.set_namespace ("http://www.gnome.org/";, "ns");
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (e3.namespaces.size == 1);
                        assert (d.namespaces.size == 3);
                        var e4 = d.create_element ("childrenons");
-                       e3.childs.add (e4);
+                       e3.children.add (e4);
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (e3.namespaces.size == 1);
                        assert (e4.namespaces.size == 0);
                        assert (d.namespaces.size == 3);
                        var c2 = d.create_element ("soup");
-                       d.root.childs.add (c2);
+                       d.root.children.add (c2);
                        // apply default namespace, should avoid prefix
                        c2.set_namespace ("http://git.gnome.org/browse/gxml";, null);
                        string str = d.to_string ();
@@ -358,28 +379,30 @@ class TwElementTest : GXmlTest {
                        assert ("<childrenons/>" in str);
                        assert ("</ns:nons>" in str);
                        assert ("</dg:child>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/multiple-namespaces/child-default", () => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        // Default NS
                        d.set_namespace ("http://git.gnome.org/browse/gxml";, null);
                        // All namespaces declaration should be on root node
                        d.ns_top = true;
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (d.namespaces.size == 1);
                        e.set_namespace ("http://developer.gnome.org/";, "dg");
                        assert (e.namespaces.size == 1);
                        assert (d.namespaces.size == 2);
                        var e2 = d.create_element ("children");
-                       e.childs.add (e2);
+                       e.children.add (e2);
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (d.namespaces.size == 2);
                        var e3 = d.create_element ("nons");
-                       e.childs.add (e3);
+                       e.children.add (e3);
                        e3.set_namespace ("http://www.gnome.org/";, null);
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
@@ -387,14 +410,14 @@ class TwElementTest : GXmlTest {
                        assert (d.namespaces.size == 3);
                        // This child should use http://www.gnome.org/ namespace by default, no prefix
                        var e4 = d.create_element ("childrenons");
-                       e3.childs.add (e4);
+                       e3.children.add (e4);
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (e3.namespaces.size == 1);
                        assert (e4.namespaces.size == 0);
                        assert (d.namespaces.size == 3);
                        var c2 = d.create_element ("soup");
-                       d.root.childs.add (c2);
+                       d.root.children.add (c2);
                        // apply default namespace, should avoid prefix
                        c2.set_namespace ("http://git.gnome.org/browse/gxml";, null);
                        string str = d.to_string ();
@@ -410,27 +433,29 @@ class TwElementTest : GXmlTest {
                        assert ("<childrenons/>" in str);
                        assert ("</nons>" in str);
                        assert ("</dg:child>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/multiple-namespaces/child-default/enable-prefix_default_ns", 
() => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        // Default NS
                        d.set_namespace ("http://git.gnome.org/browse/gxml";, null);
                        d.prefix_default_ns = true;
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (d.namespaces.size == 1);
                        e.set_namespace ("http://developer.gnome.org/";, "dg");
                        assert (e.namespaces.size == 1);
                        assert (d.namespaces.size == 2);
                        var e2 = d.create_element ("children");
-                       e.childs.add (e2);
+                       e.children.add (e2);
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
                        assert (d.namespaces.size == 2);
                        var e3 = d.create_element ("nons");
-                       e.childs.add (e3);
+                       e.children.add (e3);
                        e3.set_namespace ("http://www.gnome.org/";, "ns");
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
@@ -438,7 +463,7 @@ class TwElementTest : GXmlTest {
                        assert (d.namespaces.size == 3);
                        // This child should use http://www.gnome.org/ namespace by default, no prefix
                        var e4 = d.create_element ("childrenons");
-                       e3.childs.add (e4);
+                       e3.children.add (e4);
                        e4.set_namespace ("http://www.gnome.org/";, "ns");
                        assert (e.namespaces.size == 1);
                        assert (e2.namespaces.size == 0);
@@ -446,7 +471,7 @@ class TwElementTest : GXmlTest {
                        assert (e4.namespaces.size == 1);
                        assert (d.namespaces.size == 3);
                        var c2 = d.create_element ("soup");
-                       d.root.childs.add (c2);
+                       d.root.children.add (c2);
                        // apply default namespace, should avoid prefix
                        c2.set_namespace ("http://git.gnome.org/browse/gxml";, null);
                        string str = d.to_string ();
@@ -462,26 +487,28 @@ class TwElementTest : GXmlTest {
                        assert ("<ns:childrenons/>" in str);
                        assert ("</ns:nons>" in str);
                        assert ("</dg:child>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/multiple-namespaces/default/enable-prefix_default_ns", () => 
{
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        // Default NS
                        d.set_namespace ("http://git.gnome.org/browse/gxml";, "gxml");
                        // All namespaces declaration should be on root node
                        d.prefix_default_ns = true;
                        var e = d.create_element ("child");
-                       r.childs.add (e);
+                       r.children.add (e);
                        assert (d.namespaces.size == 1);
                        var e2 = d.create_element ("children");
-                       e.childs.add (e2);
+                       e.children.add (e2);
                        var e3 = d.create_element ("nons");
-                       e.childs.add (e3);
+                       e.children.add (e3);
                        var e4 = d.create_element ("childrenons");
-                       e3.childs.add (e4);
+                       e3.children.add (e4);
                        var c2 = d.create_element ("soup");
-                       d.root.childs.add (c2);
+                       d.root.children.add (c2);
                        c2.set_namespace ("http://git.gnome.org/browse/gxml";, "gxml");
                        string str = d.to_string ();
 #if DEBUG
@@ -496,15 +523,17 @@ class TwElementTest : GXmlTest {
                        assert ("<gxml:childrenons/>" in str);
                        assert ("</gxml:nons>" in str);
                        assert ("</gxml:child>" in str);
+                       } catch { assert_not_reached (); }
                });
                Test.add_func ("/gxml/tw-element/attr-namespace", () => {
+                       try {
                        var d = new TwDocument ();
                        var r = d.create_element ("root");
-                       d.childs.add (r);
+                       d.children.add (r);
                        // Default NS
                        d.set_namespace ("http://git.gnome.org/browse/gxml";, "gxml");
                        var c = (Element) d.create_element ("child");
-                       r.childs.add (c);
+                       r.children.add (c);
                        c.set_attr ("at","val");
                        var a = c.get_attr ("at");
                        assert (a != null);
@@ -521,6 +550,7 @@ class TwElementTest : GXmlTest {
                        assert ("<root xmlns:gxml=\"http://git.gnome.org/browse/gxml\";>" in str);
                        assert ("<child gxml:at=\"val\"/>" in str);
                        assert ("</root>" in str);
+                       } catch { assert_not_reached (); }
                });
        }
 }
diff --git a/test/TwProcessingInstructionTest.vala b/test/TwProcessingInstructionTest.vala
index a051fbb..37704e8 100644
--- a/test/TwProcessingInstructionTest.vala
+++ b/test/TwProcessingInstructionTest.vala
@@ -28,12 +28,12 @@ class TwProcessingInstructionTest : GXmlTest {
                        try {
                                var d = new TwDocument ();
                                var r = d.create_element ("root");
-                               d.childs.add (r);
+                               d.children.add (r);
                                var pi = d.create_pi ("xslt","transform");
                                assert (pi.name == "#processinginstruction");
                                assert (pi.value == "transform");
-                               d.root.childs.add (pi);
-                               assert (d.root.childs.size == 1);
+                               d.root.children.add (pi);
+                               assert (d.root.children.size == 1);
                                string str = d.to_string ();
                                assert ("<root><?xslt transform?></root>" in str);
 #if DEBUG


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