/* XsdSchema.c generated by valac 0.56.19, the Vala compiler
 * generated from XsdSchema.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 <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.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

enum  {
	GXML_XSD_SCHEMA_0_PROPERTY,
	GXML_XSD_SCHEMA_ELEMENT_DEFINITIONS_PROPERTY,
	GXML_XSD_SCHEMA_SIMPLE_TYPE_DEFINITIONS_PROPERTY,
	GXML_XSD_SCHEMA_COMPLEX_TYPE_DEFINITIONS_PROPERTY,
	GXML_XSD_SCHEMA_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_schema_properties[GXML_XSD_SCHEMA_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
enum  {
	GXML_XSD_SIMPLE_TYPE_0_PROPERTY,
	GXML_XSD_SIMPLE_TYPE_FINAL_PROPERTY,
	GXML_XSD_SIMPLE_TYPE_NAME_PROPERTY,
	GXML_XSD_SIMPLE_TYPE_ANNOTATION_PROPERTY,
	GXML_XSD_SIMPLE_TYPE_LIST_PROPERTY,
	GXML_XSD_SIMPLE_TYPE_UNION_PROPERTY,
	GXML_XSD_SIMPLE_TYPE_RESTRICTION_PROPERTY,
	GXML_XSD_SIMPLE_TYPE_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
enum  {
	GXML_XSD_TYPE_DEFINITION_0_PROPERTY,
	GXML_XSD_TYPE_DEFINITION_ANNOTATION_PROPERTY,
	GXML_XSD_TYPE_DEFINITION_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_definition_properties[GXML_XSD_TYPE_DEFINITION_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_LIST_0_PROPERTY,
	GXML_XSD_TYPE_LIST_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_list_properties[GXML_XSD_TYPE_LIST_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_UNION_0_PROPERTY,
	GXML_XSD_TYPE_UNION_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_union_properties[GXML_XSD_TYPE_UNION_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_BASE_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_SIMPLE_TYPE_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_ENUMERATIONS_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_WHITE_SPACES_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_properties[GXML_XSD_TYPE_RESTRICTION_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_DEF_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_DEF_ANNOTATION_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_DEF_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_def_properties[GXML_XSD_TYPE_RESTRICTION_DEF_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_MIN_EXCLUSIVE_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_MIN_EXCLUSIVE_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_min_exclusive_properties[GXML_XSD_TYPE_RESTRICTION_MIN_EXCLUSIVE_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_MIN_INCLUSIVE_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_MIN_INCLUSIVE_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_min_inclusive_properties[GXML_XSD_TYPE_RESTRICTION_MIN_INCLUSIVE_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_MAX_EXCLUSIVE_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_MAX_EXCLUSIVE_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_max_exclusive_properties[GXML_XSD_TYPE_RESTRICTION_MAX_EXCLUSIVE_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_MAX_INCLUSIVE_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_MAX_INCLUSIVE_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_max_inclusive_properties[GXML_XSD_TYPE_RESTRICTION_MAX_INCLUSIVE_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_TOTAL_DIGITS_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_TOTAL_DIGITS_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_total_digits_properties[GXML_XSD_TYPE_RESTRICTION_TOTAL_DIGITS_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_FRACTION_DIGITS_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_FRACTION_DIGITS_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_fraction_digits_properties[GXML_XSD_TYPE_RESTRICTION_FRACTION_DIGITS_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_LENGTH_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_LENGTH_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_length_properties[GXML_XSD_TYPE_RESTRICTION_LENGTH_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_MIN_LENGTH_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_MIN_LENGTH_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_min_length_properties[GXML_XSD_TYPE_RESTRICTION_MIN_LENGTH_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_MAX_LENGTH_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_MAX_LENGTH_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_max_length_properties[GXML_XSD_TYPE_RESTRICTION_MAX_LENGTH_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_ENUMERATION_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_ENUMERATION_VALUE_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_ENUMERATION_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_enumeration_properties[GXML_XSD_TYPE_RESTRICTION_ENUMERATION_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_FIXED_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_VALUE_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_white_space_properties[GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_FIXED_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_FIXED_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_white_space_fixed_properties[GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_FIXED_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_PATTERN_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_PATTERN_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_pattern_properties[GXML_XSD_TYPE_RESTRICTION_PATTERN_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_ASSERTION_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_ASSERTION_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_assertion_properties[GXML_XSD_TYPE_RESTRICTION_ASSERTION_NUM_PROPERTIES];
enum  {
	GXML_XSD_TYPE_RESTRICTION_EXPLICIT_TIMEZONE_0_PROPERTY,
	GXML_XSD_TYPE_RESTRICTION_EXPLICIT_TIMEZONE_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_type_restriction_explicit_timezone_properties[GXML_XSD_TYPE_RESTRICTION_EXPLICIT_TIMEZONE_NUM_PROPERTIES];
enum  {
	GXML_XSD_COMPLEX_TYPE_0_PROPERTY,
	GXML_XSD_COMPLEX_TYPE_ABSTRACT_PROPERTY,
	GXML_XSD_COMPLEX_TYPE_BLOCK_PROPERTY,
	GXML_XSD_COMPLEX_TYPE_FINAL_PROPERTY,
	GXML_XSD_COMPLEX_TYPE_MIXED_PROPERTY,
	GXML_XSD_COMPLEX_TYPE_NAME_PROPERTY,
	GXML_XSD_COMPLEX_TYPE_DEFAULT_ATTRIBUTES_APPLY_PROPERTY,
	GXML_XSD_COMPLEX_TYPE_CONTENT_TYPE_PROPERTY,
	GXML_XSD_COMPLEX_TYPE_TYPE_ATTRIBUTES_PROPERTY,
	GXML_XSD_COMPLEX_TYPE_GROUP_ATTRIBUTES_PROPERTY,
	GXML_XSD_COMPLEX_TYPE_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_NUM_PROPERTIES];
enum  {
	GXML_XSD_EXTENSION_0_PROPERTY,
	GXML_XSD_EXTENSION_BASE_PROPERTY,
	GXML_XSD_EXTENSION_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_extension_properties[GXML_XSD_EXTENSION_NUM_PROPERTIES];
enum  {
	GXML_XSD_ELEMENT_0_PROPERTY,
	GXML_XSD_ELEMENT_ABSTRACT_PROPERTY,
	GXML_XSD_ELEMENT_BLOCK_PROPERTY,
	GXML_XSD_ELEMENT_DEFAULT_PROPERTY,
	GXML_XSD_ELEMENT_FINAL_PROPERTY,
	GXML_XSD_ELEMENT_FIXED_PROPERTY,
	GXML_XSD_ELEMENT_FORM_PROPERTY,
	GXML_XSD_ELEMENT_MAX_OCCURS_PROPERTY,
	GXML_XSD_ELEMENT_MIN_OCCURS_PROPERTY,
	GXML_XSD_ELEMENT_NAME_PROPERTY,
	GXML_XSD_ELEMENT_NILLABLE_PROPERTY,
	GXML_XSD_ELEMENT_REF_PROPERTY,
	GXML_XSD_ELEMENT_SUBSTITUTION_GROUP_PROPERTY,
	GXML_XSD_ELEMENT_TARGET_NAMESPACE_PROPERTY,
	GXML_XSD_ELEMENT_OBJECT_TYPE_PROPERTY,
	GXML_XSD_ELEMENT_ANOTATION_PROPERTY,
	GXML_XSD_ELEMENT_SIMPLE_TYPE_PROPERTY,
	GXML_XSD_ELEMENT_COMPLEX_TYPE_PROPERTY,
	GXML_XSD_ELEMENT_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_element_properties[GXML_XSD_ELEMENT_NUM_PROPERTIES];
enum  {
	GXML_XSD_ANNOTATION_0_PROPERTY,
	GXML_XSD_ANNOTATION_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_annotation_properties[GXML_XSD_ANNOTATION_NUM_PROPERTIES];
enum  {
	GXML_XSD_BASE_TYPE_0_PROPERTY,
	GXML_XSD_BASE_TYPE_ANOTATION_PROPERTY,
	GXML_XSD_BASE_TYPE_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_base_type_properties[GXML_XSD_BASE_TYPE_NUM_PROPERTIES];
enum  {
	GXML_XSD_BASE_CONTENT_0_PROPERTY,
	GXML_XSD_BASE_CONTENT_ANOTATION_PROPERTY,
	GXML_XSD_BASE_CONTENT_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_base_content_properties[GXML_XSD_BASE_CONTENT_NUM_PROPERTIES];
enum  {
	GXML_XSD_SIMPLE_CONTENT_0_PROPERTY,
	GXML_XSD_SIMPLE_CONTENT_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_simple_content_properties[GXML_XSD_SIMPLE_CONTENT_NUM_PROPERTIES];
enum  {
	GXML_XSD_COMPLEX_CONTENT_0_PROPERTY,
	GXML_XSD_COMPLEX_CONTENT_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_complex_content_properties[GXML_XSD_COMPLEX_CONTENT_NUM_PROPERTIES];
enum  {
	GXML_XSD_OPEN_CONTENT_0_PROPERTY,
	GXML_XSD_OPEN_CONTENT_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_open_content_properties[GXML_XSD_OPEN_CONTENT_NUM_PROPERTIES];
enum  {
	GXML_XSD_BASE_ATTRIBUTE_0_PROPERTY,
	GXML_XSD_BASE_ATTRIBUTE_ANOTATION_PROPERTY,
	GXML_XSD_BASE_ATTRIBUTE_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_base_attribute_properties[GXML_XSD_BASE_ATTRIBUTE_NUM_PROPERTIES];
enum  {
	GXML_XSD_ATTRIBUTE_0_PROPERTY,
	GXML_XSD_ATTRIBUTE_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_attribute_properties[GXML_XSD_ATTRIBUTE_NUM_PROPERTIES];
enum  {
	GXML_XSD_ATTRIBUTE_GROUP_0_PROPERTY,
	GXML_XSD_ATTRIBUTE_GROUP_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_attribute_group_properties[GXML_XSD_ATTRIBUTE_GROUP_NUM_PROPERTIES];
enum  {
	GXML_XSD_LIST_0_PROPERTY,
	GXML_XSD_LIST_LENGTH_PROPERTY,
	GXML_XSD_LIST_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_list_properties[GXML_XSD_LIST_NUM_PROPERTIES];
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
enum  {
	GXML_XSD_LIST_ELEMENTS_0_PROPERTY,
	GXML_XSD_LIST_ELEMENTS_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_list_elements_properties[GXML_XSD_LIST_ELEMENTS_NUM_PROPERTIES];
enum  {
	GXML_XSD_LIST_SIMPLE_TYPES_0_PROPERTY,
	GXML_XSD_LIST_SIMPLE_TYPES_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_list_simple_types_properties[GXML_XSD_LIST_SIMPLE_TYPES_NUM_PROPERTIES];
enum  {
	GXML_XSD_LIST_COMPLEX_TYPES_0_PROPERTY,
	GXML_XSD_LIST_COMPLEX_TYPES_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_list_complex_types_properties[GXML_XSD_LIST_COMPLEX_TYPES_NUM_PROPERTIES];
enum  {
	GXML_XSD_LIST_TYPE_RESTRICTION_ENUMERATIONS_0_PROPERTY,
	GXML_XSD_LIST_TYPE_RESTRICTION_ENUMERATIONS_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_list_type_restriction_enumerations_properties[GXML_XSD_LIST_TYPE_RESTRICTION_ENUMERATIONS_NUM_PROPERTIES];
enum  {
	GXML_XSD_LIST_TYPE_RESTRICTION_WHITE_SPACES_0_PROPERTY,
	GXML_XSD_LIST_TYPE_RESTRICTION_WHITE_SPACES_NUM_PROPERTIES
};
static GParamSpec* gxml_xsd_list_type_restriction_white_spaces_properties[GXML_XSD_LIST_TYPE_RESTRICTION_WHITE_SPACES_NUM_PROPERTIES];

struct _GXmlXsdSchemaPrivate {
	GXmlXsdListElements* _element_definitions;
	GXmlXsdListSimpleTypes* _simple_type_definitions;
	GXmlXsdListComplexTypes* _complex_type_definitions;
};

struct _GXmlXsdSimpleTypePrivate {
	gchar* _final;
	gchar* _name;
	GXmlXsdAnnotation* _annotation;
	GXmlXsdTypeList* _list;
	GXmlXsdTypeUnion* _union;
	GXmlXsdTypeRestriction* _restriction;
};

struct _GXmlXsdTypeDefinitionPrivate {
	GXmlXsdAnnotation* _annotation;
};

struct _GXmlXsdTypeRestrictionPrivate {
	gchar* _base;
	GXmlXsdSimpleType* _simple_type;
	GXmlXsdListTypeRestrictionEnumerations* _enumerations;
	GXmlXsdListTypeRestrictionWhiteSpaces* _white_spaces;
};

struct _GXmlXsdTypeRestrictionDefPrivate {
	GXmlXsdAnnotation* _annotation;
};

struct _GXmlXsdTypeRestrictionEnumerationPrivate {
	gchar* _value;
};

struct _GXmlXsdTypeRestrictionWhiteSpacePrivate {
	GXmlXsdTypeRestrictionWhiteSpaceFixed* _fixed;
	gchar* _value;
};

struct _GXmlXsdComplexTypePrivate {
	gboolean _abstract;
	gchar* _block;
	gchar* _final;
	gboolean _mixed;
	gchar* _name;
	gboolean _default_attributes_apply;
	GXmlXsdBaseContent* _content_type;
};

struct _GXmlXsdExtensionPrivate {
	gchar* _base;
};

struct _GXmlXsdElementPrivate {
	gboolean _abstract;
	gchar* _block;
	gchar* _default;
	gchar* _final;
	gchar* _fixed;
	gchar* _form;
	gchar* _max_occurs;
	gchar* _min_occurs;
	gchar* _name;
	gboolean _nillable;
	gchar* _ref;
	GXmlDomTokenList* _substitution_group;
	gchar* _target_namespace;
	gchar* _object_type;
	GXmlXsdAnnotation* _anotation;
	GXmlXsdSimpleType* _simple_type;
	GXmlXsdComplexType* _complex_type;
};

struct _GXmlXsdBaseTypePrivate {
	GXmlXsdAnnotation* _anotation;
};

struct _GXmlXsdBaseContentPrivate {
	GXmlXsdAnnotation* _anotation;
};

struct _GXmlXsdBaseAttributePrivate {
	GXmlXsdAnnotation* _anotation;
};

static gint GXmlXsdSchema_private_offset;
static gpointer gxml_xsd_schema_parent_class = NULL;
static gint GXmlXsdSimpleType_private_offset;
static gpointer gxml_xsd_simple_type_parent_class = NULL;
static gint GXmlXsdTypeDefinition_private_offset;
static gpointer gxml_xsd_type_definition_parent_class = NULL;
static gpointer gxml_xsd_type_list_parent_class = NULL;
static gpointer gxml_xsd_type_union_parent_class = NULL;
static gint GXmlXsdTypeRestriction_private_offset;
static gpointer gxml_xsd_type_restriction_parent_class = NULL;
static gint GXmlXsdTypeRestrictionDef_private_offset;
static gpointer gxml_xsd_type_restriction_def_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_min_exclusive_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_min_inclusive_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_max_exclusive_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_max_inclusive_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_total_digits_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_fraction_digits_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_length_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_min_length_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_max_length_parent_class = NULL;
static gint GXmlXsdTypeRestrictionEnumeration_private_offset;
static gpointer gxml_xsd_type_restriction_enumeration_parent_class = NULL;
static gint GXmlXsdTypeRestrictionWhiteSpace_private_offset;
static gpointer gxml_xsd_type_restriction_white_space_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_white_space_fixed_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_pattern_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_assertion_parent_class = NULL;
static gpointer gxml_xsd_type_restriction_explicit_timezone_parent_class = NULL;
static gint GXmlXsdComplexType_private_offset;
static gpointer gxml_xsd_complex_type_parent_class = NULL;
static gint GXmlXsdExtension_private_offset;
static gpointer gxml_xsd_extension_parent_class = NULL;
static gint GXmlXsdElement_private_offset;
static gpointer gxml_xsd_element_parent_class = NULL;
static gpointer gxml_xsd_annotation_parent_class = NULL;
static gint GXmlXsdBaseType_private_offset;
static gpointer gxml_xsd_base_type_parent_class = NULL;
static gint GXmlXsdBaseContent_private_offset;
static gpointer gxml_xsd_base_content_parent_class = NULL;
static gpointer gxml_xsd_simple_content_parent_class = NULL;
static gpointer gxml_xsd_complex_content_parent_class = NULL;
static gpointer gxml_xsd_open_content_parent_class = NULL;
static gint GXmlXsdBaseAttribute_private_offset;
static gpointer gxml_xsd_base_attribute_parent_class = NULL;
static gpointer gxml_xsd_attribute_parent_class = NULL;
static gpointer gxml_xsd_attribute_group_parent_class = NULL;
static gpointer gxml_xsd_list_parent_class = NULL;
static gpointer gxml_xsd_list_elements_parent_class = NULL;
static gpointer gxml_xsd_list_simple_types_parent_class = NULL;
static gpointer gxml_xsd_list_complex_types_parent_class = NULL;
static gpointer gxml_xsd_list_type_restriction_enumerations_parent_class = NULL;
static gpointer gxml_xsd_list_type_restriction_white_spaces_parent_class = NULL;

static GObject * gxml_xsd_schema_constructor (GType type,
                                       guint n_construct_properties,
                                       GObjectConstructParam * construct_properties);
static void gxml_xsd_schema_finalize (GObject * obj);
static GType gxml_xsd_schema_get_type_once (void);
static void _vala_gxml_xsd_schema_get_property (GObject * object,
                                         guint property_id,
                                         GValue * value,
                                         GParamSpec * pspec);
static void _vala_gxml_xsd_schema_set_property (GObject * object,
                                         guint property_id,
                                         const GValue * value,
                                         GParamSpec * pspec);
static GObject * gxml_xsd_simple_type_constructor (GType type,
                                            guint n_construct_properties,
                                            GObjectConstructParam * construct_properties);
static void gxml_xsd_simple_type_finalize (GObject * obj);
static GType gxml_xsd_simple_type_get_type_once (void);
static void _vala_gxml_xsd_simple_type_get_property (GObject * object,
                                              guint property_id,
                                              GValue * value,
                                              GParamSpec * pspec);
static void _vala_gxml_xsd_simple_type_set_property (GObject * object,
                                              guint property_id,
                                              const GValue * value,
                                              GParamSpec * pspec);
static void gxml_xsd_type_definition_finalize (GObject * obj);
static GType gxml_xsd_type_definition_get_type_once (void);
static void _vala_gxml_xsd_type_definition_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec);
static void _vala_gxml_xsd_type_definition_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec);
static GType gxml_xsd_type_list_get_type_once (void);
static GType gxml_xsd_type_union_get_type_once (void);
static GObject * gxml_xsd_type_restriction_constructor (GType type,
                                                 guint n_construct_properties,
                                                 GObjectConstructParam * construct_properties);
static void gxml_xsd_type_restriction_finalize (GObject * obj);
static GType gxml_xsd_type_restriction_get_type_once (void);
static void _vala_gxml_xsd_type_restriction_get_property (GObject * object,
                                                   guint property_id,
                                                   GValue * value,
                                                   GParamSpec * pspec);
static void _vala_gxml_xsd_type_restriction_set_property (GObject * object,
                                                   guint property_id,
                                                   const GValue * value,
                                                   GParamSpec * pspec);
static void gxml_xsd_type_restriction_def_finalize (GObject * obj);
static GType gxml_xsd_type_restriction_def_get_type_once (void);
static void _vala_gxml_xsd_type_restriction_def_get_property (GObject * object,
                                                       guint property_id,
                                                       GValue * value,
                                                       GParamSpec * pspec);
static void _vala_gxml_xsd_type_restriction_def_set_property (GObject * object,
                                                       guint property_id,
                                                       const GValue * value,
                                                       GParamSpec * pspec);
static GType gxml_xsd_type_restriction_min_exclusive_get_type_once (void);
static GType gxml_xsd_type_restriction_min_inclusive_get_type_once (void);
static GType gxml_xsd_type_restriction_max_exclusive_get_type_once (void);
static GType gxml_xsd_type_restriction_max_inclusive_get_type_once (void);
static GType gxml_xsd_type_restriction_total_digits_get_type_once (void);
static GType gxml_xsd_type_restriction_fraction_digits_get_type_once (void);
static GType gxml_xsd_type_restriction_length_get_type_once (void);
static GType gxml_xsd_type_restriction_min_length_get_type_once (void);
static GType gxml_xsd_type_restriction_max_length_get_type_once (void);
static GObject * gxml_xsd_type_restriction_enumeration_constructor (GType type,
                                                             guint n_construct_properties,
                                                             GObjectConstructParam * construct_properties);
static void gxml_xsd_type_restriction_enumeration_finalize (GObject * obj);
static GType gxml_xsd_type_restriction_enumeration_get_type_once (void);
static void _vala_gxml_xsd_type_restriction_enumeration_get_property (GObject * object,
                                                               guint property_id,
                                                               GValue * value,
                                                               GParamSpec * pspec);
static void _vala_gxml_xsd_type_restriction_enumeration_set_property (GObject * object,
                                                               guint property_id,
                                                               const GValue * value,
                                                               GParamSpec * pspec);
static GType gxml_xsd_type_restriction_white_space_fixed_get_type_once (void);
static GObject * gxml_xsd_type_restriction_white_space_constructor (GType type,
                                                             guint n_construct_properties,
                                                             GObjectConstructParam * construct_properties);
static void gxml_xsd_type_restriction_white_space_finalize (GObject * obj);
static GType gxml_xsd_type_restriction_white_space_get_type_once (void);
static void _vala_gxml_xsd_type_restriction_white_space_get_property (GObject * object,
                                                               guint property_id,
                                                               GValue * value,
                                                               GParamSpec * pspec);
static void _vala_gxml_xsd_type_restriction_white_space_set_property (GObject * object,
                                                               guint property_id,
                                                               const GValue * value,
                                                               GParamSpec * pspec);
static GType gxml_xsd_type_restriction_pattern_get_type_once (void);
static GType gxml_xsd_type_restriction_assertion_get_type_once (void);
static GType gxml_xsd_type_restriction_explicit_timezone_get_type_once (void);
static GObject * gxml_xsd_complex_type_constructor (GType type,
                                             guint n_construct_properties,
                                             GObjectConstructParam * construct_properties);
static void gxml_xsd_complex_type_finalize (GObject * obj);
static GType gxml_xsd_complex_type_get_type_once (void);
static void _vala_gxml_xsd_complex_type_get_property (GObject * object,
                                               guint property_id,
                                               GValue * value,
                                               GParamSpec * pspec);
static void _vala_gxml_xsd_complex_type_set_property (GObject * object,
                                               guint property_id,
                                               const GValue * value,
                                               GParamSpec * pspec);
static GObject * gxml_xsd_extension_constructor (GType type,
                                          guint n_construct_properties,
                                          GObjectConstructParam * construct_properties);
static void gxml_xsd_extension_finalize (GObject * obj);
static GType gxml_xsd_extension_get_type_once (void);
static void _vala_gxml_xsd_extension_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec);
static void _vala_gxml_xsd_extension_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec);
static GObject * gxml_xsd_element_constructor (GType type,
                                        guint n_construct_properties,
                                        GObjectConstructParam * construct_properties);
static void gxml_xsd_element_finalize (GObject * obj);
static GType gxml_xsd_element_get_type_once (void);
static void _vala_gxml_xsd_element_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec);
static void _vala_gxml_xsd_element_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec);
static GType gxml_xsd_annotation_get_type_once (void);
static void gxml_xsd_base_type_finalize (GObject * obj);
static GType gxml_xsd_base_type_get_type_once (void);
static void _vala_gxml_xsd_base_type_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec);
static void _vala_gxml_xsd_base_type_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec);
static void gxml_xsd_base_content_finalize (GObject * obj);
static GType gxml_xsd_base_content_get_type_once (void);
static void _vala_gxml_xsd_base_content_get_property (GObject * object,
                                               guint property_id,
                                               GValue * value,
                                               GParamSpec * pspec);
static void _vala_gxml_xsd_base_content_set_property (GObject * object,
                                               guint property_id,
                                               const GValue * value,
                                               GParamSpec * pspec);
static GObject * gxml_xsd_simple_content_constructor (GType type,
                                               guint n_construct_properties,
                                               GObjectConstructParam * construct_properties);
static GType gxml_xsd_simple_content_get_type_once (void);
static GObject * gxml_xsd_complex_content_constructor (GType type,
                                                guint n_construct_properties,
                                                GObjectConstructParam * construct_properties);
static GType gxml_xsd_complex_content_get_type_once (void);
static GType gxml_xsd_open_content_get_type_once (void);
static void gxml_xsd_base_attribute_finalize (GObject * obj);
static GType gxml_xsd_base_attribute_get_type_once (void);
static void _vala_gxml_xsd_base_attribute_get_property (GObject * object,
                                                 guint property_id,
                                                 GValue * value,
                                                 GParamSpec * pspec);
static void _vala_gxml_xsd_base_attribute_set_property (GObject * object,
                                                 guint property_id,
                                                 const GValue * value,
                                                 GParamSpec * pspec);
static GType gxml_xsd_attribute_get_type_once (void);
static GType gxml_xsd_attribute_group_get_type_once (void);
static GType gxml_xsd_list_get_type_once (void);
static void _vala_gxml_xsd_list_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec);
static GObject * gxml_xsd_list_elements_constructor (GType type,
                                              guint n_construct_properties,
                                              GObjectConstructParam * construct_properties);
static GType gxml_xsd_list_elements_get_type_once (void);
static GObject * gxml_xsd_list_simple_types_constructor (GType type,
                                                  guint n_construct_properties,
                                                  GObjectConstructParam * construct_properties);
static GType gxml_xsd_list_simple_types_get_type_once (void);
static GObject * gxml_xsd_list_complex_types_constructor (GType type,
                                                   guint n_construct_properties,
                                                   GObjectConstructParam * construct_properties);
static GType gxml_xsd_list_complex_types_get_type_once (void);
static GObject * gxml_xsd_list_type_restriction_enumerations_constructor (GType type,
                                                                   guint n_construct_properties,
                                                                   GObjectConstructParam * construct_properties);
static GType gxml_xsd_list_type_restriction_enumerations_get_type_once (void);
static GObject * gxml_xsd_list_type_restriction_white_spaces_constructor (GType type,
                                                                   guint n_construct_properties,
                                                                   GObjectConstructParam * construct_properties);
static GType gxml_xsd_list_type_restriction_white_spaces_get_type_once (void);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static inline gpointer
gxml_xsd_schema_get_instance_private (GXmlXsdSchema* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdSchema_private_offset);
}

GXmlXsdListElements*
gxml_xsd_schema_get_element_definitions (GXmlXsdSchema* self)
{
	GXmlXsdListElements* result;
	GXmlXsdListElements* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_element_definitions;
	result = _tmp0_;
	return result;
}

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

void
gxml_xsd_schema_set_element_definitions (GXmlXsdSchema* self,
                                         GXmlXsdListElements* value)
{
	GXmlXsdListElements* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_schema_get_element_definitions (self);
	if (old_value != value) {
		GXmlXsdListElements* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_element_definitions);
		self->priv->_element_definitions = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_schema_properties[GXML_XSD_SCHEMA_ELEMENT_DEFINITIONS_PROPERTY]);
	}
}

GXmlXsdListSimpleTypes*
gxml_xsd_schema_get_simple_type_definitions (GXmlXsdSchema* self)
{
	GXmlXsdListSimpleTypes* result;
	GXmlXsdListSimpleTypes* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_simple_type_definitions;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_schema_set_simple_type_definitions (GXmlXsdSchema* self,
                                             GXmlXsdListSimpleTypes* value)
{
	GXmlXsdListSimpleTypes* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_schema_get_simple_type_definitions (self);
	if (old_value != value) {
		GXmlXsdListSimpleTypes* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_simple_type_definitions);
		self->priv->_simple_type_definitions = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_schema_properties[GXML_XSD_SCHEMA_SIMPLE_TYPE_DEFINITIONS_PROPERTY]);
	}
}

GXmlXsdListComplexTypes*
gxml_xsd_schema_get_complex_type_definitions (GXmlXsdSchema* self)
{
	GXmlXsdListComplexTypes* result;
	GXmlXsdListComplexTypes* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_complex_type_definitions;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_schema_set_complex_type_definitions (GXmlXsdSchema* self,
                                              GXmlXsdListComplexTypes* value)
{
	GXmlXsdListComplexTypes* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_schema_get_complex_type_definitions (self);
	if (old_value != value) {
		GXmlXsdListComplexTypes* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_complex_type_definitions);
		self->priv->_complex_type_definitions = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_schema_properties[GXML_XSD_SCHEMA_COMPLEX_TYPE_DEFINITIONS_PROPERTY]);
	}
}

GXmlXsdSchema*
gxml_xsd_schema_construct (GType object_type)
{
	GXmlXsdSchema * self = NULL;
	self = (GXmlXsdSchema*) gxml_element_construct (object_type);
	return self;
}

GXmlXsdSchema*
gxml_xsd_schema_new (void)
{
	return gxml_xsd_schema_construct (GXML_TYPE_XSD_SCHEMA);
}

static GObject *
gxml_xsd_schema_constructor (GType type,
                             guint n_construct_properties,
                             GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdSchema * self;
	parent_class = G_OBJECT_CLASS (gxml_xsd_schema_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_SCHEMA, GXmlXsdSchema);
	gxml_element_initialize_with_namespace ((GXmlElement*) self, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_URI, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_PREFIX, GXML_IXSD_SCHEMA_SCHEMA_NODE_NAME);
	return obj;
}

static void
gxml_xsd_schema_class_init (GXmlXsdSchemaClass * klass,
                            gpointer klass_data)
{
	gxml_xsd_schema_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdSchema_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_schema_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_schema_set_property;
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_schema_constructor;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_schema_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_SCHEMA_ELEMENT_DEFINITIONS_PROPERTY, gxml_xsd_schema_properties[GXML_XSD_SCHEMA_ELEMENT_DEFINITIONS_PROPERTY] = g_param_spec_object ("element-definitions", "element-definitions", "element-definitions", GXML_TYPE_XSD_LIST_ELEMENTS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_SCHEMA_SIMPLE_TYPE_DEFINITIONS_PROPERTY, gxml_xsd_schema_properties[GXML_XSD_SCHEMA_SIMPLE_TYPE_DEFINITIONS_PROPERTY] = g_param_spec_object ("simple-type-definitions", "simple-type-definitions", "simple-type-definitions", GXML_TYPE_XSD_LIST_SIMPLE_TYPES, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_SCHEMA_COMPLEX_TYPE_DEFINITIONS_PROPERTY, gxml_xsd_schema_properties[GXML_XSD_SCHEMA_COMPLEX_TYPE_DEFINITIONS_PROPERTY] = g_param_spec_object ("complex-type-definitions", "complex-type-definitions", "complex-type-definitions", GXML_TYPE_XSD_LIST_COMPLEX_TYPES, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_schema_instance_init (GXmlXsdSchema * self,
                               gpointer klass)
{
	self->priv = gxml_xsd_schema_get_instance_private (self);
}

static void
gxml_xsd_schema_finalize (GObject * obj)
{
	GXmlXsdSchema * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_SCHEMA, GXmlXsdSchema);
	_g_object_unref0 (self->priv->_element_definitions);
	_g_object_unref0 (self->priv->_simple_type_definitions);
	_g_object_unref0 (self->priv->_complex_type_definitions);
	G_OBJECT_CLASS (gxml_xsd_schema_parent_class)->finalize (obj);
}

/**
 * Reference interfaces for XSD support.
 */
