/* libxml-NamespaceAttrNodeList.c generated by valac 0.28.1, the Vala compiler
 * generated from libxml-NamespaceAttrNodeList.vala, do not modify */

/* -*- Mode: vala; indent-tabs-mode: nil; c-basic-offset: 0; tab-width: 2 -*- */
/* ObjectModel.vala
 *
 * Copyright (C) 2015  Daniel Espinosa <esodan@gmail.com>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
 *
 * Authors:
 *      Daniel Espinosa <esodan@gmail.com>
 */

#include <glib.h>
#include <glib-object.h>
#include <gee.h>
#include <libxml/tree.h>
#include "gxml/xlibxml.h"
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include <libxml/parser.h>


#define GXML_TYPE_ABSTRACT_NAMESPACE_ATTR_NODE_LIST (gxml_abstract_namespace_attr_node_list_get_type ())
#define GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_ABSTRACT_NAMESPACE_ATTR_NODE_LIST, GXmlAbstractNamespaceAttrNodeList))
#define GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXML_TYPE_ABSTRACT_NAMESPACE_ATTR_NODE_LIST, GXmlAbstractNamespaceAttrNodeListClass))
#define GXML_IS_ABSTRACT_NAMESPACE_ATTR_NODE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_ABSTRACT_NAMESPACE_ATTR_NODE_LIST))
#define GXML_IS_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXML_TYPE_ABSTRACT_NAMESPACE_ATTR_NODE_LIST))
#define GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GXML_TYPE_ABSTRACT_NAMESPACE_ATTR_NODE_LIST, GXmlAbstractNamespaceAttrNodeListClass))

typedef struct _GXmlAbstractNamespaceAttrNodeList GXmlAbstractNamespaceAttrNodeList;
typedef struct _GXmlAbstractNamespaceAttrNodeListClass GXmlAbstractNamespaceAttrNodeListClass;
typedef struct _GXmlAbstractNamespaceAttrNodeListPrivate GXmlAbstractNamespaceAttrNodeListPrivate;

#define GXML_TYPE_XNODE (gxml_xnode_get_type ())
#define GXML_XNODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_XNODE, GXmlxNode))
#define GXML_XNODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXML_TYPE_XNODE, GXmlxNodeClass))
#define GXML_IS_XNODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_XNODE))
#define GXML_IS_XNODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXML_TYPE_XNODE))
#define GXML_XNODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GXML_TYPE_XNODE, GXmlxNodeClass))

typedef struct _GXmlxNode GXmlxNode;
typedef struct _GXmlxNodeClass GXmlxNodeClass;

#define GXML_TYPE_BACKED_NODE (gxml_backed_node_get_type ())
#define GXML_BACKED_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_BACKED_NODE, GXmlBackedNode))
#define GXML_BACKED_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXML_TYPE_BACKED_NODE, GXmlBackedNodeClass))
#define GXML_IS_BACKED_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_BACKED_NODE))
#define GXML_IS_BACKED_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXML_TYPE_BACKED_NODE))
#define GXML_BACKED_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GXML_TYPE_BACKED_NODE, GXmlBackedNodeClass))

typedef struct _GXmlBackedNode GXmlBackedNode;
typedef struct _GXmlBackedNodeClass GXmlBackedNodeClass;

#define GXML_TYPE_NODE (gxml_node_get_type ())
#define GXML_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_NODE, GXmlNode))
#define GXML_IS_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_NODE))
#define GXML_NODE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GXML_TYPE_NODE, GXmlNodeIface))

typedef struct _GXmlNode GXmlNode;
typedef struct _GXmlNodeIface GXmlNodeIface;

#define GXML_TYPE_ELEMENT_LIST (gxml_element_list_get_type ())
#define GXML_ELEMENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_ELEMENT_LIST, GXmlElementList))
#define GXML_ELEMENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXML_TYPE_ELEMENT_LIST, GXmlElementListClass))
#define GXML_IS_ELEMENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_ELEMENT_LIST))
#define GXML_IS_ELEMENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXML_TYPE_ELEMENT_LIST))
#define GXML_ELEMENT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GXML_TYPE_ELEMENT_LIST, GXmlElementListClass))

typedef struct _GXmlElementList GXmlElementList;
typedef struct _GXmlElementListClass GXmlElementListClass;

#define GXML_TYPE_NAMESPACE (gxml_namespace_get_type ())
#define GXML_NAMESPACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_NAMESPACE, GXmlNamespace))
#define GXML_IS_NAMESPACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_NAMESPACE))
#define GXML_NAMESPACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GXML_TYPE_NAMESPACE, GXmlNamespaceIface))

typedef struct _GXmlNamespace GXmlNamespace;
typedef struct _GXmlNamespaceIface GXmlNamespaceIface;

#define GXML_TYPE_NODE_TYPE (gxml_node_type_get_type ())

#define GXML_TYPE_DOCUMENT (gxml_document_get_type ())
#define GXML_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_DOCUMENT, GXmlDocument))
#define GXML_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_DOCUMENT))
#define GXML_DOCUMENT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GXML_TYPE_DOCUMENT, GXmlDocumentIface))

typedef struct _GXmlDocument GXmlDocument;
typedef struct _GXmlDocumentIface GXmlDocumentIface;
typedef struct _GXmlxNodePrivate GXmlxNodePrivate;

#define GXML_TYPE_NAMESPACE_ATTR (gxml_namespace_attr_get_type ())
#define GXML_NAMESPACE_ATTR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_NAMESPACE_ATTR, GXmlNamespaceAttr))
#define GXML_NAMESPACE_ATTR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXML_TYPE_NAMESPACE_ATTR, GXmlNamespaceAttrClass))
#define GXML_IS_NAMESPACE_ATTR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_NAMESPACE_ATTR))
#define GXML_IS_NAMESPACE_ATTR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXML_TYPE_NAMESPACE_ATTR))
#define GXML_NAMESPACE_ATTR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GXML_TYPE_NAMESPACE_ATTR, GXmlNamespaceAttrClass))

typedef struct _GXmlNamespaceAttr GXmlNamespaceAttr;
typedef struct _GXmlNamespaceAttrClass GXmlNamespaceAttrClass;

#define GXML_TYPE_XNODE_LIST (gxml_xnode_list_get_type ())
#define GXML_XNODE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_XNODE_LIST, GXmlxNodeList))
#define GXML_IS_XNODE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_XNODE_LIST))
#define GXML_XNODE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GXML_TYPE_XNODE_LIST, GXmlxNodeListIface))

typedef struct _GXmlxNodeList GXmlxNodeList;
typedef struct _GXmlxNodeListIface GXmlxNodeListIface;

#define GXML_TYPE_ABSTRACT_NAMED_ATTR_MAP (gxml_abstract_named_attr_map_get_type ())
#define GXML_ABSTRACT_NAMED_ATTR_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_ABSTRACT_NAMED_ATTR_MAP, GXmlAbstractNamedAttrMap))
#define GXML_ABSTRACT_NAMED_ATTR_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXML_TYPE_ABSTRACT_NAMED_ATTR_MAP, GXmlAbstractNamedAttrMapClass))
#define GXML_IS_ABSTRACT_NAMED_ATTR_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_ABSTRACT_NAMED_ATTR_MAP))
#define GXML_IS_ABSTRACT_NAMED_ATTR_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXML_TYPE_ABSTRACT_NAMED_ATTR_MAP))
#define GXML_ABSTRACT_NAMED_ATTR_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GXML_TYPE_ABSTRACT_NAMED_ATTR_MAP, GXmlAbstractNamedAttrMapClass))

typedef struct _GXmlAbstractNamedAttrMap GXmlAbstractNamedAttrMap;
typedef struct _GXmlAbstractNamedAttrMapClass GXmlAbstractNamedAttrMapClass;

#define GXML_TYPE_NAMED_ATTR_MAP (gxml_named_attr_map_get_type ())
#define GXML_NAMED_ATTR_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_NAMED_ATTR_MAP, GXmlNamedAttrMap))
#define GXML_NAMED_ATTR_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXML_TYPE_NAMED_ATTR_MAP, GXmlNamedAttrMapClass))
#define GXML_IS_NAMED_ATTR_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_NAMED_ATTR_MAP))
#define GXML_IS_NAMED_ATTR_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXML_TYPE_NAMED_ATTR_MAP))
#define GXML_NAMED_ATTR_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GXML_TYPE_NAMED_ATTR_MAP, GXmlNamedAttrMapClass))

typedef struct _GXmlNamedAttrMap GXmlNamedAttrMap;
typedef struct _GXmlNamedAttrMapClass GXmlNamedAttrMapClass;

#define GXML_TYPE_NAMESPACE_ATTR_NODE_LIST (gxml_namespace_attr_node_list_get_type ())
#define GXML_NAMESPACE_ATTR_NODE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_NAMESPACE_ATTR_NODE_LIST, GXmlNamespaceAttrNodeList))
#define GXML_NAMESPACE_ATTR_NODE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXML_TYPE_NAMESPACE_ATTR_NODE_LIST, GXmlNamespaceAttrNodeListClass))
#define GXML_IS_NAMESPACE_ATTR_NODE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_NAMESPACE_ATTR_NODE_LIST))
#define GXML_IS_NAMESPACE_ATTR_NODE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXML_TYPE_NAMESPACE_ATTR_NODE_LIST))
#define GXML_NAMESPACE_ATTR_NODE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GXML_TYPE_NAMESPACE_ATTR_NODE_LIST, GXmlNamespaceAttrNodeListClass))

typedef struct _GXmlNamespaceAttrNodeList GXmlNamespaceAttrNodeList;
typedef struct _GXmlNamespaceAttrNodeListClass GXmlNamespaceAttrNodeListClass;
typedef struct _GXmlBackedNodePrivate GXmlBackedNodePrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))

