/* IXsdSchema.c generated by valac 0.56.19, the Vala compiler
 * generated from IXsdSchema.vala, do not modify */

/* -*- Mode: vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
 *
 * Copyright (C) 2017  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 "gxml/gxml.h"
#include <glib.h>
#include <string.h>
#include "gxml.h"

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif

/**
 * XSD schema Error codes for {@link IXsdSchema} objects
 */

static GType gxml_ixsd_schema_get_type_once (void);
static GType gxml_ixsd_base_type_get_type_once (void);
static GType gxml_ixsd_simple_type_get_type_once (void);
static GType gxml_ixsd_type_def_get_type_once (void);
static GType gxml_ixsd_type_restriction_get_type_once (void);
static GType gxml_ixsd_type_list_get_type_once (void);
static GType gxml_ixsd_type_union_get_type_once (void);
static GType gxml_ixsd_type_restriction_def_get_type_once (void);
static GType gxml_ixsd_type_restriction_min_exclusive_get_type_once (void);
static GType gxml_ixsd_type_restriction_min_inclusive_get_type_once (void);
static GType gxml_ixsd_type_restriction_max_exclusive_get_type_once (void);
static GType gxml_ixsd_type_restriction_max_inclusive_get_type_once (void);
static GType gxml_ixsd_type_restriction_total_digits_get_type_once (void);
static GType gxml_ixsd_type_restriction_fraction_digits_get_type_once (void);
static GType gxml_ixsd_type_restriction_length_get_type_once (void);
static GType gxml_ixsd_type_restriction_min_length_get_type_once (void);
static GType gxml_ixsd_type_restriction_max_length_get_type_once (void);
static GType gxml_ixsd_type_restriction_enumeration_get_type_once (void);
static GType gxml_ixsd_type_restriction_white_space_get_type_once (void);
static GType gxml_ixsd_type_restriction_pattern_get_type_once (void);
static GType gxml_ixsd_type_restriction_assertion_get_type_once (void);
static GType gxml_ixsd_type_restriction_explicit_timezone_get_type_once (void);
static GType gxml_ixsd_complex_type_get_type_once (void);
static GType gxml_ixsd_extension_get_type_once (void);
static GType gxml_ixsd_element_get_type_once (void);
static GType gxml_ixsd_annotation_get_type_once (void);
static GType gxml_ixsd_base_content_get_type_once (void);
static GType gxml_ixsd_simple_content_get_type_once (void);
static GType gxml_ixsd_complex_content_get_type_once (void);
static GType gxml_ixsd_open_content_get_type_once (void);
static GType gxml_ixsd_base_attribute_get_type_once (void);
static GType gxml_ixsd_attribute_get_type_once (void);
static GType gxml_ixsd_attribute_group_get_type_once (void);
static GType gxml_ixsd_list_get_type_once (void);
static GType gxml_ixsd_list_elements_get_type_once (void);
static GType gxml_ixsd_list_simple_types_get_type_once (void);
static GType gxml_ixsd_list_complex_types_get_type_once (void);
static GType gxml_ixsd_list_attributes_get_type_once (void);
static GType gxml_ixsd_list_attributes_group_get_type_once (void);
static GType gxml_ixsd_list_type_restriction_enumerations_get_type_once (void);
static GType gxml_ixsd_list_type_restriction_white_spaces_get_type_once (void);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

GXmlIXsdListElements*
gxml_ixsd_schema_get_element_definitions (GXmlIXsdSchema* self)
{
	GXmlIXsdSchemaIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_SCHEMA_GET_INTERFACE (self);
	if (_iface_->get_element_definitions) {
		return _iface_->get_element_definitions (self);
	}
	return NULL;
}

void
gxml_ixsd_schema_set_element_definitions (GXmlIXsdSchema* self,
                                          GXmlIXsdListElements* value)
{
	GXmlIXsdSchemaIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_SCHEMA_GET_INTERFACE (self);
	if (_iface_->set_element_definitions) {
		_iface_->set_element_definitions (self, value);
	}
}

GXmlIXsdListSimpleTypes*
gxml_ixsd_schema_get_simple_type_definitions (GXmlIXsdSchema* self)
{
	GXmlIXsdSchemaIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_SCHEMA_GET_INTERFACE (self);
	if (_iface_->get_simple_type_definitions) {
		return _iface_->get_simple_type_definitions (self);
	}
	return NULL;
}

void
gxml_ixsd_schema_set_simple_type_definitions (GXmlIXsdSchema* self,
                                              GXmlIXsdListSimpleTypes* value)
{
	GXmlIXsdSchemaIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_SCHEMA_GET_INTERFACE (self);
	if (_iface_->set_simple_type_definitions) {
		_iface_->set_simple_type_definitions (self, value);
	}
}

GXmlIXsdListComplexTypes*
gxml_ixsd_schema_get_complex_type_definitions (GXmlIXsdSchema* self)
{
	GXmlIXsdSchemaIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_SCHEMA_GET_INTERFACE (self);
	if (_iface_->get_complex_type_definitions) {
		return _iface_->get_complex_type_definitions (self);
	}
	return NULL;
}

void
gxml_ixsd_schema_set_complex_type_definitions (GXmlIXsdSchema* self,
                                               GXmlIXsdListComplexTypes* value)
{
	GXmlIXsdSchemaIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_SCHEMA_GET_INTERFACE (self);
	if (_iface_->set_complex_type_definitions) {
		_iface_->set_complex_type_definitions (self, value);
	}
}

static void
gxml_ixsd_schema_default_init (GXmlIXsdSchemaIface * iface,
                               gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_object ("element-definitions", "element-definitions", "element-definitions", GXML_TYPE_IXSD_LIST_ELEMENTS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("simple-type-definitions", "simple-type-definitions", "simple-type-definitions", GXML_TYPE_IXSD_LIST_SIMPLE_TYPES, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("complex-type-definitions", "complex-type-definitions", "complex-type-definitions", GXML_TYPE_IXSD_LIST_COMPLEX_TYPES, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

/**
 * Reference interfaces for XSD support.
 */
static GType
gxml_ixsd_schema_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdSchemaIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_schema_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_schema_type_id;
	gxml_ixsd_schema_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdSchema", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_schema_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_schema_type_id, GXML_TYPE_DOM_ELEMENT);
	return gxml_ixsd_schema_type_id;
}

GType
gxml_ixsd_schema_get_type (void)
{
	static volatile gsize gxml_ixsd_schema_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_schema_type_id__once)) {
		GType gxml_ixsd_schema_type_id;
		gxml_ixsd_schema_type_id = gxml_ixsd_schema_get_type_once ();
		g_once_init_leave (&gxml_ixsd_schema_type_id__once, gxml_ixsd_schema_type_id);
	}
	return gxml_ixsd_schema_type_id__once;
}

GQuark
gxml_ixsd_schema_error_quark (void)
{
	return g_quark_from_static_string ("gxml-ixsd-schema-error-quark");
}

static GType
gxml_ixsd_schema_error_get_type_once (void)
{
	static const GEnumValue values[] = {{GXML_IXSD_SCHEMA_ERROR_INVALIDATION_ERROR, "GXML_IXSD_SCHEMA_ERROR_INVALIDATION_ERROR", "invalidation-error"}, {0, NULL, NULL}};
	GType gxml_ixsd_schema_error_type_id;
	gxml_ixsd_schema_error_type_id = g_enum_register_static ("GXmlIXsdSchemaError", values);
	return gxml_ixsd_schema_error_type_id;
}

GType
gxml_ixsd_schema_error_get_type (void)
{
	static volatile gsize gxml_ixsd_schema_error_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_schema_error_type_id__once)) {
		GType gxml_ixsd_schema_error_type_id;
		gxml_ixsd_schema_error_type_id = gxml_ixsd_schema_error_get_type_once ();
		g_once_init_leave (&gxml_ixsd_schema_error_type_id__once, gxml_ixsd_schema_error_type_id);
	}
	return gxml_ixsd_schema_error_type_id__once;
}

GXmlIXsdAnnotation*
gxml_ixsd_base_type_get_anotation (GXmlIXsdBaseType* self)
{
	GXmlIXsdBaseTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_BASE_TYPE_GET_INTERFACE (self);
	if (_iface_->get_anotation) {
		return _iface_->get_anotation (self);
	}
	return NULL;
}

void
gxml_ixsd_base_type_set_anotation (GXmlIXsdBaseType* self,
                                   GXmlIXsdAnnotation* value)
{
	GXmlIXsdBaseTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_BASE_TYPE_GET_INTERFACE (self);
	if (_iface_->set_anotation) {
		_iface_->set_anotation (self, value);
	}
}

static void
gxml_ixsd_base_type_default_init (GXmlIXsdBaseTypeIface * iface,
                                  gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_object ("anotation", "anotation", "anotation", GXML_TYPE_IXSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static GType
gxml_ixsd_base_type_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdBaseTypeIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_base_type_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_base_type_type_id;
	gxml_ixsd_base_type_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdBaseType", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_base_type_type_id, G_TYPE_OBJECT);
	return gxml_ixsd_base_type_type_id;
}

GType
gxml_ixsd_base_type_get_type (void)
{
	static volatile gsize gxml_ixsd_base_type_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_base_type_type_id__once)) {
		GType gxml_ixsd_base_type_type_id;
		gxml_ixsd_base_type_type_id = gxml_ixsd_base_type_get_type_once ();
		g_once_init_leave (&gxml_ixsd_base_type_type_id__once, gxml_ixsd_base_type_type_id);
	}
	return gxml_ixsd_base_type_type_id__once;
}