static GType
gxml_xsd_schema_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdSchemaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_schema_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdSchema), 0, (GInstanceInitFunc) gxml_xsd_schema_instance_init, NULL };
	GType gxml_xsd_schema_type_id;
	gxml_xsd_schema_type_id = g_type_register_static (GXML_TYPE_ELEMENT, "GXmlXsdSchema", &g_define_type_info, 0);
	GXmlXsdSchema_private_offset = g_type_add_instance_private (gxml_xsd_schema_type_id, sizeof (GXmlXsdSchemaPrivate));
	return gxml_xsd_schema_type_id;
}

GType
gxml_xsd_schema_get_type (void)
{
	static volatile gsize gxml_xsd_schema_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_schema_type_id__once)) {
		GType gxml_xsd_schema_type_id;
		gxml_xsd_schema_type_id = gxml_xsd_schema_get_type_once ();
		g_once_init_leave (&gxml_xsd_schema_type_id__once, gxml_xsd_schema_type_id);
	}
	return gxml_xsd_schema_type_id__once;
}

static void
_vala_gxml_xsd_schema_get_property (GObject * object,
                                    guint property_id,
                                    GValue * value,
                                    GParamSpec * pspec)
{
	GXmlXsdSchema * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_SCHEMA, GXmlXsdSchema);
	switch (property_id) {
		case GXML_XSD_SCHEMA_ELEMENT_DEFINITIONS_PROPERTY:
		g_value_set_object (value, gxml_xsd_schema_get_element_definitions (self));
		break;
		case GXML_XSD_SCHEMA_SIMPLE_TYPE_DEFINITIONS_PROPERTY:
		g_value_set_object (value, gxml_xsd_schema_get_simple_type_definitions (self));
		break;
		case GXML_XSD_SCHEMA_COMPLEX_TYPE_DEFINITIONS_PROPERTY:
		g_value_set_object (value, gxml_xsd_schema_get_complex_type_definitions (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_schema_set_property (GObject * object,
                                    guint property_id,
                                    const GValue * value,
                                    GParamSpec * pspec)
{
	GXmlXsdSchema * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_SCHEMA, GXmlXsdSchema);
	switch (property_id) {
		case GXML_XSD_SCHEMA_ELEMENT_DEFINITIONS_PROPERTY:
		gxml_xsd_schema_set_element_definitions (self, g_value_get_object (value));
		break;
		case GXML_XSD_SCHEMA_SIMPLE_TYPE_DEFINITIONS_PROPERTY:
		gxml_xsd_schema_set_simple_type_definitions (self, g_value_get_object (value));
		break;
		case GXML_XSD_SCHEMA_COMPLEX_TYPE_DEFINITIONS_PROPERTY:
		gxml_xsd_schema_set_complex_type_definitions (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
gxml_xsd_simple_type_get_instance_private (GXmlXsdSimpleType* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdSimpleType_private_offset);
}

const gchar*
gxml_xsd_simple_type_get_final (GXmlXsdSimpleType* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_final;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_simple_type_set_final (GXmlXsdSimpleType* self,
                                const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_simple_type_get_final (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_final);
		self->priv->_final = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_FINAL_PROPERTY]);
	}
}

const gchar*
gxml_xsd_simple_type_get_name (GXmlXsdSimpleType* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_name;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_simple_type_set_name (GXmlXsdSimpleType* self,
                               const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_simple_type_get_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_name);
		self->priv->_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_NAME_PROPERTY]);
	}
}

GXmlXsdAnnotation*
gxml_xsd_simple_type_get_annotation (GXmlXsdSimpleType* self)
{
	GXmlXsdAnnotation* result;
	GXmlXsdAnnotation* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_annotation;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_simple_type_set_annotation (GXmlXsdSimpleType* self,
                                     GXmlXsdAnnotation* value)
{
	GXmlXsdAnnotation* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_simple_type_get_annotation (self);
	if (old_value != value) {
		GXmlXsdAnnotation* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_annotation);
		self->priv->_annotation = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_ANNOTATION_PROPERTY]);
	}
}

GXmlXsdTypeList*
gxml_xsd_simple_type_get_list (GXmlXsdSimpleType* self)
{
	GXmlXsdTypeList* result;
	GXmlXsdTypeList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_list;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_simple_type_set_list (GXmlXsdSimpleType* self,
                               GXmlXsdTypeList* value)
{
	GXmlXsdTypeList* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_simple_type_get_list (self);
	if (old_value != value) {
		GXmlXsdTypeList* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_list);
		self->priv->_list = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_LIST_PROPERTY]);
	}
}

GXmlXsdTypeUnion*
gxml_xsd_simple_type_get_union (GXmlXsdSimpleType* self)
{
	GXmlXsdTypeUnion* result;
	GXmlXsdTypeUnion* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_union;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_simple_type_set_union (GXmlXsdSimpleType* self,
                                GXmlXsdTypeUnion* value)
{
	GXmlXsdTypeUnion* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_simple_type_get_union (self);
	if (old_value != value) {
		GXmlXsdTypeUnion* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_union);
		self->priv->_union = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_UNION_PROPERTY]);
	}
}

GXmlXsdTypeRestriction*
gxml_xsd_simple_type_get_restriction (GXmlXsdSimpleType* self)
{
	GXmlXsdTypeRestriction* result;
	GXmlXsdTypeRestriction* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_restriction;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_simple_type_set_restriction (GXmlXsdSimpleType* self,
                                      GXmlXsdTypeRestriction* value)
{
	GXmlXsdTypeRestriction* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_simple_type_get_restriction (self);
	if (old_value != value) {
		GXmlXsdTypeRestriction* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_restriction);
		self->priv->_restriction = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_RESTRICTION_PROPERTY]);
	}
}

GXmlXsdSimpleType*
gxml_xsd_simple_type_construct (GType object_type)
{
	GXmlXsdSimpleType * self = NULL;
	self = (GXmlXsdSimpleType*) gxml_element_construct (object_type);
	return self;
}

GXmlXsdSimpleType*
gxml_xsd_simple_type_new (void)
{
	return gxml_xsd_simple_type_construct (GXML_TYPE_XSD_SIMPLE_TYPE);
}

static GObject *
gxml_xsd_simple_type_constructor (GType type,
                                  guint n_construct_properties,
                                  GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdSimpleType * self;
	parent_class = G_OBJECT_CLASS (gxml_xsd_simple_type_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_SIMPLE_TYPE, GXmlXsdSimpleType);
	gxml_element_initialize_with_namespace ((GXmlElement*) self, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_URI, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_PREFIX, GXML_IXSD_SIMPLE_TYPE_SCHEMA_NODE_NAME);
	return obj;
}