#define GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR (gxml_abstract_namespace_attr_node_list_iterator_get_type ())
#define GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR, GXmlAbstractNamespaceAttrNodeListIterator))
#define GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR, GXmlAbstractNamespaceAttrNodeListIteratorClass))
#define GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR))
#define GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_IS_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR))
#define GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR, GXmlAbstractNamespaceAttrNodeListIteratorClass))

typedef struct _GXmlAbstractNamespaceAttrNodeListIterator GXmlAbstractNamespaceAttrNodeListIterator;
typedef struct _GXmlAbstractNamespaceAttrNodeListIteratorClass GXmlAbstractNamespaceAttrNodeListIteratorClass;
typedef struct _GXmlAbstractNamespaceAttrNodeListIteratorPrivate GXmlAbstractNamespaceAttrNodeListIteratorPrivate;

#define GXML_TYPE_XDOCUMENT (gxml_xdocument_get_type ())
#define GXML_XDOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_TYPE_XDOCUMENT, GXmlxDocument))
#define GXML_XDOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXML_TYPE_XDOCUMENT, GXmlxDocumentClass))
#define GXML_IS_XDOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_TYPE_XDOCUMENT))
#define GXML_IS_XDOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXML_TYPE_XDOCUMENT))
#define GXML_XDOCUMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GXML_TYPE_XDOCUMENT, GXmlxDocumentClass))

typedef struct _GXmlxDocument GXmlxDocument;
typedef struct _GXmlxDocumentClass GXmlxDocumentClass;
typedef struct _GXmlNamespaceAttrNodeListPrivate GXmlNamespaceAttrNodeListPrivate;

#define GXML_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR (gxml_namespace_attr_node_list_iterator_get_type ())
#define GXML_NAMESPACE_ATTR_NODE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GXML_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR, GXmlNamespaceAttrNodeListIterator))
#define GXML_NAMESPACE_ATTR_NODE_LIST_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXML_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR, GXmlNamespaceAttrNodeListIteratorClass))
#define GXML_NAMESPACE_ATTR_NODE_LIST_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GXML_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR))
#define GXML_NAMESPACE_ATTR_NODE_LIST_IS_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXML_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR))
#define GXML_NAMESPACE_ATTR_NODE_LIST_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GXML_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR, GXmlNamespaceAttrNodeListIteratorClass))

typedef struct _GXmlNamespaceAttrNodeListIterator GXmlNamespaceAttrNodeListIterator;
typedef struct _GXmlNamespaceAttrNodeListIteratorClass GXmlNamespaceAttrNodeListIteratorClass;
typedef struct _GXmlNamespaceAttrNodeListIteratorPrivate GXmlNamespaceAttrNodeListIteratorPrivate;

struct _GXmlAbstractNamespaceAttrNodeList {
	GObject parent_instance;
	GXmlAbstractNamespaceAttrNodeListPrivate * priv;
	GXmlBackedNode* node;
	xmlNs** name_spaces;
	gint name_spaces_length1;
	gint _name_spaces_size_;
};

struct _GXmlAbstractNamespaceAttrNodeListClass {
	GObjectClass parent_class;
};

struct _GXmlNamespaceIface {
	GTypeInterface parent_iface;
	gchar* (*get_uri) (GXmlNamespace* self);
	gchar* (*get_prefix) (GXmlNamespace* self);
};

typedef enum  {
	GXML_NODE_TYPE_X_UNKNOWN = 0,
	GXML_NODE_TYPE_ELEMENT = 1,
	GXML_NODE_TYPE_ATTRIBUTE,
	GXML_NODE_TYPE_TEXT,
	GXML_NODE_TYPE_CDATA_SECTION,
	GXML_NODE_TYPE_ENTITY_REFERENCE,
	GXML_NODE_TYPE_ENTITY,
	GXML_NODE_TYPE_PROCESSING_INSTRUCTION,
	GXML_NODE_TYPE_COMMENT,
	GXML_NODE_TYPE_DOCUMENT,
	GXML_NODE_TYPE_DOCUMENT_TYPE,
	GXML_NODE_TYPE_DOCUMENT_FRAGMENT,
	GXML_NODE_TYPE_NOTATION
} GXmlNodeType;

struct _GXmlDocumentIface {
	GTypeInterface parent_iface;
	GXmlNode* (*create_element) (GXmlDocument* self, const gchar* name, GError** error);
	GXmlNode* (*create_text) (GXmlDocument* self, const gchar* text);
	GXmlNode* (*create_comment) (GXmlDocument* self, const gchar* text);
	GXmlNode* (*create_cdata) (GXmlDocument* self, const gchar* text);
	GXmlNode* (*create_pi) (GXmlDocument* self, const gchar* target, const gchar* data);
	gboolean (*save) (GXmlDocument* self, GCancellable* cancellable, GError** error);
	gboolean (*save_as) (GXmlDocument* self, GFile* f, GCancellable* cancellable, GError** error);
	gboolean (*get_indent) (GXmlDocument* self);
	void (*set_indent) (GXmlDocument* self, gboolean value);
	gboolean (*get_ns_top) (GXmlDocument* self);
	void (*set_ns_top) (GXmlDocument* self, gboolean value);
	gboolean (*get_prefix_default_ns) (GXmlDocument* self);
	void (*set_prefix_default_ns) (GXmlDocument* self, gboolean value);
	gboolean (*get_backup) (GXmlDocument* self);
	void (*set_backup) (GXmlDocument* self, gboolean value);
	GXmlNode* (*get_root) (GXmlDocument* self);
	GFile* (*get_file) (GXmlDocument* self);
	void (*set_file) (GXmlDocument* self, GFile* value);
};

struct _GXmlNodeIface {
	GTypeInterface parent_iface;
	GXmlNode* (*get) (GXmlNode* self, const gchar* key);
	GXmlElementList* (*get_elements_by_property_value) (GXmlNode* self, const gchar* property, const gchar* value);
	gchar* (*to_string) (GXmlNode* self);
	gboolean (*set_namespace) (GXmlNode* self, const gchar* uri, const gchar* prefix);
	gchar* (*ns_prefix) (GXmlNode* self);
	gchar* (*ns_uri) (GXmlNode* self);
	GeeList* (*get_namespaces) (GXmlNode* self);
	GeeBidirList* (*get_childs) (GXmlNode* self);
	GeeBidirList* (*get_children) (GXmlNode* self);
	GeeMap* (*get_attrs) (GXmlNode* self);
	gchar* (*get_name) (GXmlNode* self);
	gchar* (*get_value) (GXmlNode* self);
	void (*set_value) (GXmlNode* self, const gchar* value);
	GXmlNodeType (*get_type_node) (GXmlNode* self);
	GXmlDocument* (*get_document) (GXmlNode* self);
	GXmlNode* (*get_parent) (GXmlNode* self);
};

struct _GXmlxNodeListIface {
	GTypeInterface parent_iface;
	GXmlxNode* (*item) (GXmlxNodeList* self, gulong idx);
	GXmlxNode* (*insert_before) (GXmlxNodeList* self, GXmlxNode* new_child, GXmlxNode* ref_child);
	GXmlxNode* (*replace_child) (GXmlxNodeList* self, GXmlxNode* new_child, GXmlxNode* old_child);
	GXmlxNode* (*remove_child) (GXmlxNodeList* self, GXmlxNode* old_child);
	GXmlxNode* (*append_child) (GXmlxNodeList* self, GXmlxNode* new_child);
	gchar* (*to_string) (GXmlxNodeList* self, gboolean in_line);
	GXmlxNode* (*first) (GXmlxNodeList* self);
	GXmlxNode* (*last) (GXmlxNodeList* self);
	GXmlxNode* (*get) (GXmlxNodeList* self, gint n);
	gulong (*get_length) (GXmlxNodeList* self);
	void (*set_length) (GXmlxNodeList* self, gulong value);
};

struct _GXmlxNode {
	GObject parent_instance;
	GXmlxNodePrivate * priv;
	GXmlxNodeList* _child_nodes;
	GXmlNamedAttrMap* _attributes;
	GXmlNamespaceAttrNodeList* _namespace_definitions;
};

struct _GXmlxNodeClass {
	GObjectClass parent_class;
	GXmlNamespaceAttr* (*add_namespace_attr) (GXmlxNode* self, const gchar* uri, const gchar* namespace_prefix);
	gboolean (*set_namespace) (GXmlxNode* self, const gchar* uri, const gchar* namespace_prefix);
	GXmlxNode* (*insert_before) (GXmlxNode* self, GXmlxNode* new_child, GXmlxNode* ref_child);
	GXmlxNode* (*replace_child) (GXmlxNode* self, GXmlxNode* new_child, GXmlxNode* old_child);
	GXmlxNode* (*remove_child) (GXmlxNode* self, GXmlxNode* old_child);
	GXmlxNode* (*append_child) (GXmlxNode* self, GXmlxNode* new_child);
	gboolean (*has_child_nodes) (GXmlxNode* self);
	GXmlxNode* (*clone_node) (GXmlxNode* self, gboolean deep);
	gchar* (*stringify) (GXmlxNode* self, gboolean format, gint level);
	gchar* (*to_string) (GXmlxNode* self);
	GeeList* (*get_namespace_definitions) (GXmlxNode* self);
	void (*set_namespace_definitions) (GXmlxNode* self, GeeList* value);
	const gchar* (*get_namespace_uri) (GXmlxNode* self);
	void (*set_namespace_uri) (GXmlxNode* self, const gchar* value);
	const gchar* (*get_namespace_prefix) (GXmlxNode* self);
	void (*set_namespace_prefix) (GXmlxNode* self, const gchar* value);
	const gchar* (*get_local_name) (GXmlxNode* self);
	void (*set_local_name) (GXmlxNode* self, const gchar* value);
	const gchar* (*get_node_name) (GXmlxNode* self);
	void (*set_node_name) (GXmlxNode* self, const gchar* value);
	const gchar* (*get_node_value) (GXmlxNode* self);
	void (*set_node_value) (GXmlxNode* self, const gchar* value);
	GXmlNodeType (*get_node_type) (GXmlxNode* self);
	void (*set_node_type) (GXmlxNode* self, GXmlNodeType value);
	GXmlxNode* (*get_parent_node) (GXmlxNode* self);
	void (*set_parent_node) (GXmlxNode* self, GXmlxNode* value);
	GXmlxNodeList* (*get_child_nodes) (GXmlxNode* self);
	void (*set_child_nodes) (GXmlxNode* self, GXmlxNodeList* value);
	GXmlxNode* (*get_first_child) (GXmlxNode* self);
	void (*set_first_child) (GXmlxNode* self, GXmlxNode* value);
	GXmlxNode* (*get_last_child) (GXmlxNode* self);
	void (*set_last_child) (GXmlxNode* self, GXmlxNode* value);
	GXmlxNode* (*get_previous_sibling) (GXmlxNode* self);
	void (*set_previous_sibling) (GXmlxNode* self, GXmlxNode* value);
	GXmlxNode* (*get_next_sibling) (GXmlxNode* self);
	void (*set_next_sibling) (GXmlxNode* self, GXmlxNode* value);
	GXmlNamedAttrMap* (*get_attributes) (GXmlxNode* self);
	void (*set_attributes) (GXmlxNode* self, GXmlNamedAttrMap* value);
	GeeList* (*get_namespaces) (GXmlxNode* self);
	GeeBidirList* (*get_children) (GXmlxNode* self);
	GeeMap* (*get_attrs) (GXmlxNode* self);
	gchar* (*get_name) (GXmlxNode* self);
	gchar* (*get_value) (GXmlxNode* self);
	void (*set_value) (GXmlxNode* self, const gchar* value);
	GXmlNode* (*get_parent) (GXmlxNode* self);
};