const gchar*
gxml_ixsd_simple_type_get_final (GXmlIXsdSimpleType* self)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->get_final) {
		return _iface_->get_final (self);
	}
	return NULL;
}

void
gxml_ixsd_simple_type_set_final (GXmlIXsdSimpleType* self,
                                 const gchar* value)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->set_final) {
		_iface_->set_final (self, value);
	}
}

const gchar*
gxml_ixsd_simple_type_get_id (GXmlIXsdSimpleType* self)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->get_id) {
		return _iface_->get_id (self);
	}
	return NULL;
}

void
gxml_ixsd_simple_type_set_id (GXmlIXsdSimpleType* self,
                              const gchar* value)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->set_id) {
		_iface_->set_id (self, value);
	}
}

const gchar*
gxml_ixsd_simple_type_get_name (GXmlIXsdSimpleType* self)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->get_name) {
		return _iface_->get_name (self);
	}
	return NULL;
}

void
gxml_ixsd_simple_type_set_name (GXmlIXsdSimpleType* self,
                                const gchar* value)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->set_name) {
		_iface_->set_name (self, value);
	}
}

GXmlIXsdAnnotation*
gxml_ixsd_simple_type_get_annotation (GXmlIXsdSimpleType* self)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->get_annotation) {
		return _iface_->get_annotation (self);
	}
	return NULL;
}

void
gxml_ixsd_simple_type_set_annotation (GXmlIXsdSimpleType* self,
                                      GXmlIXsdAnnotation* value)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->set_annotation) {
		_iface_->set_annotation (self, value);
	}
}

GXmlIXsdTypeList*
gxml_ixsd_simple_type_get_list (GXmlIXsdSimpleType* self)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->get_list) {
		return _iface_->get_list (self);
	}
	return NULL;
}

void
gxml_ixsd_simple_type_set_list (GXmlIXsdSimpleType* self,
                                GXmlIXsdTypeList* value)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->set_list) {
		_iface_->set_list (self, value);
	}
}

GXmlIXsdTypeUnion*
gxml_ixsd_simple_type_get_union (GXmlIXsdSimpleType* self)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->get_union) {
		return _iface_->get_union (self);
	}
	return NULL;
}

void
gxml_ixsd_simple_type_set_union (GXmlIXsdSimpleType* self,
                                 GXmlIXsdTypeUnion* value)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->set_union) {
		_iface_->set_union (self, value);
	}
}

GXmlIXsdTypeRestriction*
gxml_ixsd_simple_type_get_restriction (GXmlIXsdSimpleType* self)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->get_restriction) {
		return _iface_->get_restriction (self);
	}
	return NULL;
}

void
gxml_ixsd_simple_type_set_restriction (GXmlIXsdSimpleType* self,
                                       GXmlIXsdTypeRestriction* value)
{
	GXmlIXsdSimpleTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_SIMPLE_TYPE_GET_INTERFACE (self);
	if (_iface_->set_restriction) {
		_iface_->set_restriction (self, value);
	}
}

static void
gxml_ixsd_simple_type_default_init (GXmlIXsdSimpleTypeIface * iface,
                                    gpointer iface_data)
{
	/**
	   * (#all | List of (list | union | restriction | extension))
	   */
	g_object_interface_install_property (iface, g_param_spec_string ("final", "final", "final", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("annotation", "annotation", "annotation", GXML_TYPE_IXSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("list", "list", "list", GXML_TYPE_IXSD_TYPE_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("union", "union", "union", GXML_TYPE_IXSD_TYPE_UNION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("restriction", "restriction", "restriction", GXML_TYPE_IXSD_TYPE_RESTRICTION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static GType
gxml_ixsd_simple_type_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdSimpleTypeIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_simple_type_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_simple_type_type_id;
	gxml_ixsd_simple_type_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdSimpleType", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_simple_type_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_simple_type_type_id, GXML_TYPE_DOM_ELEMENT);
	g_type_interface_add_prerequisite (gxml_ixsd_simple_type_type_id, GXML_TYPE_IXSD_BASE_TYPE);
	return gxml_ixsd_simple_type_type_id;
}

GType
gxml_ixsd_simple_type_get_type (void)
{
	static volatile gsize gxml_ixsd_simple_type_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_simple_type_type_id__once)) {
		GType gxml_ixsd_simple_type_type_id;
		gxml_ixsd_simple_type_type_id = gxml_ixsd_simple_type_get_type_once ();
		g_once_init_leave (&gxml_ixsd_simple_type_type_id__once, gxml_ixsd_simple_type_type_id);
	}
	return gxml_ixsd_simple_type_type_id__once;
}

static void
gxml_ixsd_type_def_default_init (GXmlIXsdTypeDefIface * iface,
                                 gpointer iface_data)
{
}

static GType
gxml_ixsd_type_def_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeDefIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_def_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_def_type_id;
	gxml_ixsd_type_def_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeDef", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_def_type_id, G_TYPE_OBJECT);
	return gxml_ixsd_type_def_type_id;
}

GType
gxml_ixsd_type_def_get_type (void)
{
	static volatile gsize gxml_ixsd_type_def_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_def_type_id__once)) {
		GType gxml_ixsd_type_def_type_id;
		gxml_ixsd_type_def_type_id = gxml_ixsd_type_def_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_def_type_id__once, gxml_ixsd_type_def_type_id);
	}
	return gxml_ixsd_type_def_type_id__once;
}

const gchar*
gxml_ixsd_type_restriction_get_base (GXmlIXsdTypeRestriction* self)
{
	GXmlIXsdTypeRestrictionIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_GET_INTERFACE (self);
	if (_iface_->get_base) {
		return _iface_->get_base (self);
	}
	return NULL;
}

void
gxml_ixsd_type_restriction_set_base (GXmlIXsdTypeRestriction* self,
                                     const gchar* value)
{
	GXmlIXsdTypeRestrictionIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_GET_INTERFACE (self);
	if (_iface_->set_base) {
		_iface_->set_base (self, value);
	}
}

const gchar*
gxml_ixsd_type_restriction_get_id (GXmlIXsdTypeRestriction* self)
{
	GXmlIXsdTypeRestrictionIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_GET_INTERFACE (self);
	if (_iface_->get_id) {
		return _iface_->get_id (self);
	}
	return NULL;
}

void
gxml_ixsd_type_restriction_set_id (GXmlIXsdTypeRestriction* self,
                                   const gchar* value)
{
	GXmlIXsdTypeRestrictionIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_GET_INTERFACE (self);
	if (_iface_->set_id) {
		_iface_->set_id (self, value);
	}
}

GXmlIXsdSimpleType*
gxml_ixsd_type_restriction_get_simple_type (GXmlIXsdTypeRestriction* self)
{
	GXmlIXsdTypeRestrictionIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_GET_INTERFACE (self);
	if (_iface_->get_simple_type) {
		return _iface_->get_simple_type (self);
	}
	return NULL;
}

void
gxml_ixsd_type_restriction_set_simple_type (GXmlIXsdTypeRestriction* self,
                                            GXmlIXsdSimpleType* value)
{
	GXmlIXsdTypeRestrictionIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_GET_INTERFACE (self);
	if (_iface_->set_simple_type) {
		_iface_->set_simple_type (self, value);
	}
}

GXmlIXsdListTypeRestrictionEnumerations*
gxml_ixsd_type_restriction_get_enumerations (GXmlIXsdTypeRestriction* self)
{
	GXmlIXsdTypeRestrictionIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_GET_INTERFACE (self);
	if (_iface_->get_enumerations) {
		return _iface_->get_enumerations (self);
	}
	return NULL;
}

void
gxml_ixsd_type_restriction_set_enumerations (GXmlIXsdTypeRestriction* self,
                                             GXmlIXsdListTypeRestrictionEnumerations* value)
{
	GXmlIXsdTypeRestrictionIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_GET_INTERFACE (self);
	if (_iface_->set_enumerations) {
		_iface_->set_enumerations (self, value);
	}
}

GXmlIXsdListTypeRestrictionWhiteSpaces*
gxml_ixsd_type_restriction_get_white_spaces (GXmlIXsdTypeRestriction* self)
{
	GXmlIXsdTypeRestrictionIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_GET_INTERFACE (self);
	if (_iface_->get_white_spaces) {
		return _iface_->get_white_spaces (self);
	}
	return NULL;
}

void
gxml_ixsd_type_restriction_set_white_spaces (GXmlIXsdTypeRestriction* self,
                                             GXmlIXsdListTypeRestrictionWhiteSpaces* value)
{
	GXmlIXsdTypeRestrictionIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_GET_INTERFACE (self);
	if (_iface_->set_white_spaces) {
		_iface_->set_white_spaces (self, value);
	}
}

static void
gxml_ixsd_type_restriction_default_init (GXmlIXsdTypeRestrictionIface * iface,
                                         gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_string ("base", "base", "base", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("simple-type", "simple-type", "simple-type", GXML_TYPE_IXSD_SIMPLE_TYPE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("enumerations", "enumerations", "enumerations", GXML_TYPE_IXSD_LIST_TYPE_RESTRICTION_ENUMERATIONS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("white-spaces", "white-spaces", "white-spaces", GXML_TYPE_IXSD_LIST_TYPE_RESTRICTION_WHITE_SPACES, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static GType
gxml_ixsd_type_restriction_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_type_id;
	gxml_ixsd_type_restriction_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestriction", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_type_id, GXML_TYPE_IXSD_TYPE_DEF);
	return gxml_ixsd_type_restriction_type_id;
}

GType
gxml_ixsd_type_restriction_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_type_id__once)) {
		GType gxml_ixsd_type_restriction_type_id;
		gxml_ixsd_type_restriction_type_id = gxml_ixsd_type_restriction_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_type_id__once, gxml_ixsd_type_restriction_type_id);
	}
	return gxml_ixsd_type_restriction_type_id__once;
}