static void
gxml_xsd_simple_type_class_init (GXmlXsdSimpleTypeClass * klass,
                                 gpointer klass_data)
{
	gxml_xsd_simple_type_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdSimpleType_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_simple_type_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_simple_type_set_property;
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_simple_type_constructor;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_simple_type_finalize;
	/**
	   * (#all | List of (list | union | restriction | extension))
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_SIMPLE_TYPE_FINAL_PROPERTY, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_FINAL_PROPERTY] = g_param_spec_string ("final", "::final", "final", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_SIMPLE_TYPE_NAME_PROPERTY, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_NAME_PROPERTY] = g_param_spec_string ("name", "::name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_SIMPLE_TYPE_ANNOTATION_PROPERTY, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_ANNOTATION_PROPERTY] = g_param_spec_object ("annotation", "annotation", "annotation", GXML_TYPE_XSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_SIMPLE_TYPE_LIST_PROPERTY, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_LIST_PROPERTY] = g_param_spec_object ("list", "list", "list", GXML_TYPE_XSD_TYPE_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_SIMPLE_TYPE_UNION_PROPERTY, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_UNION_PROPERTY] = g_param_spec_object ("union", "union", "union", GXML_TYPE_XSD_TYPE_UNION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_SIMPLE_TYPE_RESTRICTION_PROPERTY, gxml_xsd_simple_type_properties[GXML_XSD_SIMPLE_TYPE_RESTRICTION_PROPERTY] = g_param_spec_object ("restriction", "restriction", "restriction", GXML_TYPE_XSD_TYPE_RESTRICTION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_simple_type_instance_init (GXmlXsdSimpleType * self,
                                    gpointer klass)
{
	self->priv = gxml_xsd_simple_type_get_instance_private (self);
}

static void
gxml_xsd_simple_type_finalize (GObject * obj)
{
	GXmlXsdSimpleType * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_SIMPLE_TYPE, GXmlXsdSimpleType);
	_g_free0 (self->priv->_final);
	_g_free0 (self->priv->_name);
	_g_object_unref0 (self->priv->_annotation);
	_g_object_unref0 (self->priv->_list);
	_g_object_unref0 (self->priv->_union);
	_g_object_unref0 (self->priv->_restriction);
	G_OBJECT_CLASS (gxml_xsd_simple_type_parent_class)->finalize (obj);
}

static GType
gxml_xsd_simple_type_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdSimpleTypeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_simple_type_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdSimpleType), 0, (GInstanceInitFunc) gxml_xsd_simple_type_instance_init, NULL };
	GType gxml_xsd_simple_type_type_id;
	gxml_xsd_simple_type_type_id = g_type_register_static (GXML_TYPE_ELEMENT, "GXmlXsdSimpleType", &g_define_type_info, 0);
	GXmlXsdSimpleType_private_offset = g_type_add_instance_private (gxml_xsd_simple_type_type_id, sizeof (GXmlXsdSimpleTypePrivate));
	return gxml_xsd_simple_type_type_id;
}

GType
gxml_xsd_simple_type_get_type (void)
{
	static volatile gsize gxml_xsd_simple_type_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_simple_type_type_id__once)) {
		GType gxml_xsd_simple_type_type_id;
		gxml_xsd_simple_type_type_id = gxml_xsd_simple_type_get_type_once ();
		g_once_init_leave (&gxml_xsd_simple_type_type_id__once, gxml_xsd_simple_type_type_id);
	}
	return gxml_xsd_simple_type_type_id__once;
}

static void
_vala_gxml_xsd_simple_type_get_property (GObject * object,
                                         guint property_id,
                                         GValue * value,
                                         GParamSpec * pspec)
{
	GXmlXsdSimpleType * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_SIMPLE_TYPE, GXmlXsdSimpleType);
	switch (property_id) {
		case GXML_XSD_SIMPLE_TYPE_FINAL_PROPERTY:
		g_value_set_string (value, gxml_xsd_simple_type_get_final (self));
		break;
		case GXML_XSD_SIMPLE_TYPE_NAME_PROPERTY:
		g_value_set_string (value, gxml_xsd_simple_type_get_name (self));
		break;
		case GXML_XSD_SIMPLE_TYPE_ANNOTATION_PROPERTY:
		g_value_set_object (value, gxml_xsd_simple_type_get_annotation (self));
		break;
		case GXML_XSD_SIMPLE_TYPE_LIST_PROPERTY:
		g_value_set_object (value, gxml_xsd_simple_type_get_list (self));
		break;
		case GXML_XSD_SIMPLE_TYPE_UNION_PROPERTY:
		g_value_set_object (value, gxml_xsd_simple_type_get_union (self));
		break;
		case GXML_XSD_SIMPLE_TYPE_RESTRICTION_PROPERTY:
		g_value_set_object (value, gxml_xsd_simple_type_get_restriction (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_simple_type_set_property (GObject * object,
                                         guint property_id,
                                         const GValue * value,
                                         GParamSpec * pspec)
{
	GXmlXsdSimpleType * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_SIMPLE_TYPE, GXmlXsdSimpleType);
	switch (property_id) {
		case GXML_XSD_SIMPLE_TYPE_FINAL_PROPERTY:
		gxml_xsd_simple_type_set_final (self, g_value_get_string (value));
		break;
		case GXML_XSD_SIMPLE_TYPE_NAME_PROPERTY:
		gxml_xsd_simple_type_set_name (self, g_value_get_string (value));
		break;
		case GXML_XSD_SIMPLE_TYPE_ANNOTATION_PROPERTY:
		gxml_xsd_simple_type_set_annotation (self, g_value_get_object (value));
		break;
		case GXML_XSD_SIMPLE_TYPE_LIST_PROPERTY:
		gxml_xsd_simple_type_set_list (self, g_value_get_object (value));
		break;
		case GXML_XSD_SIMPLE_TYPE_UNION_PROPERTY:
		gxml_xsd_simple_type_set_union (self, g_value_get_object (value));
		break;
		case GXML_XSD_SIMPLE_TYPE_RESTRICTION_PROPERTY:
		gxml_xsd_simple_type_set_restriction (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
gxml_xsd_type_definition_get_instance_private (GXmlXsdTypeDefinition* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdTypeDefinition_private_offset);
}

GXmlXsdAnnotation*
gxml_xsd_type_definition_get_annotation (GXmlXsdTypeDefinition* self)
{
	GXmlXsdAnnotation* result;
	GXmlXsdAnnotation* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_annotation;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_type_definition_set_annotation (GXmlXsdTypeDefinition* self,
                                         GXmlXsdAnnotation* value)
{
	GXmlXsdAnnotation* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_type_definition_get_annotation (self);
	if (old_value != value) {
		GXmlXsdAnnotation* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_annotation);
		self->priv->_annotation = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_type_definition_properties[GXML_XSD_TYPE_DEFINITION_ANNOTATION_PROPERTY]);
	}
}

GXmlXsdTypeDefinition*
gxml_xsd_type_definition_construct (GType object_type)
{
	GXmlXsdTypeDefinition * self = NULL;
	self = (GXmlXsdTypeDefinition*) gxml_element_construct (object_type);
	return self;
}

GXmlXsdTypeDefinition*
gxml_xsd_type_definition_new (void)
{
	return gxml_xsd_type_definition_construct (GXML_TYPE_XSD_TYPE_DEFINITION);
}

static void
gxml_xsd_type_definition_class_init (GXmlXsdTypeDefinitionClass * klass,
                                     gpointer klass_data)
{
	gxml_xsd_type_definition_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdTypeDefinition_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_type_definition_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_type_definition_set_property;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_type_definition_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_TYPE_DEFINITION_ANNOTATION_PROPERTY, gxml_xsd_type_definition_properties[GXML_XSD_TYPE_DEFINITION_ANNOTATION_PROPERTY] = g_param_spec_object ("annotation", "annotation", "annotation", GXML_TYPE_XSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_type_definition_instance_init (GXmlXsdTypeDefinition * self,
                                        gpointer klass)
{
	self->priv = gxml_xsd_type_definition_get_instance_private (self);
}

static void
gxml_xsd_type_definition_finalize (GObject * obj)
{
	GXmlXsdTypeDefinition * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_TYPE_DEFINITION, GXmlXsdTypeDefinition);
	_g_object_unref0 (self->priv->_annotation);
	G_OBJECT_CLASS (gxml_xsd_type_definition_parent_class)->finalize (obj);
}

static GType
gxml_xsd_type_definition_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeDefinitionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_definition_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeDefinition), 0, (GInstanceInitFunc) gxml_xsd_type_definition_instance_init, NULL };
	GType gxml_xsd_type_definition_type_id;
	gxml_xsd_type_definition_type_id = g_type_register_static (GXML_TYPE_ELEMENT, "GXmlXsdTypeDefinition", &g_define_type_info, 0);
	GXmlXsdTypeDefinition_private_offset = g_type_add_instance_private (gxml_xsd_type_definition_type_id, sizeof (GXmlXsdTypeDefinitionPrivate));
	return gxml_xsd_type_definition_type_id;
}

GType
gxml_xsd_type_definition_get_type (void)
{
	static volatile gsize gxml_xsd_type_definition_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_definition_type_id__once)) {
		GType gxml_xsd_type_definition_type_id;
		gxml_xsd_type_definition_type_id = gxml_xsd_type_definition_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_definition_type_id__once, gxml_xsd_type_definition_type_id);
	}
	return gxml_xsd_type_definition_type_id__once;
}

static void
_vala_gxml_xsd_type_definition_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec)
{
	GXmlXsdTypeDefinition * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_TYPE_DEFINITION, GXmlXsdTypeDefinition);
	switch (property_id) {
		case GXML_XSD_TYPE_DEFINITION_ANNOTATION_PROPERTY:
		g_value_set_object (value, gxml_xsd_type_definition_get_annotation (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_type_definition_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec)
{
	GXmlXsdTypeDefinition * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_TYPE_DEFINITION, GXmlXsdTypeDefinition);
	switch (property_id) {
		case GXML_XSD_TYPE_DEFINITION_ANNOTATION_PROPERTY:
		gxml_xsd_type_definition_set_annotation (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

GXmlXsdTypeList*
gxml_xsd_type_list_construct (GType object_type)
{
	GXmlXsdTypeList * self = NULL;
	self = (GXmlXsdTypeList*) gxml_xsd_type_definition_construct (object_type);
	return self;
}

GXmlXsdTypeList*
gxml_xsd_type_list_new (void)
{
	return gxml_xsd_type_list_construct (GXML_TYPE_XSD_TYPE_LIST);
}

static void
gxml_xsd_type_list_class_init (GXmlXsdTypeListClass * klass,
                               gpointer klass_data)
{
	gxml_xsd_type_list_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_list_instance_init (GXmlXsdTypeList * self,
                                  gpointer klass)
{
}

static GType
gxml_xsd_type_list_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeList), 0, (GInstanceInitFunc) gxml_xsd_type_list_instance_init, NULL };
	GType gxml_xsd_type_list_type_id;
	gxml_xsd_type_list_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_DEFINITION, "GXmlXsdTypeList", &g_define_type_info, 0);
	return gxml_xsd_type_list_type_id;
}

GType
gxml_xsd_type_list_get_type (void)
{
	static volatile gsize gxml_xsd_type_list_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_list_type_id__once)) {
		GType gxml_xsd_type_list_type_id;
		gxml_xsd_type_list_type_id = gxml_xsd_type_list_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_list_type_id__once, gxml_xsd_type_list_type_id);
	}
	return gxml_xsd_type_list_type_id__once;
}

GXmlXsdTypeUnion*
gxml_xsd_type_union_construct (GType object_type)
{
	GXmlXsdTypeUnion * self = NULL;
	self = (GXmlXsdTypeUnion*) gxml_xsd_type_definition_construct (object_type);
	return self;
}

GXmlXsdTypeUnion*
gxml_xsd_type_union_new (void)
{
	return gxml_xsd_type_union_construct (GXML_TYPE_XSD_TYPE_UNION);
}

static void
gxml_xsd_type_union_class_init (GXmlXsdTypeUnionClass * klass,
                                gpointer klass_data)
{
	gxml_xsd_type_union_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_union_instance_init (GXmlXsdTypeUnion * self,
                                   gpointer klass)
{
}

static GType
gxml_xsd_type_union_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeUnionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_union_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeUnion), 0, (GInstanceInitFunc) gxml_xsd_type_union_instance_init, NULL };
	GType gxml_xsd_type_union_type_id;
	gxml_xsd_type_union_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_DEFINITION, "GXmlXsdTypeUnion", &g_define_type_info, 0);
	return gxml_xsd_type_union_type_id;
}

GType
gxml_xsd_type_union_get_type (void)
{
	static volatile gsize gxml_xsd_type_union_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_union_type_id__once)) {
		GType gxml_xsd_type_union_type_id;
		gxml_xsd_type_union_type_id = gxml_xsd_type_union_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_union_type_id__once, gxml_xsd_type_union_type_id);
	}
	return gxml_xsd_type_union_type_id__once;
}

static inline gpointer
gxml_xsd_type_restriction_get_instance_private (GXmlXsdTypeRestriction* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdTypeRestriction_private_offset);
}

const gchar*
gxml_xsd_type_restriction_get_base (GXmlXsdTypeRestriction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_base;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_type_restriction_set_base (GXmlXsdTypeRestriction* self,
                                    const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_type_restriction_get_base (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_base);
		self->priv->_base = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_type_restriction_properties[GXML_XSD_TYPE_RESTRICTION_BASE_PROPERTY]);
	}
}

GXmlXsdSimpleType*
gxml_xsd_type_restriction_get_simple_type (GXmlXsdTypeRestriction* self)
{
	GXmlXsdSimpleType* result;
	GXmlXsdSimpleType* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_simple_type;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_type_restriction_set_simple_type (GXmlXsdTypeRestriction* self,
                                           GXmlXsdSimpleType* value)
{
	GXmlXsdSimpleType* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_type_restriction_get_simple_type (self);
	if (old_value != value) {
		GXmlXsdSimpleType* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_simple_type);
		self->priv->_simple_type = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_type_restriction_properties[GXML_XSD_TYPE_RESTRICTION_SIMPLE_TYPE_PROPERTY]);
	}
}

GXmlXsdListTypeRestrictionEnumerations*
gxml_xsd_type_restriction_get_enumerations (GXmlXsdTypeRestriction* self)
{
	GXmlXsdListTypeRestrictionEnumerations* result;
	GXmlXsdListTypeRestrictionEnumerations* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_enumerations;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_type_restriction_set_enumerations (GXmlXsdTypeRestriction* self,
                                            GXmlXsdListTypeRestrictionEnumerations* value)
{
	GXmlXsdListTypeRestrictionEnumerations* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_type_restriction_get_enumerations (self);
	if (old_value != value) {
		GXmlXsdListTypeRestrictionEnumerations* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_enumerations);
		self->priv->_enumerations = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_type_restriction_properties[GXML_XSD_TYPE_RESTRICTION_ENUMERATIONS_PROPERTY]);
	}
}

GXmlXsdListTypeRestrictionWhiteSpaces*
gxml_xsd_type_restriction_get_white_spaces (GXmlXsdTypeRestriction* self)
{
	GXmlXsdListTypeRestrictionWhiteSpaces* result;
	GXmlXsdListTypeRestrictionWhiteSpaces* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_white_spaces;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_type_restriction_set_white_spaces (GXmlXsdTypeRestriction* self,
                                            GXmlXsdListTypeRestrictionWhiteSpaces* value)
{
	GXmlXsdListTypeRestrictionWhiteSpaces* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_type_restriction_get_white_spaces (self);
	if (old_value != value) {
		GXmlXsdListTypeRestrictionWhiteSpaces* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_white_spaces);
		self->priv->_white_spaces = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_type_restriction_properties[GXML_XSD_TYPE_RESTRICTION_WHITE_SPACES_PROPERTY]);
	}
}

GXmlXsdTypeRestriction*
gxml_xsd_type_restriction_construct (GType object_type)
{
	GXmlXsdTypeRestriction * self = NULL;
	self = (GXmlXsdTypeRestriction*) gxml_xsd_type_definition_construct (object_type);
	return self;
}

GXmlXsdTypeRestriction*
gxml_xsd_type_restriction_new (void)
{
	return gxml_xsd_type_restriction_construct (GXML_TYPE_XSD_TYPE_RESTRICTION);
}

static GObject *
gxml_xsd_type_restriction_constructor (GType type,
                                       guint n_construct_properties,
                                       GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdTypeRestriction * self;
	parent_class = G_OBJECT_CLASS (gxml_xsd_type_restriction_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_TYPE_RESTRICTION, GXmlXsdTypeRestriction);
	gxml_element_initialize_with_namespace ((GXmlElement*) self, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_URI, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_PREFIX, GXML_IXSD_TYPE_RESTRICTION_SCHEMA_NODE_NAME);
	return obj;
}

static void
gxml_xsd_type_restriction_class_init (GXmlXsdTypeRestrictionClass * klass,
                                      gpointer klass_data)
{
	gxml_xsd_type_restriction_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdTypeRestriction_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_type_restriction_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_type_restriction_set_property;
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_type_restriction_constructor;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_type_restriction_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_TYPE_RESTRICTION_BASE_PROPERTY, gxml_xsd_type_restriction_properties[GXML_XSD_TYPE_RESTRICTION_BASE_PROPERTY] = g_param_spec_string ("base", "::base", "base", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_TYPE_RESTRICTION_SIMPLE_TYPE_PROPERTY, gxml_xsd_type_restriction_properties[GXML_XSD_TYPE_RESTRICTION_SIMPLE_TYPE_PROPERTY] = g_param_spec_object ("simple-type", "simple-type", "simple-type", GXML_TYPE_XSD_SIMPLE_TYPE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_TYPE_RESTRICTION_ENUMERATIONS_PROPERTY, gxml_xsd_type_restriction_properties[GXML_XSD_TYPE_RESTRICTION_ENUMERATIONS_PROPERTY] = g_param_spec_object ("enumerations", "enumerations", "enumerations", GXML_TYPE_XSD_LIST_TYPE_RESTRICTION_ENUMERATIONS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_TYPE_RESTRICTION_WHITE_SPACES_PROPERTY, gxml_xsd_type_restriction_properties[GXML_XSD_TYPE_RESTRICTION_WHITE_SPACES_PROPERTY] = g_param_spec_object ("white-spaces", "white-spaces", "white-spaces", GXML_TYPE_XSD_LIST_TYPE_RESTRICTION_WHITE_SPACES, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_type_restriction_instance_init (GXmlXsdTypeRestriction * self,
                                         gpointer klass)
{
	self->priv = gxml_xsd_type_restriction_get_instance_private (self);
}

static void
gxml_xsd_type_restriction_finalize (GObject * obj)
{
	GXmlXsdTypeRestriction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_TYPE_RESTRICTION, GXmlXsdTypeRestriction);
	_g_free0 (self->priv->_base);
	_g_object_unref0 (self->priv->_simple_type);
	_g_object_unref0 (self->priv->_enumerations);
	_g_object_unref0 (self->priv->_white_spaces);
	G_OBJECT_CLASS (gxml_xsd_type_restriction_parent_class)->finalize (obj);
}

static GType
gxml_xsd_type_restriction_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestriction), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_instance_init, NULL };
	GType gxml_xsd_type_restriction_type_id;
	gxml_xsd_type_restriction_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_DEFINITION, "GXmlXsdTypeRestriction", &g_define_type_info, 0);
	GXmlXsdTypeRestriction_private_offset = g_type_add_instance_private (gxml_xsd_type_restriction_type_id, sizeof (GXmlXsdTypeRestrictionPrivate));
	return gxml_xsd_type_restriction_type_id;
}

GType
gxml_xsd_type_restriction_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_type_id__once)) {
		GType gxml_xsd_type_restriction_type_id;
		gxml_xsd_type_restriction_type_id = gxml_xsd_type_restriction_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_type_id__once, gxml_xsd_type_restriction_type_id);
	}
	return gxml_xsd_type_restriction_type_id__once;
}

static void
_vala_gxml_xsd_type_restriction_get_property (GObject * object,
                                              guint property_id,
                                              GValue * value,
                                              GParamSpec * pspec)
{
	GXmlXsdTypeRestriction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_TYPE_RESTRICTION, GXmlXsdTypeRestriction);
	switch (property_id) {
		case GXML_XSD_TYPE_RESTRICTION_BASE_PROPERTY:
		g_value_set_string (value, gxml_xsd_type_restriction_get_base (self));
		break;
		case GXML_XSD_TYPE_RESTRICTION_SIMPLE_TYPE_PROPERTY:
		g_value_set_object (value, gxml_xsd_type_restriction_get_simple_type (self));
		break;
		case GXML_XSD_TYPE_RESTRICTION_ENUMERATIONS_PROPERTY:
		g_value_set_object (value, gxml_xsd_type_restriction_get_enumerations (self));
		break;
		case GXML_XSD_TYPE_RESTRICTION_WHITE_SPACES_PROPERTY:
		g_value_set_object (value, gxml_xsd_type_restriction_get_white_spaces (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_type_restriction_set_property (GObject * object,
                                              guint property_id,
                                              const GValue * value,
                                              GParamSpec * pspec)
{
	GXmlXsdTypeRestriction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_TYPE_RESTRICTION, GXmlXsdTypeRestriction);
	switch (property_id) {
		case GXML_XSD_TYPE_RESTRICTION_BASE_PROPERTY:
		gxml_xsd_type_restriction_set_base (self, g_value_get_string (value));
		break;
		case GXML_XSD_TYPE_RESTRICTION_SIMPLE_TYPE_PROPERTY:
		gxml_xsd_type_restriction_set_simple_type (self, g_value_get_object (value));
		break;
		case GXML_XSD_TYPE_RESTRICTION_ENUMERATIONS_PROPERTY:
		gxml_xsd_type_restriction_set_enumerations (self, g_value_get_object (value));
		break;
		case GXML_XSD_TYPE_RESTRICTION_WHITE_SPACES_PROPERTY:
		gxml_xsd_type_restriction_set_white_spaces (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
gxml_xsd_type_restriction_def_get_instance_private (GXmlXsdTypeRestrictionDef* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdTypeRestrictionDef_private_offset);
}

GXmlXsdAnnotation*
gxml_xsd_type_restriction_def_get_annotation (GXmlXsdTypeRestrictionDef* self)
{
	GXmlXsdAnnotation* result;
	GXmlXsdAnnotation* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_annotation;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_type_restriction_def_set_annotation (GXmlXsdTypeRestrictionDef* self,
                                              GXmlXsdAnnotation* value)
{
	GXmlXsdAnnotation* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_type_restriction_def_get_annotation (self);
	if (old_value != value) {
		GXmlXsdAnnotation* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_annotation);
		self->priv->_annotation = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_type_restriction_def_properties[GXML_XSD_TYPE_RESTRICTION_DEF_ANNOTATION_PROPERTY]);
	}
}

GXmlXsdTypeRestrictionDef*
gxml_xsd_type_restriction_def_construct (GType object_type)
{
	GXmlXsdTypeRestrictionDef * self = NULL;
	self = (GXmlXsdTypeRestrictionDef*) gxml_element_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionDef*
gxml_xsd_type_restriction_def_new (void)
{
	return gxml_xsd_type_restriction_def_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF);
}

static void
gxml_xsd_type_restriction_def_class_init (GXmlXsdTypeRestrictionDefClass * klass,
                                          gpointer klass_data)
{
	gxml_xsd_type_restriction_def_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdTypeRestrictionDef_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_type_restriction_def_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_type_restriction_def_set_property;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_type_restriction_def_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_TYPE_RESTRICTION_DEF_ANNOTATION_PROPERTY, gxml_xsd_type_restriction_def_properties[GXML_XSD_TYPE_RESTRICTION_DEF_ANNOTATION_PROPERTY] = g_param_spec_object ("annotation", "annotation", "annotation", GXML_TYPE_XSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_type_restriction_def_instance_init (GXmlXsdTypeRestrictionDef * self,
                                             gpointer klass)
{
	self->priv = gxml_xsd_type_restriction_def_get_instance_private (self);
}

static void
gxml_xsd_type_restriction_def_finalize (GObject * obj)
{
	GXmlXsdTypeRestrictionDef * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, GXmlXsdTypeRestrictionDef);
	_g_object_unref0 (self->priv->_annotation);
	G_OBJECT_CLASS (gxml_xsd_type_restriction_def_parent_class)->finalize (obj);
}

static GType
gxml_xsd_type_restriction_def_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionDefClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_def_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionDef), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_def_instance_init, NULL };
	GType gxml_xsd_type_restriction_def_type_id;
	gxml_xsd_type_restriction_def_type_id = g_type_register_static (GXML_TYPE_ELEMENT, "GXmlXsdTypeRestrictionDef", &g_define_type_info, 0);
	GXmlXsdTypeRestrictionDef_private_offset = g_type_add_instance_private (gxml_xsd_type_restriction_def_type_id, sizeof (GXmlXsdTypeRestrictionDefPrivate));
	return gxml_xsd_type_restriction_def_type_id;
}

GType
gxml_xsd_type_restriction_def_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_def_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_def_type_id__once)) {
		GType gxml_xsd_type_restriction_def_type_id;
		gxml_xsd_type_restriction_def_type_id = gxml_xsd_type_restriction_def_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_def_type_id__once, gxml_xsd_type_restriction_def_type_id);
	}
	return gxml_xsd_type_restriction_def_type_id__once;
}

static void
_vala_gxml_xsd_type_restriction_def_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec)
{
	GXmlXsdTypeRestrictionDef * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, GXmlXsdTypeRestrictionDef);
	switch (property_id) {
		case GXML_XSD_TYPE_RESTRICTION_DEF_ANNOTATION_PROPERTY:
		g_value_set_object (value, gxml_xsd_type_restriction_def_get_annotation (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_type_restriction_def_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec)
{
	GXmlXsdTypeRestrictionDef * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, GXmlXsdTypeRestrictionDef);
	switch (property_id) {
		case GXML_XSD_TYPE_RESTRICTION_DEF_ANNOTATION_PROPERTY:
		gxml_xsd_type_restriction_def_set_annotation (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

GXmlXsdTypeRestrictionMinExclusive*
gxml_xsd_type_restriction_min_exclusive_construct (GType object_type)
{
	GXmlXsdTypeRestrictionMinExclusive * self = NULL;
	self = (GXmlXsdTypeRestrictionMinExclusive*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionMinExclusive*
gxml_xsd_type_restriction_min_exclusive_new (void)
{
	return gxml_xsd_type_restriction_min_exclusive_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_MIN_EXCLUSIVE);
}

static void
gxml_xsd_type_restriction_min_exclusive_class_init (GXmlXsdTypeRestrictionMinExclusiveClass * klass,
                                                    gpointer klass_data)
{
	gxml_xsd_type_restriction_min_exclusive_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_min_exclusive_instance_init (GXmlXsdTypeRestrictionMinExclusive * self,
                                                       gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_min_exclusive_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionMinExclusiveClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_min_exclusive_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionMinExclusive), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_min_exclusive_instance_init, NULL };
	GType gxml_xsd_type_restriction_min_exclusive_type_id;
	gxml_xsd_type_restriction_min_exclusive_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionMinExclusive", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_min_exclusive_type_id;
}

GType
gxml_xsd_type_restriction_min_exclusive_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_min_exclusive_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_min_exclusive_type_id__once)) {
		GType gxml_xsd_type_restriction_min_exclusive_type_id;
		gxml_xsd_type_restriction_min_exclusive_type_id = gxml_xsd_type_restriction_min_exclusive_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_min_exclusive_type_id__once, gxml_xsd_type_restriction_min_exclusive_type_id);
	}
	return gxml_xsd_type_restriction_min_exclusive_type_id__once;
}

GXmlXsdTypeRestrictionMinInclusive*
gxml_xsd_type_restriction_min_inclusive_construct (GType object_type)
{
	GXmlXsdTypeRestrictionMinInclusive * self = NULL;
	self = (GXmlXsdTypeRestrictionMinInclusive*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionMinInclusive*
gxml_xsd_type_restriction_min_inclusive_new (void)
{
	return gxml_xsd_type_restriction_min_inclusive_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_MIN_INCLUSIVE);
}

static void
gxml_xsd_type_restriction_min_inclusive_class_init (GXmlXsdTypeRestrictionMinInclusiveClass * klass,
                                                    gpointer klass_data)
{
	gxml_xsd_type_restriction_min_inclusive_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_min_inclusive_instance_init (GXmlXsdTypeRestrictionMinInclusive * self,
                                                       gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_min_inclusive_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionMinInclusiveClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_min_inclusive_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionMinInclusive), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_min_inclusive_instance_init, NULL };
	GType gxml_xsd_type_restriction_min_inclusive_type_id;
	gxml_xsd_type_restriction_min_inclusive_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionMinInclusive", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_min_inclusive_type_id;
}

GType
gxml_xsd_type_restriction_min_inclusive_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_min_inclusive_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_min_inclusive_type_id__once)) {
		GType gxml_xsd_type_restriction_min_inclusive_type_id;
		gxml_xsd_type_restriction_min_inclusive_type_id = gxml_xsd_type_restriction_min_inclusive_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_min_inclusive_type_id__once, gxml_xsd_type_restriction_min_inclusive_type_id);
	}
	return gxml_xsd_type_restriction_min_inclusive_type_id__once;
}

GXmlXsdTypeRestrictionMaxExclusive*
gxml_xsd_type_restriction_max_exclusive_construct (GType object_type)
{
	GXmlXsdTypeRestrictionMaxExclusive * self = NULL;
	self = (GXmlXsdTypeRestrictionMaxExclusive*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionMaxExclusive*
gxml_xsd_type_restriction_max_exclusive_new (void)
{
	return gxml_xsd_type_restriction_max_exclusive_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_MAX_EXCLUSIVE);
}

static void
gxml_xsd_type_restriction_max_exclusive_class_init (GXmlXsdTypeRestrictionMaxExclusiveClass * klass,
                                                    gpointer klass_data)
{
	gxml_xsd_type_restriction_max_exclusive_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_max_exclusive_instance_init (GXmlXsdTypeRestrictionMaxExclusive * self,
                                                       gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_max_exclusive_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionMaxExclusiveClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_max_exclusive_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionMaxExclusive), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_max_exclusive_instance_init, NULL };
	GType gxml_xsd_type_restriction_max_exclusive_type_id;
	gxml_xsd_type_restriction_max_exclusive_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionMaxExclusive", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_max_exclusive_type_id;
}

GType
gxml_xsd_type_restriction_max_exclusive_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_max_exclusive_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_max_exclusive_type_id__once)) {
		GType gxml_xsd_type_restriction_max_exclusive_type_id;
		gxml_xsd_type_restriction_max_exclusive_type_id = gxml_xsd_type_restriction_max_exclusive_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_max_exclusive_type_id__once, gxml_xsd_type_restriction_max_exclusive_type_id);
	}
	return gxml_xsd_type_restriction_max_exclusive_type_id__once;
}

GXmlXsdTypeRestrictionMaxInclusive*
gxml_xsd_type_restriction_max_inclusive_construct (GType object_type)
{
	GXmlXsdTypeRestrictionMaxInclusive * self = NULL;
	self = (GXmlXsdTypeRestrictionMaxInclusive*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionMaxInclusive*
gxml_xsd_type_restriction_max_inclusive_new (void)
{
	return gxml_xsd_type_restriction_max_inclusive_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_MAX_INCLUSIVE);
}

static void
gxml_xsd_type_restriction_max_inclusive_class_init (GXmlXsdTypeRestrictionMaxInclusiveClass * klass,
                                                    gpointer klass_data)
{
	gxml_xsd_type_restriction_max_inclusive_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_max_inclusive_instance_init (GXmlXsdTypeRestrictionMaxInclusive * self,
                                                       gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_max_inclusive_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionMaxInclusiveClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_max_inclusive_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionMaxInclusive), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_max_inclusive_instance_init, NULL };
	GType gxml_xsd_type_restriction_max_inclusive_type_id;
	gxml_xsd_type_restriction_max_inclusive_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionMaxInclusive", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_max_inclusive_type_id;
}

GType
gxml_xsd_type_restriction_max_inclusive_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_max_inclusive_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_max_inclusive_type_id__once)) {
		GType gxml_xsd_type_restriction_max_inclusive_type_id;
		gxml_xsd_type_restriction_max_inclusive_type_id = gxml_xsd_type_restriction_max_inclusive_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_max_inclusive_type_id__once, gxml_xsd_type_restriction_max_inclusive_type_id);
	}
	return gxml_xsd_type_restriction_max_inclusive_type_id__once;
}

GXmlXsdTypeRestrictionTotalDigits*
gxml_xsd_type_restriction_total_digits_construct (GType object_type)
{
	GXmlXsdTypeRestrictionTotalDigits * self = NULL;
	self = (GXmlXsdTypeRestrictionTotalDigits*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionTotalDigits*
gxml_xsd_type_restriction_total_digits_new (void)
{
	return gxml_xsd_type_restriction_total_digits_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_TOTAL_DIGITS);
}

static void
gxml_xsd_type_restriction_total_digits_class_init (GXmlXsdTypeRestrictionTotalDigitsClass * klass,
                                                   gpointer klass_data)
{
	gxml_xsd_type_restriction_total_digits_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_total_digits_instance_init (GXmlXsdTypeRestrictionTotalDigits * self,
                                                      gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_total_digits_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionTotalDigitsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_total_digits_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionTotalDigits), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_total_digits_instance_init, NULL };
	GType gxml_xsd_type_restriction_total_digits_type_id;
	gxml_xsd_type_restriction_total_digits_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionTotalDigits", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_total_digits_type_id;
}

GType
gxml_xsd_type_restriction_total_digits_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_total_digits_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_total_digits_type_id__once)) {
		GType gxml_xsd_type_restriction_total_digits_type_id;
		gxml_xsd_type_restriction_total_digits_type_id = gxml_xsd_type_restriction_total_digits_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_total_digits_type_id__once, gxml_xsd_type_restriction_total_digits_type_id);
	}
	return gxml_xsd_type_restriction_total_digits_type_id__once;
}

GXmlXsdTypeRestrictionFractionDigits*
gxml_xsd_type_restriction_fraction_digits_construct (GType object_type)
{
	GXmlXsdTypeRestrictionFractionDigits * self = NULL;
	self = (GXmlXsdTypeRestrictionFractionDigits*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionFractionDigits*
gxml_xsd_type_restriction_fraction_digits_new (void)
{
	return gxml_xsd_type_restriction_fraction_digits_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_FRACTION_DIGITS);
}

static void
gxml_xsd_type_restriction_fraction_digits_class_init (GXmlXsdTypeRestrictionFractionDigitsClass * klass,
                                                      gpointer klass_data)
{
	gxml_xsd_type_restriction_fraction_digits_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_fraction_digits_instance_init (GXmlXsdTypeRestrictionFractionDigits * self,
                                                         gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_fraction_digits_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionFractionDigitsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_fraction_digits_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionFractionDigits), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_fraction_digits_instance_init, NULL };
	GType gxml_xsd_type_restriction_fraction_digits_type_id;
	gxml_xsd_type_restriction_fraction_digits_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionFractionDigits", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_fraction_digits_type_id;
}

GType
gxml_xsd_type_restriction_fraction_digits_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_fraction_digits_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_fraction_digits_type_id__once)) {
		GType gxml_xsd_type_restriction_fraction_digits_type_id;
		gxml_xsd_type_restriction_fraction_digits_type_id = gxml_xsd_type_restriction_fraction_digits_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_fraction_digits_type_id__once, gxml_xsd_type_restriction_fraction_digits_type_id);
	}
	return gxml_xsd_type_restriction_fraction_digits_type_id__once;
}

GXmlXsdTypeRestrictionLength*
gxml_xsd_type_restriction_length_construct (GType object_type)
{
	GXmlXsdTypeRestrictionLength * self = NULL;
	self = (GXmlXsdTypeRestrictionLength*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionLength*
gxml_xsd_type_restriction_length_new (void)
{
	return gxml_xsd_type_restriction_length_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_LENGTH);
}

static void
gxml_xsd_type_restriction_length_class_init (GXmlXsdTypeRestrictionLengthClass * klass,
                                             gpointer klass_data)
{
	gxml_xsd_type_restriction_length_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_length_instance_init (GXmlXsdTypeRestrictionLength * self,
                                                gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_length_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionLengthClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_length_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionLength), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_length_instance_init, NULL };
	GType gxml_xsd_type_restriction_length_type_id;
	gxml_xsd_type_restriction_length_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionLength", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_length_type_id;
}

GType
gxml_xsd_type_restriction_length_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_length_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_length_type_id__once)) {
		GType gxml_xsd_type_restriction_length_type_id;
		gxml_xsd_type_restriction_length_type_id = gxml_xsd_type_restriction_length_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_length_type_id__once, gxml_xsd_type_restriction_length_type_id);
	}
	return gxml_xsd_type_restriction_length_type_id__once;
}

GXmlXsdTypeRestrictionMinLength*
gxml_xsd_type_restriction_min_length_construct (GType object_type)
{
	GXmlXsdTypeRestrictionMinLength * self = NULL;
	self = (GXmlXsdTypeRestrictionMinLength*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionMinLength*
gxml_xsd_type_restriction_min_length_new (void)
{
	return gxml_xsd_type_restriction_min_length_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_MIN_LENGTH);
}

static void
gxml_xsd_type_restriction_min_length_class_init (GXmlXsdTypeRestrictionMinLengthClass * klass,
                                                 gpointer klass_data)
{
	gxml_xsd_type_restriction_min_length_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_min_length_instance_init (GXmlXsdTypeRestrictionMinLength * self,
                                                    gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_min_length_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionMinLengthClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_min_length_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionMinLength), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_min_length_instance_init, NULL };
	GType gxml_xsd_type_restriction_min_length_type_id;
	gxml_xsd_type_restriction_min_length_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionMinLength", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_min_length_type_id;
}

GType
gxml_xsd_type_restriction_min_length_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_min_length_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_min_length_type_id__once)) {
		GType gxml_xsd_type_restriction_min_length_type_id;
		gxml_xsd_type_restriction_min_length_type_id = gxml_xsd_type_restriction_min_length_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_min_length_type_id__once, gxml_xsd_type_restriction_min_length_type_id);
	}
	return gxml_xsd_type_restriction_min_length_type_id__once;
}

GXmlXsdTypeRestrictionMaxLength*
gxml_xsd_type_restriction_max_length_construct (GType object_type)
{
	GXmlXsdTypeRestrictionMaxLength * self = NULL;
	self = (GXmlXsdTypeRestrictionMaxLength*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionMaxLength*
gxml_xsd_type_restriction_max_length_new (void)
{
	return gxml_xsd_type_restriction_max_length_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_MAX_LENGTH);
}

static void
gxml_xsd_type_restriction_max_length_class_init (GXmlXsdTypeRestrictionMaxLengthClass * klass,
                                                 gpointer klass_data)
{
	gxml_xsd_type_restriction_max_length_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_max_length_instance_init (GXmlXsdTypeRestrictionMaxLength * self,
                                                    gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_max_length_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionMaxLengthClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_max_length_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionMaxLength), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_max_length_instance_init, NULL };
	GType gxml_xsd_type_restriction_max_length_type_id;
	gxml_xsd_type_restriction_max_length_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionMaxLength", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_max_length_type_id;
}

GType
gxml_xsd_type_restriction_max_length_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_max_length_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_max_length_type_id__once)) {
		GType gxml_xsd_type_restriction_max_length_type_id;
		gxml_xsd_type_restriction_max_length_type_id = gxml_xsd_type_restriction_max_length_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_max_length_type_id__once, gxml_xsd_type_restriction_max_length_type_id);
	}
	return gxml_xsd_type_restriction_max_length_type_id__once;
}

static inline gpointer
gxml_xsd_type_restriction_enumeration_get_instance_private (GXmlXsdTypeRestrictionEnumeration* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdTypeRestrictionEnumeration_private_offset);
}

const gchar*
gxml_xsd_type_restriction_enumeration_get_value (GXmlXsdTypeRestrictionEnumeration* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_value;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_type_restriction_enumeration_set_value (GXmlXsdTypeRestrictionEnumeration* self,
                                                 const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_type_restriction_enumeration_get_value (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_value);
		self->priv->_value = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_type_restriction_enumeration_properties[GXML_XSD_TYPE_RESTRICTION_ENUMERATION_VALUE_PROPERTY]);
	}
}

GXmlXsdTypeRestrictionEnumeration*
gxml_xsd_type_restriction_enumeration_construct (GType object_type)
{
	GXmlXsdTypeRestrictionEnumeration * self = NULL;
	self = (GXmlXsdTypeRestrictionEnumeration*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionEnumeration*
gxml_xsd_type_restriction_enumeration_new (void)
{
	return gxml_xsd_type_restriction_enumeration_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_ENUMERATION);
}

static GObject *
gxml_xsd_type_restriction_enumeration_constructor (GType type,
                                                   guint n_construct_properties,
                                                   GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdTypeRestrictionEnumeration * self;
	parent_class = G_OBJECT_CLASS (gxml_xsd_type_restriction_enumeration_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_TYPE_RESTRICTION_ENUMERATION, GXmlXsdTypeRestrictionEnumeration);
	gxml_element_initialize_with_namespace ((GXmlElement*) self, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_URI, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_PREFIX, GXML_IXSD_TYPE_RESTRICTION_ENUMERATION_SCHEMA_NODE_NAME);
	return obj;
}

static void
gxml_xsd_type_restriction_enumeration_class_init (GXmlXsdTypeRestrictionEnumerationClass * klass,
                                                  gpointer klass_data)
{
	gxml_xsd_type_restriction_enumeration_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdTypeRestrictionEnumeration_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_type_restriction_enumeration_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_type_restriction_enumeration_set_property;
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_type_restriction_enumeration_constructor;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_type_restriction_enumeration_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_TYPE_RESTRICTION_ENUMERATION_VALUE_PROPERTY, gxml_xsd_type_restriction_enumeration_properties[GXML_XSD_TYPE_RESTRICTION_ENUMERATION_VALUE_PROPERTY] = g_param_spec_string ("value", "::value", "value", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_type_restriction_enumeration_instance_init (GXmlXsdTypeRestrictionEnumeration * self,
                                                     gpointer klass)
{
	self->priv = gxml_xsd_type_restriction_enumeration_get_instance_private (self);
}

static void
gxml_xsd_type_restriction_enumeration_finalize (GObject * obj)
{
	GXmlXsdTypeRestrictionEnumeration * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_TYPE_RESTRICTION_ENUMERATION, GXmlXsdTypeRestrictionEnumeration);
	_g_free0 (self->priv->_value);
	G_OBJECT_CLASS (gxml_xsd_type_restriction_enumeration_parent_class)->finalize (obj);
}

static GType
gxml_xsd_type_restriction_enumeration_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionEnumerationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_enumeration_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionEnumeration), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_enumeration_instance_init, NULL };
	GType gxml_xsd_type_restriction_enumeration_type_id;
	gxml_xsd_type_restriction_enumeration_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionEnumeration", &g_define_type_info, 0);
	GXmlXsdTypeRestrictionEnumeration_private_offset = g_type_add_instance_private (gxml_xsd_type_restriction_enumeration_type_id, sizeof (GXmlXsdTypeRestrictionEnumerationPrivate));
	return gxml_xsd_type_restriction_enumeration_type_id;
}

GType
gxml_xsd_type_restriction_enumeration_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_enumeration_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_enumeration_type_id__once)) {
		GType gxml_xsd_type_restriction_enumeration_type_id;
		gxml_xsd_type_restriction_enumeration_type_id = gxml_xsd_type_restriction_enumeration_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_enumeration_type_id__once, gxml_xsd_type_restriction_enumeration_type_id);
	}
	return gxml_xsd_type_restriction_enumeration_type_id__once;
}

static void
_vala_gxml_xsd_type_restriction_enumeration_get_property (GObject * object,
                                                          guint property_id,
                                                          GValue * value,
                                                          GParamSpec * pspec)
{
	GXmlXsdTypeRestrictionEnumeration * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_TYPE_RESTRICTION_ENUMERATION, GXmlXsdTypeRestrictionEnumeration);
	switch (property_id) {
		case GXML_XSD_TYPE_RESTRICTION_ENUMERATION_VALUE_PROPERTY:
		g_value_set_string (value, gxml_xsd_type_restriction_enumeration_get_value (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_type_restriction_enumeration_set_property (GObject * object,
                                                          guint property_id,
                                                          const GValue * value,
                                                          GParamSpec * pspec)
{
	GXmlXsdTypeRestrictionEnumeration * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_TYPE_RESTRICTION_ENUMERATION, GXmlXsdTypeRestrictionEnumeration);
	switch (property_id) {
		case GXML_XSD_TYPE_RESTRICTION_ENUMERATION_VALUE_PROPERTY:
		gxml_xsd_type_restriction_enumeration_set_value (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
gxml_xsd_type_restriction_white_space_get_instance_private (GXmlXsdTypeRestrictionWhiteSpace* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdTypeRestrictionWhiteSpace_private_offset);
}

GXmlXsdTypeRestrictionWhiteSpaceFixed*
gxml_xsd_type_restriction_white_space_get_fixed (GXmlXsdTypeRestrictionWhiteSpace* self)
{
	GXmlXsdTypeRestrictionWhiteSpaceFixed* result;
	GXmlXsdTypeRestrictionWhiteSpaceFixed* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_fixed;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_type_restriction_white_space_set_fixed (GXmlXsdTypeRestrictionWhiteSpace* self,
                                                 GXmlXsdTypeRestrictionWhiteSpaceFixed* value)
{
	GXmlXsdTypeRestrictionWhiteSpaceFixed* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_type_restriction_white_space_get_fixed (self);
	if (old_value != value) {
		GXmlXsdTypeRestrictionWhiteSpaceFixed* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_fixed);
		self->priv->_fixed = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_type_restriction_white_space_properties[GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_FIXED_PROPERTY]);
	}
}

const gchar*
gxml_xsd_type_restriction_white_space_get_value (GXmlXsdTypeRestrictionWhiteSpace* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_value;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_type_restriction_white_space_set_value (GXmlXsdTypeRestrictionWhiteSpace* self,
                                                 const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_type_restriction_white_space_get_value (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_value);
		self->priv->_value = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_type_restriction_white_space_properties[GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_VALUE_PROPERTY]);
	}
}

GXmlXsdTypeRestrictionWhiteSpace*
gxml_xsd_type_restriction_white_space_construct (GType object_type)
{
	GXmlXsdTypeRestrictionWhiteSpace * self = NULL;
	self = (GXmlXsdTypeRestrictionWhiteSpace*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionWhiteSpace*
gxml_xsd_type_restriction_white_space_new (void)
{
	return gxml_xsd_type_restriction_white_space_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_WHITE_SPACE);
}

GXmlXsdTypeRestrictionWhiteSpaceFixed*
gxml_xsd_type_restriction_white_space_fixed_construct (GType object_type)
{
	GXmlXsdTypeRestrictionWhiteSpaceFixed * self = NULL;
	self = (GXmlXsdTypeRestrictionWhiteSpaceFixed*) gxml_boolean_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionWhiteSpaceFixed*
gxml_xsd_type_restriction_white_space_fixed_new (void)
{
	return gxml_xsd_type_restriction_white_space_fixed_construct (GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_TYPE_FIXED);
}

static void
gxml_xsd_type_restriction_white_space_fixed_class_init (GXmlXsdTypeRestrictionWhiteSpaceFixedClass * klass,
                                                        gpointer klass_data)
{
	gxml_xsd_type_restriction_white_space_fixed_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_white_space_fixed_instance_init (GXmlXsdTypeRestrictionWhiteSpaceFixed * self,
                                                           gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_white_space_fixed_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionWhiteSpaceFixedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_white_space_fixed_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionWhiteSpaceFixed), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_white_space_fixed_instance_init, NULL };
	GType gxml_xsd_type_restriction_white_space_fixed_type_id;
	gxml_xsd_type_restriction_white_space_fixed_type_id = g_type_register_static (GXML_TYPE_BOOLEAN, "GXmlXsdTypeRestrictionWhiteSpaceFixed", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_white_space_fixed_type_id;
}

GType
gxml_xsd_type_restriction_white_space_fixed_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_white_space_fixed_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_white_space_fixed_type_id__once)) {
		GType gxml_xsd_type_restriction_white_space_fixed_type_id;
		gxml_xsd_type_restriction_white_space_fixed_type_id = gxml_xsd_type_restriction_white_space_fixed_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_white_space_fixed_type_id__once, gxml_xsd_type_restriction_white_space_fixed_type_id);
	}
	return gxml_xsd_type_restriction_white_space_fixed_type_id__once;
}

static GObject *
gxml_xsd_type_restriction_white_space_constructor (GType type,
                                                   guint n_construct_properties,
                                                   GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdTypeRestrictionWhiteSpace * self;
	parent_class = G_OBJECT_CLASS (gxml_xsd_type_restriction_white_space_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_TYPE_RESTRICTION_WHITE_SPACE, GXmlXsdTypeRestrictionWhiteSpace);
	gxml_element_initialize_with_namespace ((GXmlElement*) self, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_URI, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_PREFIX, GXML_IXSD_TYPE_RESTRICTION_WHITE_SPACE_SCHEMA_NODE_NAME);
	return obj;
}

static void
gxml_xsd_type_restriction_white_space_class_init (GXmlXsdTypeRestrictionWhiteSpaceClass * klass,
                                                  gpointer klass_data)
{
	gxml_xsd_type_restriction_white_space_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdTypeRestrictionWhiteSpace_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_type_restriction_white_space_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_type_restriction_white_space_set_property;
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_type_restriction_white_space_constructor;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_type_restriction_white_space_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_FIXED_PROPERTY, gxml_xsd_type_restriction_white_space_properties[GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_FIXED_PROPERTY] = g_param_spec_object ("fixed", "::fixed", "fixed", GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_TYPE_FIXED, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * (collapse | preserve | replace)
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_VALUE_PROPERTY, gxml_xsd_type_restriction_white_space_properties[GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_VALUE_PROPERTY] = g_param_spec_string ("value", "::value", "value", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_type_restriction_white_space_instance_init (GXmlXsdTypeRestrictionWhiteSpace * self,
                                                     gpointer klass)
{
	self->priv = gxml_xsd_type_restriction_white_space_get_instance_private (self);
}

static void
gxml_xsd_type_restriction_white_space_finalize (GObject * obj)
{
	GXmlXsdTypeRestrictionWhiteSpace * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_TYPE_RESTRICTION_WHITE_SPACE, GXmlXsdTypeRestrictionWhiteSpace);
	_g_object_unref0 (self->priv->_fixed);
	_g_free0 (self->priv->_value);
	G_OBJECT_CLASS (gxml_xsd_type_restriction_white_space_parent_class)->finalize (obj);
}

static GType
gxml_xsd_type_restriction_white_space_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionWhiteSpaceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_white_space_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionWhiteSpace), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_white_space_instance_init, NULL };
	GType gxml_xsd_type_restriction_white_space_type_id;
	gxml_xsd_type_restriction_white_space_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionWhiteSpace", &g_define_type_info, 0);
	GXmlXsdTypeRestrictionWhiteSpace_private_offset = g_type_add_instance_private (gxml_xsd_type_restriction_white_space_type_id, sizeof (GXmlXsdTypeRestrictionWhiteSpacePrivate));
	return gxml_xsd_type_restriction_white_space_type_id;
}

GType
gxml_xsd_type_restriction_white_space_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_white_space_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_white_space_type_id__once)) {
		GType gxml_xsd_type_restriction_white_space_type_id;
		gxml_xsd_type_restriction_white_space_type_id = gxml_xsd_type_restriction_white_space_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_white_space_type_id__once, gxml_xsd_type_restriction_white_space_type_id);
	}
	return gxml_xsd_type_restriction_white_space_type_id__once;
}

static void
_vala_gxml_xsd_type_restriction_white_space_get_property (GObject * object,
                                                          guint property_id,
                                                          GValue * value,
                                                          GParamSpec * pspec)
{
	GXmlXsdTypeRestrictionWhiteSpace * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_TYPE_RESTRICTION_WHITE_SPACE, GXmlXsdTypeRestrictionWhiteSpace);
	switch (property_id) {
		case GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_FIXED_PROPERTY:
		g_value_set_object (value, gxml_xsd_type_restriction_white_space_get_fixed (self));
		break;
		case GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_VALUE_PROPERTY:
		g_value_set_string (value, gxml_xsd_type_restriction_white_space_get_value (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_type_restriction_white_space_set_property (GObject * object,
                                                          guint property_id,
                                                          const GValue * value,
                                                          GParamSpec * pspec)
{
	GXmlXsdTypeRestrictionWhiteSpace * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_TYPE_RESTRICTION_WHITE_SPACE, GXmlXsdTypeRestrictionWhiteSpace);
	switch (property_id) {
		case GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_FIXED_PROPERTY:
		gxml_xsd_type_restriction_white_space_set_fixed (self, g_value_get_object (value));
		break;
		case GXML_XSD_TYPE_RESTRICTION_WHITE_SPACE_VALUE_PROPERTY:
		gxml_xsd_type_restriction_white_space_set_value (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

GXmlXsdTypeRestrictionPattern*
gxml_xsd_type_restriction_pattern_construct (GType object_type)
{
	GXmlXsdTypeRestrictionPattern * self = NULL;
	self = (GXmlXsdTypeRestrictionPattern*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionPattern*
gxml_xsd_type_restriction_pattern_new (void)
{
	return gxml_xsd_type_restriction_pattern_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_PATTERN);
}

static void
gxml_xsd_type_restriction_pattern_class_init (GXmlXsdTypeRestrictionPatternClass * klass,
                                              gpointer klass_data)
{
	gxml_xsd_type_restriction_pattern_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_pattern_instance_init (GXmlXsdTypeRestrictionPattern * self,
                                                 gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_pattern_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionPatternClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_pattern_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionPattern), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_pattern_instance_init, NULL };
	GType gxml_xsd_type_restriction_pattern_type_id;
	gxml_xsd_type_restriction_pattern_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionPattern", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_pattern_type_id;
}

GType
gxml_xsd_type_restriction_pattern_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_pattern_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_pattern_type_id__once)) {
		GType gxml_xsd_type_restriction_pattern_type_id;
		gxml_xsd_type_restriction_pattern_type_id = gxml_xsd_type_restriction_pattern_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_pattern_type_id__once, gxml_xsd_type_restriction_pattern_type_id);
	}
	return gxml_xsd_type_restriction_pattern_type_id__once;
}

GXmlXsdTypeRestrictionAssertion*
gxml_xsd_type_restriction_assertion_construct (GType object_type)
{
	GXmlXsdTypeRestrictionAssertion * self = NULL;
	self = (GXmlXsdTypeRestrictionAssertion*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionAssertion*
gxml_xsd_type_restriction_assertion_new (void)
{
	return gxml_xsd_type_restriction_assertion_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_ASSERTION);
}

static void
gxml_xsd_type_restriction_assertion_class_init (GXmlXsdTypeRestrictionAssertionClass * klass,
                                                gpointer klass_data)
{
	gxml_xsd_type_restriction_assertion_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_assertion_instance_init (GXmlXsdTypeRestrictionAssertion * self,
                                                   gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_assertion_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionAssertionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_assertion_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionAssertion), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_assertion_instance_init, NULL };
	GType gxml_xsd_type_restriction_assertion_type_id;
	gxml_xsd_type_restriction_assertion_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionAssertion", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_assertion_type_id;
}

GType
gxml_xsd_type_restriction_assertion_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_assertion_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_assertion_type_id__once)) {
		GType gxml_xsd_type_restriction_assertion_type_id;
		gxml_xsd_type_restriction_assertion_type_id = gxml_xsd_type_restriction_assertion_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_assertion_type_id__once, gxml_xsd_type_restriction_assertion_type_id);
	}
	return gxml_xsd_type_restriction_assertion_type_id__once;
}

GXmlXsdTypeRestrictionExplicitTimezone*
gxml_xsd_type_restriction_explicit_timezone_construct (GType object_type)
{
	GXmlXsdTypeRestrictionExplicitTimezone * self = NULL;
	self = (GXmlXsdTypeRestrictionExplicitTimezone*) gxml_xsd_type_restriction_def_construct (object_type);
	return self;
}

GXmlXsdTypeRestrictionExplicitTimezone*
gxml_xsd_type_restriction_explicit_timezone_new (void)
{
	return gxml_xsd_type_restriction_explicit_timezone_construct (GXML_TYPE_XSD_TYPE_RESTRICTION_EXPLICIT_TIMEZONE);
}

static void
gxml_xsd_type_restriction_explicit_timezone_class_init (GXmlXsdTypeRestrictionExplicitTimezoneClass * klass,
                                                        gpointer klass_data)
{
	gxml_xsd_type_restriction_explicit_timezone_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_type_restriction_explicit_timezone_instance_init (GXmlXsdTypeRestrictionExplicitTimezone * self,
                                                           gpointer klass)
{
}

static GType
gxml_xsd_type_restriction_explicit_timezone_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdTypeRestrictionExplicitTimezoneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_type_restriction_explicit_timezone_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdTypeRestrictionExplicitTimezone), 0, (GInstanceInitFunc) gxml_xsd_type_restriction_explicit_timezone_instance_init, NULL };
	GType gxml_xsd_type_restriction_explicit_timezone_type_id;
	gxml_xsd_type_restriction_explicit_timezone_type_id = g_type_register_static (GXML_TYPE_XSD_TYPE_RESTRICTION_DEF, "GXmlXsdTypeRestrictionExplicitTimezone", &g_define_type_info, 0);
	return gxml_xsd_type_restriction_explicit_timezone_type_id;
}

GType
gxml_xsd_type_restriction_explicit_timezone_get_type (void)
{
	static volatile gsize gxml_xsd_type_restriction_explicit_timezone_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_type_restriction_explicit_timezone_type_id__once)) {
		GType gxml_xsd_type_restriction_explicit_timezone_type_id;
		gxml_xsd_type_restriction_explicit_timezone_type_id = gxml_xsd_type_restriction_explicit_timezone_get_type_once ();
		g_once_init_leave (&gxml_xsd_type_restriction_explicit_timezone_type_id__once, gxml_xsd_type_restriction_explicit_timezone_type_id);
	}
	return gxml_xsd_type_restriction_explicit_timezone_type_id__once;
}

static inline gpointer
gxml_xsd_complex_type_get_instance_private (GXmlXsdComplexType* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdComplexType_private_offset);
}

gboolean
gxml_xsd_complex_type_get_abstract (GXmlXsdComplexType* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_abstract;
	return result;
}

void
gxml_xsd_complex_type_set_abstract (GXmlXsdComplexType* self,
                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_complex_type_get_abstract (self);
	if (old_value != value) {
		self->priv->_abstract = value;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_ABSTRACT_PROPERTY]);
	}
}

const gchar*
gxml_xsd_complex_type_get_block (GXmlXsdComplexType* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_block;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_complex_type_set_block (GXmlXsdComplexType* self,
                                 const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_complex_type_get_block (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_block);
		self->priv->_block = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_BLOCK_PROPERTY]);
	}
}

const gchar*
gxml_xsd_complex_type_get_final (GXmlXsdComplexType* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_final;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_complex_type_set_final (GXmlXsdComplexType* self,
                                 const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_complex_type_get_final (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_final);
		self->priv->_final = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_FINAL_PROPERTY]);
	}
}

gboolean
gxml_xsd_complex_type_get_mixed (GXmlXsdComplexType* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_mixed;
	return result;
}

void
gxml_xsd_complex_type_set_mixed (GXmlXsdComplexType* self,
                                 gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_complex_type_get_mixed (self);
	if (old_value != value) {
		self->priv->_mixed = value;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_MIXED_PROPERTY]);
	}
}

const gchar*
gxml_xsd_complex_type_get_name (GXmlXsdComplexType* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_name;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_complex_type_set_name (GXmlXsdComplexType* self,
                                const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_complex_type_get_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_name);
		self->priv->_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_NAME_PROPERTY]);
	}
}

gboolean
gxml_xsd_complex_type_get_default_attributes_apply (GXmlXsdComplexType* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_default_attributes_apply;
	return result;
}

void
gxml_xsd_complex_type_set_default_attributes_apply (GXmlXsdComplexType* self,
                                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_complex_type_get_default_attributes_apply (self);
	if (old_value != value) {
		self->priv->_default_attributes_apply = value;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_DEFAULT_ATTRIBUTES_APPLY_PROPERTY]);
	}
}

GXmlXsdBaseContent*
gxml_xsd_complex_type_get_content_type (GXmlXsdComplexType* self)
{
	GXmlXsdBaseContent* result;
	GXmlXsdBaseContent* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_content_type;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_complex_type_set_content_type (GXmlXsdComplexType* self,
                                        GXmlXsdBaseContent* value)
{
	GXmlXsdBaseContent* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_complex_type_get_content_type (self);
	if (old_value != value) {
		GXmlXsdBaseContent* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_content_type);
		self->priv->_content_type = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_CONTENT_TYPE_PROPERTY]);
	}
}

GXmlXsdList*
gxml_xsd_complex_type_get_type_attributes (GXmlXsdComplexType* self)
{
	GXmlXsdList* result;
	GXmlXsdList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->_type_attributes;
	result = _tmp0_;
	return result;
}

GXmlXsdList*
gxml_xsd_complex_type_get_group_attributes (GXmlXsdComplexType* self)
{
	GXmlXsdList* result;
	GXmlXsdList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->_group_attributes;
	result = _tmp0_;
	return result;
}

GXmlXsdComplexType*
gxml_xsd_complex_type_construct (GType object_type)
{
	GXmlXsdComplexType * self = NULL;
	self = (GXmlXsdComplexType*) gxml_xsd_base_type_construct (object_type);
	return self;
}

GXmlXsdComplexType*
gxml_xsd_complex_type_new (void)
{
	return gxml_xsd_complex_type_construct (GXML_TYPE_XSD_COMPLEX_TYPE);
}

static GObject *
gxml_xsd_complex_type_constructor (GType type,
                                   guint n_construct_properties,
                                   GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdComplexType * self;
	parent_class = G_OBJECT_CLASS (gxml_xsd_complex_type_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_COMPLEX_TYPE, GXmlXsdComplexType);
	gxml_element_initialize_with_namespace ((GXmlElement*) self, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_URI, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_PREFIX, GXML_IXSD_COMPLEX_TYPE_SCHEMA_NODE_NAME);
	return obj;
}

static void
gxml_xsd_complex_type_class_init (GXmlXsdComplexTypeClass * klass,
                                  gpointer klass_data)
{
	gxml_xsd_complex_type_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdComplexType_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_complex_type_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_complex_type_set_property;
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_complex_type_constructor;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_complex_type_finalize;
	/**
	  * attribute name = abstract
	  */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_COMPLEX_TYPE_ABSTRACT_PROPERTY, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_ABSTRACT_PROPERTY] = 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_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_COMPLEX_TYPE_BLOCK_PROPERTY, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_BLOCK_PROPERTY] = 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_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_COMPLEX_TYPE_FINAL_PROPERTY, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_FINAL_PROPERTY] = g_param_spec_string ("final", "final", "final", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_COMPLEX_TYPE_MIXED_PROPERTY, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_MIXED_PROPERTY] = g_param_spec_boolean ("mixed", "mixed", "mixed", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_COMPLEX_TYPE_NAME_PROPERTY, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * defaultAttributesApply
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_COMPLEX_TYPE_DEFAULT_ATTRIBUTES_APPLY_PROPERTY, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_DEFAULT_ATTRIBUTES_APPLY_PROPERTY] = 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 XsdComplexType} or {@link XsdSimpleType}
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_COMPLEX_TYPE_CONTENT_TYPE_PROPERTY, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_CONTENT_TYPE_PROPERTY] = g_param_spec_object ("content-type", "content-type", "content-type", GXML_TYPE_XSD_BASE_CONTENT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * List of type {@link XsdAttribute} definitions
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_COMPLEX_TYPE_TYPE_ATTRIBUTES_PROPERTY, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_TYPE_ATTRIBUTES_PROPERTY] = g_param_spec_object ("type-attributes", "type-attributes", "type-attributes", GXML_TYPE_XSD_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	/**
	   * List of group {@link XsdAttribute} definitions
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_COMPLEX_TYPE_GROUP_ATTRIBUTES_PROPERTY, gxml_xsd_complex_type_properties[GXML_XSD_COMPLEX_TYPE_GROUP_ATTRIBUTES_PROPERTY] = g_param_spec_object ("group-attributes", "group-attributes", "group-attributes", GXML_TYPE_XSD_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
gxml_xsd_complex_type_instance_init (GXmlXsdComplexType * self,
                                     gpointer klass)
{
	self->priv = gxml_xsd_complex_type_get_instance_private (self);
	self->_type_attributes = NULL;
	self->_group_attributes = NULL;
	self->priv->_abstract = FALSE;
	self->priv->_default_attributes_apply = TRUE;
}

static void
gxml_xsd_complex_type_finalize (GObject * obj)
{
	GXmlXsdComplexType * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_COMPLEX_TYPE, GXmlXsdComplexType);
	_g_object_unref0 (self->_type_attributes);
	_g_object_unref0 (self->_group_attributes);
	_g_free0 (self->priv->_block);
	_g_free0 (self->priv->_final);
	_g_free0 (self->priv->_name);
	_g_object_unref0 (self->priv->_content_type);
	G_OBJECT_CLASS (gxml_xsd_complex_type_parent_class)->finalize (obj);
}

static GType
gxml_xsd_complex_type_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdComplexTypeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_complex_type_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdComplexType), 0, (GInstanceInitFunc) gxml_xsd_complex_type_instance_init, NULL };
	GType gxml_xsd_complex_type_type_id;
	gxml_xsd_complex_type_type_id = g_type_register_static (GXML_TYPE_XSD_BASE_TYPE, "GXmlXsdComplexType", &g_define_type_info, 0);
	GXmlXsdComplexType_private_offset = g_type_add_instance_private (gxml_xsd_complex_type_type_id, sizeof (GXmlXsdComplexTypePrivate));
	return gxml_xsd_complex_type_type_id;
}

GType
gxml_xsd_complex_type_get_type (void)
{
	static volatile gsize gxml_xsd_complex_type_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_complex_type_type_id__once)) {
		GType gxml_xsd_complex_type_type_id;
		gxml_xsd_complex_type_type_id = gxml_xsd_complex_type_get_type_once ();
		g_once_init_leave (&gxml_xsd_complex_type_type_id__once, gxml_xsd_complex_type_type_id);
	}
	return gxml_xsd_complex_type_type_id__once;
}

static void
_vala_gxml_xsd_complex_type_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec)
{
	GXmlXsdComplexType * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_COMPLEX_TYPE, GXmlXsdComplexType);
	switch (property_id) {
		case GXML_XSD_COMPLEX_TYPE_ABSTRACT_PROPERTY:
		g_value_set_boolean (value, gxml_xsd_complex_type_get_abstract (self));
		break;
		case GXML_XSD_COMPLEX_TYPE_BLOCK_PROPERTY:
		g_value_set_string (value, gxml_xsd_complex_type_get_block (self));
		break;
		case GXML_XSD_COMPLEX_TYPE_FINAL_PROPERTY:
		g_value_set_string (value, gxml_xsd_complex_type_get_final (self));
		break;
		case GXML_XSD_COMPLEX_TYPE_MIXED_PROPERTY:
		g_value_set_boolean (value, gxml_xsd_complex_type_get_mixed (self));
		break;
		case GXML_XSD_COMPLEX_TYPE_NAME_PROPERTY:
		g_value_set_string (value, gxml_xsd_complex_type_get_name (self));
		break;
		case GXML_XSD_COMPLEX_TYPE_DEFAULT_ATTRIBUTES_APPLY_PROPERTY:
		g_value_set_boolean (value, gxml_xsd_complex_type_get_default_attributes_apply (self));
		break;
		case GXML_XSD_COMPLEX_TYPE_CONTENT_TYPE_PROPERTY:
		g_value_set_object (value, gxml_xsd_complex_type_get_content_type (self));
		break;
		case GXML_XSD_COMPLEX_TYPE_TYPE_ATTRIBUTES_PROPERTY:
		g_value_set_object (value, gxml_xsd_complex_type_get_type_attributes (self));
		break;
		case GXML_XSD_COMPLEX_TYPE_GROUP_ATTRIBUTES_PROPERTY:
		g_value_set_object (value, gxml_xsd_complex_type_get_group_attributes (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_complex_type_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec)
{
	GXmlXsdComplexType * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_COMPLEX_TYPE, GXmlXsdComplexType);
	switch (property_id) {
		case GXML_XSD_COMPLEX_TYPE_ABSTRACT_PROPERTY:
		gxml_xsd_complex_type_set_abstract (self, g_value_get_boolean (value));
		break;
		case GXML_XSD_COMPLEX_TYPE_BLOCK_PROPERTY:
		gxml_xsd_complex_type_set_block (self, g_value_get_string (value));
		break;
		case GXML_XSD_COMPLEX_TYPE_FINAL_PROPERTY:
		gxml_xsd_complex_type_set_final (self, g_value_get_string (value));
		break;
		case GXML_XSD_COMPLEX_TYPE_MIXED_PROPERTY:
		gxml_xsd_complex_type_set_mixed (self, g_value_get_boolean (value));
		break;
		case GXML_XSD_COMPLEX_TYPE_NAME_PROPERTY:
		gxml_xsd_complex_type_set_name (self, g_value_get_string (value));
		break;
		case GXML_XSD_COMPLEX_TYPE_DEFAULT_ATTRIBUTES_APPLY_PROPERTY:
		gxml_xsd_complex_type_set_default_attributes_apply (self, g_value_get_boolean (value));
		break;
		case GXML_XSD_COMPLEX_TYPE_CONTENT_TYPE_PROPERTY:
		gxml_xsd_complex_type_set_content_type (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
gxml_xsd_extension_get_instance_private (GXmlXsdExtension* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdExtension_private_offset);
}

const gchar*
gxml_xsd_extension_get_base (GXmlXsdExtension* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_base;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_extension_set_base (GXmlXsdExtension* self,
                             const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_extension_get_base (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_base);
		self->priv->_base = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_extension_properties[GXML_XSD_EXTENSION_BASE_PROPERTY]);
	}
}

GXmlXsdExtension*
gxml_xsd_extension_construct (GType object_type)
{
	GXmlXsdExtension * self = NULL;
	self = (GXmlXsdExtension*) gxml_element_construct (object_type);
	return self;
}

GXmlXsdExtension*
gxml_xsd_extension_new (void)
{
	return gxml_xsd_extension_construct (GXML_TYPE_XSD_EXTENSION);
}

static GObject *
gxml_xsd_extension_constructor (GType type,
                                guint n_construct_properties,
                                GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdExtension * self;
	parent_class = G_OBJECT_CLASS (gxml_xsd_extension_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_EXTENSION, GXmlXsdExtension);
	gxml_element_initialize_with_namespace ((GXmlElement*) self, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_URI, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_PREFIX, GXML_IXSD_EXTENSION_SCHEMA_NODE_NAME);
	return obj;
}

static void
gxml_xsd_extension_class_init (GXmlXsdExtensionClass * klass,
                               gpointer klass_data)
{
	gxml_xsd_extension_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdExtension_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_extension_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_extension_set_property;
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_extension_constructor;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_extension_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_EXTENSION_BASE_PROPERTY, gxml_xsd_extension_properties[GXML_XSD_EXTENSION_BASE_PROPERTY] = g_param_spec_string ("base", "::base", "base", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_extension_instance_init (GXmlXsdExtension * self,
                                  gpointer klass)
{
	self->priv = gxml_xsd_extension_get_instance_private (self);
}

static void
gxml_xsd_extension_finalize (GObject * obj)
{
	GXmlXsdExtension * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_EXTENSION, GXmlXsdExtension);
	_g_free0 (self->priv->_base);
	G_OBJECT_CLASS (gxml_xsd_extension_parent_class)->finalize (obj);
}

static GType
gxml_xsd_extension_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdExtensionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_extension_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdExtension), 0, (GInstanceInitFunc) gxml_xsd_extension_instance_init, NULL };
	GType gxml_xsd_extension_type_id;
	gxml_xsd_extension_type_id = g_type_register_static (GXML_TYPE_ELEMENT, "GXmlXsdExtension", &g_define_type_info, 0);
	GXmlXsdExtension_private_offset = g_type_add_instance_private (gxml_xsd_extension_type_id, sizeof (GXmlXsdExtensionPrivate));
	return gxml_xsd_extension_type_id;
}

GType
gxml_xsd_extension_get_type (void)
{
	static volatile gsize gxml_xsd_extension_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_extension_type_id__once)) {
		GType gxml_xsd_extension_type_id;
		gxml_xsd_extension_type_id = gxml_xsd_extension_get_type_once ();
		g_once_init_leave (&gxml_xsd_extension_type_id__once, gxml_xsd_extension_type_id);
	}
	return gxml_xsd_extension_type_id__once;
}

static void
_vala_gxml_xsd_extension_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec)
{
	GXmlXsdExtension * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_EXTENSION, GXmlXsdExtension);
	switch (property_id) {
		case GXML_XSD_EXTENSION_BASE_PROPERTY:
		g_value_set_string (value, gxml_xsd_extension_get_base (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_extension_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec)
{
	GXmlXsdExtension * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_EXTENSION, GXmlXsdExtension);
	switch (property_id) {
		case GXML_XSD_EXTENSION_BASE_PROPERTY:
		gxml_xsd_extension_set_base (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
gxml_xsd_element_get_instance_private (GXmlXsdElement* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdElement_private_offset);
}

gboolean
gxml_xsd_element_get_abstract (GXmlXsdElement* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_abstract;
	return result;
}

void
gxml_xsd_element_set_abstract (GXmlXsdElement* self,
                               gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_abstract (self);
	if (old_value != value) {
		self->priv->_abstract = value;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_ABSTRACT_PROPERTY]);
	}
}

const gchar*
gxml_xsd_element_get_block (GXmlXsdElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_block;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_block (GXmlXsdElement* self,
                            const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_block (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_block);
		self->priv->_block = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_BLOCK_PROPERTY]);
	}
}

const gchar*
gxml_xsd_element_get_default (GXmlXsdElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_default;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_default (GXmlXsdElement* self,
                              const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_default (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_default);
		self->priv->_default = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_DEFAULT_PROPERTY]);
	}
}

const gchar*
gxml_xsd_element_get_final (GXmlXsdElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_final;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_final (GXmlXsdElement* self,
                            const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_final (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_final);
		self->priv->_final = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_FINAL_PROPERTY]);
	}
}

const gchar*
gxml_xsd_element_get_fixed (GXmlXsdElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_fixed;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_fixed (GXmlXsdElement* self,
                            const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_fixed (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_fixed);
		self->priv->_fixed = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_FIXED_PROPERTY]);
	}
}

const gchar*
gxml_xsd_element_get_form (GXmlXsdElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_form;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_form (GXmlXsdElement* self,
                           const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_form (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_form);
		self->priv->_form = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_FORM_PROPERTY]);
	}
}

const gchar*
gxml_xsd_element_get_max_occurs (GXmlXsdElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_max_occurs;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_max_occurs (GXmlXsdElement* self,
                                 const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_max_occurs (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_max_occurs);
		self->priv->_max_occurs = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_MAX_OCCURS_PROPERTY]);
	}
}

const gchar*
gxml_xsd_element_get_min_occurs (GXmlXsdElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_min_occurs;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_min_occurs (GXmlXsdElement* self,
                                 const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_min_occurs (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_min_occurs);
		self->priv->_min_occurs = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_MIN_OCCURS_PROPERTY]);
	}
}

const gchar*
gxml_xsd_element_get_name (GXmlXsdElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_name;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_name (GXmlXsdElement* self,
                           const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_name);
		self->priv->_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_NAME_PROPERTY]);
	}
}

gboolean
gxml_xsd_element_get_nillable (GXmlXsdElement* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_nillable;
	return result;
}

void
gxml_xsd_element_set_nillable (GXmlXsdElement* self,
                               gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_nillable (self);
	if (old_value != value) {
		self->priv->_nillable = value;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_NILLABLE_PROPERTY]);
	}
}

const gchar*
gxml_xsd_element_get_ref (GXmlXsdElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ref;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_ref (GXmlXsdElement* self,
                          const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_ref (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_ref);
		self->priv->_ref = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_REF_PROPERTY]);
	}
}

GXmlDomTokenList*
gxml_xsd_element_get_substitution_group (GXmlXsdElement* self)
{
	GXmlDomTokenList* result;
	GXmlDomTokenList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_substitution_group;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_substitution_group (GXmlXsdElement* self,
                                         GXmlDomTokenList* value)
{
	GXmlDomTokenList* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_substitution_group (self);
	if (old_value != value) {
		GXmlDomTokenList* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_substitution_group);
		self->priv->_substitution_group = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_SUBSTITUTION_GROUP_PROPERTY]);
	}
}

const gchar*
gxml_xsd_element_get_target_namespace (GXmlXsdElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_target_namespace;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_target_namespace (GXmlXsdElement* self,
                                       const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_target_namespace (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_target_namespace);
		self->priv->_target_namespace = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_TARGET_NAMESPACE_PROPERTY]);
	}
}

const gchar*
gxml_xsd_element_get_object_type (GXmlXsdElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_object_type;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_object_type (GXmlXsdElement* self,
                                  const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_object_type (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_object_type);
		self->priv->_object_type = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_OBJECT_TYPE_PROPERTY]);
	}
}

GXmlXsdAnnotation*
gxml_xsd_element_get_anotation (GXmlXsdElement* self)
{
	GXmlXsdAnnotation* result;
	GXmlXsdAnnotation* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_anotation;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_anotation (GXmlXsdElement* self,
                                GXmlXsdAnnotation* value)
{
	GXmlXsdAnnotation* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_anotation (self);
	if (old_value != value) {
		GXmlXsdAnnotation* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_anotation);
		self->priv->_anotation = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_ANOTATION_PROPERTY]);
	}
}

GXmlXsdSimpleType*
gxml_xsd_element_get_simple_type (GXmlXsdElement* self)
{
	GXmlXsdSimpleType* result;
	GXmlXsdSimpleType* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_simple_type;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_simple_type (GXmlXsdElement* self,
                                  GXmlXsdSimpleType* value)
{
	GXmlXsdSimpleType* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_simple_type (self);
	if (old_value != value) {
		GXmlXsdSimpleType* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_simple_type);
		self->priv->_simple_type = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_SIMPLE_TYPE_PROPERTY]);
	}
}

GXmlXsdComplexType*
gxml_xsd_element_get_complex_type (GXmlXsdElement* self)
{
	GXmlXsdComplexType* result;
	GXmlXsdComplexType* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_complex_type;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_element_set_complex_type (GXmlXsdElement* self,
                                   GXmlXsdComplexType* value)
{
	GXmlXsdComplexType* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_element_get_complex_type (self);
	if (old_value != value) {
		GXmlXsdComplexType* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_complex_type);
		self->priv->_complex_type = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_element_properties[GXML_XSD_ELEMENT_COMPLEX_TYPE_PROPERTY]);
	}
}

GXmlXsdElement*
gxml_xsd_element_construct (GType object_type)
{
	GXmlXsdElement * self = NULL;
	self = (GXmlXsdElement*) gxml_element_construct (object_type);
	return self;
}

GXmlXsdElement*
gxml_xsd_element_new (void)
{
	return gxml_xsd_element_construct (GXML_TYPE_XSD_ELEMENT);
}

static GObject *
gxml_xsd_element_constructor (GType type,
                              guint n_construct_properties,
                              GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdElement * self;
	parent_class = G_OBJECT_CLASS (gxml_xsd_element_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_ELEMENT, GXmlXsdElement);
	gxml_element_initialize_with_namespace ((GXmlElement*) self, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_URI, GXML_IXSD_SCHEMA_SCHEMA_NAMESPACE_PREFIX, GXML_IXSD_ELEMENT_SCHEMA_NODE_NAME);
	return obj;
}

static void
gxml_xsd_element_class_init (GXmlXsdElementClass * klass,
                             gpointer klass_data)
{
	gxml_xsd_element_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdElement_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_element_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_element_set_property;
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_element_constructor;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_element_finalize;
	/**
	  * attribute name = abstract
	  */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_ABSTRACT_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_ABSTRACT_PROPERTY] = 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_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_BLOCK_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_BLOCK_PROPERTY] = g_param_spec_string ("block", "::block", "block", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_DEFAULT_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_DEFAULT_PROPERTY] = 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_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_FINAL_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_FINAL_PROPERTY] = g_param_spec_string ("final", "::final", "final", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_FIXED_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_FIXED_PROPERTY] = g_param_spec_string ("fixed", "::fixed", "fixed", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * (qualified | unqualified)
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_FORM_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_FORM_PROPERTY] = g_param_spec_string ("form", "::form", "form", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * (nonNegativeInteger | unbounded)  : 1
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_MAX_OCCURS_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_MAX_OCCURS_PROPERTY] = g_param_spec_string ("max-occurs", "::maxOccurs", "max-occurs", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * nonNegativeInteger : 1
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_MIN_OCCURS_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_MIN_OCCURS_PROPERTY] = g_param_spec_string ("min-occurs", "::minOccurs", "min-occurs", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_NAME_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_NAME_PROPERTY] = g_param_spec_string ("name", "::name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_NILLABLE_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_NILLABLE_PROPERTY] = g_param_spec_boolean ("nillable", "::nillable", "nillable", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_REF_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_REF_PROPERTY] = g_param_spec_string ("ref", "::ref", "ref", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * substitutionGroup
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_SUBSTITUTION_GROUP_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_SUBSTITUTION_GROUP_PROPERTY] = g_param_spec_object ("substitution-group", "::substitutionGroup", "substitution-group", GXML_TYPE_DOM_TOKEN_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * targetNamespace
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_TARGET_NAMESPACE_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_TARGET_NAMESPACE_PROPERTY] = g_param_spec_string ("target-namespace", "::targetNamespace", "target-namespace", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	   * attribute name = 'type'
	   */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_OBJECT_TYPE_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_OBJECT_TYPE_PROPERTY] = g_param_spec_string ("object-type", "::type", "object-type", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_ANOTATION_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_ANOTATION_PROPERTY] = g_param_spec_object ("anotation", "::annotation", "anotation", GXML_TYPE_XSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_SIMPLE_TYPE_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_SIMPLE_TYPE_PROPERTY] = g_param_spec_object ("simple-type", "::SimpleType", "simple-type", GXML_TYPE_XSD_SIMPLE_TYPE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_ELEMENT_COMPLEX_TYPE_PROPERTY, gxml_xsd_element_properties[GXML_XSD_ELEMENT_COMPLEX_TYPE_PROPERTY] = g_param_spec_object ("complex-type", "::ComplexType", "complex-type", GXML_TYPE_XSD_COMPLEX_TYPE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_element_instance_init (GXmlXsdElement * self,
                                gpointer klass)
{
	self->priv = gxml_xsd_element_get_instance_private (self);
	self->priv->_nillable = FALSE;
}

static void
gxml_xsd_element_finalize (GObject * obj)
{
	GXmlXsdElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_ELEMENT, GXmlXsdElement);
	_g_free0 (self->priv->_block);
	_g_free0 (self->priv->_default);
	_g_free0 (self->priv->_final);
	_g_free0 (self->priv->_fixed);
	_g_free0 (self->priv->_form);
	_g_free0 (self->priv->_max_occurs);
	_g_free0 (self->priv->_min_occurs);
	_g_free0 (self->priv->_name);
	_g_free0 (self->priv->_ref);
	_g_object_unref0 (self->priv->_substitution_group);
	_g_free0 (self->priv->_target_namespace);
	_g_free0 (self->priv->_object_type);
	_g_object_unref0 (self->priv->_anotation);
	_g_object_unref0 (self->priv->_simple_type);
	_g_object_unref0 (self->priv->_complex_type);
	G_OBJECT_CLASS (gxml_xsd_element_parent_class)->finalize (obj);
}

static GType
gxml_xsd_element_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdElementClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_element_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdElement), 0, (GInstanceInitFunc) gxml_xsd_element_instance_init, NULL };
	GType gxml_xsd_element_type_id;
	gxml_xsd_element_type_id = g_type_register_static (GXML_TYPE_ELEMENT, "GXmlXsdElement", &g_define_type_info, 0);
	GXmlXsdElement_private_offset = g_type_add_instance_private (gxml_xsd_element_type_id, sizeof (GXmlXsdElementPrivate));
	return gxml_xsd_element_type_id;
}