struct _GXmlBackedNode {
	GXmlxNode parent_instance;
	GXmlBackedNodePrivate * priv;
	xmlNode* node;
};

struct _GXmlBackedNodeClass {
	GXmlxNodeClass parent_class;
};

struct _GXmlAbstractNamespaceAttrNodeListIterator {
	GObject parent_instance;
	GXmlAbstractNamespaceAttrNodeListIteratorPrivate * priv;
	GXmlAbstractNamespaceAttrNodeList* nl;
	xmlNs* cur;
	gint i;
};

struct _GXmlAbstractNamespaceAttrNodeListIteratorClass {
	GObjectClass parent_class;
};

struct _GXmlNamespaceAttrNodeList {
	GXmlAbstractNamespaceAttrNodeList parent_instance;
	GXmlNamespaceAttrNodeListPrivate * priv;
};

struct _GXmlNamespaceAttrNodeListClass {
	GXmlAbstractNamespaceAttrNodeListClass parent_class;
};

struct _GXmlNamespaceAttrNodeListIterator {
	GXmlAbstractNamespaceAttrNodeListIterator parent_instance;
	GXmlNamespaceAttrNodeListIteratorPrivate * priv;
};

struct _GXmlNamespaceAttrNodeListIteratorClass {
	GXmlAbstractNamespaceAttrNodeListIteratorClass parent_class;
};


static gpointer gxml_abstract_namespace_attr_node_list_parent_class = NULL;
static gpointer gxml_abstract_namespace_attr_node_list_iterator_parent_class = NULL;
static GeeTraversableIface* gxml_abstract_namespace_attr_node_list_iterator_gee_traversable_parent_iface = NULL;
static GeeIteratorIface* gxml_abstract_namespace_attr_node_list_iterator_gee_iterator_parent_iface = NULL;
static GeeTraversableIface* gxml_abstract_namespace_attr_node_list_gee_traversable_parent_iface = NULL;
static GeeIterableIface* gxml_abstract_namespace_attr_node_list_gee_iterable_parent_iface = NULL;
static GeeCollectionIface* gxml_abstract_namespace_attr_node_list_gee_collection_parent_iface = NULL;
static gpointer gxml_namespace_attr_node_list_parent_class = NULL;
static gpointer gxml_namespace_attr_node_list_iterator_parent_class = NULL;
static GeeListIteratorIface* gxml_namespace_attr_node_list_iterator_gee_list_iterator_parent_iface = NULL;
static GeeListIface* gxml_namespace_attr_node_list_gee_list_parent_iface = NULL;

GType gxml_abstract_namespace_attr_node_list_get_type (void) G_GNUC_CONST;
GType gxml_xnode_get_type (void) G_GNUC_CONST;
GType gxml_backed_node_get_type (void) G_GNUC_CONST;
enum  {
	GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_DUMMY_PROPERTY,
	GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_READ_ONLY,
	GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_READ_ONLY_VIEW,
	GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_SIZE
};
GXmlAbstractNamespaceAttrNodeList* gxml_abstract_namespace_attr_node_list_construct (GType object_type, GXmlBackedNode* root);
GType gxml_element_list_get_type (void) G_GNUC_CONST;
GType gxml_namespace_get_type (void) G_GNUC_CONST;
GType gxml_node_type_get_type (void) G_GNUC_CONST;
GType gxml_document_get_type (void) G_GNUC_CONST;
GType gxml_node_get_type (void) G_GNUC_CONST;
GType gxml_namespace_attr_get_type (void) G_GNUC_CONST;
GType gxml_xnode_list_get_type (void) G_GNUC_CONST;
GType gxml_abstract_named_attr_map_get_type (void) G_GNUC_CONST;
GType gxml_named_attr_map_get_type (void) G_GNUC_CONST;
GType gxml_namespace_attr_node_list_get_type (void) G_GNUC_CONST;
static gboolean gxml_abstract_namespace_attr_node_list_real_add (GeeCollection* base, GXmlNamespace* item);
static void gxml_abstract_namespace_attr_node_list_real_clear (GeeCollection* base);
static gboolean gxml_abstract_namespace_attr_node_list_real_contains (GeeCollection* base, GXmlNamespace* nspace);
gchar* gxml_namespace_get_uri (GXmlNamespace* self);
gchar* gxml_namespace_get_prefix (GXmlNamespace* self);
static gboolean gxml_abstract_namespace_attr_node_list_real_remove (GeeCollection* base, GXmlNamespace* ns);
static GeeIterator* gxml_abstract_namespace_attr_node_list_real_iterator (GeeIterable* base);
GXmlAbstractNamespaceAttrNodeListIterator* gxml_abstract_namespace_attr_node_list_iterator_new (GXmlAbstractNamespaceAttrNodeList* nl);
GXmlAbstractNamespaceAttrNodeListIterator* gxml_abstract_namespace_attr_node_list_iterator_construct (GType object_type, GXmlAbstractNamespaceAttrNodeList* nl);
GType gxml_abstract_namespace_attr_node_list_iterator_get_type (void) G_GNUC_CONST;
static gboolean gxml_abstract_namespace_attr_node_list_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
GXmlNamespaceAttrNodeList* gxml_namespace_attr_node_list_new (GXmlBackedNode* root);
GXmlNamespaceAttrNodeList* gxml_namespace_attr_node_list_construct (GType object_type, GXmlBackedNode* root);
static GObject * gxml_abstract_namespace_attr_node_list_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
void gxml_init_init (void);
enum  {
	GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_ITERATOR_DUMMY_PROPERTY,
	GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_ITERATOR_READ_ONLY,
	GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_ITERATOR_VALID
};
static GXmlNamespace* gxml_abstract_namespace_attr_node_list_iterator_real_get (GeeIterator* base);
GType gxml_xdocument_get_type (void) G_GNUC_CONST;
GXmlxDocument* gxml_xnode_get_owner_document (GXmlxNode* self);
GXmlNamespaceAttr* gxml_namespace_attr_new (xmlNs* ns, GXmlxDocument* doc);
GXmlNamespaceAttr* gxml_namespace_attr_construct (GType object_type, xmlNs* ns, GXmlxDocument* doc);
static gboolean gxml_abstract_namespace_attr_node_list_iterator_real_has_next (GeeIterator* base);
static gboolean gxml_abstract_namespace_attr_node_list_iterator_real_next (GeeIterator* base);
static void gxml_abstract_namespace_attr_node_list_iterator_real_remove (GeeIterator* base);
static gboolean gxml_abstract_namespace_attr_node_list_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
static void gxml_abstract_namespace_attr_node_list_iterator_finalize (GObject* obj);
static void _vala_gxml_abstract_namespace_attr_node_list_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void gxml_abstract_namespace_attr_node_list_finalize (GObject* obj);
static void _vala_gxml_abstract_namespace_attr_node_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
enum  {
	GXML_NAMESPACE_ATTR_NODE_LIST_DUMMY_PROPERTY,
	GXML_NAMESPACE_ATTR_NODE_LIST_READ_ONLY_VIEW
};
static GXmlNamespace* gxml_namespace_attr_node_list_real_get (GeeList* base, gint index);
static gint gxml_namespace_attr_node_list_real_index_of (GeeList* base, GXmlNamespace* item);
static void gxml_namespace_attr_node_list_real_insert (GeeList* base, gint index, GXmlNamespace* item);
static GeeListIterator* gxml_namespace_attr_node_list_real_list_iterator (GeeList* base);
GXmlNamespaceAttrNodeListIterator* gxml_namespace_attr_node_list_iterator_new (GXmlNamespaceAttrNodeList* l);
GXmlNamespaceAttrNodeListIterator* gxml_namespace_attr_node_list_iterator_construct (GType object_type, GXmlNamespaceAttrNodeList* l);
GType gxml_namespace_attr_node_list_iterator_get_type (void) G_GNUC_CONST;
static GXmlNamespace* gxml_namespace_attr_node_list_real_remove_at (GeeList* base, gint index);
static void gxml_namespace_attr_node_list_real_set (GeeList* base, gint index, GXmlNamespace* item);
static GeeList* gxml_namespace_attr_node_list_real_slice (GeeList* base, gint start, gint stop);
enum  {
	GXML_NAMESPACE_ATTR_NODE_LIST_ITERATOR_DUMMY_PROPERTY
};
static void gxml_namespace_attr_node_list_iterator_real_add (GeeListIterator* base, GXmlNamespace* item);
static gint gxml_namespace_attr_node_list_iterator_real_index (GeeListIterator* base);
static void gxml_namespace_attr_node_list_iterator_real_set (GeeListIterator* base, GXmlNamespace* item);
static void _vala_gxml_namespace_attr_node_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static gint _vala_array_length (gpointer array);