static void
gxml_ixsd_type_list_default_init (GXmlIXsdTypeListIface * iface,
                                  gpointer iface_data)
{
}

static GType
gxml_ixsd_type_list_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeListIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_list_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_list_type_id;
	gxml_ixsd_type_list_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeList", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_list_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_list_type_id, GXML_TYPE_IXSD_TYPE_DEF);
	return gxml_ixsd_type_list_type_id;
}

GType
gxml_ixsd_type_list_get_type (void)
{
	static volatile gsize gxml_ixsd_type_list_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_list_type_id__once)) {
		GType gxml_ixsd_type_list_type_id;
		gxml_ixsd_type_list_type_id = gxml_ixsd_type_list_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_list_type_id__once, gxml_ixsd_type_list_type_id);
	}
	return gxml_ixsd_type_list_type_id__once;
}

static void
gxml_ixsd_type_union_default_init (GXmlIXsdTypeUnionIface * iface,
                                   gpointer iface_data)
{
}

static GType
gxml_ixsd_type_union_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeUnionIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_union_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_union_type_id;
	gxml_ixsd_type_union_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeUnion", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_union_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_union_type_id, GXML_TYPE_IXSD_TYPE_DEF);
	return gxml_ixsd_type_union_type_id;
}

GType
gxml_ixsd_type_union_get_type (void)
{
	static volatile gsize gxml_ixsd_type_union_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_union_type_id__once)) {
		GType gxml_ixsd_type_union_type_id;
		gxml_ixsd_type_union_type_id = gxml_ixsd_type_union_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_union_type_id__once, gxml_ixsd_type_union_type_id);
	}
	return gxml_ixsd_type_union_type_id__once;
}

GXmlIXsdAnnotation*
gxml_ixsd_type_restriction_def_get_annotation (GXmlIXsdTypeRestrictionDef* self)
{
	GXmlIXsdTypeRestrictionDefIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_DEF_GET_INTERFACE (self);
	if (_iface_->get_annotation) {
		return _iface_->get_annotation (self);
	}
	return NULL;
}

void
gxml_ixsd_type_restriction_def_set_annotation (GXmlIXsdTypeRestrictionDef* self,
                                               GXmlIXsdAnnotation* value)
{
	GXmlIXsdTypeRestrictionDefIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_DEF_GET_INTERFACE (self);
	if (_iface_->set_annotation) {
		_iface_->set_annotation (self, value);
	}
}

static void
gxml_ixsd_type_restriction_def_default_init (GXmlIXsdTypeRestrictionDefIface * iface,
                                             gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_object ("annotation", "annotation", "annotation", GXML_TYPE_IXSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static GType
gxml_ixsd_type_restriction_def_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionDefIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_def_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_def_type_id;
	gxml_ixsd_type_restriction_def_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionDef", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_def_type_id, G_TYPE_OBJECT);
	return gxml_ixsd_type_restriction_def_type_id;
}

GType
gxml_ixsd_type_restriction_def_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_def_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_def_type_id__once)) {
		GType gxml_ixsd_type_restriction_def_type_id;
		gxml_ixsd_type_restriction_def_type_id = gxml_ixsd_type_restriction_def_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_def_type_id__once, gxml_ixsd_type_restriction_def_type_id);
	}
	return gxml_ixsd_type_restriction_def_type_id__once;
}

static void
gxml_ixsd_type_restriction_min_exclusive_default_init (GXmlIXsdTypeRestrictionMinExclusiveIface * iface,
                                                       gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_min_exclusive_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionMinExclusiveIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_min_exclusive_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_min_exclusive_type_id;
	gxml_ixsd_type_restriction_min_exclusive_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionMinExclusive", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_min_exclusive_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_min_exclusive_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_min_exclusive_type_id;
}

GType
gxml_ixsd_type_restriction_min_exclusive_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_min_exclusive_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_min_exclusive_type_id__once)) {
		GType gxml_ixsd_type_restriction_min_exclusive_type_id;
		gxml_ixsd_type_restriction_min_exclusive_type_id = gxml_ixsd_type_restriction_min_exclusive_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_min_exclusive_type_id__once, gxml_ixsd_type_restriction_min_exclusive_type_id);
	}
	return gxml_ixsd_type_restriction_min_exclusive_type_id__once;
}

static void
gxml_ixsd_type_restriction_min_inclusive_default_init (GXmlIXsdTypeRestrictionMinInclusiveIface * iface,
                                                       gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_min_inclusive_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionMinInclusiveIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_min_inclusive_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_min_inclusive_type_id;
	gxml_ixsd_type_restriction_min_inclusive_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionMinInclusive", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_min_inclusive_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_min_inclusive_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_min_inclusive_type_id;
}

GType
gxml_ixsd_type_restriction_min_inclusive_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_min_inclusive_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_min_inclusive_type_id__once)) {
		GType gxml_ixsd_type_restriction_min_inclusive_type_id;
		gxml_ixsd_type_restriction_min_inclusive_type_id = gxml_ixsd_type_restriction_min_inclusive_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_min_inclusive_type_id__once, gxml_ixsd_type_restriction_min_inclusive_type_id);
	}
	return gxml_ixsd_type_restriction_min_inclusive_type_id__once;
}

static void
gxml_ixsd_type_restriction_max_exclusive_default_init (GXmlIXsdTypeRestrictionMaxExclusiveIface * iface,
                                                       gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_max_exclusive_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionMaxExclusiveIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_max_exclusive_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_max_exclusive_type_id;
	gxml_ixsd_type_restriction_max_exclusive_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionMaxExclusive", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_max_exclusive_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_max_exclusive_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_max_exclusive_type_id;
}

GType
gxml_ixsd_type_restriction_max_exclusive_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_max_exclusive_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_max_exclusive_type_id__once)) {
		GType gxml_ixsd_type_restriction_max_exclusive_type_id;
		gxml_ixsd_type_restriction_max_exclusive_type_id = gxml_ixsd_type_restriction_max_exclusive_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_max_exclusive_type_id__once, gxml_ixsd_type_restriction_max_exclusive_type_id);
	}
	return gxml_ixsd_type_restriction_max_exclusive_type_id__once;
}

static void
gxml_ixsd_type_restriction_max_inclusive_default_init (GXmlIXsdTypeRestrictionMaxInclusiveIface * iface,
                                                       gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_max_inclusive_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionMaxInclusiveIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_max_inclusive_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_max_inclusive_type_id;
	gxml_ixsd_type_restriction_max_inclusive_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionMaxInclusive", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_max_inclusive_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_max_inclusive_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_max_inclusive_type_id;
}

GType
gxml_ixsd_type_restriction_max_inclusive_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_max_inclusive_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_max_inclusive_type_id__once)) {
		GType gxml_ixsd_type_restriction_max_inclusive_type_id;
		gxml_ixsd_type_restriction_max_inclusive_type_id = gxml_ixsd_type_restriction_max_inclusive_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_max_inclusive_type_id__once, gxml_ixsd_type_restriction_max_inclusive_type_id);
	}
	return gxml_ixsd_type_restriction_max_inclusive_type_id__once;
}

static void
gxml_ixsd_type_restriction_total_digits_default_init (GXmlIXsdTypeRestrictionTotalDigitsIface * iface,
                                                      gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_total_digits_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionTotalDigitsIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_total_digits_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_total_digits_type_id;
	gxml_ixsd_type_restriction_total_digits_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionTotalDigits", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_total_digits_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_total_digits_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_total_digits_type_id;
}

GType
gxml_ixsd_type_restriction_total_digits_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_total_digits_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_total_digits_type_id__once)) {
		GType gxml_ixsd_type_restriction_total_digits_type_id;
		gxml_ixsd_type_restriction_total_digits_type_id = gxml_ixsd_type_restriction_total_digits_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_total_digits_type_id__once, gxml_ixsd_type_restriction_total_digits_type_id);
	}
	return gxml_ixsd_type_restriction_total_digits_type_id__once;
}

static void
gxml_ixsd_type_restriction_fraction_digits_default_init (GXmlIXsdTypeRestrictionFractionDigitsIface * iface,
                                                         gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_fraction_digits_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionFractionDigitsIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_fraction_digits_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_fraction_digits_type_id;
	gxml_ixsd_type_restriction_fraction_digits_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionFractionDigits", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_fraction_digits_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_fraction_digits_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_fraction_digits_type_id;
}

GType
gxml_ixsd_type_restriction_fraction_digits_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_fraction_digits_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_fraction_digits_type_id__once)) {
		GType gxml_ixsd_type_restriction_fraction_digits_type_id;
		gxml_ixsd_type_restriction_fraction_digits_type_id = gxml_ixsd_type_restriction_fraction_digits_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_fraction_digits_type_id__once, gxml_ixsd_type_restriction_fraction_digits_type_id);
	}
	return gxml_ixsd_type_restriction_fraction_digits_type_id__once;
}