GType
gxml_xsd_element_get_type (void)
{
	static volatile gsize gxml_xsd_element_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_element_type_id__once)) {
		GType gxml_xsd_element_type_id;
		gxml_xsd_element_type_id = gxml_xsd_element_get_type_once ();
		g_once_init_leave (&gxml_xsd_element_type_id__once, gxml_xsd_element_type_id);
	}
	return gxml_xsd_element_type_id__once;
}

static void
_vala_gxml_xsd_element_get_property (GObject * object,
                                     guint property_id,
                                     GValue * value,
                                     GParamSpec * pspec)
{
	GXmlXsdElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_ELEMENT, GXmlXsdElement);
	switch (property_id) {
		case GXML_XSD_ELEMENT_ABSTRACT_PROPERTY:
		g_value_set_boolean (value, gxml_xsd_element_get_abstract (self));
		break;
		case GXML_XSD_ELEMENT_BLOCK_PROPERTY:
		g_value_set_string (value, gxml_xsd_element_get_block (self));
		break;
		case GXML_XSD_ELEMENT_DEFAULT_PROPERTY:
		g_value_set_string (value, gxml_xsd_element_get_default (self));
		break;
		case GXML_XSD_ELEMENT_FINAL_PROPERTY:
		g_value_set_string (value, gxml_xsd_element_get_final (self));
		break;
		case GXML_XSD_ELEMENT_FIXED_PROPERTY:
		g_value_set_string (value, gxml_xsd_element_get_fixed (self));
		break;
		case GXML_XSD_ELEMENT_FORM_PROPERTY:
		g_value_set_string (value, gxml_xsd_element_get_form (self));
		break;
		case GXML_XSD_ELEMENT_MAX_OCCURS_PROPERTY:
		g_value_set_string (value, gxml_xsd_element_get_max_occurs (self));
		break;
		case GXML_XSD_ELEMENT_MIN_OCCURS_PROPERTY:
		g_value_set_string (value, gxml_xsd_element_get_min_occurs (self));
		break;
		case GXML_XSD_ELEMENT_NAME_PROPERTY:
		g_value_set_string (value, gxml_xsd_element_get_name (self));
		break;
		case GXML_XSD_ELEMENT_NILLABLE_PROPERTY:
		g_value_set_boolean (value, gxml_xsd_element_get_nillable (self));
		break;
		case GXML_XSD_ELEMENT_REF_PROPERTY:
		g_value_set_string (value, gxml_xsd_element_get_ref (self));
		break;
		case GXML_XSD_ELEMENT_SUBSTITUTION_GROUP_PROPERTY:
		g_value_set_object (value, gxml_xsd_element_get_substitution_group (self));
		break;
		case GXML_XSD_ELEMENT_TARGET_NAMESPACE_PROPERTY:
		g_value_set_string (value, gxml_xsd_element_get_target_namespace (self));
		break;
		case GXML_XSD_ELEMENT_OBJECT_TYPE_PROPERTY:
		g_value_set_string (value, gxml_xsd_element_get_object_type (self));
		break;
		case GXML_XSD_ELEMENT_ANOTATION_PROPERTY:
		g_value_set_object (value, gxml_xsd_element_get_anotation (self));
		break;
		case GXML_XSD_ELEMENT_SIMPLE_TYPE_PROPERTY:
		g_value_set_object (value, gxml_xsd_element_get_simple_type (self));
		break;
		case GXML_XSD_ELEMENT_COMPLEX_TYPE_PROPERTY:
		g_value_set_object (value, gxml_xsd_element_get_complex_type (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_element_set_property (GObject * object,
                                     guint property_id,
                                     const GValue * value,
                                     GParamSpec * pspec)
{
	GXmlXsdElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_ELEMENT, GXmlXsdElement);
	switch (property_id) {
		case GXML_XSD_ELEMENT_ABSTRACT_PROPERTY:
		gxml_xsd_element_set_abstract (self, g_value_get_boolean (value));
		break;
		case GXML_XSD_ELEMENT_BLOCK_PROPERTY:
		gxml_xsd_element_set_block (self, g_value_get_string (value));
		break;
		case GXML_XSD_ELEMENT_DEFAULT_PROPERTY:
		gxml_xsd_element_set_default (self, g_value_get_string (value));
		break;
		case GXML_XSD_ELEMENT_FINAL_PROPERTY:
		gxml_xsd_element_set_final (self, g_value_get_string (value));
		break;
		case GXML_XSD_ELEMENT_FIXED_PROPERTY:
		gxml_xsd_element_set_fixed (self, g_value_get_string (value));
		break;
		case GXML_XSD_ELEMENT_FORM_PROPERTY:
		gxml_xsd_element_set_form (self, g_value_get_string (value));
		break;
		case GXML_XSD_ELEMENT_MAX_OCCURS_PROPERTY:
		gxml_xsd_element_set_max_occurs (self, g_value_get_string (value));
		break;
		case GXML_XSD_ELEMENT_MIN_OCCURS_PROPERTY:
		gxml_xsd_element_set_min_occurs (self, g_value_get_string (value));
		break;
		case GXML_XSD_ELEMENT_NAME_PROPERTY:
		gxml_xsd_element_set_name (self, g_value_get_string (value));
		break;
		case GXML_XSD_ELEMENT_NILLABLE_PROPERTY:
		gxml_xsd_element_set_nillable (self, g_value_get_boolean (value));
		break;
		case GXML_XSD_ELEMENT_REF_PROPERTY:
		gxml_xsd_element_set_ref (self, g_value_get_string (value));
		break;
		case GXML_XSD_ELEMENT_SUBSTITUTION_GROUP_PROPERTY:
		gxml_xsd_element_set_substitution_group (self, g_value_get_object (value));
		break;
		case GXML_XSD_ELEMENT_TARGET_NAMESPACE_PROPERTY:
		gxml_xsd_element_set_target_namespace (self, g_value_get_string (value));
		break;
		case GXML_XSD_ELEMENT_OBJECT_TYPE_PROPERTY:
		gxml_xsd_element_set_object_type (self, g_value_get_string (value));
		break;
		case GXML_XSD_ELEMENT_ANOTATION_PROPERTY:
		gxml_xsd_element_set_anotation (self, g_value_get_object (value));
		break;
		case GXML_XSD_ELEMENT_SIMPLE_TYPE_PROPERTY:
		gxml_xsd_element_set_simple_type (self, g_value_get_object (value));
		break;
		case GXML_XSD_ELEMENT_COMPLEX_TYPE_PROPERTY:
		gxml_xsd_element_set_complex_type (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

GXmlXsdAnnotation*
gxml_xsd_annotation_construct (GType object_type)
{
	GXmlXsdAnnotation * self = NULL;
	self = (GXmlXsdAnnotation*) gxml_element_construct (object_type);
	return self;
}

GXmlXsdAnnotation*
gxml_xsd_annotation_new (void)
{
	return gxml_xsd_annotation_construct (GXML_TYPE_XSD_ANNOTATION);
}

static void
gxml_xsd_annotation_class_init (GXmlXsdAnnotationClass * klass,
                                gpointer klass_data)
{
	gxml_xsd_annotation_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_annotation_instance_init (GXmlXsdAnnotation * self,
                                   gpointer klass)
{
}

static GType
gxml_xsd_annotation_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdAnnotationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_annotation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdAnnotation), 0, (GInstanceInitFunc) gxml_xsd_annotation_instance_init, NULL };
	GType gxml_xsd_annotation_type_id;
	gxml_xsd_annotation_type_id = g_type_register_static (GXML_TYPE_ELEMENT, "GXmlXsdAnnotation", &g_define_type_info, 0);
	return gxml_xsd_annotation_type_id;
}

GType
gxml_xsd_annotation_get_type (void)
{
	static volatile gsize gxml_xsd_annotation_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_annotation_type_id__once)) {
		GType gxml_xsd_annotation_type_id;
		gxml_xsd_annotation_type_id = gxml_xsd_annotation_get_type_once ();
		g_once_init_leave (&gxml_xsd_annotation_type_id__once, gxml_xsd_annotation_type_id);
	}
	return gxml_xsd_annotation_type_id__once;
}

static inline gpointer
gxml_xsd_base_type_get_instance_private (GXmlXsdBaseType* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdBaseType_private_offset);
}