GXmlAbstractNamespaceAttrNodeList* gxml_abstract_namespace_attr_node_list_construct (GType object_type, GXmlBackedNode* root) {
	GXmlAbstractNamespaceAttrNodeList * self = NULL;
	GXmlBackedNode* _tmp0_ = NULL;
	GXmlBackedNode* _tmp1_ = NULL;
	xmlNode* _tmp2_ = NULL;
	xmlDoc* _tmp3_ = NULL;
	GXmlBackedNode* _tmp4_ = NULL;
	xmlNode* _tmp5_ = NULL;
	xmlNs** _tmp6_ = NULL;
	xmlNs** _tmp7_ = NULL;
	g_return_val_if_fail (root != NULL, NULL);
	self = (GXmlAbstractNamespaceAttrNodeList*) g_object_new (object_type, NULL);
	_tmp0_ = root;
	self->node = _tmp0_;
	_tmp1_ = self->node;
	_tmp2_ = _tmp1_->node;
	_tmp3_ = _tmp2_->doc;
	_tmp4_ = self->node;
	_tmp5_ = _tmp4_->node;
	_tmp7_ = _tmp6_ = gxml_doc_get_ns_list (_tmp3_, _tmp5_);
	self->name_spaces = (g_free (self->name_spaces), NULL);
	self->name_spaces = _tmp7_;
	self->name_spaces_length1 = _vala_array_length (_tmp6_);
	self->_name_spaces_size_ = self->name_spaces_length1;
	return self;
}


static gboolean gxml_abstract_namespace_attr_node_list_real_add (GeeCollection* base, GXmlNamespace* item) {
	GXmlAbstractNamespaceAttrNodeList * self;
	gboolean result = FALSE;
	self = (GXmlAbstractNamespaceAttrNodeList*) base;
	g_return_val_if_fail (item != NULL, FALSE);
	result = FALSE;
	return result;
}


static void gxml_abstract_namespace_attr_node_list_real_clear (GeeCollection* base) {
	GXmlAbstractNamespaceAttrNodeList * self;
	self = (GXmlAbstractNamespaceAttrNodeList*) base;
	{
		GeeIterator* _ns_it = NULL;
		GeeIterator* _tmp0_ = NULL;
		_tmp0_ = gee_iterable_iterator ((GeeIterable*) self);
		_ns_it = _tmp0_;
		while (TRUE) {
			GeeIterator* _tmp1_ = NULL;
			gboolean _tmp2_ = FALSE;
			GXmlNamespace* ns = NULL;
			GeeIterator* _tmp3_ = NULL;
			gpointer _tmp4_ = NULL;
			GXmlNamespace* _tmp5_ = NULL;
			_tmp1_ = _ns_it;
			_tmp2_ = gee_iterator_next (_tmp1_);
			if (!_tmp2_) {
				break;
			}
			_tmp3_ = _ns_it;
			_tmp4_ = gee_iterator_get (_tmp3_);
			ns = (GXmlNamespace*) _tmp4_;
			_tmp5_ = ns;
			gee_collection_remove ((GeeCollection*) self, _tmp5_);
			_g_object_unref0 (ns);
		}
		_g_object_unref0 (_ns_it);
	}
}


static gboolean gxml_abstract_namespace_attr_node_list_real_contains (GeeCollection* base, GXmlNamespace* nspace) {
	GXmlAbstractNamespaceAttrNodeList * self;
	gboolean result = FALSE;
	self = (GXmlAbstractNamespaceAttrNodeList*) base;
	g_return_val_if_fail (nspace != NULL, FALSE);
	{
		GeeIterator* _ns_it = NULL;
		GeeIterator* _tmp0_ = NULL;
		_tmp0_ = gee_iterable_iterator ((GeeIterable*) self);
		_ns_it = _tmp0_;
		while (TRUE) {
			GeeIterator* _tmp1_ = NULL;
			gboolean _tmp2_ = FALSE;
			GXmlNamespace* ns = NULL;
			GeeIterator* _tmp3_ = NULL;
			gpointer _tmp4_ = NULL;
			gboolean _tmp5_ = FALSE;
			GXmlNamespace* _tmp6_ = NULL;
			gchar* _tmp7_ = NULL;
			gchar* _tmp8_ = NULL;
			gchar* _tmp9_ = NULL;
			GXmlNamespace* _tmp10_ = NULL;
			gchar* _tmp11_ = NULL;
			gchar* _tmp12_ = NULL;
			gchar* _tmp13_ = NULL;
			gboolean _tmp14_ = FALSE;
			_tmp1_ = _ns_it;
			_tmp2_ = gee_iterator_next (_tmp1_);
			if (!_tmp2_) {
				break;
			}
			_tmp3_ = _ns_it;
			_tmp4_ = gee_iterator_get (_tmp3_);
			ns = (GXmlNamespace*) _tmp4_;
			_tmp6_ = nspace;
			_tmp7_ = gxml_namespace_get_uri (_tmp6_);
			_tmp8_ = _tmp7_;
			_tmp9_ = _tmp8_;
			_tmp10_ = ns;
			_tmp11_ = gxml_namespace_get_uri (_tmp10_);
			_tmp12_ = _tmp11_;
			_tmp13_ = _tmp12_;
			_tmp14_ = g_strcmp0 (_tmp9_, _tmp13_) == 0;
			_g_free0 (_tmp13_);
			_g_free0 (_tmp9_);
			if (_tmp14_) {
				GXmlNamespace* _tmp15_ = NULL;
				gchar* _tmp16_ = NULL;
				gchar* _tmp17_ = NULL;
				gchar* _tmp18_ = NULL;
				GXmlNamespace* _tmp19_ = NULL;
				gchar* _tmp20_ = NULL;
				gchar* _tmp21_ = NULL;
				gchar* _tmp22_ = NULL;
				_tmp15_ = nspace;
				_tmp16_ = gxml_namespace_get_prefix (_tmp15_);
				_tmp17_ = _tmp16_;
				_tmp18_ = _tmp17_;
				_tmp19_ = ns;
				_tmp20_ = gxml_namespace_get_prefix (_tmp19_);
				_tmp21_ = _tmp20_;
				_tmp22_ = _tmp21_;
				_tmp5_ = g_strcmp0 (_tmp18_, _tmp22_) == 0;
				_g_free0 (_tmp22_);
				_g_free0 (_tmp18_);
			} else {
				_tmp5_ = FALSE;
			}
			if (_tmp5_) {
				result = TRUE;
				_g_object_unref0 (ns);
				_g_object_unref0 (_ns_it);
				return result;
			}
			_g_object_unref0 (ns);
		}
		_g_object_unref0 (_ns_it);
	}
	result = FALSE;
	return result;
}


static gboolean gxml_abstract_namespace_attr_node_list_real_remove (GeeCollection* base, GXmlNamespace* ns) {
	GXmlAbstractNamespaceAttrNodeList * self;
	gboolean result = FALSE;
	self = (GXmlAbstractNamespaceAttrNodeList*) base;
	g_return_val_if_fail (ns != NULL, FALSE);
	result = FALSE;
	return result;
}


static GeeIterator* gxml_abstract_namespace_attr_node_list_real_iterator (GeeIterable* base) {
	GXmlAbstractNamespaceAttrNodeList * self;
	GeeIterator* result = NULL;
	GXmlAbstractNamespaceAttrNodeListIterator* _tmp0_ = NULL;
	self = (GXmlAbstractNamespaceAttrNodeList*) base;
	_tmp0_ = gxml_abstract_namespace_attr_node_list_iterator_new (self);
	result = (GeeIterator*) _tmp0_;
	return result;
}


static gboolean gxml_abstract_namespace_attr_node_list_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
	GXmlAbstractNamespaceAttrNodeList * self;
	gboolean result = FALSE;
	GeeIterator* _tmp0_ = NULL;
	GeeIterator* _tmp1_ = NULL;
	GeeForallFunc _tmp2_ = NULL;
	void* _tmp2__target = NULL;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_ = FALSE;
	self = (GXmlAbstractNamespaceAttrNodeList*) base;
	_tmp0_ = gee_iterable_iterator ((GeeIterable*) self);
	_tmp1_ = _tmp0_;
	_tmp2_ = f;
	_tmp2__target = f_target;
	_tmp3_ = gee_traversable_foreach ((GeeTraversable*) _tmp1_, _tmp2_, _tmp2__target);
	_tmp4_ = _tmp3_;
	_g_object_unref0 (_tmp1_);
	result = _tmp4_;
	return result;
}


static gboolean gxml_abstract_namespace_attr_node_list_real_get_read_only (GeeCollection* base) {
	gboolean result;
	GXmlAbstractNamespaceAttrNodeList* self;
	self = (GXmlAbstractNamespaceAttrNodeList*) base;
	result = TRUE;
	return result;
}


static GeeCollection* gxml_abstract_namespace_attr_node_list_real_get_read_only_view (GeeCollection* base) {
	GeeCollection* result;
	GXmlAbstractNamespaceAttrNodeList* self;
	GXmlBackedNode* _tmp0_ = NULL;
	GXmlNamespaceAttrNodeList* _tmp1_ = NULL;
	self = (GXmlAbstractNamespaceAttrNodeList*) base;
	_tmp0_ = self->node;
	_tmp1_ = gxml_namespace_attr_node_list_new (_tmp0_);
	result = (GeeCollection*) _tmp1_;
	return result;
}