static void
gxml_ixsd_type_restriction_length_default_init (GXmlIXsdTypeRestrictionLengthIface * iface,
                                                gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_length_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionLengthIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_length_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_length_type_id;
	gxml_ixsd_type_restriction_length_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionLength", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_length_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_length_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_length_type_id;
}

GType
gxml_ixsd_type_restriction_length_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_length_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_length_type_id__once)) {
		GType gxml_ixsd_type_restriction_length_type_id;
		gxml_ixsd_type_restriction_length_type_id = gxml_ixsd_type_restriction_length_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_length_type_id__once, gxml_ixsd_type_restriction_length_type_id);
	}
	return gxml_ixsd_type_restriction_length_type_id__once;
}

static void
gxml_ixsd_type_restriction_min_length_default_init (GXmlIXsdTypeRestrictionMinLengthIface * iface,
                                                    gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_min_length_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionMinLengthIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_min_length_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_min_length_type_id;
	gxml_ixsd_type_restriction_min_length_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionMinLength", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_min_length_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_min_length_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_min_length_type_id;
}

GType
gxml_ixsd_type_restriction_min_length_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_min_length_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_min_length_type_id__once)) {
		GType gxml_ixsd_type_restriction_min_length_type_id;
		gxml_ixsd_type_restriction_min_length_type_id = gxml_ixsd_type_restriction_min_length_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_min_length_type_id__once, gxml_ixsd_type_restriction_min_length_type_id);
	}
	return gxml_ixsd_type_restriction_min_length_type_id__once;
}

static void
gxml_ixsd_type_restriction_max_length_default_init (GXmlIXsdTypeRestrictionMaxLengthIface * iface,
                                                    gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_max_length_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionMaxLengthIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_max_length_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_max_length_type_id;
	gxml_ixsd_type_restriction_max_length_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionMaxLength", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_max_length_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_max_length_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_max_length_type_id;
}

GType
gxml_ixsd_type_restriction_max_length_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_max_length_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_max_length_type_id__once)) {
		GType gxml_ixsd_type_restriction_max_length_type_id;
		gxml_ixsd_type_restriction_max_length_type_id = gxml_ixsd_type_restriction_max_length_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_max_length_type_id__once, gxml_ixsd_type_restriction_max_length_type_id);
	}
	return gxml_ixsd_type_restriction_max_length_type_id__once;
}

const gchar*
gxml_ixsd_type_restriction_enumeration_get_id (GXmlIXsdTypeRestrictionEnumeration* self)
{
	GXmlIXsdTypeRestrictionEnumerationIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_ENUMERATION_GET_INTERFACE (self);
	if (_iface_->get_id) {
		return _iface_->get_id (self);
	}
	return NULL;
}

void
gxml_ixsd_type_restriction_enumeration_set_id (GXmlIXsdTypeRestrictionEnumeration* self,
                                               const gchar* value)
{
	GXmlIXsdTypeRestrictionEnumerationIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_ENUMERATION_GET_INTERFACE (self);
	if (_iface_->set_id) {
		_iface_->set_id (self, value);
	}
}

const gchar*
gxml_ixsd_type_restriction_enumeration_get_value (GXmlIXsdTypeRestrictionEnumeration* self)
{
	GXmlIXsdTypeRestrictionEnumerationIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_ENUMERATION_GET_INTERFACE (self);
	if (_iface_->get_value) {
		return _iface_->get_value (self);
	}
	return NULL;
}

void
gxml_ixsd_type_restriction_enumeration_set_value (GXmlIXsdTypeRestrictionEnumeration* self,
                                                  const gchar* value)
{
	GXmlIXsdTypeRestrictionEnumerationIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_ENUMERATION_GET_INTERFACE (self);
	if (_iface_->set_value) {
		_iface_->set_value (self, value);
	}
}

static void
gxml_ixsd_type_restriction_enumeration_default_init (GXmlIXsdTypeRestrictionEnumerationIface * iface,
                                                     gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("value", "value", "value", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static GType
gxml_ixsd_type_restriction_enumeration_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionEnumerationIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_enumeration_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_enumeration_type_id;
	gxml_ixsd_type_restriction_enumeration_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionEnumeration", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_enumeration_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_enumeration_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_enumeration_type_id;
}

GType
gxml_ixsd_type_restriction_enumeration_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_enumeration_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_enumeration_type_id__once)) {
		GType gxml_ixsd_type_restriction_enumeration_type_id;
		gxml_ixsd_type_restriction_enumeration_type_id = gxml_ixsd_type_restriction_enumeration_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_enumeration_type_id__once, gxml_ixsd_type_restriction_enumeration_type_id);
	}
	return gxml_ixsd_type_restriction_enumeration_type_id__once;
}

gboolean
gxml_ixsd_type_restriction_white_space_get_fixed (GXmlIXsdTypeRestrictionWhiteSpace* self)
{
	GXmlIXsdTypeRestrictionWhiteSpaceIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_WHITE_SPACE_GET_INTERFACE (self);
	if (_iface_->get_fixed) {
		return _iface_->get_fixed (self);
	}
	return FALSE;
}

void
gxml_ixsd_type_restriction_white_space_set_fixed (GXmlIXsdTypeRestrictionWhiteSpace* self,
                                                  gboolean value)
{
	GXmlIXsdTypeRestrictionWhiteSpaceIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_WHITE_SPACE_GET_INTERFACE (self);
	if (_iface_->set_fixed) {
		_iface_->set_fixed (self, value);
	}
}

const gchar*
gxml_ixsd_type_restriction_white_space_get_id (GXmlIXsdTypeRestrictionWhiteSpace* self)
{
	GXmlIXsdTypeRestrictionWhiteSpaceIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_WHITE_SPACE_GET_INTERFACE (self);
	if (_iface_->get_id) {
		return _iface_->get_id (self);
	}
	return NULL;
}

void
gxml_ixsd_type_restriction_white_space_set_id (GXmlIXsdTypeRestrictionWhiteSpace* self,
                                               const gchar* value)
{
	GXmlIXsdTypeRestrictionWhiteSpaceIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_WHITE_SPACE_GET_INTERFACE (self);
	if (_iface_->set_id) {
		_iface_->set_id (self, value);
	}
}

const gchar*
gxml_ixsd_type_restriction_white_space_get_value (GXmlIXsdTypeRestrictionWhiteSpace* self)
{
	GXmlIXsdTypeRestrictionWhiteSpaceIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_WHITE_SPACE_GET_INTERFACE (self);
	if (_iface_->get_value) {
		return _iface_->get_value (self);
	}
	return NULL;
}

void
gxml_ixsd_type_restriction_white_space_set_value (GXmlIXsdTypeRestrictionWhiteSpace* self,
                                                  const gchar* value)
{
	GXmlIXsdTypeRestrictionWhiteSpaceIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_TYPE_RESTRICTION_WHITE_SPACE_GET_INTERFACE (self);
	if (_iface_->set_value) {
		_iface_->set_value (self, value);
	}
}

static void
gxml_ixsd_type_restriction_white_space_default_init (GXmlIXsdTypeRestrictionWhiteSpaceIface * iface,
                                                     gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_boolean ("fixed", "fixed", "fixed", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * (collapse | preserve | replace)
	   */
	g_object_interface_install_property (iface, g_param_spec_string ("value", "value", "value", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static GType
gxml_ixsd_type_restriction_white_space_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionWhiteSpaceIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_white_space_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_white_space_type_id;
	gxml_ixsd_type_restriction_white_space_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionWhiteSpace", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_white_space_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_white_space_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_white_space_type_id;
}

GType
gxml_ixsd_type_restriction_white_space_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_white_space_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_white_space_type_id__once)) {
		GType gxml_ixsd_type_restriction_white_space_type_id;
		gxml_ixsd_type_restriction_white_space_type_id = gxml_ixsd_type_restriction_white_space_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_white_space_type_id__once, gxml_ixsd_type_restriction_white_space_type_id);
	}
	return gxml_ixsd_type_restriction_white_space_type_id__once;
}

static void
gxml_ixsd_type_restriction_pattern_default_init (GXmlIXsdTypeRestrictionPatternIface * iface,
                                                 gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_pattern_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionPatternIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_pattern_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_pattern_type_id;
	gxml_ixsd_type_restriction_pattern_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionPattern", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_pattern_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_pattern_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_pattern_type_id;
}

GType
gxml_ixsd_type_restriction_pattern_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_pattern_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_pattern_type_id__once)) {
		GType gxml_ixsd_type_restriction_pattern_type_id;
		gxml_ixsd_type_restriction_pattern_type_id = gxml_ixsd_type_restriction_pattern_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_pattern_type_id__once, gxml_ixsd_type_restriction_pattern_type_id);
	}
	return gxml_ixsd_type_restriction_pattern_type_id__once;
}

static void
gxml_ixsd_type_restriction_assertion_default_init (GXmlIXsdTypeRestrictionAssertionIface * iface,
                                                   gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_assertion_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionAssertionIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_assertion_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_assertion_type_id;
	gxml_ixsd_type_restriction_assertion_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionAssertion", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_assertion_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_assertion_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_assertion_type_id;
}

GType
gxml_ixsd_type_restriction_assertion_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_assertion_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_assertion_type_id__once)) {
		GType gxml_ixsd_type_restriction_assertion_type_id;
		gxml_ixsd_type_restriction_assertion_type_id = gxml_ixsd_type_restriction_assertion_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_assertion_type_id__once, gxml_ixsd_type_restriction_assertion_type_id);
	}
	return gxml_ixsd_type_restriction_assertion_type_id__once;
}