GXmlXsdAnnotation*
gxml_xsd_base_type_get_anotation (GXmlXsdBaseType* self)
{
	GXmlXsdAnnotation* result;
	GXmlXsdAnnotation* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_anotation;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_base_type_set_anotation (GXmlXsdBaseType* self,
                                  GXmlXsdAnnotation* value)
{
	GXmlXsdAnnotation* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_base_type_get_anotation (self);
	if (old_value != value) {
		GXmlXsdAnnotation* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_anotation);
		self->priv->_anotation = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_base_type_properties[GXML_XSD_BASE_TYPE_ANOTATION_PROPERTY]);
	}
}

GXmlXsdBaseType*
gxml_xsd_base_type_construct (GType object_type)
{
	GXmlXsdBaseType * self = NULL;
	self = (GXmlXsdBaseType*) gxml_element_construct (object_type);
	return self;
}

GXmlXsdBaseType*
gxml_xsd_base_type_new (void)
{
	return gxml_xsd_base_type_construct (GXML_TYPE_XSD_BASE_TYPE);
}

static void
gxml_xsd_base_type_class_init (GXmlXsdBaseTypeClass * klass,
                               gpointer klass_data)
{
	gxml_xsd_base_type_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdBaseType_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_base_type_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_base_type_set_property;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_base_type_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_BASE_TYPE_ANOTATION_PROPERTY, gxml_xsd_base_type_properties[GXML_XSD_BASE_TYPE_ANOTATION_PROPERTY] = g_param_spec_object ("anotation", "anotation", "anotation", GXML_TYPE_XSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_base_type_instance_init (GXmlXsdBaseType * self,
                                  gpointer klass)
{
	self->priv = gxml_xsd_base_type_get_instance_private (self);
}

static void
gxml_xsd_base_type_finalize (GObject * obj)
{
	GXmlXsdBaseType * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_BASE_TYPE, GXmlXsdBaseType);
	_g_object_unref0 (self->priv->_anotation);
	G_OBJECT_CLASS (gxml_xsd_base_type_parent_class)->finalize (obj);
}

static GType
gxml_xsd_base_type_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdBaseTypeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_base_type_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdBaseType), 0, (GInstanceInitFunc) gxml_xsd_base_type_instance_init, NULL };
	GType gxml_xsd_base_type_type_id;
	gxml_xsd_base_type_type_id = g_type_register_static (GXML_TYPE_ELEMENT, "GXmlXsdBaseType", &g_define_type_info, 0);
	GXmlXsdBaseType_private_offset = g_type_add_instance_private (gxml_xsd_base_type_type_id, sizeof (GXmlXsdBaseTypePrivate));
	return gxml_xsd_base_type_type_id;
}