static gint gxml_abstract_namespace_attr_node_list_real_get_size (GeeCollection* base) {
	gint result;
	GXmlAbstractNamespaceAttrNodeList* self;
	xmlNs** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	self = (GXmlAbstractNamespaceAttrNodeList*) base;
	_tmp0_ = self->name_spaces;
	_tmp0__length1 = self->name_spaces_length1;
	result = _tmp0__length1;
	return result;
}


static GObject * gxml_abstract_namespace_attr_node_list_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
	GObject * obj;
	GObjectClass * parent_class;
	GXmlAbstractNamespaceAttrNodeList * self;
	parent_class = G_OBJECT_CLASS (gxml_abstract_namespace_attr_node_list_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_ABSTRACT_NAMESPACE_ATTR_NODE_LIST, GXmlAbstractNamespaceAttrNodeList);
	gxml_init_init ();
	return obj;
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


GXmlAbstractNamespaceAttrNodeListIterator* gxml_abstract_namespace_attr_node_list_iterator_construct (GType object_type, GXmlAbstractNamespaceAttrNodeList* nl) {
	GXmlAbstractNamespaceAttrNodeListIterator * self = NULL;
	GXmlAbstractNamespaceAttrNodeList* _tmp0_ = NULL;
	GXmlAbstractNamespaceAttrNodeList* _tmp1_ = NULL;
	g_return_val_if_fail (nl != NULL, NULL);
	self = (GXmlAbstractNamespaceAttrNodeListIterator*) g_object_new (object_type, NULL);
	_tmp0_ = nl;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (self->nl);
	self->nl = _tmp1_;
	return self;
}


GXmlAbstractNamespaceAttrNodeListIterator* gxml_abstract_namespace_attr_node_list_iterator_new (GXmlAbstractNamespaceAttrNodeList* nl) {
	return gxml_abstract_namespace_attr_node_list_iterator_construct (GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR, nl);
}


static GXmlNamespace* gxml_abstract_namespace_attr_node_list_iterator_real_get (GeeIterator* base) {
	GXmlAbstractNamespaceAttrNodeListIterator * self;
	GXmlNamespace* result = NULL;
	xmlNs* _tmp0_ = NULL;
	GXmlAbstractNamespaceAttrNodeList* _tmp1_ = NULL;
	GXmlBackedNode* _tmp2_ = NULL;
	GXmlxDocument* _tmp3_ = NULL;
	GXmlxDocument* _tmp4_ = NULL;
	GXmlNamespaceAttr* _tmp5_ = NULL;
	self = (GXmlAbstractNamespaceAttrNodeListIterator*) base;
	_tmp0_ = self->cur;
	_tmp1_ = self->nl;
	_tmp2_ = _tmp1_->node;
	_tmp3_ = gxml_xnode_get_owner_document ((GXmlxNode*) _tmp2_);
	_tmp4_ = _tmp3_;
	_tmp5_ = gxml_namespace_attr_new (_tmp0_, _tmp4_);
	result = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GXML_TYPE_NAMESPACE, GXmlNamespace);
	return result;
}


static gboolean gxml_abstract_namespace_attr_node_list_iterator_real_has_next (GeeIterator* base) {
	GXmlAbstractNamespaceAttrNodeListIterator * self;
	gboolean result = FALSE;
	GXmlAbstractNamespaceAttrNodeList* _tmp0_ = NULL;
	xmlNs** _tmp1_ = NULL;
	gint _tmp1__length1 = 0;
	self = (GXmlAbstractNamespaceAttrNodeListIterator*) base;
	_tmp0_ = self->nl;
	_tmp1_ = _tmp0_->name_spaces;
	_tmp1__length1 = _tmp0_->name_spaces_length1;
	if (_tmp1__length1 > 0) {
		gint _tmp2_ = 0;
		GXmlAbstractNamespaceAttrNodeList* _tmp3_ = NULL;
		xmlNs** _tmp4_ = NULL;
		gint _tmp4__length1 = 0;
		_tmp2_ = self->i;
		_tmp3_ = self->nl;
		_tmp4_ = _tmp3_->name_spaces;
		_tmp4__length1 = _tmp3_->name_spaces_length1;
		if (_tmp2_ < _tmp4__length1) {
			result = TRUE;
			return result;
		}
	}
	result = FALSE;
	return result;
}


static gboolean gxml_abstract_namespace_attr_node_list_iterator_real_next (GeeIterator* base) {
	GXmlAbstractNamespaceAttrNodeListIterator * self;
	gboolean result = FALSE;
	gint _tmp0_ = 0;
	gint _tmp1_ = 0;
	GXmlAbstractNamespaceAttrNodeList* _tmp2_ = NULL;
	xmlNs** _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	self = (GXmlAbstractNamespaceAttrNodeListIterator*) base;
	_tmp0_ = self->i;
	self->i = _tmp0_ + 1;
	_tmp1_ = self->i;
	_tmp2_ = self->nl;
	_tmp3_ = _tmp2_->name_spaces;
	_tmp3__length1 = _tmp2_->name_spaces_length1;
	if (_tmp1_ < _tmp3__length1) {
		GXmlAbstractNamespaceAttrNodeList* _tmp4_ = NULL;
		xmlNs** _tmp5_ = NULL;
		gint _tmp5__length1 = 0;
		gint _tmp6_ = 0;
		xmlNs* _tmp7_ = NULL;
		_tmp4_ = self->nl;
		_tmp5_ = _tmp4_->name_spaces;
		_tmp5__length1 = _tmp4_->name_spaces_length1;
		_tmp6_ = self->i;
		_tmp7_ = _tmp5_[_tmp6_];
		self->cur = _tmp7_;
		result = TRUE;
		return result;
	}
	result = FALSE;
	return result;
}


static void gxml_abstract_namespace_attr_node_list_iterator_real_remove (GeeIterator* base) {
	GXmlAbstractNamespaceAttrNodeListIterator * self;
	self = (GXmlAbstractNamespaceAttrNodeListIterator*) base;
	return;
}


static gboolean gxml_abstract_namespace_attr_node_list_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
	GXmlAbstractNamespaceAttrNodeListIterator * self;
	gboolean result = FALSE;
	self = (GXmlAbstractNamespaceAttrNodeListIterator*) base;
	g_message ("libxml-NamespaceAttrNodeList.vala:108: Iterating over all Namespaces");
	while (TRUE) {
		gboolean _tmp0_ = FALSE;
		GeeForallFunc _tmp1_ = NULL;
		void* _tmp1__target = NULL;
		gpointer _tmp2_ = NULL;
		gboolean _tmp3_ = FALSE;
		_tmp0_ = gee_iterator_has_next ((GeeIterator*) self);
		if (!_tmp0_) {
			break;
		}
		gee_iterator_next ((GeeIterator*) self);
		_tmp1_ = f;
		_tmp1__target = f_target;
		_tmp2_ = gee_iterator_get ((GeeIterator*) self);
		_tmp3_ = _tmp1_ ((GXmlNamespace*) _tmp2_, _tmp1__target);
		if (!_tmp3_) {
			result = FALSE;
			return result;
		}
	}
	result = TRUE;
	return result;
}


static gboolean gxml_abstract_namespace_attr_node_list_iterator_real_get_read_only (GeeIterator* base) {
	gboolean result;
	GXmlAbstractNamespaceAttrNodeListIterator* self;
	self = (GXmlAbstractNamespaceAttrNodeListIterator*) base;
	result = TRUE;
	return result;
}


static gboolean gxml_abstract_namespace_attr_node_list_iterator_real_get_valid (GeeIterator* base) {
	gboolean result;
	GXmlAbstractNamespaceAttrNodeListIterator* self;
	gboolean _tmp0_ = FALSE;
	gint _tmp1_ = 0;
	self = (GXmlAbstractNamespaceAttrNodeListIterator*) base;
	_tmp1_ = self->i;
	if (_tmp1_ < 0) {
		_tmp0_ = TRUE;
	} else {
		gint _tmp2_ = 0;
		GXmlAbstractNamespaceAttrNodeList* _tmp3_ = NULL;
		xmlNs** _tmp4_ = NULL;
		gint _tmp4__length1 = 0;
		_tmp2_ = self->i;
		_tmp3_ = self->nl;
		_tmp4_ = _tmp3_->name_spaces;
		_tmp4__length1 = _tmp3_->name_spaces_length1;
		_tmp0_ = _tmp2_ >= _tmp4__length1;
	}
	if (_tmp0_) {
		xmlNs* _tmp5_ = NULL;
		_tmp5_ = self->cur;
		if (_tmp5_ == NULL) {
			result = FALSE;
			return result;
		}
	}
	result = TRUE;
	return result;
}


static void gxml_abstract_namespace_attr_node_list_iterator_class_init (GXmlAbstractNamespaceAttrNodeListIteratorClass * klass) {
	gxml_abstract_namespace_attr_node_list_iterator_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_abstract_namespace_attr_node_list_iterator_get_property;
	G_OBJECT_CLASS (klass)->finalize = gxml_abstract_namespace_attr_node_list_iterator_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_ITERATOR_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_ITERATOR_VALID, g_param_spec_boolean ("valid", "valid", "valid", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
}


static GType gxml_abstract_namespace_attr_node_list_iterator_gee_traversable_get_g_type (GXmlAbstractNamespaceAttrNodeListIterator* self) {
	return GXML_TYPE_NAMESPACE;
}


static GBoxedCopyFunc gxml_abstract_namespace_attr_node_list_iterator_gee_traversable_get_g_dup_func (GXmlAbstractNamespaceAttrNodeListIterator* self) {
	return g_object_ref;
}


static GDestroyNotify gxml_abstract_namespace_attr_node_list_iterator_gee_traversable_get_g_destroy_func (GXmlAbstractNamespaceAttrNodeListIterator* self) {
	return g_object_unref;
}


static void gxml_abstract_namespace_attr_node_list_iterator_gee_traversable_interface_init (GeeTraversableIface * iface) {
	gxml_abstract_namespace_attr_node_list_iterator_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
	iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) gxml_abstract_namespace_attr_node_list_iterator_real_foreach;
	iface->get_g_type = (GType(*)(GeeTraversable*)) gxml_abstract_namespace_attr_node_list_iterator_gee_traversable_get_g_type;
	iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) gxml_abstract_namespace_attr_node_list_iterator_gee_traversable_get_g_dup_func;
	iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) gxml_abstract_namespace_attr_node_list_iterator_gee_traversable_get_g_destroy_func;
}