static void
gxml_ixsd_type_restriction_explicit_timezone_default_init (GXmlIXsdTypeRestrictionExplicitTimezoneIface * iface,
                                                           gpointer iface_data)
{
}

static GType
gxml_ixsd_type_restriction_explicit_timezone_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdTypeRestrictionExplicitTimezoneIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_type_restriction_explicit_timezone_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_type_restriction_explicit_timezone_type_id;
	gxml_ixsd_type_restriction_explicit_timezone_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdTypeRestrictionExplicitTimezone", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_explicit_timezone_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_type_restriction_explicit_timezone_type_id, GXML_TYPE_IXSD_TYPE_RESTRICTION_DEF);
	return gxml_ixsd_type_restriction_explicit_timezone_type_id;
}

GType
gxml_ixsd_type_restriction_explicit_timezone_get_type (void)
{
	static volatile gsize gxml_ixsd_type_restriction_explicit_timezone_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_type_restriction_explicit_timezone_type_id__once)) {
		GType gxml_ixsd_type_restriction_explicit_timezone_type_id;
		gxml_ixsd_type_restriction_explicit_timezone_type_id = gxml_ixsd_type_restriction_explicit_timezone_get_type_once ();
		g_once_init_leave (&gxml_ixsd_type_restriction_explicit_timezone_type_id__once, gxml_ixsd_type_restriction_explicit_timezone_type_id);
	}
	return gxml_ixsd_type_restriction_explicit_timezone_type_id__once;
}

gboolean
gxml_ixsd_complex_type_get_abstract (GXmlIXsdComplexType* self)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->get_abstract) {
		return _iface_->get_abstract (self);
	}
	return FALSE;
}

void
gxml_ixsd_complex_type_set_abstract (GXmlIXsdComplexType* self,
                                     gboolean value)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->set_abstract) {
		_iface_->set_abstract (self, value);
	}
}

const gchar*
gxml_ixsd_complex_type_get_block (GXmlIXsdComplexType* self)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->get_block) {
		return _iface_->get_block (self);
	}
	return NULL;
}

void
gxml_ixsd_complex_type_set_block (GXmlIXsdComplexType* self,
                                  const gchar* value)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->set_block) {
		_iface_->set_block (self, value);
	}
}

const gchar*
gxml_ixsd_complex_type_get_final (GXmlIXsdComplexType* self)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->get_final) {
		return _iface_->get_final (self);
	}
	return NULL;
}

void
gxml_ixsd_complex_type_set_final (GXmlIXsdComplexType* self,
                                  const gchar* value)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->set_final) {
		_iface_->set_final (self, value);
	}
}

gboolean
gxml_ixsd_complex_type_get_mixed (GXmlIXsdComplexType* self)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->get_mixed) {
		return _iface_->get_mixed (self);
	}
	return FALSE;
}

void
gxml_ixsd_complex_type_set_mixed (GXmlIXsdComplexType* self,
                                  gboolean value)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->set_mixed) {
		_iface_->set_mixed (self, value);
	}
}

const gchar*
gxml_ixsd_complex_type_get_name (GXmlIXsdComplexType* self)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->get_name) {
		return _iface_->get_name (self);
	}
	return NULL;
}

void
gxml_ixsd_complex_type_set_name (GXmlIXsdComplexType* self,
                                 const gchar* value)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->set_name) {
		_iface_->set_name (self, value);
	}
}

gboolean
gxml_ixsd_complex_type_get_default_attributes_apply (GXmlIXsdComplexType* self)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->get_default_attributes_apply) {
		return _iface_->get_default_attributes_apply (self);
	}
	return FALSE;
}

void
gxml_ixsd_complex_type_set_default_attributes_apply (GXmlIXsdComplexType* self,
                                                     gboolean value)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->set_default_attributes_apply) {
		_iface_->set_default_attributes_apply (self, value);
	}
}

GXmlIXsdBaseContent*
gxml_ixsd_complex_type_get_content_type (GXmlIXsdComplexType* self)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->get_content_type) {
		return _iface_->get_content_type (self);
	}
	return NULL;
}

void
gxml_ixsd_complex_type_set_content_type (GXmlIXsdComplexType* self,
                                         GXmlIXsdBaseContent* value)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->set_content_type) {
		_iface_->set_content_type (self, value);
	}
}

GXmlIXsdListAttributes*
gxml_ixsd_complex_type_get_type_attributes (GXmlIXsdComplexType* self)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->get_type_attributes) {
		return _iface_->get_type_attributes (self);
	}
	return NULL;
}

GXmlIXsdListAttributesGroup*
gxml_ixsd_complex_type_get_group_attributes (GXmlIXsdComplexType* self)
{
	GXmlIXsdComplexTypeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_COMPLEX_TYPE_GET_INTERFACE (self);
	if (_iface_->get_group_attributes) {
		return _iface_->get_group_attributes (self);
	}
	return NULL;
}