GType
gxml_xsd_base_type_get_type (void)
{
	static volatile gsize gxml_xsd_base_type_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_base_type_type_id__once)) {
		GType gxml_xsd_base_type_type_id;
		gxml_xsd_base_type_type_id = gxml_xsd_base_type_get_type_once ();
		g_once_init_leave (&gxml_xsd_base_type_type_id__once, gxml_xsd_base_type_type_id);
	}
	return gxml_xsd_base_type_type_id__once;
}

static void
_vala_gxml_xsd_base_type_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec)
{
	GXmlXsdBaseType * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_BASE_TYPE, GXmlXsdBaseType);
	switch (property_id) {
		case GXML_XSD_BASE_TYPE_ANOTATION_PROPERTY:
		g_value_set_object (value, gxml_xsd_base_type_get_anotation (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_base_type_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec)
{
	GXmlXsdBaseType * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_BASE_TYPE, GXmlXsdBaseType);
	switch (property_id) {
		case GXML_XSD_BASE_TYPE_ANOTATION_PROPERTY:
		gxml_xsd_base_type_set_anotation (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
gxml_xsd_base_content_get_instance_private (GXmlXsdBaseContent* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdBaseContent_private_offset);
}

GXmlXsdAnnotation*
gxml_xsd_base_content_get_anotation (GXmlXsdBaseContent* self)
{
	GXmlXsdAnnotation* result;
	GXmlXsdAnnotation* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_anotation;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_base_content_set_anotation (GXmlXsdBaseContent* self,
                                     GXmlXsdAnnotation* value)
{
	GXmlXsdAnnotation* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_base_content_get_anotation (self);
	if (old_value != value) {
		GXmlXsdAnnotation* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_anotation);
		self->priv->_anotation = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_base_content_properties[GXML_XSD_BASE_CONTENT_ANOTATION_PROPERTY]);
	}
}

GXmlXsdBaseContent*
gxml_xsd_base_content_construct (GType object_type)
{
	GXmlXsdBaseContent * self = NULL;
	self = (GXmlXsdBaseContent*) gxml_element_construct (object_type);
	return self;
}

GXmlXsdBaseContent*
gxml_xsd_base_content_new (void)
{
	return gxml_xsd_base_content_construct (GXML_TYPE_XSD_BASE_CONTENT);
}

static void
gxml_xsd_base_content_class_init (GXmlXsdBaseContentClass * klass,
                                  gpointer klass_data)
{
	gxml_xsd_base_content_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdBaseContent_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_base_content_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_base_content_set_property;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_base_content_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_BASE_CONTENT_ANOTATION_PROPERTY, gxml_xsd_base_content_properties[GXML_XSD_BASE_CONTENT_ANOTATION_PROPERTY] = g_param_spec_object ("anotation", "anotation", "anotation", GXML_TYPE_XSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_base_content_instance_init (GXmlXsdBaseContent * self,
                                     gpointer klass)
{
	self->priv = gxml_xsd_base_content_get_instance_private (self);
}

static void
gxml_xsd_base_content_finalize (GObject * obj)
{
	GXmlXsdBaseContent * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_BASE_CONTENT, GXmlXsdBaseContent);
	_g_object_unref0 (self->priv->_anotation);
	G_OBJECT_CLASS (gxml_xsd_base_content_parent_class)->finalize (obj);
}

static GType
gxml_xsd_base_content_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdBaseContentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_base_content_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdBaseContent), 0, (GInstanceInitFunc) gxml_xsd_base_content_instance_init, NULL };
	GType gxml_xsd_base_content_type_id;
	gxml_xsd_base_content_type_id = g_type_register_static (GXML_TYPE_ELEMENT, "GXmlXsdBaseContent", &g_define_type_info, 0);
	GXmlXsdBaseContent_private_offset = g_type_add_instance_private (gxml_xsd_base_content_type_id, sizeof (GXmlXsdBaseContentPrivate));
	return gxml_xsd_base_content_type_id;
}