static void gxml_abstract_namespace_attr_node_list_iterator_gee_iterator_interface_init (GeeIteratorIface * iface) {
	gxml_abstract_namespace_attr_node_list_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface);
	iface->get = (gpointer (*)(GeeIterator*)) gxml_abstract_namespace_attr_node_list_iterator_real_get;
	iface->has_next = (gboolean (*)(GeeIterator*)) gxml_abstract_namespace_attr_node_list_iterator_real_has_next;
	iface->next = (gboolean (*)(GeeIterator*)) gxml_abstract_namespace_attr_node_list_iterator_real_next;
	iface->remove = (void (*)(GeeIterator*)) gxml_abstract_namespace_attr_node_list_iterator_real_remove;
	iface->get_read_only = gxml_abstract_namespace_attr_node_list_iterator_real_get_read_only;
	iface->get_valid = gxml_abstract_namespace_attr_node_list_iterator_real_get_valid;
}


static void gxml_abstract_namespace_attr_node_list_iterator_instance_init (GXmlAbstractNamespaceAttrNodeListIterator * self) {
	self->cur = NULL;
	self->i = -1;
}


static void gxml_abstract_namespace_attr_node_list_iterator_finalize (GObject* obj) {
	GXmlAbstractNamespaceAttrNodeListIterator * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR, GXmlAbstractNamespaceAttrNodeListIterator);
	_g_object_unref0 (self->nl);
	G_OBJECT_CLASS (gxml_abstract_namespace_attr_node_list_iterator_parent_class)->finalize (obj);
}


GType gxml_abstract_namespace_attr_node_list_iterator_get_type (void) {
	static volatile gsize gxml_abstract_namespace_attr_node_list_iterator_type_id__volatile = 0;
	if (g_once_init_enter (&gxml_abstract_namespace_attr_node_list_iterator_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GXmlAbstractNamespaceAttrNodeListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_abstract_namespace_attr_node_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlAbstractNamespaceAttrNodeListIterator), 0, (GInstanceInitFunc) gxml_abstract_namespace_attr_node_list_iterator_instance_init, NULL };
		static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gxml_abstract_namespace_attr_node_list_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gxml_abstract_namespace_attr_node_list_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType gxml_abstract_namespace_attr_node_list_iterator_type_id;
		gxml_abstract_namespace_attr_node_list_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GXmlAbstractNamespaceAttrNodeListIterator", &g_define_type_info, 0);
		g_type_add_interface_static (gxml_abstract_namespace_attr_node_list_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
		g_type_add_interface_static (gxml_abstract_namespace_attr_node_list_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info);
		g_once_init_leave (&gxml_abstract_namespace_attr_node_list_iterator_type_id__volatile, gxml_abstract_namespace_attr_node_list_iterator_type_id);
	}
	return gxml_abstract_namespace_attr_node_list_iterator_type_id__volatile;
}


static void _vala_gxml_abstract_namespace_attr_node_list_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	GXmlAbstractNamespaceAttrNodeListIterator * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR, GXmlAbstractNamespaceAttrNodeListIterator);
	switch (property_id) {
		case GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_ITERATOR_READ_ONLY:
		g_value_set_boolean (value, gee_iterator_get_read_only ((GeeIterator*) self));
		break;
		case GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_ITERATOR_VALID:
		g_value_set_boolean (value, gee_iterator_get_valid ((GeeIterator*) self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void gxml_abstract_namespace_attr_node_list_class_init (GXmlAbstractNamespaceAttrNodeListClass * klass) {
	gxml_abstract_namespace_attr_node_list_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_abstract_namespace_attr_node_list_get_property;
	G_OBJECT_CLASS (klass)->constructor = gxml_abstract_namespace_attr_node_list_constructor;
	G_OBJECT_CLASS (klass)->finalize = gxml_abstract_namespace_attr_node_list_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_READ_ONLY_VIEW, g_param_spec_object ("read-only-view", "read-only-view", "read-only-view", GEE_TYPE_COLLECTION, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
}


static GType gxml_abstract_namespace_attr_node_list_gee_traversable_get_g_type (GXmlAbstractNamespaceAttrNodeList* self) {
	return GXML_TYPE_NAMESPACE;
}


static GBoxedCopyFunc gxml_abstract_namespace_attr_node_list_gee_traversable_get_g_dup_func (GXmlAbstractNamespaceAttrNodeList* self) {
	return g_object_ref;
}


static GDestroyNotify gxml_abstract_namespace_attr_node_list_gee_traversable_get_g_destroy_func (GXmlAbstractNamespaceAttrNodeList* self) {
	return g_object_unref;
}


static void gxml_abstract_namespace_attr_node_list_gee_traversable_interface_init (GeeTraversableIface * iface) {
	gxml_abstract_namespace_attr_node_list_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
	iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) gxml_abstract_namespace_attr_node_list_real_foreach;
	iface->get_g_type = (GType(*)(GeeTraversable*)) gxml_abstract_namespace_attr_node_list_gee_traversable_get_g_type;
	iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) gxml_abstract_namespace_attr_node_list_gee_traversable_get_g_dup_func;
	iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) gxml_abstract_namespace_attr_node_list_gee_traversable_get_g_destroy_func;
}


static GType gxml_abstract_namespace_attr_node_list_gee_iterable_get_g_type (GXmlAbstractNamespaceAttrNodeList* self) {
	return GXML_TYPE_NAMESPACE;
}


static GBoxedCopyFunc gxml_abstract_namespace_attr_node_list_gee_iterable_get_g_dup_func (GXmlAbstractNamespaceAttrNodeList* self) {
	return g_object_ref;
}


static GDestroyNotify gxml_abstract_namespace_attr_node_list_gee_iterable_get_g_destroy_func (GXmlAbstractNamespaceAttrNodeList* self) {
	return g_object_unref;
}


static void gxml_abstract_namespace_attr_node_list_gee_iterable_interface_init (GeeIterableIface * iface) {
	gxml_abstract_namespace_attr_node_list_gee_iterable_parent_iface = g_type_interface_peek_parent (iface);
	iface->iterator = (GeeIterator* (*)(GeeIterable*)) gxml_abstract_namespace_attr_node_list_real_iterator;
	iface->get_g_type = (GType(*)(GeeIterable*)) gxml_abstract_namespace_attr_node_list_gee_iterable_get_g_type;
	iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeIterable*)) gxml_abstract_namespace_attr_node_list_gee_iterable_get_g_dup_func;
	iface->get_g_destroy_func = (GDestroyNotify(*)(GeeIterable*)) gxml_abstract_namespace_attr_node_list_gee_iterable_get_g_destroy_func;
}


static GType gxml_abstract_namespace_attr_node_list_gee_collection_get_g_type (GXmlAbstractNamespaceAttrNodeList* self) {
	return GXML_TYPE_NAMESPACE;
}


static GBoxedCopyFunc gxml_abstract_namespace_attr_node_list_gee_collection_get_g_dup_func (GXmlAbstractNamespaceAttrNodeList* self) {
	return g_object_ref;
}


static GDestroyNotify gxml_abstract_namespace_attr_node_list_gee_collection_get_g_destroy_func (GXmlAbstractNamespaceAttrNodeList* self) {
	return g_object_unref;
}


static void gxml_abstract_namespace_attr_node_list_gee_collection_interface_init (GeeCollectionIface * iface) {
	gxml_abstract_namespace_attr_node_list_gee_collection_parent_iface = g_type_interface_peek_parent (iface);
	iface->add = (gboolean (*)(GeeCollection*, gconstpointer)) gxml_abstract_namespace_attr_node_list_real_add;
	iface->clear = (void (*)(GeeCollection*)) gxml_abstract_namespace_attr_node_list_real_clear;
	iface->contains = (gboolean (*)(GeeCollection*, gconstpointer)) gxml_abstract_namespace_attr_node_list_real_contains;
	iface->remove = (gboolean (*)(GeeCollection*, gconstpointer)) gxml_abstract_namespace_attr_node_list_real_remove;
	iface->get_g_type = (GType(*)(GeeCollection*)) gxml_abstract_namespace_attr_node_list_gee_collection_get_g_type;
	iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeCollection*)) gxml_abstract_namespace_attr_node_list_gee_collection_get_g_dup_func;
	iface->get_g_destroy_func = (GDestroyNotify(*)(GeeCollection*)) gxml_abstract_namespace_attr_node_list_gee_collection_get_g_destroy_func;
	iface->get_read_only = gxml_abstract_namespace_attr_node_list_real_get_read_only;
	iface->get_read_only_view = gxml_abstract_namespace_attr_node_list_real_get_read_only_view;
	iface->get_size = gxml_abstract_namespace_attr_node_list_real_get_size;
}


static void gxml_abstract_namespace_attr_node_list_instance_init (GXmlAbstractNamespaceAttrNodeList * self) {
}


static void gxml_abstract_namespace_attr_node_list_finalize (GObject* obj) {
	GXmlAbstractNamespaceAttrNodeList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_ABSTRACT_NAMESPACE_ATTR_NODE_LIST, GXmlAbstractNamespaceAttrNodeList);
	self->name_spaces = (g_free (self->name_spaces), NULL);
	G_OBJECT_CLASS (gxml_abstract_namespace_attr_node_list_parent_class)->finalize (obj);
}