static void
gxml_ixsd_complex_type_default_init (GXmlIXsdComplexTypeIface * iface,
                                     gpointer iface_data)
{
	/**
	  * attribute name = abstract
	  */
	g_object_interface_install_property (iface, g_param_spec_boolean ("abstract", "abstract", "abstract", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	  * (#all | List of (extension | restriction))
	  */
	g_object_interface_install_property (iface, g_param_spec_string ("block", "block", "block", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	  * (#all | List of (extension | restriction))
	  */
	g_object_interface_install_property (iface, g_param_spec_string ("final", "final", "final", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_boolean ("mixed", "mixed", "mixed", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * defaultAttributesApply
	   */
	g_object_interface_install_property (iface, g_param_spec_boolean ("default-attributes-apply", "default-attributes-apply", "default-attributes-apply", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * A {@link IXsdComplexType} or {@link IXsdSimpleType}
	   */
	g_object_interface_install_property (iface, g_param_spec_object ("content-type", "content-type", "content-type", GXML_TYPE_IXSD_BASE_CONTENT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * List of {@link IXsdAttribute} definitions
	   */
	g_object_interface_install_property (iface, g_param_spec_object ("type-attributes", "type-attributes", "type-attributes", GXML_TYPE_IXSD_LIST_ATTRIBUTES, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	/**
	   * List of {@link IXsdAttributeGroup} definitions
	   */
	g_object_interface_install_property (iface, g_param_spec_object ("group-attributes", "group-attributes", "group-attributes", GXML_TYPE_IXSD_LIST_ATTRIBUTES_GROUP, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static GType
gxml_ixsd_complex_type_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdComplexTypeIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_complex_type_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_complex_type_type_id;
	gxml_ixsd_complex_type_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdComplexType", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_complex_type_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_complex_type_type_id, GXML_TYPE_DOM_ELEMENT);
	g_type_interface_add_prerequisite (gxml_ixsd_complex_type_type_id, GXML_TYPE_IXSD_BASE_TYPE);
	return gxml_ixsd_complex_type_type_id;
}

GType
gxml_ixsd_complex_type_get_type (void)
{
	static volatile gsize gxml_ixsd_complex_type_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_complex_type_type_id__once)) {
		GType gxml_ixsd_complex_type_type_id;
		gxml_ixsd_complex_type_type_id = gxml_ixsd_complex_type_get_type_once ();
		g_once_init_leave (&gxml_ixsd_complex_type_type_id__once, gxml_ixsd_complex_type_type_id);
	}
	return gxml_ixsd_complex_type_type_id__once;
}

const gchar*
gxml_ixsd_extension_get_base (GXmlIXsdExtension* self)
{
	GXmlIXsdExtensionIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_EXTENSION_GET_INTERFACE (self);
	if (_iface_->get_base) {
		return _iface_->get_base (self);
	}
	return NULL;
}

void
gxml_ixsd_extension_set_base (GXmlIXsdExtension* self,
                              const gchar* value)
{
	GXmlIXsdExtensionIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_EXTENSION_GET_INTERFACE (self);
	if (_iface_->set_base) {
		_iface_->set_base (self, value);
	}
}

static void
gxml_ixsd_extension_default_init (GXmlIXsdExtensionIface * iface,
                                  gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_string ("base", "base", "base", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static GType
gxml_ixsd_extension_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdExtensionIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_extension_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_extension_type_id;
	gxml_ixsd_extension_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdExtension", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_extension_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_extension_type_id, GXML_TYPE_DOM_ELEMENT);
	return gxml_ixsd_extension_type_id;
}

GType
gxml_ixsd_extension_get_type (void)
{
	static volatile gsize gxml_ixsd_extension_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_extension_type_id__once)) {
		GType gxml_ixsd_extension_type_id;
		gxml_ixsd_extension_type_id = gxml_ixsd_extension_get_type_once ();
		g_once_init_leave (&gxml_ixsd_extension_type_id__once, gxml_ixsd_extension_type_id);
	}
	return gxml_ixsd_extension_type_id__once;
}

gboolean
gxml_ixsd_element_get_abstract (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_abstract) {
		return _iface_->get_abstract (self);
	}
	return FALSE;
}

void
gxml_ixsd_element_set_abstract (GXmlIXsdElement* self,
                                gboolean value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_abstract) {
		_iface_->set_abstract (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_block (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_block) {
		return _iface_->get_block (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_block (GXmlIXsdElement* self,
                             const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_block) {
		_iface_->set_block (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_default (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_default) {
		return _iface_->get_default (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_default (GXmlIXsdElement* self,
                               const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_default) {
		_iface_->set_default (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_final (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_final) {
		return _iface_->get_final (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_final (GXmlIXsdElement* self,
                             const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_final) {
		_iface_->set_final (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_fixed (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_fixed) {
		return _iface_->get_fixed (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_fixed (GXmlIXsdElement* self,
                             const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_fixed) {
		_iface_->set_fixed (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_form (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_form) {
		return _iface_->get_form (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_form (GXmlIXsdElement* self,
                            const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_form) {
		_iface_->set_form (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_id (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_id) {
		return _iface_->get_id (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_id (GXmlIXsdElement* self,
                          const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_id) {
		_iface_->set_id (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_maxOccurs (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_maxOccurs) {
		return _iface_->get_maxOccurs (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_maxOccurs (GXmlIXsdElement* self,
                                 const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_maxOccurs) {
		_iface_->set_maxOccurs (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_minOccurs (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_minOccurs) {
		return _iface_->get_minOccurs (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_minOccurs (GXmlIXsdElement* self,
                                 const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_minOccurs) {
		_iface_->set_minOccurs (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_name (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_name) {
		return _iface_->get_name (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_name (GXmlIXsdElement* self,
                            const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_name) {
		_iface_->set_name (self, value);
	}
}

gboolean
gxml_ixsd_element_get_nillable (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_nillable) {
		return _iface_->get_nillable (self);
	}
	return FALSE;
}

void
gxml_ixsd_element_set_nillable (GXmlIXsdElement* self,
                                gboolean value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_nillable) {
		_iface_->set_nillable (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_ref (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_ref) {
		return _iface_->get_ref (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_ref (GXmlIXsdElement* self,
                           const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_ref) {
		_iface_->set_ref (self, value);
	}
}

GXmlDomTokenList*
gxml_ixsd_element_get_substitution_group (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_substitution_group) {
		return _iface_->get_substitution_group (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_substitution_group (GXmlIXsdElement* self,
                                          GXmlDomTokenList* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_substitution_group) {
		_iface_->set_substitution_group (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_target_namespace (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_target_namespace) {
		return _iface_->get_target_namespace (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_target_namespace (GXmlIXsdElement* self,
                                        const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_target_namespace) {
		_iface_->set_target_namespace (self, value);
	}
}

const gchar*
gxml_ixsd_element_get_object_type (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_object_type) {
		return _iface_->get_object_type (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_object_type (GXmlIXsdElement* self,
                                   const gchar* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_object_type) {
		_iface_->set_object_type (self, value);
	}
}

GXmlIXsdAnnotation*
gxml_ixsd_element_get_anotation (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_anotation) {
		return _iface_->get_anotation (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_anotation (GXmlIXsdElement* self,
                                 GXmlIXsdAnnotation* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_anotation) {
		_iface_->set_anotation (self, value);
	}
}

GXmlIXsdSimpleType*
gxml_ixsd_element_get_simple_type (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_simple_type) {
		return _iface_->get_simple_type (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_simple_type (GXmlIXsdElement* self,
                                   GXmlIXsdSimpleType* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_simple_type) {
		_iface_->set_simple_type (self, value);
	}
}

GXmlIXsdComplexType*
gxml_ixsd_element_get_complex_type (GXmlIXsdElement* self)
{
	GXmlIXsdElementIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->get_complex_type) {
		return _iface_->get_complex_type (self);
	}
	return NULL;
}

void
gxml_ixsd_element_set_complex_type (GXmlIXsdElement* self,
                                    GXmlIXsdComplexType* value)
{
	GXmlIXsdElementIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_ELEMENT_GET_INTERFACE (self);
	if (_iface_->set_complex_type) {
		_iface_->set_complex_type (self, value);
	}
}

static void
gxml_ixsd_element_default_init (GXmlIXsdElementIface * iface,
                                gpointer iface_data)
{
	/**
	  * attribute name = abstract
	  */
	g_object_interface_install_property (iface, g_param_spec_boolean ("abstract", "abstract", "abstract", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * (#all | List of (extension | restriction | substitution))
	  */
	g_object_interface_install_property (iface, g_param_spec_string ("block", "block", "block", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("default", "default", "default", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * (#all | List of (extension | restriction))
	   */
	g_object_interface_install_property (iface, g_param_spec_string ("final", "final", "final", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("fixed", "fixed", "fixed", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * (qualified | unqualified)
	   */
	g_object_interface_install_property (iface, g_param_spec_string ("form", "form", "form", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * (nonNegativeInteger | unbounded)  : 1
	   */
	g_object_interface_install_property (iface, g_param_spec_string ("maxOccurs", "maxOccurs", "maxOccurs", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * nonNegativeInteger : 1
	   */
	g_object_interface_install_property (iface, g_param_spec_string ("minOccurs", "minOccurs", "minOccurs", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_boolean ("nillable", "nillable", "nillable", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("ref", "ref", "ref", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * substitutionGroup
	   */
	g_object_interface_install_property (iface, g_param_spec_object ("substitution-group", "substitution-group", "substitution-group", GXML_TYPE_DOM_TOKEN_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * targetNamespace
	   */
	g_object_interface_install_property (iface, g_param_spec_string ("target-namespace", "target-namespace", "target-namespace", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * attribute name = 'type'
	   */
	g_object_interface_install_property (iface, g_param_spec_string ("object-type", "object-type", "object-type", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("anotation", "anotation", "anotation", GXML_TYPE_IXSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("simple-type", "simple-type", "simple-type", GXML_TYPE_IXSD_SIMPLE_TYPE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("complex-type", "complex-type", "complex-type", GXML_TYPE_IXSD_COMPLEX_TYPE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static GType
gxml_ixsd_element_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdElementIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_element_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_element_type_id;
	gxml_ixsd_element_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdElement", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_element_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_element_type_id, GXML_TYPE_DOM_ELEMENT);
	return gxml_ixsd_element_type_id;
}

GType
gxml_ixsd_element_get_type (void)
{
	static volatile gsize gxml_ixsd_element_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_element_type_id__once)) {
		GType gxml_ixsd_element_type_id;
		gxml_ixsd_element_type_id = gxml_ixsd_element_get_type_once ();
		g_once_init_leave (&gxml_ixsd_element_type_id__once, gxml_ixsd_element_type_id);
	}
	return gxml_ixsd_element_type_id__once;
}

static void
gxml_ixsd_annotation_default_init (GXmlIXsdAnnotationIface * iface,
                                   gpointer iface_data)
{
}

static GType
gxml_ixsd_annotation_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdAnnotationIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_annotation_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_annotation_type_id;
	gxml_ixsd_annotation_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdAnnotation", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_annotation_type_id, G_TYPE_OBJECT);
	return gxml_ixsd_annotation_type_id;
}

GType
gxml_ixsd_annotation_get_type (void)
{
	static volatile gsize gxml_ixsd_annotation_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_annotation_type_id__once)) {
		GType gxml_ixsd_annotation_type_id;
		gxml_ixsd_annotation_type_id = gxml_ixsd_annotation_get_type_once ();
		g_once_init_leave (&gxml_ixsd_annotation_type_id__once, gxml_ixsd_annotation_type_id);
	}
	return gxml_ixsd_annotation_type_id__once;
}

GXmlIXsdAnnotation*
gxml_ixsd_base_content_get_anotation (GXmlIXsdBaseContent* self)
{
	GXmlIXsdBaseContentIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_BASE_CONTENT_GET_INTERFACE (self);
	if (_iface_->get_anotation) {
		return _iface_->get_anotation (self);
	}
	return NULL;
}

void
gxml_ixsd_base_content_set_anotation (GXmlIXsdBaseContent* self,
                                      GXmlIXsdAnnotation* value)
{
	GXmlIXsdBaseContentIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_BASE_CONTENT_GET_INTERFACE (self);
	if (_iface_->set_anotation) {
		_iface_->set_anotation (self, value);
	}
}

static void
gxml_ixsd_base_content_default_init (GXmlIXsdBaseContentIface * iface,
                                     gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_object ("anotation", "anotation", "anotation", GXML_TYPE_IXSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static GType
gxml_ixsd_base_content_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdBaseContentIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_base_content_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_base_content_type_id;
	gxml_ixsd_base_content_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdBaseContent", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_base_content_type_id, G_TYPE_OBJECT);
	return gxml_ixsd_base_content_type_id;
}

GType
gxml_ixsd_base_content_get_type (void)
{
	static volatile gsize gxml_ixsd_base_content_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_base_content_type_id__once)) {
		GType gxml_ixsd_base_content_type_id;
		gxml_ixsd_base_content_type_id = gxml_ixsd_base_content_get_type_once ();
		g_once_init_leave (&gxml_ixsd_base_content_type_id__once, gxml_ixsd_base_content_type_id);
	}
	return gxml_ixsd_base_content_type_id__once;
}

static void
gxml_ixsd_simple_content_default_init (GXmlIXsdSimpleContentIface * iface,
                                       gpointer iface_data)
{
}

static GType
gxml_ixsd_simple_content_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdSimpleContentIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_simple_content_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_simple_content_type_id;
	gxml_ixsd_simple_content_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdSimpleContent", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_simple_content_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_simple_content_type_id, GXML_TYPE_IXSD_BASE_CONTENT);
	return gxml_ixsd_simple_content_type_id;
}

GType
gxml_ixsd_simple_content_get_type (void)
{
	static volatile gsize gxml_ixsd_simple_content_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_simple_content_type_id__once)) {
		GType gxml_ixsd_simple_content_type_id;
		gxml_ixsd_simple_content_type_id = gxml_ixsd_simple_content_get_type_once ();
		g_once_init_leave (&gxml_ixsd_simple_content_type_id__once, gxml_ixsd_simple_content_type_id);
	}
	return gxml_ixsd_simple_content_type_id__once;
}

static void
gxml_ixsd_complex_content_default_init (GXmlIXsdComplexContentIface * iface,
                                        gpointer iface_data)
{
}

static GType
gxml_ixsd_complex_content_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdComplexContentIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_complex_content_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_complex_content_type_id;
	gxml_ixsd_complex_content_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdComplexContent", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_complex_content_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_complex_content_type_id, GXML_TYPE_IXSD_BASE_CONTENT);
	return gxml_ixsd_complex_content_type_id;
}

GType
gxml_ixsd_complex_content_get_type (void)
{
	static volatile gsize gxml_ixsd_complex_content_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_complex_content_type_id__once)) {
		GType gxml_ixsd_complex_content_type_id;
		gxml_ixsd_complex_content_type_id = gxml_ixsd_complex_content_get_type_once ();
		g_once_init_leave (&gxml_ixsd_complex_content_type_id__once, gxml_ixsd_complex_content_type_id);
	}
	return gxml_ixsd_complex_content_type_id__once;
}

static void
gxml_ixsd_open_content_default_init (GXmlIXsdOpenContentIface * iface,
                                     gpointer iface_data)
{
}

static GType
gxml_ixsd_open_content_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdOpenContentIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_open_content_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_open_content_type_id;
	gxml_ixsd_open_content_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdOpenContent", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_open_content_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_open_content_type_id, GXML_TYPE_IXSD_BASE_CONTENT);
	return gxml_ixsd_open_content_type_id;
}

GType
gxml_ixsd_open_content_get_type (void)
{
	static volatile gsize gxml_ixsd_open_content_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_open_content_type_id__once)) {
		GType gxml_ixsd_open_content_type_id;
		gxml_ixsd_open_content_type_id = gxml_ixsd_open_content_get_type_once ();
		g_once_init_leave (&gxml_ixsd_open_content_type_id__once, gxml_ixsd_open_content_type_id);
	}
	return gxml_ixsd_open_content_type_id__once;
}

GXmlIXsdAnnotation*
gxml_ixsd_base_attribute_get_anotation (GXmlIXsdBaseAttribute* self)
{
	GXmlIXsdBaseAttributeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_BASE_ATTRIBUTE_GET_INTERFACE (self);
	if (_iface_->get_anotation) {
		return _iface_->get_anotation (self);
	}
	return NULL;
}

void
gxml_ixsd_base_attribute_set_anotation (GXmlIXsdBaseAttribute* self,
                                        GXmlIXsdAnnotation* value)
{
	GXmlIXsdBaseAttributeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_BASE_ATTRIBUTE_GET_INTERFACE (self);
	if (_iface_->set_anotation) {
		_iface_->set_anotation (self, value);
	}
}

static void
gxml_ixsd_base_attribute_default_init (GXmlIXsdBaseAttributeIface * iface,
                                       gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_object ("anotation", "anotation", "anotation", GXML_TYPE_IXSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static GType
gxml_ixsd_base_attribute_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdBaseAttributeIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_base_attribute_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_base_attribute_type_id;
	gxml_ixsd_base_attribute_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdBaseAttribute", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_base_attribute_type_id, G_TYPE_OBJECT);
	return gxml_ixsd_base_attribute_type_id;
}

GType
gxml_ixsd_base_attribute_get_type (void)
{
	static volatile gsize gxml_ixsd_base_attribute_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_base_attribute_type_id__once)) {
		GType gxml_ixsd_base_attribute_type_id;
		gxml_ixsd_base_attribute_type_id = gxml_ixsd_base_attribute_get_type_once ();
		g_once_init_leave (&gxml_ixsd_base_attribute_type_id__once, gxml_ixsd_base_attribute_type_id);
	}
	return gxml_ixsd_base_attribute_type_id__once;
}

static void
gxml_ixsd_attribute_default_init (GXmlIXsdAttributeIface * iface,
                                  gpointer iface_data)
{
}

static GType
gxml_ixsd_attribute_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdAttributeIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_attribute_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_attribute_type_id;
	gxml_ixsd_attribute_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdAttribute", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_attribute_type_id, G_TYPE_OBJECT);
	return gxml_ixsd_attribute_type_id;
}

GType
gxml_ixsd_attribute_get_type (void)
{
	static volatile gsize gxml_ixsd_attribute_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_attribute_type_id__once)) {
		GType gxml_ixsd_attribute_type_id;
		gxml_ixsd_attribute_type_id = gxml_ixsd_attribute_get_type_once ();
		g_once_init_leave (&gxml_ixsd_attribute_type_id__once, gxml_ixsd_attribute_type_id);
	}
	return gxml_ixsd_attribute_type_id__once;
}

static void
gxml_ixsd_attribute_group_default_init (GXmlIXsdAttributeGroupIface * iface,
                                        gpointer iface_data)
{
}

static GType
gxml_ixsd_attribute_group_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdAttributeGroupIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_attribute_group_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_attribute_group_type_id;
	gxml_ixsd_attribute_group_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdAttributeGroup", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_attribute_group_type_id, G_TYPE_OBJECT);
	return gxml_ixsd_attribute_group_type_id;
}

GType
gxml_ixsd_attribute_group_get_type (void)
{
	static volatile gsize gxml_ixsd_attribute_group_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_attribute_group_type_id__once)) {
		GType gxml_ixsd_attribute_group_type_id;
		gxml_ixsd_attribute_group_type_id = gxml_ixsd_attribute_group_get_type_once ();
		g_once_init_leave (&gxml_ixsd_attribute_group_type_id__once, gxml_ixsd_attribute_group_type_id);
	}
	return gxml_ixsd_attribute_group_type_id__once;
}

GXmlDomElement*
gxml_ixsd_list_get_element (GXmlIXsdList* self)
{
	GXmlIXsdListIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_LIST_GET_INTERFACE (self);
	if (_iface_->get_element) {
		return _iface_->get_element (self);
	}
	return NULL;
}

void
gxml_ixsd_list_set_element (GXmlIXsdList* self,
                            GXmlDomElement* value)
{
	GXmlIXsdListIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_LIST_GET_INTERFACE (self);
	if (_iface_->set_element) {
		_iface_->set_element (self, value);
	}
}

GType
gxml_ixsd_list_get_items_type (GXmlIXsdList* self)
{
	GXmlIXsdListIface* _iface_;
	g_return_val_if_fail (self != NULL, G_TYPE_INVALID);
	_iface_ = GXML_IXSD_LIST_GET_INTERFACE (self);
	if (_iface_->get_items_type) {
		return _iface_->get_items_type (self);
	}
	return G_TYPE_INVALID;
}

void
gxml_ixsd_list_set_items_type (GXmlIXsdList* self,
                               GType value)
{
	GXmlIXsdListIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_LIST_GET_INTERFACE (self);
	if (_iface_->set_items_type) {
		_iface_->set_items_type (self, value);
	}
}

GType
gxml_ixsd_list_get_items_name (GXmlIXsdList* self)
{
	GXmlIXsdListIface* _iface_;
	g_return_val_if_fail (self != NULL, G_TYPE_INVALID);
	_iface_ = GXML_IXSD_LIST_GET_INTERFACE (self);
	if (_iface_->get_items_name) {
		return _iface_->get_items_name (self);
	}
	return G_TYPE_INVALID;
}

void
gxml_ixsd_list_set_items_name (GXmlIXsdList* self,
                               GType value)
{
	GXmlIXsdListIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_LIST_GET_INTERFACE (self);
	if (_iface_->set_items_name) {
		_iface_->set_items_name (self, value);
	}
}

gint
gxml_ixsd_list_get_length (GXmlIXsdList* self)
{
	GXmlIXsdListIface* _iface_;
	g_return_val_if_fail (self != NULL, -1);
	_iface_ = GXML_IXSD_LIST_GET_INTERFACE (self);
	if (_iface_->get_length) {
		return _iface_->get_length (self);
	}
	return -1;
}

GXmlDomElement*
gxml_ixsd_list_get_item (GXmlIXsdList* self,
                         gint index)
{
	GXmlIXsdListIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_IXSD_LIST_GET_INTERFACE (self);
	if (_iface_->get_item) {
		return _iface_->get_item (self, index);
	}
	return NULL;
}

void
gxml_ixsd_list_append (GXmlIXsdList* self,
                       GXmlDomElement* element)
{
	GXmlIXsdListIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_LIST_GET_INTERFACE (self);
	if (_iface_->append) {
		_iface_->append (self, element);
	}
}

void
gxml_ixsd_list_remove (GXmlIXsdList* self,
                       gint index)
{
	GXmlIXsdListIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_IXSD_LIST_GET_INTERFACE (self);
	if (_iface_->remove) {
		_iface_->remove (self, index);
	}
}

gint
gxml_ixsd_list_index_of (GXmlIXsdList* self,
                         GXmlDomElement* element)
{
	GXmlIXsdListIface* _iface_;
	g_return_val_if_fail (self != NULL, -1);
	_iface_ = GXML_IXSD_LIST_GET_INTERFACE (self);
	if (_iface_->index_of) {
		return _iface_->index_of (self, element);
	}
	return -1;
}

static void
gxml_ixsd_list_default_init (GXmlIXsdListIface * iface,
                             gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_object ("element", "element", "element", GXML_TYPE_DOM_ELEMENT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
	g_object_interface_install_property (iface, g_param_spec_gtype ("items-type", "items-type", "items-type", G_TYPE_NONE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
	g_object_interface_install_property (iface, g_param_spec_gtype ("items-name", "items-name", "items-name", G_TYPE_NONE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
	g_object_interface_install_property (iface, g_param_spec_int ("length", "length", "length", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static GType
gxml_ixsd_list_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdListIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_list_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_list_type_id;
	gxml_ixsd_list_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdList", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_list_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_list_type_id, GXML_TYPE_COLLECTION);
	return gxml_ixsd_list_type_id;
}

GType
gxml_ixsd_list_get_type (void)
{
	static volatile gsize gxml_ixsd_list_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_list_type_id__once)) {
		GType gxml_ixsd_list_type_id;
		gxml_ixsd_list_type_id = gxml_ixsd_list_get_type_once ();
		g_once_init_leave (&gxml_ixsd_list_type_id__once, gxml_ixsd_list_type_id);
	}
	return gxml_ixsd_list_type_id__once;
}

static void
gxml_ixsd_list_elements_default_init (GXmlIXsdListElementsIface * iface,
                                      gpointer iface_data)
{
}

static GType
gxml_ixsd_list_elements_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdListElementsIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_list_elements_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_list_elements_type_id;
	gxml_ixsd_list_elements_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdListElements", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_list_elements_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_list_elements_type_id, GXML_TYPE_IXSD_LIST);
	return gxml_ixsd_list_elements_type_id;
}

GType
gxml_ixsd_list_elements_get_type (void)
{
	static volatile gsize gxml_ixsd_list_elements_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_list_elements_type_id__once)) {
		GType gxml_ixsd_list_elements_type_id;
		gxml_ixsd_list_elements_type_id = gxml_ixsd_list_elements_get_type_once ();
		g_once_init_leave (&gxml_ixsd_list_elements_type_id__once, gxml_ixsd_list_elements_type_id);
	}
	return gxml_ixsd_list_elements_type_id__once;
}

static void
gxml_ixsd_list_simple_types_default_init (GXmlIXsdListSimpleTypesIface * iface,
                                          gpointer iface_data)
{
}

static GType
gxml_ixsd_list_simple_types_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdListSimpleTypesIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_list_simple_types_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_list_simple_types_type_id;
	gxml_ixsd_list_simple_types_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdListSimpleTypes", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_list_simple_types_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_list_simple_types_type_id, GXML_TYPE_IXSD_LIST);
	return gxml_ixsd_list_simple_types_type_id;
}

GType
gxml_ixsd_list_simple_types_get_type (void)
{
	static volatile gsize gxml_ixsd_list_simple_types_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_list_simple_types_type_id__once)) {
		GType gxml_ixsd_list_simple_types_type_id;
		gxml_ixsd_list_simple_types_type_id = gxml_ixsd_list_simple_types_get_type_once ();
		g_once_init_leave (&gxml_ixsd_list_simple_types_type_id__once, gxml_ixsd_list_simple_types_type_id);
	}
	return gxml_ixsd_list_simple_types_type_id__once;
}

static void
gxml_ixsd_list_complex_types_default_init (GXmlIXsdListComplexTypesIface * iface,
                                           gpointer iface_data)
{
}

static GType
gxml_ixsd_list_complex_types_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdListComplexTypesIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_list_complex_types_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_list_complex_types_type_id;
	gxml_ixsd_list_complex_types_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdListComplexTypes", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_list_complex_types_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_list_complex_types_type_id, GXML_TYPE_IXSD_LIST);
	return gxml_ixsd_list_complex_types_type_id;
}

GType
gxml_ixsd_list_complex_types_get_type (void)
{
	static volatile gsize gxml_ixsd_list_complex_types_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_list_complex_types_type_id__once)) {
		GType gxml_ixsd_list_complex_types_type_id;
		gxml_ixsd_list_complex_types_type_id = gxml_ixsd_list_complex_types_get_type_once ();
		g_once_init_leave (&gxml_ixsd_list_complex_types_type_id__once, gxml_ixsd_list_complex_types_type_id);
	}
	return gxml_ixsd_list_complex_types_type_id__once;
}

static void
gxml_ixsd_list_attributes_default_init (GXmlIXsdListAttributesIface * iface,
                                        gpointer iface_data)
{
}

static GType
gxml_ixsd_list_attributes_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdListAttributesIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_list_attributes_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_list_attributes_type_id;
	gxml_ixsd_list_attributes_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdListAttributes", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_list_attributes_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_list_attributes_type_id, GXML_TYPE_IXSD_LIST);
	return gxml_ixsd_list_attributes_type_id;
}

GType
gxml_ixsd_list_attributes_get_type (void)
{
	static volatile gsize gxml_ixsd_list_attributes_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_list_attributes_type_id__once)) {
		GType gxml_ixsd_list_attributes_type_id;
		gxml_ixsd_list_attributes_type_id = gxml_ixsd_list_attributes_get_type_once ();
		g_once_init_leave (&gxml_ixsd_list_attributes_type_id__once, gxml_ixsd_list_attributes_type_id);
	}
	return gxml_ixsd_list_attributes_type_id__once;
}

static void
gxml_ixsd_list_attributes_group_default_init (GXmlIXsdListAttributesGroupIface * iface,
                                              gpointer iface_data)
{
}

static GType
gxml_ixsd_list_attributes_group_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdListAttributesGroupIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_list_attributes_group_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_list_attributes_group_type_id;
	gxml_ixsd_list_attributes_group_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdListAttributesGroup", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_list_attributes_group_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_list_attributes_group_type_id, GXML_TYPE_IXSD_LIST);
	return gxml_ixsd_list_attributes_group_type_id;
}

GType
gxml_ixsd_list_attributes_group_get_type (void)
{
	static volatile gsize gxml_ixsd_list_attributes_group_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_list_attributes_group_type_id__once)) {
		GType gxml_ixsd_list_attributes_group_type_id;
		gxml_ixsd_list_attributes_group_type_id = gxml_ixsd_list_attributes_group_get_type_once ();
		g_once_init_leave (&gxml_ixsd_list_attributes_group_type_id__once, gxml_ixsd_list_attributes_group_type_id);
	}
	return gxml_ixsd_list_attributes_group_type_id__once;
}

static void
gxml_ixsd_list_type_restriction_enumerations_default_init (GXmlIXsdListTypeRestrictionEnumerationsIface * iface,
                                                           gpointer iface_data)
{
}

static GType
gxml_ixsd_list_type_restriction_enumerations_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdListTypeRestrictionEnumerationsIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_list_type_restriction_enumerations_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_list_type_restriction_enumerations_type_id;
	gxml_ixsd_list_type_restriction_enumerations_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdListTypeRestrictionEnumerations", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_list_type_restriction_enumerations_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_list_type_restriction_enumerations_type_id, GXML_TYPE_IXSD_LIST);
	return gxml_ixsd_list_type_restriction_enumerations_type_id;
}

GType
gxml_ixsd_list_type_restriction_enumerations_get_type (void)
{
	static volatile gsize gxml_ixsd_list_type_restriction_enumerations_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_list_type_restriction_enumerations_type_id__once)) {
		GType gxml_ixsd_list_type_restriction_enumerations_type_id;
		gxml_ixsd_list_type_restriction_enumerations_type_id = gxml_ixsd_list_type_restriction_enumerations_get_type_once ();
		g_once_init_leave (&gxml_ixsd_list_type_restriction_enumerations_type_id__once, gxml_ixsd_list_type_restriction_enumerations_type_id);
	}
	return gxml_ixsd_list_type_restriction_enumerations_type_id__once;
}

static void
gxml_ixsd_list_type_restriction_white_spaces_default_init (GXmlIXsdListTypeRestrictionWhiteSpacesIface * iface,
                                                           gpointer iface_data)
{
}

static GType
gxml_ixsd_list_type_restriction_white_spaces_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlIXsdListTypeRestrictionWhiteSpacesIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_ixsd_list_type_restriction_white_spaces_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_ixsd_list_type_restriction_white_spaces_type_id;
	gxml_ixsd_list_type_restriction_white_spaces_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlIXsdListTypeRestrictionWhiteSpaces", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_ixsd_list_type_restriction_white_spaces_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_ixsd_list_type_restriction_white_spaces_type_id, GXML_TYPE_IXSD_LIST);
	return gxml_ixsd_list_type_restriction_white_spaces_type_id;
}

GType
gxml_ixsd_list_type_restriction_white_spaces_get_type (void)
{
	static volatile gsize gxml_ixsd_list_type_restriction_white_spaces_type_id__once = 0;
	if (g_once_init_enter (&gxml_ixsd_list_type_restriction_white_spaces_type_id__once)) {
		GType gxml_ixsd_list_type_restriction_white_spaces_type_id;
		gxml_ixsd_list_type_restriction_white_spaces_type_id = gxml_ixsd_list_type_restriction_white_spaces_get_type_once ();
		g_once_init_leave (&gxml_ixsd_list_type_restriction_white_spaces_type_id__once, gxml_ixsd_list_type_restriction_white_spaces_type_id);
	}
	return gxml_ixsd_list_type_restriction_white_spaces_type_id__once;
}

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