GType
gxml_xsd_base_content_get_type (void)
{
	static volatile gsize gxml_xsd_base_content_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_base_content_type_id__once)) {
		GType gxml_xsd_base_content_type_id;
		gxml_xsd_base_content_type_id = gxml_xsd_base_content_get_type_once ();
		g_once_init_leave (&gxml_xsd_base_content_type_id__once, gxml_xsd_base_content_type_id);
	}
	return gxml_xsd_base_content_type_id__once;
}

static void
_vala_gxml_xsd_base_content_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec)
{
	GXmlXsdBaseContent * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_BASE_CONTENT, GXmlXsdBaseContent);
	switch (property_id) {
		case GXML_XSD_BASE_CONTENT_ANOTATION_PROPERTY:
		g_value_set_object (value, gxml_xsd_base_content_get_anotation (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_base_content_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec)
{
	GXmlXsdBaseContent * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_BASE_CONTENT, GXmlXsdBaseContent);
	switch (property_id) {
		case GXML_XSD_BASE_CONTENT_ANOTATION_PROPERTY:
		gxml_xsd_base_content_set_anotation (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

GXmlXsdSimpleContent*
gxml_xsd_simple_content_construct (GType object_type)
{
	GXmlXsdSimpleContent * self = NULL;
	self = (GXmlXsdSimpleContent*) gxml_xsd_base_content_construct (object_type);
	return self;
}

GXmlXsdSimpleContent*
gxml_xsd_simple_content_new (void)
{
	return gxml_xsd_simple_content_construct (GXML_TYPE_XSD_SIMPLE_CONTENT);
}

static GObject *
gxml_xsd_simple_content_constructor (GType type,
                                     guint n_construct_properties,
                                     GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdSimpleContent * self;
	parent_class = G_OBJECT_CLASS (gxml_xsd_simple_content_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_SIMPLE_CONTENT, GXmlXsdSimpleContent);
	gxml_element_initialize ((GXmlElement*) self, GXML_IXSD_SIMPLE_CONTENT_SCHEMA_NODE_NAME);
	return obj;
}

static void
gxml_xsd_simple_content_class_init (GXmlXsdSimpleContentClass * klass,
                                    gpointer klass_data)
{
	gxml_xsd_simple_content_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_simple_content_constructor;
}

static void
gxml_xsd_simple_content_instance_init (GXmlXsdSimpleContent * self,
                                       gpointer klass)
{
}

static GType
gxml_xsd_simple_content_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdSimpleContentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_simple_content_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdSimpleContent), 0, (GInstanceInitFunc) gxml_xsd_simple_content_instance_init, NULL };
	GType gxml_xsd_simple_content_type_id;
	gxml_xsd_simple_content_type_id = g_type_register_static (GXML_TYPE_XSD_BASE_CONTENT, "GXmlXsdSimpleContent", &g_define_type_info, 0);
	return gxml_xsd_simple_content_type_id;
}

GType
gxml_xsd_simple_content_get_type (void)
{
	static volatile gsize gxml_xsd_simple_content_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_simple_content_type_id__once)) {
		GType gxml_xsd_simple_content_type_id;
		gxml_xsd_simple_content_type_id = gxml_xsd_simple_content_get_type_once ();
		g_once_init_leave (&gxml_xsd_simple_content_type_id__once, gxml_xsd_simple_content_type_id);
	}
	return gxml_xsd_simple_content_type_id__once;
}

GXmlXsdComplexContent*
gxml_xsd_complex_content_construct (GType object_type)
{
	GXmlXsdComplexContent * self = NULL;
	self = (GXmlXsdComplexContent*) gxml_xsd_base_content_construct (object_type);
	return self;
}

GXmlXsdComplexContent*
gxml_xsd_complex_content_new (void)
{
	return gxml_xsd_complex_content_construct (GXML_TYPE_XSD_COMPLEX_CONTENT);
}

static GObject *
gxml_xsd_complex_content_constructor (GType type,
                                      guint n_construct_properties,
                                      GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdComplexContent * self;
	parent_class = G_OBJECT_CLASS (gxml_xsd_complex_content_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_COMPLEX_CONTENT, GXmlXsdComplexContent);
	gxml_element_initialize ((GXmlElement*) self, GXML_IXSD_COMPLEX_CONTENT_SCHEMA_NODE_NAME);
	return obj;
}

static void
gxml_xsd_complex_content_class_init (GXmlXsdComplexContentClass * klass,
                                     gpointer klass_data)
{
	gxml_xsd_complex_content_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_complex_content_constructor;
}

static void
gxml_xsd_complex_content_instance_init (GXmlXsdComplexContent * self,
                                        gpointer klass)
{
}

static GType
gxml_xsd_complex_content_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdComplexContentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_complex_content_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdComplexContent), 0, (GInstanceInitFunc) gxml_xsd_complex_content_instance_init, NULL };
	GType gxml_xsd_complex_content_type_id;
	gxml_xsd_complex_content_type_id = g_type_register_static (GXML_TYPE_XSD_BASE_CONTENT, "GXmlXsdComplexContent", &g_define_type_info, 0);
	return gxml_xsd_complex_content_type_id;
}

GType
gxml_xsd_complex_content_get_type (void)
{
	static volatile gsize gxml_xsd_complex_content_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_complex_content_type_id__once)) {
		GType gxml_xsd_complex_content_type_id;
		gxml_xsd_complex_content_type_id = gxml_xsd_complex_content_get_type_once ();
		g_once_init_leave (&gxml_xsd_complex_content_type_id__once, gxml_xsd_complex_content_type_id);
	}
	return gxml_xsd_complex_content_type_id__once;
}

GXmlXsdOpenContent*
gxml_xsd_open_content_construct (GType object_type)
{
	GXmlXsdOpenContent * self = NULL;
	self = (GXmlXsdOpenContent*) gxml_xsd_base_content_construct (object_type);
	return self;
}

GXmlXsdOpenContent*
gxml_xsd_open_content_new (void)
{
	return gxml_xsd_open_content_construct (GXML_TYPE_XSD_OPEN_CONTENT);
}

static void
gxml_xsd_open_content_class_init (GXmlXsdOpenContentClass * klass,
                                  gpointer klass_data)
{
	gxml_xsd_open_content_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_open_content_instance_init (GXmlXsdOpenContent * self,
                                     gpointer klass)
{
}

static GType
gxml_xsd_open_content_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdOpenContentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_open_content_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdOpenContent), 0, (GInstanceInitFunc) gxml_xsd_open_content_instance_init, NULL };
	GType gxml_xsd_open_content_type_id;
	gxml_xsd_open_content_type_id = g_type_register_static (GXML_TYPE_XSD_BASE_CONTENT, "GXmlXsdOpenContent", &g_define_type_info, 0);
	return gxml_xsd_open_content_type_id;
}

GType
gxml_xsd_open_content_get_type (void)
{
	static volatile gsize gxml_xsd_open_content_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_open_content_type_id__once)) {
		GType gxml_xsd_open_content_type_id;
		gxml_xsd_open_content_type_id = gxml_xsd_open_content_get_type_once ();
		g_once_init_leave (&gxml_xsd_open_content_type_id__once, gxml_xsd_open_content_type_id);
	}
	return gxml_xsd_open_content_type_id__once;
}

static inline gpointer
gxml_xsd_base_attribute_get_instance_private (GXmlXsdBaseAttribute* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlXsdBaseAttribute_private_offset);
}

GXmlXsdAnnotation*
gxml_xsd_base_attribute_get_anotation (GXmlXsdBaseAttribute* self)
{
	GXmlXsdAnnotation* result;
	GXmlXsdAnnotation* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_anotation;
	result = _tmp0_;
	return result;
}

void
gxml_xsd_base_attribute_set_anotation (GXmlXsdBaseAttribute* self,
                                       GXmlXsdAnnotation* value)
{
	GXmlXsdAnnotation* old_value;
	g_return_if_fail (self != NULL);
	old_value = gxml_xsd_base_attribute_get_anotation (self);
	if (old_value != value) {
		GXmlXsdAnnotation* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_anotation);
		self->priv->_anotation = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gxml_xsd_base_attribute_properties[GXML_XSD_BASE_ATTRIBUTE_ANOTATION_PROPERTY]);
	}
}

GXmlXsdBaseAttribute*
gxml_xsd_base_attribute_construct (GType object_type)
{
	GXmlXsdBaseAttribute * self = NULL;
	self = (GXmlXsdBaseAttribute*) gxml_element_construct (object_type);
	return self;
}

GXmlXsdBaseAttribute*
gxml_xsd_base_attribute_new (void)
{
	return gxml_xsd_base_attribute_construct (GXML_TYPE_XSD_BASE_ATTRIBUTE);
}

static void
gxml_xsd_base_attribute_class_init (GXmlXsdBaseAttributeClass * klass,
                                    gpointer klass_data)
{
	gxml_xsd_base_attribute_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlXsdBaseAttribute_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_base_attribute_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gxml_xsd_base_attribute_set_property;
	G_OBJECT_CLASS (klass)->finalize = gxml_xsd_base_attribute_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_BASE_ATTRIBUTE_ANOTATION_PROPERTY, gxml_xsd_base_attribute_properties[GXML_XSD_BASE_ATTRIBUTE_ANOTATION_PROPERTY] = g_param_spec_object ("anotation", "anotation", "anotation", GXML_TYPE_XSD_ANNOTATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
gxml_xsd_base_attribute_instance_init (GXmlXsdBaseAttribute * self,
                                       gpointer klass)
{
	self->priv = gxml_xsd_base_attribute_get_instance_private (self);
}

static void
gxml_xsd_base_attribute_finalize (GObject * obj)
{
	GXmlXsdBaseAttribute * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_BASE_ATTRIBUTE, GXmlXsdBaseAttribute);
	_g_object_unref0 (self->priv->_anotation);
	G_OBJECT_CLASS (gxml_xsd_base_attribute_parent_class)->finalize (obj);
}

static GType
gxml_xsd_base_attribute_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdBaseAttributeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_base_attribute_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdBaseAttribute), 0, (GInstanceInitFunc) gxml_xsd_base_attribute_instance_init, NULL };
	GType gxml_xsd_base_attribute_type_id;
	gxml_xsd_base_attribute_type_id = g_type_register_static (GXML_TYPE_ELEMENT, "GXmlXsdBaseAttribute", &g_define_type_info, 0);
	GXmlXsdBaseAttribute_private_offset = g_type_add_instance_private (gxml_xsd_base_attribute_type_id, sizeof (GXmlXsdBaseAttributePrivate));
	return gxml_xsd_base_attribute_type_id;
}

GType
gxml_xsd_base_attribute_get_type (void)
{
	static volatile gsize gxml_xsd_base_attribute_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_base_attribute_type_id__once)) {
		GType gxml_xsd_base_attribute_type_id;
		gxml_xsd_base_attribute_type_id = gxml_xsd_base_attribute_get_type_once ();
		g_once_init_leave (&gxml_xsd_base_attribute_type_id__once, gxml_xsd_base_attribute_type_id);
	}
	return gxml_xsd_base_attribute_type_id__once;
}

static void
_vala_gxml_xsd_base_attribute_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec)
{
	GXmlXsdBaseAttribute * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_BASE_ATTRIBUTE, GXmlXsdBaseAttribute);
	switch (property_id) {
		case GXML_XSD_BASE_ATTRIBUTE_ANOTATION_PROPERTY:
		g_value_set_object (value, gxml_xsd_base_attribute_get_anotation (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gxml_xsd_base_attribute_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec)
{
	GXmlXsdBaseAttribute * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_BASE_ATTRIBUTE, GXmlXsdBaseAttribute);
	switch (property_id) {
		case GXML_XSD_BASE_ATTRIBUTE_ANOTATION_PROPERTY:
		gxml_xsd_base_attribute_set_anotation (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

GXmlXsdAttribute*
gxml_xsd_attribute_construct (GType object_type)
{
	GXmlXsdAttribute * self = NULL;
	self = (GXmlXsdAttribute*) gxml_xsd_base_attribute_construct (object_type);
	return self;
}

GXmlXsdAttribute*
gxml_xsd_attribute_new (void)
{
	return gxml_xsd_attribute_construct (GXML_TYPE_XSD_ATTRIBUTE);
}

static void
gxml_xsd_attribute_class_init (GXmlXsdAttributeClass * klass,
                               gpointer klass_data)
{
	gxml_xsd_attribute_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_attribute_instance_init (GXmlXsdAttribute * self,
                                  gpointer klass)
{
}

static GType
gxml_xsd_attribute_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdAttributeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_attribute_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdAttribute), 0, (GInstanceInitFunc) gxml_xsd_attribute_instance_init, NULL };
	GType gxml_xsd_attribute_type_id;
	gxml_xsd_attribute_type_id = g_type_register_static (GXML_TYPE_XSD_BASE_ATTRIBUTE, "GXmlXsdAttribute", &g_define_type_info, 0);
	return gxml_xsd_attribute_type_id;
}

GType
gxml_xsd_attribute_get_type (void)
{
	static volatile gsize gxml_xsd_attribute_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_attribute_type_id__once)) {
		GType gxml_xsd_attribute_type_id;
		gxml_xsd_attribute_type_id = gxml_xsd_attribute_get_type_once ();
		g_once_init_leave (&gxml_xsd_attribute_type_id__once, gxml_xsd_attribute_type_id);
	}
	return gxml_xsd_attribute_type_id__once;
}

GXmlXsdAttributeGroup*
gxml_xsd_attribute_group_construct (GType object_type)
{
	GXmlXsdAttributeGroup * self = NULL;
	self = (GXmlXsdAttributeGroup*) gxml_xsd_base_attribute_construct (object_type);
	return self;
}

GXmlXsdAttributeGroup*
gxml_xsd_attribute_group_new (void)
{
	return gxml_xsd_attribute_group_construct (GXML_TYPE_XSD_ATTRIBUTE_GROUP);
}

static void
gxml_xsd_attribute_group_class_init (GXmlXsdAttributeGroupClass * klass,
                                     gpointer klass_data)
{
	gxml_xsd_attribute_group_parent_class = g_type_class_peek_parent (klass);
}

static void
gxml_xsd_attribute_group_instance_init (GXmlXsdAttributeGroup * self,
                                        gpointer klass)
{
}

static GType
gxml_xsd_attribute_group_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdAttributeGroupClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_attribute_group_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdAttributeGroup), 0, (GInstanceInitFunc) gxml_xsd_attribute_group_instance_init, NULL };
	GType gxml_xsd_attribute_group_type_id;
	gxml_xsd_attribute_group_type_id = g_type_register_static (GXML_TYPE_XSD_BASE_ATTRIBUTE, "GXmlXsdAttributeGroup", &g_define_type_info, 0);
	return gxml_xsd_attribute_group_type_id;
}

GType
gxml_xsd_attribute_group_get_type (void)
{
	static volatile gsize gxml_xsd_attribute_group_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_attribute_group_type_id__once)) {
		GType gxml_xsd_attribute_group_type_id;
		gxml_xsd_attribute_group_type_id = gxml_xsd_attribute_group_get_type_once ();
		g_once_init_leave (&gxml_xsd_attribute_group_type_id__once, gxml_xsd_attribute_group_type_id);
	}
	return gxml_xsd_attribute_group_type_id__once;
}

gint
gxml_xsd_list_get_length (GXmlXsdList* self)
{
	gint result;
	gint _tmp0_;
	gint _tmp1_;
	g_return_val_if_fail (self != NULL, -1);
	_tmp0_ = gxml_collection_get_length ((GXmlCollection*) G_TYPE_CHECK_INSTANCE_CAST (self, GXML_TYPE_ARRAY_LIST, GXmlArrayList));
	_tmp1_ = _tmp0_;
	result = _tmp1_;
	return result;
}