GType gxml_abstract_namespace_attr_node_list_get_type (void) {
	static volatile gsize gxml_abstract_namespace_attr_node_list_type_id__volatile = 0;
	if (g_once_init_enter (&gxml_abstract_namespace_attr_node_list_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GXmlAbstractNamespaceAttrNodeListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_abstract_namespace_attr_node_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlAbstractNamespaceAttrNodeList), 0, (GInstanceInitFunc) gxml_abstract_namespace_attr_node_list_instance_init, NULL };
		static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gxml_abstract_namespace_attr_node_list_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		static const GInterfaceInfo gee_iterable_info = { (GInterfaceInitFunc) gxml_abstract_namespace_attr_node_list_gee_iterable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		static const GInterfaceInfo gee_collection_info = { (GInterfaceInitFunc) gxml_abstract_namespace_attr_node_list_gee_collection_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType gxml_abstract_namespace_attr_node_list_type_id;
		gxml_abstract_namespace_attr_node_list_type_id = g_type_register_static (G_TYPE_OBJECT, "GXmlAbstractNamespaceAttrNodeList", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_type_add_interface_static (gxml_abstract_namespace_attr_node_list_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
		g_type_add_interface_static (gxml_abstract_namespace_attr_node_list_type_id, GEE_TYPE_ITERABLE, &gee_iterable_info);
		g_type_add_interface_static (gxml_abstract_namespace_attr_node_list_type_id, GEE_TYPE_COLLECTION, &gee_collection_info);
		g_once_init_leave (&gxml_abstract_namespace_attr_node_list_type_id__volatile, gxml_abstract_namespace_attr_node_list_type_id);
	}
	return gxml_abstract_namespace_attr_node_list_type_id__volatile;
}


static void _vala_gxml_abstract_namespace_attr_node_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	GXmlAbstractNamespaceAttrNodeList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_ABSTRACT_NAMESPACE_ATTR_NODE_LIST, GXmlAbstractNamespaceAttrNodeList);
	switch (property_id) {
		case GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_READ_ONLY:
		g_value_set_boolean (value, gee_collection_get_read_only ((GeeCollection*) self));
		break;
		case GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_READ_ONLY_VIEW:
		g_value_take_object (value, gee_collection_get_read_only_view ((GeeCollection*) self));
		break;
		case GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_SIZE:
		g_value_set_int (value, gee_collection_get_size ((GeeCollection*) self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


GXmlNamespaceAttrNodeList* gxml_namespace_attr_node_list_construct (GType object_type, GXmlBackedNode* root) {
	GXmlNamespaceAttrNodeList * self = NULL;
	GXmlBackedNode* _tmp0_ = NULL;
	g_return_val_if_fail (root != NULL, NULL);
	_tmp0_ = root;
	self = (GXmlNamespaceAttrNodeList*) gxml_abstract_namespace_attr_node_list_construct (object_type, _tmp0_);
	return self;
}


GXmlNamespaceAttrNodeList* gxml_namespace_attr_node_list_new (GXmlBackedNode* root) {
	return gxml_namespace_attr_node_list_construct (GXML_TYPE_NAMESPACE_ATTR_NODE_LIST, root);
}


static GXmlNamespace* gxml_namespace_attr_node_list_real_get (GeeList* base, gint index) {
	GXmlNamespaceAttrNodeList * self;
	GXmlNamespace* result = NULL;
	xmlNs* cur = NULL;
	xmlNs** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	xmlNs* _tmp8_ = NULL;
	GXmlBackedNode* _tmp9_ = NULL;
	GXmlxDocument* _tmp10_ = NULL;
	GXmlxDocument* _tmp11_ = NULL;
	GXmlNamespaceAttr* _tmp12_ = NULL;
	self = (GXmlNamespaceAttrNodeList*) base;
	cur = NULL;
	_tmp0_ = ((GXmlAbstractNamespaceAttrNodeList*) self)->name_spaces;
	_tmp0__length1 = ((GXmlAbstractNamespaceAttrNodeList*) self)->name_spaces_length1;
	if (_tmp0_ != NULL) {
		gboolean _tmp1_ = FALSE;
		gint _tmp2_ = 0;
		_tmp2_ = index;
		if (_tmp2_ >= 0) {
			gint _tmp3_ = 0;
			xmlNs** _tmp4_ = NULL;
			gint _tmp4__length1 = 0;
			_tmp3_ = index;
			_tmp4_ = ((GXmlAbstractNamespaceAttrNodeList*) self)->name_spaces;
			_tmp4__length1 = ((GXmlAbstractNamespaceAttrNodeList*) self)->name_spaces_length1;
			_tmp1_ = _tmp3_ < _tmp4__length1;
		} else {
			_tmp1_ = FALSE;
		}
		if (_tmp1_) {
			xmlNs** _tmp5_ = NULL;
			gint _tmp5__length1 = 0;
			gint _tmp6_ = 0;
			xmlNs* _tmp7_ = NULL;
			_tmp5_ = ((GXmlAbstractNamespaceAttrNodeList*) self)->name_spaces;
			_tmp5__length1 = ((GXmlAbstractNamespaceAttrNodeList*) self)->name_spaces_length1;
			_tmp6_ = index;
			_tmp7_ = _tmp5_[_tmp6_];
			cur = _tmp7_;
		}
	}
	_tmp8_ = cur;
	_tmp9_ = ((GXmlAbstractNamespaceAttrNodeList*) self)->node;
	_tmp10_ = gxml_xnode_get_owner_document ((GXmlxNode*) _tmp9_);
	_tmp11_ = _tmp10_;
	_tmp12_ = gxml_namespace_attr_new (_tmp8_, _tmp11_);
	result = G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GXML_TYPE_NAMESPACE, GXmlNamespace);
	return result;
}


static gint gxml_namespace_attr_node_list_real_index_of (GeeList* base, GXmlNamespace* item) {
	GXmlNamespaceAttrNodeList * self;
	gint result = 0;
	gint i = 0;
	xmlNs* cur = NULL;
	xmlNs** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	self = (GXmlNamespaceAttrNodeList*) base;
	g_return_val_if_fail (item != NULL, 0);
	i = -1;
	cur = NULL;
	_tmp0_ = ((GXmlAbstractNamespaceAttrNodeList*) self)->name_spaces;
	_tmp0__length1 = ((GXmlAbstractNamespaceAttrNodeList*) self)->name_spaces_length1;
	if (_tmp0_ != NULL) {
		{
			gint j = 0;
			j = 0;
			{
				gboolean _tmp1_ = FALSE;
				_tmp1_ = TRUE;
				while (TRUE) {
					gint _tmp3_ = 0;
					xmlNs** _tmp4_ = NULL;
					gint _tmp4__length1 = 0;
					gboolean _tmp5_ = FALSE;
					GXmlNamespace* _tmp6_ = NULL;
					gchar* _tmp7_ = NULL;
					gchar* _tmp8_ = NULL;
					gchar* _tmp9_ = NULL;
					xmlNs* _tmp10_ = NULL;
					const gchar* _tmp11_ = NULL;
					gboolean _tmp12_ = FALSE;
					if (!_tmp1_) {
						gint _tmp2_ = 0;
						_tmp2_ = j;
						j = _tmp2_ + 1;
					}
					_tmp1_ = FALSE;
					_tmp3_ = j;
					_tmp4_ = ((GXmlAbstractNamespaceAttrNodeList*) self)->name_spaces;
					_tmp4__length1 = ((GXmlAbstractNamespaceAttrNodeList*) self)->name_spaces_length1;
					if (!(_tmp3_ < _tmp4__length1)) {
						break;
					}
					_tmp6_ = item;
					_tmp7_ = gxml_namespace_get_uri (_tmp6_);
					_tmp8_ = _tmp7_;
					_tmp9_ = _tmp8_;
					_tmp10_ = cur;
					_tmp11_ = _tmp10_->href;
					_tmp12_ = g_strcmp0 (_tmp9_, _tmp11_) == 0;
					_g_free0 (_tmp9_);
					if (_tmp12_) {
						GXmlNamespace* _tmp13_ = NULL;
						gchar* _tmp14_ = NULL;
						gchar* _tmp15_ = NULL;
						gchar* _tmp16_ = NULL;
						xmlNs* _tmp17_ = NULL;
						const gchar* _tmp18_ = NULL;
						_tmp13_ = item;
						_tmp14_ = gxml_namespace_get_prefix (_tmp13_);
						_tmp15_ = _tmp14_;
						_tmp16_ = _tmp15_;
						_tmp17_ = cur;
						_tmp18_ = _tmp17_->prefix;
						_tmp5_ = g_strcmp0 (_tmp16_, _tmp18_) == 0;
						_g_free0 (_tmp16_);
					} else {
						_tmp5_ = FALSE;
					}
					if (_tmp5_) {
						gint _tmp19_ = 0;
						_tmp19_ = j;
						i = _tmp19_;
						break;
					}
				}
			}
		}
	}
	result = i;
	return result;
}


static void gxml_namespace_attr_node_list_real_insert (GeeList* base, gint index, GXmlNamespace* item) {
	GXmlNamespaceAttrNodeList * self;
	self = (GXmlNamespaceAttrNodeList*) base;
	g_return_if_fail (item != NULL);
	return;
}


static GeeListIterator* gxml_namespace_attr_node_list_real_list_iterator (GeeList* base) {
	GXmlNamespaceAttrNodeList * self;
	GeeListIterator* result = NULL;
	GXmlNamespaceAttrNodeListIterator* _tmp0_ = NULL;
	self = (GXmlNamespaceAttrNodeList*) base;
	_tmp0_ = gxml_namespace_attr_node_list_iterator_new (self);
	result = (GeeListIterator*) _tmp0_;
	return result;
}


static GXmlNamespace* gxml_namespace_attr_node_list_real_remove_at (GeeList* base, gint index) {
	GXmlNamespaceAttrNodeList * self;
	GXmlNamespace* result = NULL;
	gint _tmp0_ = 0;
	gpointer _tmp1_ = NULL;
	self = (GXmlNamespaceAttrNodeList*) base;
	_tmp0_ = index;
	_tmp1_ = gee_list_get ((GeeList*) self, _tmp0_);
	result = (GXmlNamespace*) _tmp1_;
	return result;
}


static void gxml_namespace_attr_node_list_real_set (GeeList* base, gint index, GXmlNamespace* item) {
	GXmlNamespaceAttrNodeList * self;
	self = (GXmlNamespaceAttrNodeList*) base;
	g_return_if_fail (item != NULL);
	return;
}


static GeeList* gxml_namespace_attr_node_list_real_slice (GeeList* base, gint start, gint stop) {
	GXmlNamespaceAttrNodeList * self;
	GeeList* result = NULL;
	self = (GXmlNamespaceAttrNodeList*) base;
	result = NULL;
	return result;
}


static GeeList* gxml_namespace_attr_node_list_real_get_read_only_view (GeeList* base) {
	GeeList* result;
	GXmlNamespaceAttrNodeList* self;
	GXmlBackedNode* _tmp0_ = NULL;
	GXmlNamespaceAttrNodeList* _tmp1_ = NULL;
	self = (GXmlNamespaceAttrNodeList*) base;
	_tmp0_ = ((GXmlAbstractNamespaceAttrNodeList*) self)->node;
	_tmp1_ = gxml_namespace_attr_node_list_new (_tmp0_);
	result = (GeeList*) _tmp1_;
	return result;
}


GXmlNamespaceAttrNodeListIterator* gxml_namespace_attr_node_list_iterator_construct (GType object_type, GXmlNamespaceAttrNodeList* l) {
	GXmlNamespaceAttrNodeListIterator * self = NULL;
	GXmlNamespaceAttrNodeList* _tmp0_ = NULL;
	g_return_val_if_fail (l != NULL, NULL);
	_tmp0_ = l;
	self = (GXmlNamespaceAttrNodeListIterator*) gxml_abstract_namespace_attr_node_list_iterator_construct (object_type, (GXmlAbstractNamespaceAttrNodeList*) _tmp0_);
	return self;
}


GXmlNamespaceAttrNodeListIterator* gxml_namespace_attr_node_list_iterator_new (GXmlNamespaceAttrNodeList* l) {
	return gxml_namespace_attr_node_list_iterator_construct (GXML_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR, l);
}


static void gxml_namespace_attr_node_list_iterator_real_add (GeeListIterator* base, GXmlNamespace* item) {
	GXmlNamespaceAttrNodeListIterator * self;
	self = (GXmlNamespaceAttrNodeListIterator*) base;
	g_return_if_fail (item != NULL);
	return;
}


static gint gxml_namespace_attr_node_list_iterator_real_index (GeeListIterator* base) {
	GXmlNamespaceAttrNodeListIterator * self;
	gint result = 0;
	gint _tmp0_ = 0;
	self = (GXmlNamespaceAttrNodeListIterator*) base;
	_tmp0_ = ((GXmlAbstractNamespaceAttrNodeListIterator*) self)->i;
	result = _tmp0_;
	return result;
}


static void gxml_namespace_attr_node_list_iterator_real_set (GeeListIterator* base, GXmlNamespace* item) {
	GXmlNamespaceAttrNodeListIterator * self;
	self = (GXmlNamespaceAttrNodeListIterator*) base;
	g_return_if_fail (item != NULL);
	return;
}


static void gxml_namespace_attr_node_list_iterator_class_init (GXmlNamespaceAttrNodeListIteratorClass * klass) {
	gxml_namespace_attr_node_list_iterator_parent_class = g_type_class_peek_parent (klass);
}


static void gxml_namespace_attr_node_list_iterator_gee_list_iterator_interface_init (GeeListIteratorIface * iface) {
	gxml_namespace_attr_node_list_iterator_gee_list_iterator_parent_iface = g_type_interface_peek_parent (iface);
	iface->add = (void (*)(GeeListIterator*, gconstpointer)) gxml_namespace_attr_node_list_iterator_real_add;
	iface->index = (gint (*)(GeeListIterator*)) gxml_namespace_attr_node_list_iterator_real_index;
	iface->set = (void (*)(GeeListIterator*, gconstpointer)) gxml_namespace_attr_node_list_iterator_real_set;
}


static void gxml_namespace_attr_node_list_iterator_instance_init (GXmlNamespaceAttrNodeListIterator * self) {
}


GType gxml_namespace_attr_node_list_iterator_get_type (void) {
	static volatile gsize gxml_namespace_attr_node_list_iterator_type_id__volatile = 0;
	if (g_once_init_enter (&gxml_namespace_attr_node_list_iterator_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GXmlNamespaceAttrNodeListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_namespace_attr_node_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlNamespaceAttrNodeListIterator), 0, (GInstanceInitFunc) gxml_namespace_attr_node_list_iterator_instance_init, NULL };
		static const GInterfaceInfo gee_list_iterator_info = { (GInterfaceInitFunc) gxml_namespace_attr_node_list_iterator_gee_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType gxml_namespace_attr_node_list_iterator_type_id;
		gxml_namespace_attr_node_list_iterator_type_id = g_type_register_static (GXML_ABSTRACT_NAMESPACE_ATTR_NODE_LIST_TYPE_ITERATOR, "GXmlNamespaceAttrNodeListIterator", &g_define_type_info, 0);
		g_type_add_interface_static (gxml_namespace_attr_node_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR, &gee_list_iterator_info);
		g_once_init_leave (&gxml_namespace_attr_node_list_iterator_type_id__volatile, gxml_namespace_attr_node_list_iterator_type_id);
	}
	return gxml_namespace_attr_node_list_iterator_type_id__volatile;
}


static void gxml_namespace_attr_node_list_class_init (GXmlNamespaceAttrNodeListClass * klass) {
	gxml_namespace_attr_node_list_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_namespace_attr_node_list_get_property;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_NAMESPACE_ATTR_NODE_LIST_READ_ONLY_VIEW, g_param_spec_object ("read-only-view", "read-only-view", "read-only-view", GEE_TYPE_LIST, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
}


static GType gxml_namespace_attr_node_list_gee_list_get_g_type (GXmlNamespaceAttrNodeList* self) {
	return GXML_TYPE_NAMESPACE;
}


static GBoxedCopyFunc gxml_namespace_attr_node_list_gee_list_get_g_dup_func (GXmlNamespaceAttrNodeList* self) {
	return g_object_ref;
}


static GDestroyNotify gxml_namespace_attr_node_list_gee_list_get_g_destroy_func (GXmlNamespaceAttrNodeList* self) {
	return g_object_unref;
}


static void gxml_namespace_attr_node_list_gee_list_interface_init (GeeListIface * iface) {
	gxml_namespace_attr_node_list_gee_list_parent_iface = g_type_interface_peek_parent (iface);
	iface->get = (gpointer (*)(GeeList*, gint)) gxml_namespace_attr_node_list_real_get;
	iface->index_of = (gint (*)(GeeList*, gconstpointer)) gxml_namespace_attr_node_list_real_index_of;
	iface->insert = (void (*)(GeeList*, gint, gconstpointer)) gxml_namespace_attr_node_list_real_insert;
	iface->list_iterator = (GeeListIterator* (*)(GeeList*)) gxml_namespace_attr_node_list_real_list_iterator;
	iface->remove_at = (gpointer (*)(GeeList*, gint)) gxml_namespace_attr_node_list_real_remove_at;
	iface->set = (void (*)(GeeList*, gint, gconstpointer)) gxml_namespace_attr_node_list_real_set;
	iface->slice = (GeeList* (*)(GeeList*, gint, gint)) gxml_namespace_attr_node_list_real_slice;
	iface->get_g_type = (GType(*)(GeeList*)) gxml_namespace_attr_node_list_gee_list_get_g_type;
	iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeList*)) gxml_namespace_attr_node_list_gee_list_get_g_dup_func;
	iface->get_g_destroy_func = (GDestroyNotify(*)(GeeList*)) gxml_namespace_attr_node_list_gee_list_get_g_destroy_func;
	iface->get_read_only_view = gxml_namespace_attr_node_list_real_get_read_only_view;
}


static void gxml_namespace_attr_node_list_instance_init (GXmlNamespaceAttrNodeList * self) {
}


GType gxml_namespace_attr_node_list_get_type (void) {
	static volatile gsize gxml_namespace_attr_node_list_type_id__volatile = 0;
	if (g_once_init_enter (&gxml_namespace_attr_node_list_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GXmlNamespaceAttrNodeListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_namespace_attr_node_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlNamespaceAttrNodeList), 0, (GInstanceInitFunc) gxml_namespace_attr_node_list_instance_init, NULL };
		static const GInterfaceInfo gee_list_info = { (GInterfaceInitFunc) gxml_namespace_attr_node_list_gee_list_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType gxml_namespace_attr_node_list_type_id;
		gxml_namespace_attr_node_list_type_id = g_type_register_static (GXML_TYPE_ABSTRACT_NAMESPACE_ATTR_NODE_LIST, "GXmlNamespaceAttrNodeList", &g_define_type_info, 0);
		g_type_add_interface_static (gxml_namespace_attr_node_list_type_id, GEE_TYPE_LIST, &gee_list_info);
		g_once_init_leave (&gxml_namespace_attr_node_list_type_id__volatile, gxml_namespace_attr_node_list_type_id);
	}
	return gxml_namespace_attr_node_list_type_id__volatile;
}


static void _vala_gxml_namespace_attr_node_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	GXmlNamespaceAttrNodeList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_NAMESPACE_ATTR_NODE_LIST, GXmlNamespaceAttrNodeList);
	switch (property_id) {
		case GXML_NAMESPACE_ATTR_NODE_LIST_READ_ONLY_VIEW:
		g_value_take_object (value, gee_list_get_read_only_view ((GeeList*) self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static gint _vala_array_length (gpointer array) {
	int length;
	length = 0;
	if (array) {
		while (((gpointer*) array)[length]) {
			length++;
		}
	}
	return length;
}