void
gxml_xsd_list_remove (GXmlXsdList* self,
                      gint index)
{
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	{
		GXmlDomElement* _tmp0_;
		GXmlDomElement* _tmp1_;
		GXmlDomElement* _tmp2_;
		GXmlDomElement* _tmp3_;
		GXmlDomNodeList* _tmp4_;
		GXmlDomNodeList* _tmp5_;
		GXmlDomNodeList* _tmp6_;
		GXmlDomNode* _tmp7_;
		GXmlDomNode* _tmp8_;
		GXmlDomNode* _tmp9_;
		GXmlDomNode* _tmp10_;
		_tmp0_ = gxml_collection_get_element ((GXmlCollection*) self);
		_tmp1_ = _tmp0_;
		_tmp2_ = gxml_collection_get_element ((GXmlCollection*) self);
		_tmp3_ = _tmp2_;
		_tmp4_ = gxml_dom_node_get_child_nodes ((GXmlDomNode*) _tmp3_);
		_tmp5_ = _tmp4_;
		_tmp6_ = _tmp5_;
		_tmp7_ = gxml_dom_node_list_item (_tmp6_, index);
		_tmp8_ = _tmp7_;
		_tmp9_ = gxml_dom_node_remove_child ((GXmlDomNode*) _tmp1_, _tmp8_, &_inner_error0_);
		_tmp10_ = _tmp9_;
		_g_object_unref0 (_tmp10_);
		_g_object_unref0 (_tmp8_);
		_g_object_unref0 (_tmp6_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp11_;
		const gchar* _tmp12_;
		gchar* _tmp13_;
		gchar* _tmp14_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp11_ = e;
		_tmp12_ = _tmp11_->message;
		_tmp13_ = g_strdup_printf (_ ("Error removing Collection's element: %s"), _tmp12_);
		_tmp14_ = _tmp13_;
		g_warning ("XsdSchema.vala:266: %s", _tmp14_);
		_g_free0 (_tmp14_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return;
	}
}

gint
gxml_xsd_list_index_of (GXmlXsdList* self,
                        GXmlDomElement* element)
{
	GXmlDomNode* _tmp0_;
	GXmlDomNode* _tmp1_;
	GXmlDomNode* _tmp2_;
	GXmlDomElement* _tmp3_;
	GXmlDomElement* _tmp4_;
	gboolean _tmp5_;
	GError* _inner_error0_ = NULL;
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	g_return_val_if_fail (element != NULL, -1);
	_tmp0_ = gxml_dom_node_get_parent_node ((GXmlDomNode*) element);
	_tmp1_ = _tmp0_;
	_tmp2_ = _tmp1_;
	_tmp3_ = gxml_collection_get_element ((GXmlCollection*) self);
	_tmp4_ = _tmp3_;
	_tmp5_ = _tmp2_ != G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GXML_TYPE_DOM_NODE, GXmlDomNode);
	_g_object_unref0 (_tmp2_);
	if (_tmp5_) {
		result = -1;
		return result;
	}
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp6_ = FALSE;
			_tmp6_ = TRUE;
			while (TRUE) {
				gint _tmp8_;
				gint _tmp9_;
				if (!_tmp6_) {
					gint _tmp7_;
					_tmp7_ = i;
					i = _tmp7_ + 1;
				}
				_tmp6_ = FALSE;
				_tmp8_ = gxml_xsd_list_get_length (self);
				_tmp9_ = _tmp8_;
				if (!(i < _tmp9_)) {
					break;
				}
				{
					GXmlDomElement* _tmp10_ = NULL;
					GXmlDomElement* _tmp11_;
					_tmp11_ = gxml_collection_get_item ((GXmlCollection*) self, i, &_inner_error0_);
					_tmp10_ = _tmp11_;
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
						goto __catch0_g_error;
					}
					if (_tmp10_ == element) {
						result = i;
						_g_object_unref0 (_tmp10_);
						return result;
					}
					_g_object_unref0 (_tmp10_);
				}
				goto __finally0;
				__catch0_g_error:
				{
					GError* e = NULL;
					GError* _tmp12_;
					const gchar* _tmp13_;
					gchar* _tmp14_;
					gchar* _tmp15_;
					e = _inner_error0_;
					_inner_error0_ = NULL;
					_tmp12_ = e;
					_tmp13_ = _tmp12_->message;
					_tmp14_ = g_strdup_printf (_ ("Can't find element at position: %i: %s"), i, _tmp13_);
					_tmp15_ = _tmp14_;
					g_warning ("XsdSchema.vala:275: %s", _tmp15_);
					_g_free0 (_tmp15_);
					_g_error_free0 (e);
				}
				__finally0:
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					gint _tmp16_ = -1;
					g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
					g_clear_error (&_inner_error0_);
					return _tmp16_;
				}
			}
		}
	}
	result = -1;
	return result;
}

GXmlXsdList*
gxml_xsd_list_construct (GType object_type)
{
	GXmlXsdList * self = NULL;
	self = (GXmlXsdList*) gxml_array_list_construct (object_type);
	return self;
}

GXmlXsdList*
gxml_xsd_list_new (void)
{
	return gxml_xsd_list_construct (GXML_TYPE_XSD_LIST);
}

static void
gxml_xsd_list_class_init (GXmlXsdListClass * klass,
                          gpointer klass_data)
{
	gxml_xsd_list_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->get_property = _vala_gxml_xsd_list_get_property;
	g_object_class_install_property (G_OBJECT_CLASS (klass), GXML_XSD_LIST_LENGTH_PROPERTY, gxml_xsd_list_properties[GXML_XSD_LIST_LENGTH_PROPERTY] = g_param_spec_int ("length", "length", "length", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
gxml_xsd_list_instance_init (GXmlXsdList * self,
                             gpointer klass)
{
}

static GType
gxml_xsd_list_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdList), 0, (GInstanceInitFunc) gxml_xsd_list_instance_init, NULL };
	GType gxml_xsd_list_type_id;
	gxml_xsd_list_type_id = g_type_register_static (GXML_TYPE_ARRAY_LIST, "GXmlXsdList", &g_define_type_info, 0);
	return gxml_xsd_list_type_id;
}

GType
gxml_xsd_list_get_type (void)
{
	static volatile gsize gxml_xsd_list_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_list_type_id__once)) {
		GType gxml_xsd_list_type_id;
		gxml_xsd_list_type_id = gxml_xsd_list_get_type_once ();
		g_once_init_leave (&gxml_xsd_list_type_id__once, gxml_xsd_list_type_id);
	}
	return gxml_xsd_list_type_id__once;
}

static void
_vala_gxml_xsd_list_get_property (GObject * object,
                                  guint property_id,
                                  GValue * value,
                                  GParamSpec * pspec)
{
	GXmlXsdList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GXML_TYPE_XSD_LIST, GXmlXsdList);
	switch (property_id) {
		case GXML_XSD_LIST_LENGTH_PROPERTY:
		g_value_set_int (value, gxml_xsd_list_get_length (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

GXmlXsdListElements*
gxml_xsd_list_elements_construct (GType object_type)
{
	GXmlXsdListElements * self = NULL;
	self = (GXmlXsdListElements*) gxml_xsd_list_construct (object_type);
	return self;
}

GXmlXsdListElements*
gxml_xsd_list_elements_new (void)
{
	return gxml_xsd_list_elements_construct (GXML_TYPE_XSD_LIST_ELEMENTS);
}

static GObject *
gxml_xsd_list_elements_constructor (GType type,
                                    guint n_construct_properties,
                                    GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdListElements * self;
	GError* _inner_error0_ = NULL;
	parent_class = G_OBJECT_CLASS (gxml_xsd_list_elements_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_LIST_ELEMENTS, GXmlXsdListElements);
	{
		gxml_collection_initialize ((GXmlCollection*) self, GXML_TYPE_XSD_ELEMENT, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp0_;
		GError* _tmp1_;
		const gchar* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp0_ = g_type_name (G_TYPE_FROM_INSTANCE ((GObject*) self));
		_tmp1_ = e;
		_tmp2_ = _tmp1_->message;
		_tmp3_ = g_strdup_printf (_ ("Collection type %s, initialization error: %s"), _tmp0_, _tmp2_);
		_tmp4_ = _tmp3_;
		g_warning ("XsdSchema.vala:289: %s", _tmp4_);
		_g_free0 (_tmp4_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
	}
	return obj;
}

static void
gxml_xsd_list_elements_class_init (GXmlXsdListElementsClass * klass,
                                   gpointer klass_data)
{
	gxml_xsd_list_elements_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_list_elements_constructor;
}

static void
gxml_xsd_list_elements_instance_init (GXmlXsdListElements * self,
                                      gpointer klass)
{
}

static GType
gxml_xsd_list_elements_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdListElementsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_list_elements_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdListElements), 0, (GInstanceInitFunc) gxml_xsd_list_elements_instance_init, NULL };
	GType gxml_xsd_list_elements_type_id;
	gxml_xsd_list_elements_type_id = g_type_register_static (GXML_TYPE_XSD_LIST, "GXmlXsdListElements", &g_define_type_info, 0);
	return gxml_xsd_list_elements_type_id;
}

GType
gxml_xsd_list_elements_get_type (void)
{
	static volatile gsize gxml_xsd_list_elements_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_list_elements_type_id__once)) {
		GType gxml_xsd_list_elements_type_id;
		gxml_xsd_list_elements_type_id = gxml_xsd_list_elements_get_type_once ();
		g_once_init_leave (&gxml_xsd_list_elements_type_id__once, gxml_xsd_list_elements_type_id);
	}
	return gxml_xsd_list_elements_type_id__once;
}

GXmlXsdListSimpleTypes*
gxml_xsd_list_simple_types_construct (GType object_type)
{
	GXmlXsdListSimpleTypes * self = NULL;
	self = (GXmlXsdListSimpleTypes*) gxml_xsd_list_construct (object_type);
	return self;
}

GXmlXsdListSimpleTypes*
gxml_xsd_list_simple_types_new (void)
{
	return gxml_xsd_list_simple_types_construct (GXML_TYPE_XSD_LIST_SIMPLE_TYPES);
}

static GObject *
gxml_xsd_list_simple_types_constructor (GType type,
                                        guint n_construct_properties,
                                        GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdListSimpleTypes * self;
	GError* _inner_error0_ = NULL;
	parent_class = G_OBJECT_CLASS (gxml_xsd_list_simple_types_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_LIST_SIMPLE_TYPES, GXmlXsdListSimpleTypes);
	{
		gxml_collection_initialize ((GXmlCollection*) self, GXML_TYPE_XSD_SIMPLE_TYPE, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp0_;
		GError* _tmp1_;
		const gchar* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp0_ = g_type_name (G_TYPE_FROM_INSTANCE ((GObject*) self));
		_tmp1_ = e;
		_tmp2_ = _tmp1_->message;
		_tmp3_ = g_strdup_printf (_ ("Collection type %s, initialization error: %s"), _tmp0_, _tmp2_);
		_tmp4_ = _tmp3_;
		g_warning ("XsdSchema.vala:297: %s", _tmp4_);
		_g_free0 (_tmp4_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
	}
	return obj;
}

static void
gxml_xsd_list_simple_types_class_init (GXmlXsdListSimpleTypesClass * klass,
                                       gpointer klass_data)
{
	gxml_xsd_list_simple_types_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_list_simple_types_constructor;
}

static void
gxml_xsd_list_simple_types_instance_init (GXmlXsdListSimpleTypes * self,
                                          gpointer klass)
{
}

static GType
gxml_xsd_list_simple_types_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdListSimpleTypesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_list_simple_types_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdListSimpleTypes), 0, (GInstanceInitFunc) gxml_xsd_list_simple_types_instance_init, NULL };
	GType gxml_xsd_list_simple_types_type_id;
	gxml_xsd_list_simple_types_type_id = g_type_register_static (GXML_TYPE_XSD_LIST, "GXmlXsdListSimpleTypes", &g_define_type_info, 0);
	return gxml_xsd_list_simple_types_type_id;
}

GType
gxml_xsd_list_simple_types_get_type (void)
{
	static volatile gsize gxml_xsd_list_simple_types_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_list_simple_types_type_id__once)) {
		GType gxml_xsd_list_simple_types_type_id;
		gxml_xsd_list_simple_types_type_id = gxml_xsd_list_simple_types_get_type_once ();
		g_once_init_leave (&gxml_xsd_list_simple_types_type_id__once, gxml_xsd_list_simple_types_type_id);
	}
	return gxml_xsd_list_simple_types_type_id__once;
}

GXmlXsdListComplexTypes*
gxml_xsd_list_complex_types_construct (GType object_type)
{
	GXmlXsdListComplexTypes * self = NULL;
	self = (GXmlXsdListComplexTypes*) gxml_xsd_list_construct (object_type);
	return self;
}

GXmlXsdListComplexTypes*
gxml_xsd_list_complex_types_new (void)
{
	return gxml_xsd_list_complex_types_construct (GXML_TYPE_XSD_LIST_COMPLEX_TYPES);
}

static GObject *
gxml_xsd_list_complex_types_constructor (GType type,
                                         guint n_construct_properties,
                                         GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdListComplexTypes * self;
	GError* _inner_error0_ = NULL;
	parent_class = G_OBJECT_CLASS (gxml_xsd_list_complex_types_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_LIST_COMPLEX_TYPES, GXmlXsdListComplexTypes);
	{
		gxml_collection_initialize ((GXmlCollection*) self, GXML_TYPE_XSD_COMPLEX_TYPE, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp0_;
		GError* _tmp1_;
		const gchar* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp0_ = g_type_name (G_TYPE_FROM_INSTANCE ((GObject*) self));
		_tmp1_ = e;
		_tmp2_ = _tmp1_->message;
		_tmp3_ = g_strdup_printf (_ ("Collection type %s, initialization error: %s"), _tmp0_, _tmp2_);
		_tmp4_ = _tmp3_;
		g_warning ("XsdSchema.vala:305: %s", _tmp4_);
		_g_free0 (_tmp4_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
	}
	return obj;
}

static void
gxml_xsd_list_complex_types_class_init (GXmlXsdListComplexTypesClass * klass,
                                        gpointer klass_data)
{
	gxml_xsd_list_complex_types_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_list_complex_types_constructor;
}

static void
gxml_xsd_list_complex_types_instance_init (GXmlXsdListComplexTypes * self,
                                           gpointer klass)
{
}

static GType
gxml_xsd_list_complex_types_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdListComplexTypesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_list_complex_types_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdListComplexTypes), 0, (GInstanceInitFunc) gxml_xsd_list_complex_types_instance_init, NULL };
	GType gxml_xsd_list_complex_types_type_id;
	gxml_xsd_list_complex_types_type_id = g_type_register_static (GXML_TYPE_XSD_LIST, "GXmlXsdListComplexTypes", &g_define_type_info, 0);
	return gxml_xsd_list_complex_types_type_id;
}

GType
gxml_xsd_list_complex_types_get_type (void)
{
	static volatile gsize gxml_xsd_list_complex_types_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_list_complex_types_type_id__once)) {
		GType gxml_xsd_list_complex_types_type_id;
		gxml_xsd_list_complex_types_type_id = gxml_xsd_list_complex_types_get_type_once ();
		g_once_init_leave (&gxml_xsd_list_complex_types_type_id__once, gxml_xsd_list_complex_types_type_id);
	}
	return gxml_xsd_list_complex_types_type_id__once;
}

GXmlXsdListTypeRestrictionEnumerations*
gxml_xsd_list_type_restriction_enumerations_construct (GType object_type)
{
	GXmlXsdListTypeRestrictionEnumerations * self = NULL;
	self = (GXmlXsdListTypeRestrictionEnumerations*) gxml_xsd_list_construct (object_type);
	return self;
}

GXmlXsdListTypeRestrictionEnumerations*
gxml_xsd_list_type_restriction_enumerations_new (void)
{
	return gxml_xsd_list_type_restriction_enumerations_construct (GXML_TYPE_XSD_LIST_TYPE_RESTRICTION_ENUMERATIONS);
}

static GObject *
gxml_xsd_list_type_restriction_enumerations_constructor (GType type,
                                                         guint n_construct_properties,
                                                         GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdListTypeRestrictionEnumerations * self;
	GError* _inner_error0_ = NULL;
	parent_class = G_OBJECT_CLASS (gxml_xsd_list_type_restriction_enumerations_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_LIST_TYPE_RESTRICTION_ENUMERATIONS, GXmlXsdListTypeRestrictionEnumerations);
	{
		gxml_collection_initialize ((GXmlCollection*) self, GXML_TYPE_XSD_TYPE_RESTRICTION_ENUMERATION, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp0_;
		GError* _tmp1_;
		const gchar* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp0_ = g_type_name (G_TYPE_FROM_INSTANCE ((GObject*) self));
		_tmp1_ = e;
		_tmp2_ = _tmp1_->message;
		_tmp3_ = g_strdup_printf (_ ("Collection type %s, initialization error: %s"), _tmp0_, _tmp2_);
		_tmp4_ = _tmp3_;
		g_warning ("XsdSchema.vala:313: %s", _tmp4_);
		_g_free0 (_tmp4_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
	}
	return obj;
}

static void
gxml_xsd_list_type_restriction_enumerations_class_init (GXmlXsdListTypeRestrictionEnumerationsClass * klass,
                                                        gpointer klass_data)
{
	gxml_xsd_list_type_restriction_enumerations_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_list_type_restriction_enumerations_constructor;
}

static void
gxml_xsd_list_type_restriction_enumerations_instance_init (GXmlXsdListTypeRestrictionEnumerations * self,
                                                           gpointer klass)
{
}

static GType
gxml_xsd_list_type_restriction_enumerations_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdListTypeRestrictionEnumerationsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_list_type_restriction_enumerations_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdListTypeRestrictionEnumerations), 0, (GInstanceInitFunc) gxml_xsd_list_type_restriction_enumerations_instance_init, NULL };
	GType gxml_xsd_list_type_restriction_enumerations_type_id;
	gxml_xsd_list_type_restriction_enumerations_type_id = g_type_register_static (GXML_TYPE_XSD_LIST, "GXmlXsdListTypeRestrictionEnumerations", &g_define_type_info, 0);
	return gxml_xsd_list_type_restriction_enumerations_type_id;
}

GType
gxml_xsd_list_type_restriction_enumerations_get_type (void)
{
	static volatile gsize gxml_xsd_list_type_restriction_enumerations_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_list_type_restriction_enumerations_type_id__once)) {
		GType gxml_xsd_list_type_restriction_enumerations_type_id;
		gxml_xsd_list_type_restriction_enumerations_type_id = gxml_xsd_list_type_restriction_enumerations_get_type_once ();
		g_once_init_leave (&gxml_xsd_list_type_restriction_enumerations_type_id__once, gxml_xsd_list_type_restriction_enumerations_type_id);
	}
	return gxml_xsd_list_type_restriction_enumerations_type_id__once;
}

GXmlXsdListTypeRestrictionWhiteSpaces*
gxml_xsd_list_type_restriction_white_spaces_construct (GType object_type)
{
	GXmlXsdListTypeRestrictionWhiteSpaces * self = NULL;
	self = (GXmlXsdListTypeRestrictionWhiteSpaces*) gxml_xsd_list_construct (object_type);
	return self;
}

GXmlXsdListTypeRestrictionWhiteSpaces*
gxml_xsd_list_type_restriction_white_spaces_new (void)
{
	return gxml_xsd_list_type_restriction_white_spaces_construct (GXML_TYPE_XSD_LIST_TYPE_RESTRICTION_WHITE_SPACES);
}

static GObject *
gxml_xsd_list_type_restriction_white_spaces_constructor (GType type,
                                                         guint n_construct_properties,
                                                         GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlXsdListTypeRestrictionWhiteSpaces * self;
	GError* _inner_error0_ = NULL;
	parent_class = G_OBJECT_CLASS (gxml_xsd_list_type_restriction_white_spaces_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_XSD_LIST_TYPE_RESTRICTION_WHITE_SPACES, GXmlXsdListTypeRestrictionWhiteSpaces);
	{
		gxml_collection_initialize ((GXmlCollection*) self, GXML_TYPE_XSD_TYPE_RESTRICTION_WHITE_SPACE, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp0_;
		GError* _tmp1_;
		const gchar* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp0_ = g_type_name (G_TYPE_FROM_INSTANCE ((GObject*) self));
		_tmp1_ = e;
		_tmp2_ = _tmp1_->message;
		_tmp3_ = g_strdup_printf (_ ("Collection type %s, initialization error: %s"), _tmp0_, _tmp2_);
		_tmp4_ = _tmp3_;
		g_warning ("XsdSchema.vala:321: %s", _tmp4_);
		_g_free0 (_tmp4_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
	}
	return obj;
}

static void
gxml_xsd_list_type_restriction_white_spaces_class_init (GXmlXsdListTypeRestrictionWhiteSpacesClass * klass,
                                                        gpointer klass_data)
{
	gxml_xsd_list_type_restriction_white_spaces_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->constructor = gxml_xsd_list_type_restriction_white_spaces_constructor;
}

static void
gxml_xsd_list_type_restriction_white_spaces_instance_init (GXmlXsdListTypeRestrictionWhiteSpaces * self,
                                                           gpointer klass)
{
}

static GType
gxml_xsd_list_type_restriction_white_spaces_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlXsdListTypeRestrictionWhiteSpacesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_xsd_list_type_restriction_white_spaces_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlXsdListTypeRestrictionWhiteSpaces), 0, (GInstanceInitFunc) gxml_xsd_list_type_restriction_white_spaces_instance_init, NULL };
	GType gxml_xsd_list_type_restriction_white_spaces_type_id;
	gxml_xsd_list_type_restriction_white_spaces_type_id = g_type_register_static (GXML_TYPE_XSD_LIST, "GXmlXsdListTypeRestrictionWhiteSpaces", &g_define_type_info, 0);
	return gxml_xsd_list_type_restriction_white_spaces_type_id;
}

GType
gxml_xsd_list_type_restriction_white_spaces_get_type (void)
{
	static volatile gsize gxml_xsd_list_type_restriction_white_spaces_type_id__once = 0;
	if (g_once_init_enter (&gxml_xsd_list_type_restriction_white_spaces_type_id__once)) {
		GType gxml_xsd_list_type_restriction_white_spaces_type_id;
		gxml_xsd_list_type_restriction_white_spaces_type_id = gxml_xsd_list_type_restriction_white_spaces_get_type_once ();
		g_once_init_leave (&gxml_xsd_list_type_restriction_white_spaces_type_id__once, gxml_xsd_list_type_restriction_white_spaces_type_id);
	}
	return gxml_xsd_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;
}

