//------------------------------------------------------------------------------
// Collada auto-generated model object from schema 1.4.1
// This file was patched manually in order to be able to use it
// see http://code4k.blogspot.com/2010/08/import-and-export-3d-collada-files-with.html for more information
// Author: @lx
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.1
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
//
// Correction to joints node by cmar

using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Serialization;

namespace Collada141
{
    // 
    // This source code was auto-generated by xsd, Version=4.0.30319.1.
    // 


    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
//    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public partial class COLLADA
    {
        private asset assetField;
        private extra[] extraField;

        private object[] itemsField;

        private COLLADAScene sceneField;

        private VersionType versionField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("library_animation_clips", typeof (library_animation_clips))]
        [XmlElement("library_animations", typeof (library_animations))]
        [XmlElement("library_cameras", typeof (library_cameras))]
        [XmlElement("library_controllers", typeof (library_controllers))]
        [XmlElement("library_effects", typeof (library_effects))]
        [XmlElement("library_force_fields", typeof (library_force_fields))]
        [XmlElement("library_geometries", typeof (library_geometries))]
        [XmlElement("library_images", typeof (library_images))]
        [XmlElement("library_lights", typeof (library_lights))]
        [XmlElement("library_materials", typeof (library_materials))]
        [XmlElement("library_nodes", typeof (library_nodes))]
        [XmlElement("library_physics_materials", typeof (library_physics_materials))]
        [XmlElement("library_physics_models", typeof (library_physics_models))]
        [XmlElement("library_physics_scenes", typeof (library_physics_scenes))]
        [XmlElement("library_visual_scenes", typeof (library_visual_scenes))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        public COLLADAScene scene
        {
            get { return sceneField; }
            set { sceneField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public VersionType version
        {
            get { return versionField; }
            set { versionField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class asset
    {
        private assetContributor[] contributorField;

        private DateTime createdField;

        private string keywordsField;

        private DateTime modifiedField;

        private string revisionField;

        private string subjectField;

        private string titleField;

        private assetUnit unitField;

        private UpAxisType up_axisField;

        public asset()
        {
            up_axisField = UpAxisType.Y_UP;
        }

        /// <remarks />
        [XmlElement("contributor")]
        public assetContributor[] contributor
        {
            get { return contributorField; }
            set { contributorField = value; }
        }

        /// <remarks />
        public DateTime created
        {
            get { return createdField; }
            set { createdField = value; }
        }

        /// <remarks />
        public string keywords
        {
            get { return keywordsField; }
            set { keywordsField = value; }
        }

        /// <remarks />
        public DateTime modified
        {
            get { return modifiedField; }
            set { modifiedField = value; }
        }

        /// <remarks />
        public string revision
        {
            get { return revisionField; }
            set { revisionField = value; }
        }

        /// <remarks />
        public string subject
        {
            get { return subjectField; }
            set { subjectField = value; }
        }

        /// <remarks />
        public string title
        {
            get { return titleField; }
            set { titleField = value; }
        }

        /// <remarks />
        public assetUnit unit
        {
            get { return unitField; }
            set { unitField = value; }
        }

        /// <remarks />
        [DefaultValue(UpAxisType.Y_UP)]
        public UpAxisType up_axis
        {
            get { return up_axisField; }
            set { up_axisField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class assetContributor
    {
        private string authorField;

        private string authoring_toolField;

        private string commentsField;

        private string copyrightField;

        private string source_dataField;

        /// <remarks />
        public string author
        {
            get { return authorField; }
            set { authorField = value; }
        }

        /// <remarks />
        public string authoring_tool
        {
            get { return authoring_toolField; }
            set { authoring_toolField = value; }
        }

        /// <remarks />
        public string comments
        {
            get { return commentsField; }
            set { commentsField = value; }
        }

        /// <remarks />
        public string copyright
        {
            get { return copyrightField; }
            set { copyrightField = value; }
        }

        /// <remarks />
        [XmlElement(DataType = "anyURI")]
        public string source_data
        {
            get { return source_dataField; }
            set { source_dataField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_init_from_common
    {
        private fx_surface_face_enum faceField;
        private uint mipField;

        private uint sliceField;

        private string valueField;

        public fx_surface_init_from_common()
        {
            mipField = ((0));
            sliceField = ((0));
            faceField = fx_surface_face_enum.POSITIVE_X;
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(typeof (uint), "0")]
        public uint mip
        {
            get { return mipField; }
            set { mipField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(typeof (uint), "0")]
        public uint slice
        {
            get { return sliceField; }
            set { sliceField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(fx_surface_face_enum.POSITIVE_X)]
        public fx_surface_face_enum face
        {
            get { return faceField; }
            set { faceField = value; }
        }

        /// <remarks />
        [XmlText(DataType = "IDREF")]
        public string Value
        {
            get { return valueField; }
            set { valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum fx_surface_face_enum
    {
        /// <remarks />
        POSITIVE_X,

        /// <remarks />
        NEGATIVE_X,

        /// <remarks />
        POSITIVE_Y,

        /// <remarks />
        NEGATIVE_Y,

        /// <remarks />
        POSITIVE_Z,

        /// <remarks />
        NEGATIVE_Z,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class common_newparam_type
    {
        private ItemChoiceType itemElementNameField;
        private object itemField;
        private string semanticField;

        private string sidField;

        /// <remarks />
        [XmlElement(DataType = "NCName")]
        public string semantic
        {
            get { return semanticField; }
            set { semanticField = value; }
        }

        /// <remarks />
        [XmlElement("float", typeof (double))]
        [XmlElement("float2", typeof (double))]
        [XmlElement("float3", typeof (double))]
        [XmlElement("float4", typeof (double))]
        [XmlElement("sampler2D", typeof (fx_sampler2D_common))]
        [XmlElement("surface", typeof (fx_surface_common))]
        [XmlChoiceIdentifier("ItemElementName")]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }

        /// <remarks />
        [XmlIgnore]
        public ItemChoiceType ItemElementName
        {
            get { return itemElementNameField; }
            set { itemElementNameField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_sampler2D_common
    {
        private string border_colorField;
        private extra[] extraField;
        private fx_sampler_filter_common magfilterField;
        private fx_sampler_filter_common minfilterField;

        private fx_sampler_filter_common mipfilterField;

        private float mipmap_biasField;
        private byte mipmap_maxlevelField;
        private string sourceField;

        private fx_sampler_wrap_common wrap_sField;

        private fx_sampler_wrap_common wrap_tField;

        public fx_sampler2D_common()
        {
            wrap_sField = fx_sampler_wrap_common.WRAP;
            wrap_tField = fx_sampler_wrap_common.WRAP;
            minfilterField = fx_sampler_filter_common.NONE;
            magfilterField = fx_sampler_filter_common.NONE;
            mipfilterField = fx_sampler_filter_common.NONE;
            mipmap_maxlevelField = ((255));
            mipmap_biasField = ((0F));
        }

        /// <remarks />
        [XmlElement(DataType = "NCName")]
        public string source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_s
        {
            get { return wrap_sField; }
            set { wrap_sField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_t
        {
            get { return wrap_tField; }
            set { wrap_tField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common minfilter
        {
            get { return minfilterField; }
            set { minfilterField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common magfilter
        {
            get { return magfilterField; }
            set { magfilterField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common mipfilter
        {
            get { return mipfilterField; }
            set { mipfilterField = value; }
        }

        /// <remarks />
        public string border_color
        {
            get { return border_colorField; }
            set { border_colorField = value; }
        }

        /// <remarks />
        [DefaultValue(typeof (byte), "255")]
        public byte mipmap_maxlevel
        {
            get { return mipmap_maxlevelField; }
            set { mipmap_maxlevelField = value; }
        }

        /// <remarks />
        [DefaultValue(typeof (float), "0")]
        public float mipmap_bias
        {
            get { return mipmap_biasField; }
            set { mipmap_biasField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum fx_sampler_wrap_common
    {
        /// <remarks />
        NONE,

        /// <remarks />
        WRAP,

        /// <remarks />
        MIRROR,

        /// <remarks />
        CLAMP,

        /// <remarks />
        BORDER,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum fx_sampler_filter_common
    {
        /// <remarks />
        NONE,

        /// <remarks />
        NEAREST,

        /// <remarks />
        LINEAR,

        /// <remarks />
        NEAREST_MIPMAP_NEAREST,

        /// <remarks />
        LINEAR_MIPMAP_NEAREST,

        /// <remarks />
        NEAREST_MIPMAP_LINEAR,

        /// <remarks />
        LINEAR_MIPMAP_LINEAR,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class extra
    {
        private asset assetField;

        private string idField;

        private string nameField;
        private technique[] techniqueField;

        private string typeField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NMTOKEN")]
        public string type
        {
            get { return typeField; }
            set { typeField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class technique
    {
        private XmlElement[] anyField;

        private string profileField;

        /// <remarks />
        [XmlAnyElement]
        public XmlElement[] Any
        {
            get { return anyField; }
            set { anyField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NMTOKEN")]
        public string profile
        {
            get { return profileField; }
            set { profileField = value; }
        }

        // layer, roll, tip fields added by cmar for Blender compatibility
        private string layerField;
        private string rollField;
        private string tipX;
        private string tipY;
        private string tipZ;

        [XmlElement(DataType = "NMTOKEN")]
        public string layer
        {
            get { return layerField; }
            set { layerField = value; }
        }

        [XmlElement(DataType = "NMTOKEN")]
        public string roll
        {
            get { return rollField; }
            set { rollField = value; }
        }

        [XmlElement(DataType = "NMTOKEN")]
        public string tip_x
        {
            get { return tipX; }
            set { tipX = value; }
        }

        [XmlElement(DataType = "NMTOKEN")]
        public string tip_y
        {
            get { return tipY; }
            set { tipY = value; }
        }

        [XmlElement(DataType = "NMTOKEN")]
        public string tip_z
        {
            get { return tipZ; }
            set { tipZ = value; }
        }

        // light fields added by cmar for Blender compatibility

        //public string adapt_thresh;
        //  <area_shape>1</area_shape>
        //  <area_size>0.1</area_size>
        //  <area_sizey>0.1</area_sizey>
        //  <area_sizez>1</area_sizez>
        //  <atm_distance_factor>1</atm_distance_factor>
        //  <atm_extinction_factor>1</atm_extinction_factor>
        //  <atm_turbidity>2</atm_turbidity>
        //  <att1>0</att1>
        //  <att2>1</att2>
        private string backscatter;
        //  <bias>1</bias>
        //  <blue>1</blue>
        //  <buffers>1</buffers>
        //  <bufflag>0</bufflag>
        //  <bufsize>2880</bufsize>
        //  <buftype>2</buftype>
        //  <clipend>30.002</clipend>
        //  <clipsta>1.000799</clipsta>
        //  <compressthresh>0.04999995</compressthresh>
        //  <dist sid="blender_dist">29.99998</dist>
        private string Energy;
        //  <falloff_type>2</falloff_type>
        //  <filtertype>0</filtertype>
        //  <flag>0</flag>
        //  <gamma sid="blender_gamma">1</gamma>
        //  <green>1</green>
        //  <halo_intensity sid="blnder_halo_intensity">1</halo_intensity>
        //  <horizon_brightness>1</horizon_brightness>
        private string Mode;
        //  <ray_samp>1</ray_samp>
        //  <ray_samp_method>1</ray_samp_method>
        //  <ray_samp_type>0</ray_samp_type>
        //  <ray_sampy>1</ray_sampy>
        //  <ray_sampz>1</ray_sampz>
        //  <red>1</red>
        //  <samp>3</samp>
        //  <shadhalostep>0</shadhalostep>
        //  <shadow_b sid="blender_shadow_b">0</shadow_b>
        //  <shadow_g sid="blender_shadow_g">0</shadow_g>
        //  <shadow_r sid="blender_shadow_r">0</shadow_r>
        //  <sky_colorspace>0</sky_colorspace>
        //  <sky_exposure>1</sky_exposure>
        //  <skyblendfac>1</skyblendfac>
        //  <skyblendtype>1</skyblendtype>
        //  <soft>3</soft>
        private string spotBlend;
        private string spotSize;
        private string lightSpread;
        private string sunBrightness;
        private string sunEffectType;
        private string sunIntensity;
        private string sunSize;
        private string Type;

        [XmlElement(DataType = "NMTOKEN")]
        public string backscattered_light
        {
            get { return backscatter; }
            set { backscatter = value; }
        }
        [XmlElement(DataType = "NMTOKEN")]
        public string energy
        {
            get { return Energy; }
            set { Energy = value; }
        }
        [XmlElement(DataType = "NMTOKEN")]
        public string mode
        {
            get { return Mode; }
            set { Mode = value; }
        }
        [XmlElement(DataType = "NMTOKEN")]
        public string spotblend
        {
            get { return spotBlend; }
            set { spotBlend = value; }
        }
        [XmlElement(DataType = "NMTOKEN")]
        public string spotsize
        {
            get { return spotSize; }
            set { spotSize = value; }
        }
        [XmlElement(DataType = "NMTOKEN")]
        public string spread
        {
            get { return lightSpread; }
            set { lightSpread = value; }
        }
        [XmlElement(DataType = "NMTOKEN")]
        public string sun_brightness
        {
            get { return sunBrightness; }
            set { sunBrightness = value; }
        }
        [XmlElement(DataType = "NMTOKEN")]
        public string sun_effect_type
        {
            get { return sunEffectType; }
            set { sunEffectType = value; }
        }
        [XmlElement(DataType = "NMTOKEN")]
        public string sun_intensity
        {
            get { return sunIntensity; }
            set { sunIntensity = value; }
        }
        [XmlElement(DataType = "NMTOKEN")]
        public string sun_size
        {
            get { return sunSize; }
            set { sunSize = value; }
        }
        [XmlElement(DataType = "NMTOKEN")]
        public string type
        {
            get { return Type; }
            set { Type = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_common
    {
        private extra[] extraField;
        private string formatField;

        private fx_surface_format_hint_common format_hintField;
        private object init_as_nullField;

        private object init_as_targetField;

        private fx_surface_init_cube_common init_cubeField;

        private fx_surface_init_from_common[] init_fromField;
        private fx_surface_init_planar_common init_planarField;
        private fx_surface_init_volume_common init_volumeField;

        private object itemField;

        private uint mip_levelsField;

        private bool mipmap_generateField;

        private bool mipmap_generateFieldSpecified;

        private fx_surface_type_enum typeField;

        public fx_surface_common()
        {
            mip_levelsField = ((0));
        }

        /// <remarks />
        public object init_as_null
        {
            get { return init_as_nullField; }
            set { init_as_nullField = value; }
        }

        /// <remarks />
        public object init_as_target
        {
            get { return init_as_targetField; }
            set { init_as_targetField = value; }
        }

        /// <remarks />
        public fx_surface_init_cube_common init_cube
        {
            get { return init_cubeField; }
            set { init_cubeField = value; }
        }

        /// <remarks />
        public fx_surface_init_volume_common init_volume
        {
            get { return init_volumeField; }
            set { init_volumeField = value; }
        }

        /// <remarks />
        public fx_surface_init_planar_common init_planar
        {
            get { return init_planarField; }
            set { init_planarField = value; }
        }

        /// <remarks />
        [XmlElement("init_from")]
        public fx_surface_init_from_common[] init_from
        {
            get { return init_fromField; }
            set { init_fromField = value; }
        }

        /// <remarks />
        [XmlElement(DataType = "token")]
        public string format
        {
            get { return formatField; }
            set { formatField = value; }
        }

        /// <remarks />
        public fx_surface_format_hint_common format_hint
        {
            get { return format_hintField; }
            set { format_hintField = value; }
        }

        /// <remarks />
        [XmlElement("size", typeof (long))]
        [XmlElement("viewport_ratio", typeof (double))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }

        /// <remarks />
        [DefaultValue(typeof (uint), "0")]
        public uint mip_levels
        {
            get { return mip_levelsField; }
            set { mip_levelsField = value; }
        }

        /// <remarks />
        public bool mipmap_generate
        {
            get { return mipmap_generateField; }
            set { mipmap_generateField = value; }
        }

        /// <remarks />
        [XmlIgnore]
        public bool mipmap_generateSpecified
        {
            get { return mipmap_generateFieldSpecified; }
            set { mipmap_generateFieldSpecified = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public fx_surface_type_enum type
        {
            get { return typeField; }
            set { typeField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_init_cube_common
    {
        private object[] itemsField;

        /// <remarks />
        [XmlElement("all", typeof (fx_surface_init_cube_commonAll))]
        [XmlElement("face", typeof (fx_surface_init_cube_commonFace))]
        [XmlElement("primary", typeof (fx_surface_init_cube_commonPrimary))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_init_cube_commonAll
    {
        private string refField;

        /// <remarks />
        [XmlAttribute(DataType = "IDREF")]
        public string @ref
        {
            get { return refField; }
            set { refField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_init_cube_commonFace
    {
        private string refField;

        /// <remarks />
        [XmlAttribute(DataType = "IDREF")]
        public string @ref
        {
            get { return refField; }
            set { refField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_init_cube_commonPrimary
    {
        private fx_surface_face_enum[] orderField;

        private string refField;

        /// <remarks />
        [XmlElement("order")]
        public fx_surface_face_enum[] order
        {
            get { return orderField; }
            set { orderField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "IDREF")]
        public string @ref
        {
            get { return refField; }
            set { refField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_init_volume_common
    {
        private object itemField;

        /// <remarks />
        [XmlElement("all", typeof (fx_surface_init_volume_commonAll))]
        [XmlElement("primary", typeof (fx_surface_init_volume_commonPrimary))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_init_volume_commonAll
    {
        private string refField;

        /// <remarks />
        [XmlAttribute(DataType = "IDREF")]
        public string @ref
        {
            get { return refField; }
            set { refField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_init_volume_commonPrimary
    {
        private string refField;

        /// <remarks />
        [XmlAttribute(DataType = "IDREF")]
        public string @ref
        {
            get { return refField; }
            set { refField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_init_planar_common
    {
        private fx_surface_init_planar_commonAll itemField;

        /// <remarks />
        [XmlElement("all")]
        public fx_surface_init_planar_commonAll Item
        {
            get { return itemField; }
            set { itemField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_init_planar_commonAll
    {
        private string refField;

        /// <remarks />
        [XmlAttribute(DataType = "IDREF")]
        public string @ref
        {
            get { return refField; }
            set { refField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_surface_format_hint_common
    {
        private fx_surface_format_hint_channels_enum channelsField;
        private extra[] extraField;
        private fx_surface_format_hint_option_enum[] optionField;

        private fx_surface_format_hint_precision_enum precisionField;

        private bool precisionFieldSpecified;
        private fx_surface_format_hint_range_enum rangeField;

        /// <remarks />
        public fx_surface_format_hint_channels_enum channels
        {
            get { return channelsField; }
            set { channelsField = value; }
        }

        /// <remarks />
        public fx_surface_format_hint_range_enum range
        {
            get { return rangeField; }
            set { rangeField = value; }
        }

        /// <remarks />
        public fx_surface_format_hint_precision_enum precision
        {
            get { return precisionField; }
            set { precisionField = value; }
        }

        /// <remarks />
        [XmlIgnore]
        public bool precisionSpecified
        {
            get { return precisionFieldSpecified; }
            set { precisionFieldSpecified = value; }
        }

        /// <remarks />
        [XmlElement("option")]
        public fx_surface_format_hint_option_enum[] option
        {
            get { return optionField; }
            set { optionField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum fx_surface_format_hint_channels_enum
    {
        /// <remarks />
        RGB,

        /// <remarks />
        RGBA,

        /// <remarks />
        L,

        /// <remarks />
        LA,

        /// <remarks />
        D,

        /// <remarks />
        XYZ,

        /// <remarks />
        XYZW,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum fx_surface_format_hint_range_enum
    {
        /// <remarks />
        SNORM,

        /// <remarks />
        UNORM,

        /// <remarks />
        SINT,

        /// <remarks />
        UINT,

        /// <remarks />
        FLOAT,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum fx_surface_format_hint_precision_enum
    {
        /// <remarks />
        LOW,

        /// <remarks />
        MID,

        /// <remarks />
        HIGH,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum fx_surface_format_hint_option_enum
    {
        /// <remarks />
        SRGB_GAMMA,

        /// <remarks />
        NORMALIZED3,

        /// <remarks />
        NORMALIZED4,

        /// <remarks />
        COMPRESSABLE,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum fx_surface_type_enum
    {
        /// <remarks />
        UNTYPED,

        /// <remarks />
        [XmlEnum("1D")] Item1D,

        /// <remarks />
        [XmlEnum("2D")] Item2D,

        /// <remarks />
        [XmlEnum("3D")] Item3D,

        /// <remarks />
        RECT,

        /// <remarks />
        CUBE,

        /// <remarks />
        DEPTH,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IncludeInSchema = false)]
    public enum ItemChoiceType
    {
        /// <remarks />
        @float,

        /// <remarks />
        float2,

        /// <remarks />
        float3,

        /// <remarks />
        float4,

        /// <remarks />
        sampler2D,

        /// <remarks />
        surface,
    }

    /// <remarks />
    [XmlInclude(typeof (common_transparent_type))]
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class common_color_or_texture_type
    {
        private object itemField;

        /// <remarks />
        [XmlElement("color", typeof (common_color_or_texture_typeColor))]
        [XmlElement("param", typeof (common_color_or_texture_typeParam))]
        [XmlElement("texture", typeof (common_color_or_texture_typeTexture))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class common_color_or_texture_typeColor
    {
        private string sidField;

        private double[] textField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public string _Text_
        {
            get { return COLLADA.ConvertFromArray(Values); }

            set { Values = COLLADA.ConvertDoubleArray(value); }
        }

        /// <remarks />
        [XmlIgnore]
        public double[] Values
        {
            get { return textField; }
            set { textField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class common_color_or_texture_typeParam
    {
        private string refField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string @ref
        {
            get { return refField; }
            set { refField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class common_color_or_texture_typeTexture
    {
        private extra extraField;

        private string texcoordField;
        private string textureField;

        /// <remarks />
        public extra extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string texture
        {
            get { return textureField; }
            set { textureField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string texcoord
        {
            get { return texcoordField; }
            set { texcoordField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class common_transparent_type : common_color_or_texture_type
    {
        private fx_opaque_enum opaqueField;

        public common_transparent_type()
        {
            opaqueField = fx_opaque_enum.A_ONE;
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(fx_opaque_enum.A_ONE)]
        public fx_opaque_enum opaque
        {
            get { return opaqueField; }
            set { opaqueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum fx_opaque_enum
    {
        /// <remarks />
        A_ONE,

        /// <remarks />
        RGB_ZERO,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class common_float_or_param_type
    {
        private object itemField;

        /// <remarks />
        [XmlElement("float", typeof (common_float_or_param_typeFloat))]
        [XmlElement("param", typeof (common_float_or_param_typeParam))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class common_float_or_param_typeFloat
    {
        private string sidField;

        private double valueField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public double Value
        {
            get { return valueField; }
            set { valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class common_float_or_param_typeParam
    {
        private string refField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string @ref
        {
            get { return refField; }
            set { refField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_include_common
    {
        private string sidField;

        private string urlField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string url
        {
            get { return urlField; }
            set { urlField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_samplerDEPTH_common
    {
        private extra[] extraField;
        private fx_sampler_filter_common magfilterField;
        private fx_sampler_filter_common minfilterField;
        private string sourceField;

        private fx_sampler_wrap_common wrap_sField;

        private fx_sampler_wrap_common wrap_tField;

        public fx_samplerDEPTH_common()
        {
            wrap_sField = fx_sampler_wrap_common.WRAP;
            wrap_tField = fx_sampler_wrap_common.WRAP;
            minfilterField = fx_sampler_filter_common.NONE;
            magfilterField = fx_sampler_filter_common.NONE;
        }

        /// <remarks />
        [XmlElement(DataType = "NCName")]
        public string source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_s
        {
            get { return wrap_sField; }
            set { wrap_sField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_t
        {
            get { return wrap_tField; }
            set { wrap_tField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common minfilter
        {
            get { return minfilterField; }
            set { minfilterField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common magfilter
        {
            get { return magfilterField; }
            set { magfilterField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_samplerRECT_common
    {
        private string border_colorField;
        private extra[] extraField;
        private fx_sampler_filter_common magfilterField;
        private fx_sampler_filter_common minfilterField;

        private fx_sampler_filter_common mipfilterField;

        private float mipmap_biasField;
        private byte mipmap_maxlevelField;
        private string sourceField;

        private fx_sampler_wrap_common wrap_sField;

        private fx_sampler_wrap_common wrap_tField;

        public fx_samplerRECT_common()
        {
            wrap_sField = fx_sampler_wrap_common.WRAP;
            wrap_tField = fx_sampler_wrap_common.WRAP;
            minfilterField = fx_sampler_filter_common.NONE;
            magfilterField = fx_sampler_filter_common.NONE;
            mipfilterField = fx_sampler_filter_common.NONE;
            mipmap_maxlevelField = ((255));
            mipmap_biasField = ((0F));
        }

        /// <remarks />
        [XmlElement(DataType = "NCName")]
        public string source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_s
        {
            get { return wrap_sField; }
            set { wrap_sField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_t
        {
            get { return wrap_tField; }
            set { wrap_tField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common minfilter
        {
            get { return minfilterField; }
            set { minfilterField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common magfilter
        {
            get { return magfilterField; }
            set { magfilterField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common mipfilter
        {
            get { return mipfilterField; }
            set { mipfilterField = value; }
        }

        /// <remarks />
        public string border_color
        {
            get { return border_colorField; }
            set { border_colorField = value; }
        }

        /// <remarks />
        [DefaultValue(typeof (byte), "255")]
        public byte mipmap_maxlevel
        {
            get { return mipmap_maxlevelField; }
            set { mipmap_maxlevelField = value; }
        }

        /// <remarks />
        [DefaultValue(typeof (float), "0")]
        public float mipmap_bias
        {
            get { return mipmap_biasField; }
            set { mipmap_biasField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_samplerCUBE_common
    {
        private string border_colorField;
        private extra[] extraField;
        private fx_sampler_filter_common magfilterField;
        private fx_sampler_filter_common minfilterField;

        private fx_sampler_filter_common mipfilterField;

        private float mipmap_biasField;
        private byte mipmap_maxlevelField;
        private string sourceField;
        private fx_sampler_wrap_common wrap_pField;
        private fx_sampler_wrap_common wrap_sField;

        private fx_sampler_wrap_common wrap_tField;

        public fx_samplerCUBE_common()
        {
            wrap_sField = fx_sampler_wrap_common.WRAP;
            wrap_tField = fx_sampler_wrap_common.WRAP;
            wrap_pField = fx_sampler_wrap_common.WRAP;
            minfilterField = fx_sampler_filter_common.NONE;
            magfilterField = fx_sampler_filter_common.NONE;
            mipfilterField = fx_sampler_filter_common.NONE;
            mipmap_maxlevelField = ((255));
            mipmap_biasField = ((0F));
        }

        /// <remarks />
        [XmlElement(DataType = "NCName")]
        public string source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_s
        {
            get { return wrap_sField; }
            set { wrap_sField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_t
        {
            get { return wrap_tField; }
            set { wrap_tField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_p
        {
            get { return wrap_pField; }
            set { wrap_pField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common minfilter
        {
            get { return minfilterField; }
            set { minfilterField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common magfilter
        {
            get { return magfilterField; }
            set { magfilterField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common mipfilter
        {
            get { return mipfilterField; }
            set { mipfilterField = value; }
        }

        /// <remarks />
        public string border_color
        {
            get { return border_colorField; }
            set { border_colorField = value; }
        }

        /// <remarks />
        [DefaultValue(typeof (byte), "255")]
        public byte mipmap_maxlevel
        {
            get { return mipmap_maxlevelField; }
            set { mipmap_maxlevelField = value; }
        }

        /// <remarks />
        [DefaultValue(typeof (float), "0")]
        public float mipmap_bias
        {
            get { return mipmap_biasField; }
            set { mipmap_biasField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_sampler3D_common
    {
        private string border_colorField;
        private extra[] extraField;
        private fx_sampler_filter_common magfilterField;
        private fx_sampler_filter_common minfilterField;

        private fx_sampler_filter_common mipfilterField;

        private float mipmap_biasField;
        private byte mipmap_maxlevelField;
        private string sourceField;
        private fx_sampler_wrap_common wrap_pField;
        private fx_sampler_wrap_common wrap_sField;

        private fx_sampler_wrap_common wrap_tField;

        public fx_sampler3D_common()
        {
            wrap_sField = fx_sampler_wrap_common.WRAP;
            wrap_tField = fx_sampler_wrap_common.WRAP;
            wrap_pField = fx_sampler_wrap_common.WRAP;
            minfilterField = fx_sampler_filter_common.NONE;
            magfilterField = fx_sampler_filter_common.NONE;
            mipfilterField = fx_sampler_filter_common.NONE;
            mipmap_maxlevelField = ((255));
            mipmap_biasField = ((0F));
        }

        /// <remarks />
        [XmlElement(DataType = "NCName")]
        public string source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_s
        {
            get { return wrap_sField; }
            set { wrap_sField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_t
        {
            get { return wrap_tField; }
            set { wrap_tField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_p
        {
            get { return wrap_pField; }
            set { wrap_pField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common minfilter
        {
            get { return minfilterField; }
            set { minfilterField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common magfilter
        {
            get { return magfilterField; }
            set { magfilterField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common mipfilter
        {
            get { return mipfilterField; }
            set { mipfilterField = value; }
        }

        /// <remarks />
        public string border_color
        {
            get { return border_colorField; }
            set { border_colorField = value; }
        }

        /// <remarks />
        [DefaultValue(typeof (byte), "255")]
        public byte mipmap_maxlevel
        {
            get { return mipmap_maxlevelField; }
            set { mipmap_maxlevelField = value; }
        }

        /// <remarks />
        [DefaultValue(typeof (float), "0")]
        public float mipmap_bias
        {
            get { return mipmap_biasField; }
            set { mipmap_biasField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_sampler1D_common
    {
        private string border_colorField;
        private extra[] extraField;
        private fx_sampler_filter_common magfilterField;
        private fx_sampler_filter_common minfilterField;

        private fx_sampler_filter_common mipfilterField;

        private float mipmap_biasField;
        private byte mipmap_maxlevelField;
        private string sourceField;

        private fx_sampler_wrap_common wrap_sField;

        public fx_sampler1D_common()
        {
            wrap_sField = fx_sampler_wrap_common.WRAP;
            minfilterField = fx_sampler_filter_common.NONE;
            magfilterField = fx_sampler_filter_common.NONE;
            mipfilterField = fx_sampler_filter_common.NONE;
            mipmap_maxlevelField = ((0));
            mipmap_biasField = ((0F));
        }

        /// <remarks />
        [XmlElement(DataType = "NCName")]
        public string source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_wrap_common.WRAP)]
        public fx_sampler_wrap_common wrap_s
        {
            get { return wrap_sField; }
            set { wrap_sField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common minfilter
        {
            get { return minfilterField; }
            set { minfilterField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common magfilter
        {
            get { return magfilterField; }
            set { magfilterField = value; }
        }

        /// <remarks />
        [DefaultValue(fx_sampler_filter_common.NONE)]
        public fx_sampler_filter_common mipfilter
        {
            get { return mipfilterField; }
            set { mipfilterField = value; }
        }

        /// <remarks />
        public string border_color
        {
            get { return border_colorField; }
            set { border_colorField = value; }
        }

        /// <remarks />
        [DefaultValue(typeof (byte), "0")]
        public byte mipmap_maxlevel
        {
            get { return mipmap_maxlevelField; }
            set { mipmap_maxlevelField = value; }
        }

        /// <remarks />
        [DefaultValue(typeof (float), "0")]
        public float mipmap_bias
        {
            get { return mipmap_biasField; }
            set { mipmap_biasField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class InputGlobal
    {
        private string semanticField;

        private string sourceField;

        /// <remarks />
        [XmlAttribute(DataType = "NMTOKEN")]
        public string semantic
        {
            get { return semanticField; }
            set { semanticField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_newparam_common
    {
        private fx_annotate_common[] annotateField;

        private string bool2Field;

        private string bool3Field;

        private string bool4Field;
        private bool boolField;
        private string enumField;

        private double float1x1Field;

        private string float1x2Field;

        private string float1x3Field;

        private string float1x4Field;
        private string float2Field;

        private string float2x1Field;

        private string float2x2Field;

        private string float2x3Field;

        private string float2x4Field;
        private string float3Field;

        private string float3x1Field;

        private string float3x2Field;

        private string float3x3Field;

        private string float3x4Field;
        private string float4Field;

        private string float4x1Field;

        private string float4x2Field;

        private string float4x3Field;

        private string float4x4Field;
        private double floatField;
        private string int2Field;

        private string int3Field;

        private string int4Field;
        private long intField;
        private fx_modifier_enum_common modifierField;

        private bool modifierFieldSpecified;

        private fx_sampler1D_common sampler1DField;

        private fx_sampler2D_common sampler2DField;

        private fx_sampler3D_common sampler3DField;

        private fx_samplerCUBE_common samplerCUBEField;

        private fx_samplerDEPTH_common samplerDEPTHField;
        private fx_samplerRECT_common samplerRECTField;
        private string semanticField;

        private string sidField;
        private fx_surface_common surfaceField;

        /// <remarks />
        [XmlElement("annotate")]
        public fx_annotate_common[] annotate
        {
            get { return annotateField; }
            set { annotateField = value; }
        }

        /// <remarks />
        [XmlElement(DataType = "NCName")]
        public string semantic
        {
            get { return semanticField; }
            set { semanticField = value; }
        }

        /// <remarks />
        public fx_modifier_enum_common modifier
        {
            get { return modifierField; }
            set { modifierField = value; }
        }

        /// <remarks />
        [XmlIgnore]
        public bool modifierSpecified
        {
            get { return modifierFieldSpecified; }
            set { modifierFieldSpecified = value; }
        }

        /// <remarks />
        public bool @bool
        {
            get { return boolField; }
            set { boolField = value; }
        }

        /// <remarks />
        public string bool2
        {
            get { return bool2Field; }
            set { bool2Field = value; }
        }

        /// <remarks />
        public string bool3
        {
            get { return bool3Field; }
            set { bool3Field = value; }
        }

        /// <remarks />
        public string bool4
        {
            get { return bool4Field; }
            set { bool4Field = value; }
        }

        /// <remarks />
        public long @int
        {
            get { return intField; }
            set { intField = value; }
        }

        /// <remarks />
        public string int2
        {
            get { return int2Field; }
            set { int2Field = value; }
        }

        /// <remarks />
        public string int3
        {
            get { return int3Field; }
            set { int3Field = value; }
        }

        /// <remarks />
        public string int4
        {
            get { return int4Field; }
            set { int4Field = value; }
        }

        /// <remarks />
        public double @float
        {
            get { return floatField; }
            set { floatField = value; }
        }

        /// <remarks />
        public string float2
        {
            get { return float2Field; }
            set { float2Field = value; }
        }

        /// <remarks />
        public string float3
        {
            get { return float3Field; }
            set { float3Field = value; }
        }

        /// <remarks />
        public string float4
        {
            get { return float4Field; }
            set { float4Field = value; }
        }

        /// <remarks />
        public double float1x1
        {
            get { return float1x1Field; }
            set { float1x1Field = value; }
        }

        /// <remarks />
        public string float1x2
        {
            get { return float1x2Field; }
            set { float1x2Field = value; }
        }

        /// <remarks />
        public string float1x3
        {
            get { return float1x3Field; }
            set { float1x3Field = value; }
        }

        /// <remarks />
        public string float1x4
        {
            get { return float1x4Field; }
            set { float1x4Field = value; }
        }

        /// <remarks />
        public string float2x1
        {
            get { return float2x1Field; }
            set { float2x1Field = value; }
        }

        /// <remarks />
        public string float2x2
        {
            get { return float2x2Field; }
            set { float2x2Field = value; }
        }

        /// <remarks />
        public string float2x3
        {
            get { return float2x3Field; }
            set { float2x3Field = value; }
        }

        /// <remarks />
        public string float2x4
        {
            get { return float2x4Field; }
            set { float2x4Field = value; }
        }

        /// <remarks />
        public string float3x1
        {
            get { return float3x1Field; }
            set { float3x1Field = value; }
        }

        /// <remarks />
        public string float3x2
        {
            get { return float3x2Field; }
            set { float3x2Field = value; }
        }

        /// <remarks />
        public string float3x3
        {
            get { return float3x3Field; }
            set { float3x3Field = value; }
        }

        /// <remarks />
        public string float3x4
        {
            get { return float3x4Field; }
            set { float3x4Field = value; }
        }

        /// <remarks />
        public string float4x1
        {
            get { return float4x1Field; }
            set { float4x1Field = value; }
        }

        /// <remarks />
        public string float4x2
        {
            get { return float4x2Field; }
            set { float4x2Field = value; }
        }

        /// <remarks />
        public string float4x3
        {
            get { return float4x3Field; }
            set { float4x3Field = value; }
        }

        /// <remarks />
        public string float4x4
        {
            get { return float4x4Field; }
            set { float4x4Field = value; }
        }

        /// <remarks />
        public fx_surface_common surface
        {
            get { return surfaceField; }
            set { surfaceField = value; }
        }

        /// <remarks />
        public fx_sampler1D_common sampler1D
        {
            get { return sampler1DField; }
            set { sampler1DField = value; }
        }

        /// <remarks />
        public fx_sampler2D_common sampler2D
        {
            get { return sampler2DField; }
            set { sampler2DField = value; }
        }

        /// <remarks />
        public fx_sampler3D_common sampler3D
        {
            get { return sampler3DField; }
            set { sampler3DField = value; }
        }

        /// <remarks />
        public fx_samplerCUBE_common samplerCUBE
        {
            get { return samplerCUBEField; }
            set { samplerCUBEField = value; }
        }

        /// <remarks />
        public fx_samplerRECT_common samplerRECT
        {
            get { return samplerRECTField; }
            set { samplerRECTField = value; }
        }

        /// <remarks />
        public fx_samplerDEPTH_common samplerDEPTH
        {
            get { return samplerDEPTHField; }
            set { samplerDEPTHField = value; }
        }

        /// <remarks />
        public string @enum
        {
            get { return enumField; }
            set { enumField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class fx_annotate_common
    {
        private string bool2Field;

        private string bool3Field;

        private string bool4Field;
        private bool boolField;

        private string float2Field;

        private string float2x2Field;
        private string float3Field;

        private string float3x3Field;
        private string float4Field;

        private string float4x4Field;
        private double floatField;
        private string int2Field;

        private string int3Field;

        private string int4Field;
        private long intField;

        private string nameField;
        private string stringField;

        /// <remarks />
        public bool @bool
        {
            get { return boolField; }
            set { boolField = value; }
        }

        /// <remarks />
        public string bool2
        {
            get { return bool2Field; }
            set { bool2Field = value; }
        }

        /// <remarks />
        public string bool3
        {
            get { return bool3Field; }
            set { bool3Field = value; }
        }

        /// <remarks />
        public string bool4
        {
            get { return bool4Field; }
            set { bool4Field = value; }
        }

        /// <remarks />
        public long @int
        {
            get { return intField; }
            set { intField = value; }
        }

        /// <remarks />
        public string int2
        {
            get { return int2Field; }
            set { int2Field = value; }
        }

        /// <remarks />
        public string int3
        {
            get { return int3Field; }
            set { int3Field = value; }
        }

        /// <remarks />
        public string int4
        {
            get { return int4Field; }
            set { int4Field = value; }
        }

        /// <remarks />
        public double @float
        {
            get { return floatField; }
            set { floatField = value; }
        }

        /// <remarks />
        public string float2
        {
            get { return float2Field; }
            set { float2Field = value; }
        }

        /// <remarks />
        public string float3
        {
            get { return float3Field; }
            set { float3Field = value; }
        }

        /// <remarks />
        public string float4
        {
            get { return float4Field; }
            set { float4Field = value; }
        }

        /// <remarks />
        public string float2x2
        {
            get { return float2x2Field; }
            set { float2x2Field = value; }
        }

        /// <remarks />
        public string float3x3
        {
            get { return float3x3Field; }
            set { float3x3Field = value; }
        }

        /// <remarks />
        public string float4x4
        {
            get { return float4x4Field; }
            set { float4x4Field = value; }
        }

        /// <remarks />
        public string @string
        {
            get { return stringField; }
            set { stringField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum fx_modifier_enum_common
    {
        /// <remarks />
        CONST,

        /// <remarks />
        UNIFORM,

        /// <remarks />
        VARYING,

        /// <remarks />
        STATIC,

        /// <remarks />
        VOLATILE,

        /// <remarks />
        EXTERN,

        /// <remarks />
        SHARED,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class InputLocalOffset
    {
        private ulong offsetField;

        private string semanticField;

        private ulong setField;

        private bool setFieldSpecified;
        private string sourceField;

        /// <remarks />
        [XmlAttribute]
        public ulong offset
        {
            get { return offsetField; }
            set { offsetField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NMTOKEN")]
        public string semantic
        {
            get { return semanticField; }
            set { semanticField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public string source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong set
        {
            get { return setField; }
            set { setField = value; }
        }

        /// <remarks />
        [XmlIgnore]
        public bool setSpecified
        {
            get { return setFieldSpecified; }
            set { setFieldSpecified = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class TargetableFloat
    {
        private string sidField;

        private double valueField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public double Value
        {
            get { return valueField; }
            set { valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class InputLocal
    {
        private string semanticField;

        private string sourceField;

        /// <remarks />
        [XmlAttribute(DataType = "NMTOKEN")]
        public string semantic
        {
            get { return semanticField; }
            set { semanticField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public string source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class instance_material
    {
        private instance_materialBind[] bindField;

        private instance_materialBind_vertex_input[] bind_vertex_inputField;

        private extra[] extraField;
        private string nameField;
        private string sidField;

        private string symbolField;

        private string targetField;

        /// <remarks />
        [XmlElement("bind")]
        public instance_materialBind[] bind
        {
            get { return bindField; }
            set { bindField = value; }
        }

        /// <remarks />
        [XmlElement("bind_vertex_input")]
        public instance_materialBind_vertex_input[] bind_vertex_input
        {
            get { return bind_vertex_inputField; }
            set { bind_vertex_inputField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string symbol
        {
            get { return symbolField; }
            set { symbolField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string target
        {
            get { return targetField; }
            set { targetField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class instance_materialBind
    {
        private string semanticField;

        private string targetField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string semantic
        {
            get { return semanticField; }
            set { semanticField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "token")]
        public string target
        {
            get { return targetField; }
            set { targetField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class instance_materialBind_vertex_input
    {
        private string input_semanticField;

        private ulong input_setField;

        private bool input_setFieldSpecified;
        private string semanticField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string semantic
        {
            get { return semanticField; }
            set { semanticField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string input_semantic
        {
            get { return input_semanticField; }
            set { input_semanticField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong input_set
        {
            get { return input_setField; }
            set { input_setField = value; }
        }

        /// <remarks />
        [XmlIgnore]
        public bool input_setSpecified
        {
            get { return input_setFieldSpecified; }
            set { input_setFieldSpecified = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class assetUnit
    {
        private double meterField;

        private string nameField;

        public assetUnit()
        {
            meterField = 1D;
            nameField = "meter";
        }

        /// <remarks />
        [XmlAttribute]
     //   [DefaultValue(1D)]
        public double meter
        {
            get { return meterField; }
            set { meterField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NMTOKEN")]
      //  [DefaultValue("meter")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum UpAxisType
    {
        /// <remarks />
        X_UP,

        /// <remarks />
        Y_UP,

        /// <remarks />
        Z_UP,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_animation_clips
    {
        private animation_clip[] animation_clipField;
        private asset assetField;

        private extra[] extraField;

        private string idField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("animation_clip")]
        public animation_clip[] animation_clip
        {
            get { return animation_clipField; }
            set { animation_clipField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class animation_clip
    {
        private asset assetField;
        private double endField;

        private bool endFieldSpecified;

        private extra[] extraField;

        private string idField;
        private InstanceWithExtra[] instance_animationField;

        private string nameField;

        private double startField;

        public animation_clip()
        {
            startField = 0D;
        }

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("instance_animation")]
        public InstanceWithExtra[] instance_animation
        {
            get { return instance_animationField; }
            set { instance_animationField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(0D)]
        public double start
        {
            get { return startField; }
            set { startField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public double end
        {
            get { return endField; }
            set { endField = value; }
        }

        /// <remarks />
        [XmlIgnore]
        public bool endSpecified
        {
            get { return endFieldSpecified; }
            set { endFieldSpecified = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot("instance_camera", Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class InstanceWithExtra
    {
        private extra[] extraField;

        private string nameField;
        private string sidField;
        private string urlField;

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string url
        {
            get { return urlField; }
            set { urlField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_animations
    {
        private animation[] animationField;
        private asset assetField;

        private extra[] extraField;

        private string idField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("animation")]
        public animation[] animation
        {
            get { return animationField; }
            set { animationField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class animation
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private object[] itemsField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("animation", typeof (animation))]
        [XmlElement("channel", typeof (channel))]
        [XmlElement("sampler", typeof (sampler))]
        [XmlElement("source", typeof (source))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class channel
    {
        private string sourceField;

        private string targetField;

        /// <remarks />
        [XmlAttribute]
        public string source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "token")]
        public string target
        {
            get { return targetField; }
            set { targetField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class sampler
    {
        private string idField;
        private InputLocal[] inputField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocal[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class source
    {
        private asset assetField;

        private string idField;
        private object itemField;

        private string nameField;
        private technique[] techniqueField;
        private sourceTechnique_common technique_commonField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("IDREF_array", typeof (IDREF_array))]
        [XmlElement("Name_array", typeof (Name_array))]
        [XmlElement("bool_array", typeof (bool_array))]
        [XmlElement("float_array", typeof (float_array))]
        [XmlElement("int_array", typeof (int_array))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }

        /// <remarks />
        public sourceTechnique_common technique_common
        {
            get { return technique_commonField; }
            set { technique_commonField = value; }
        }

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class IDREF_array
    {
        private ulong countField;
        private string idField;

        private string nameField;

        private string valueField;

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlText(DataType = "IDREFS")]
        public string Value
        {
            get { return valueField; }
            set { valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class Name_array
    {
        private ulong countField;
        private string idField;

        private string nameField;

        private string[] textField;

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
      //  [XmlElement("Name")]
        [XmlText]
        public string _Text_
        {
            get { return COLLADA.ConvertFromArray(Values); }

            set { Values = COLLADA.ConvertStringArray(value); }
        }

        [XmlIgnore]
        public string[] Values
        {
            get { return textField; }
            set { textField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class bool_array
    {
        private ulong countField;
        private string idField;

        private string nameField;

        private bool[] textField;

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlText]
        public string _Text_
        {
            get { return COLLADA.ConvertFromArray(Values); }

            set { Values = COLLADA.ConvertBoolArray(value); }
        }

        [XmlIgnore]
        public bool[] Values
        {
            get { return textField; }
            set { textField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    //[DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class float_array
    {
        private ulong countField;

        private short digitsField;
        private string idField;

        private short magnitudeField;
        private string nameField;

        private double[] textField;

        public float_array()
        {
            digitsField = ((6));
            magnitudeField = ((38));
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(typeof (short), "6")]
        public short digits
        {
            get { return digitsField; }
            set { digitsField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(typeof (short), "38")]
        public short magnitude
        {
            get { return magnitudeField; }
            set { magnitudeField = value; }
        }

        /// <remarks />
        [XmlText]
        public string _Text_
        {
            get { return COLLADA.ConvertFromArray(Values); }

            set { Values = COLLADA.ConvertDoubleArray(value); }
        }

        [XmlIgnore]
        public double[] Values
        {
            get { return textField; }
            set { textField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class int_array
    {
        private ulong countField;
        private string idField;

        private string maxInclusiveField;
        private string minInclusiveField;
        private string nameField;

        private int[] textField;

        public int_array()
        {
            minInclusiveField = "-2147483648";
            maxInclusiveField = "2147483647";
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "integer")]
        [DefaultValue("-2147483648")]
        public string minInclusive
        {
            get { return minInclusiveField; }
            set { minInclusiveField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "integer")]
        [DefaultValue("2147483647")]
        public string maxInclusive
        {
            get { return maxInclusiveField; }
            set { maxInclusiveField = value; }
        }

        /// <remarks />
        [XmlText]
        public string _Text_
        {
            get { return COLLADA.ConvertFromArray(Values); }

            set { Values = COLLADA.ConvertIntArray(value); }
        }

        [XmlIgnore]
        public int[] Values
        {
            get { return textField; }
            set { textField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class sourceTechnique_common
    {
        private accessor accessorField;

        /// <remarks />
        public accessor accessor
        {
            get { return accessorField; }
            set { accessorField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class accessor
    {
        private ulong countField;

        private ulong offsetField;
        private param[] paramField;

        private string sourceField;

        private ulong strideField;

        public accessor()
        {
            offsetField = ((ulong) (0m));
            strideField = ((ulong) (1m));
        }

        /// <remarks />
        [XmlElement("param")]
        public param[] param
        {
            get { return paramField; }
            set { paramField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(typeof (ulong), "0")]
        public ulong offset
        {
            get { return offsetField; }
            set { offsetField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(typeof (ulong), "1")]
        public ulong stride
        {
            get { return strideField; }
            set { strideField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class param
    {
        private string nameField;

        private string semanticField;
        private string sidField;

        private string typeField;

        private string valueField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NMTOKEN")]
        public string semantic
        {
            get { return semanticField; }
            set { semanticField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NMTOKEN")]
        public string type
        {
            get { return typeField; }
            set { typeField = value; }
        }

        /// <remarks />
        [XmlText]
        public string Value
        {
            get { return valueField; }
            set { valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_cameras
    {
        private asset assetField;

        private camera[] cameraField;

        private extra[] extraField;

        private string idField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("camera")]
        public camera[] camera
        {
            get { return cameraField; }
            set { cameraField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class camera
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private cameraImager imagerField;

        private string nameField;
        private cameraOptics opticsField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        public cameraOptics optics
        {
            get { return opticsField; }
            set { opticsField = value; }
        }

        /// <remarks />
        public cameraImager imager
        {
            get { return imagerField; }
            set { imagerField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class cameraOptics
    {
        private extra[] extraField;
        private technique[] techniqueField;
        private cameraOpticsTechnique_common technique_commonField;

        /// <remarks />
        public cameraOpticsTechnique_common technique_common
        {
            get { return technique_commonField; }
            set { technique_commonField = value; }
        }

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class cameraOpticsTechnique_common
    {
        private object itemField;

        /// <remarks />
        [XmlElement("orthographic", typeof (cameraOpticsTechnique_commonOrthographic))]
        [XmlElement("perspective", typeof (cameraOpticsTechnique_commonPerspective))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class cameraOpticsTechnique_commonOrthographic
    {
        private ItemsChoiceType[] itemsElementNameField;
        private TargetableFloat[] itemsField;

        private TargetableFloat zfarField;
        private TargetableFloat znearField;

        /// <remarks />
        [XmlElement("aspect_ratio", typeof (TargetableFloat))]
        [XmlElement("xmag", typeof (TargetableFloat))]
        [XmlElement("ymag", typeof (TargetableFloat))]
        [XmlChoiceIdentifier("ItemsElementName")]
        public TargetableFloat[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlElement("ItemsElementName")]
        [XmlIgnore]
        public ItemsChoiceType[] ItemsElementName
        {
            get { return itemsElementNameField; }
            set { itemsElementNameField = value; }
        }

        /// <remarks />
        public TargetableFloat znear
        {
            get { return znearField; }
            set { znearField = value; }
        }

        /// <remarks />
        public TargetableFloat zfar
        {
            get { return zfarField; }
            set { zfarField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IncludeInSchema = false)]
    public enum ItemsChoiceType
    {
        /// <remarks />
        aspect_ratio,

        /// <remarks />
        xmag,

        /// <remarks />
        ymag,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class cameraOpticsTechnique_commonPerspective
    {
        private ItemsChoiceType1[] itemsElementNameField;
        private TargetableFloat[] itemsField;

        private TargetableFloat zfarField;
        private TargetableFloat znearField;

        /// <remarks />
        [XmlElement("aspect_ratio", typeof (TargetableFloat))]
        [XmlElement("xfov", typeof (TargetableFloat))]
        [XmlElement("yfov", typeof (TargetableFloat))]
        [XmlChoiceIdentifier("ItemsElementName")]
        public TargetableFloat[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlElement("ItemsElementName")]
        [XmlIgnore]
        public ItemsChoiceType1[] ItemsElementName
        {
            get { return itemsElementNameField; }
            set { itemsElementNameField = value; }
        }

        /// <remarks />
        public TargetableFloat znear
        {
            get { return znearField; }
            set { znearField = value; }
        }

        /// <remarks />
        public TargetableFloat zfar
        {
            get { return zfarField; }
            set { zfarField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IncludeInSchema = false)]
    public enum ItemsChoiceType1
    {
        /// <remarks />
        aspect_ratio,

        /// <remarks />
        xfov,

        /// <remarks />
        yfov,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class cameraImager
    {
        private extra[] extraField;
        private technique[] techniqueField;

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_controllers
    {
        private asset assetField;

        private controller[] controllerField;

        private extra[] extraField;

        private string idField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("controller")]
        public controller[] controller
        {
            get { return controllerField; }
            set { controllerField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class controller
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private object itemField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("morph", typeof (morph))]
        [XmlElement("skin", typeof (skin))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class morph
    {
        private extra[] extraField;

        private MorphMethodType methodField;

        private string source1Field;
        private source[] sourceField;

        private morphTargets targetsField;

        public morph()
        {
            methodField = MorphMethodType.NORMALIZED;
        }

        /// <remarks />
        [XmlElement("source")]
        public source[] source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        public morphTargets targets
        {
            get { return targetsField; }
            set { targetsField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(MorphMethodType.NORMALIZED)]
        public MorphMethodType method
        {
            get { return methodField; }
            set { methodField = value; }
        }

        /// <remarks />
        [XmlAttribute("source", DataType = "anyURI")]
        public string source1
        {
            get { return source1Field; }
            set { source1Field = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class morphTargets
    {
        private extra[] extraField;
        private InputLocal[] inputField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocal[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum MorphMethodType
    {
        /// <remarks />
        NORMALIZED,

        /// <remarks />
        RELATIVE,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class skin
    {
        private string bind_shape_matrixField;

        private extra[] extraField;
        private skinJoints jointsField;

        private string source1Field;
        private source[] sourceField;
        private skinVertex_weights vertex_weightsField;

        /// <remarks />
        public string bind_shape_matrix
        {
            get { return bind_shape_matrixField; }
            set { bind_shape_matrixField = value; }
        }

        /// <remarks />
        [XmlElement("source")]
        public source[] source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        public skinJoints joints
        {
            get { return jointsField; }
            set { jointsField = value; }
        }

        /// <remarks />
        public skinVertex_weights vertex_weights
        {
            get { return vertex_weightsField; }
            set { vertex_weightsField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute("source", DataType = "anyURI")]
        public string source1
        {
            get { return source1Field; }
            set { source1Field = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class skinJoints
    {
        private extra[] extraField;
        private InputLocal[] inputField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocal[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class skinVertex_weights
    {
        private ulong countField;
        private extra[] extraField;
        private InputLocalOffset[] inputField;

        private string vField;
        private string vcountField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocalOffset[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        public string vcount
        {
            get { return vcountField; }
            set { vcountField = value; }
        }

        /// <remarks />
        public string v
        {
            get { return vField; }
            set { vField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_effects
    {
        private asset assetField;

        private effect[] effectField;

        private extra[] extraField;

        private string idField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("effect")]
        public effect[] effect
        {
            get { return effectField; }
            set { effectField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class effect
    {
        private fx_annotate_common[] annotateField;
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private image[] imageField;
        private effectFx_profile_abstractProfile_COMMON[] itemsField;

        private string nameField;
        private fx_newparam_common[] newparamField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("annotate")]
        public fx_annotate_common[] annotate
        {
            get { return annotateField; }
            set { annotateField = value; }
        }

        /// <remarks />
        [XmlElement("image")]
        public image[] image
        {
            get { return imageField; }
            set { imageField = value; }
        }

        /// <remarks />
        [XmlElement("newparam")]
        public fx_newparam_common[] newparam
        {
            get { return newparamField; }
            set { newparamField = value; }
        }

        /// <remarks />
        [XmlElement("profile_COMMON")]
        public effectFx_profile_abstractProfile_COMMON[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class image
    {
        private asset assetField;
        private ulong depthField;

        private extra[] extraField;

        private string formatField;

        private ulong heightField;

        private bool heightFieldSpecified;
        private string idField;
        private object itemField;
        private string nameField;

        private ulong widthField;

        private bool widthFieldSpecified;

        public image()
        {
            depthField = ((ulong) (1m));
        }

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("data", typeof (byte[]), DataType = "hexBinary")]
        [XmlElement("init_from", typeof (string), DataType = "anyURI")]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "token")]
        public string format
        {
            get { return formatField; }
            set { formatField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong height
        {
            get { return heightField; }
            set { heightField = value; }
        }

        /// <remarks />
        [XmlIgnore]
        public bool heightSpecified
        {
            get { return heightFieldSpecified; }
            set { heightFieldSpecified = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong width
        {
            get { return widthField; }
            set { widthField = value; }
        }

        /// <remarks />
        [XmlIgnore]
        public bool widthSpecified
        {
            get { return widthFieldSpecified; }
            set { widthFieldSpecified = value; }
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(typeof (ulong), "1")]
        public ulong depth
        {
            get { return depthField; }
            set { depthField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot("profile_COMMON", Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class effectFx_profile_abstractProfile_COMMON
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private object[] itemsField;

        private effectFx_profile_abstractProfile_COMMONTechnique techniqueField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("image", typeof (image))]
        [XmlElement("newparam", typeof (common_newparam_type))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        public effectFx_profile_abstractProfile_COMMONTechnique technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class effectFx_profile_abstractProfile_COMMONTechnique
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private object itemField;
        private object[] itemsField;

        private string sidField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("image", typeof (image))]
        [XmlElement("newparam", typeof (common_newparam_type))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlElement("blinn", typeof (effectFx_profile_abstractProfile_COMMONTechniqueBlinn))]
        [XmlElement("constant", typeof (effectFx_profile_abstractProfile_COMMONTechniqueConstant))]
        [XmlElement("lambert", typeof (effectFx_profile_abstractProfile_COMMONTechniqueLambert))]
        [XmlElement("phong", typeof (effectFx_profile_abstractProfile_COMMONTechniquePhong))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class effectFx_profile_abstractProfile_COMMONTechniqueBlinn
    {
        private common_color_or_texture_type ambientField;

        private common_color_or_texture_type diffuseField;
        private common_color_or_texture_type emissionField;
        private common_float_or_param_type index_of_refractionField;

        private common_color_or_texture_type reflectiveField;

        private common_float_or_param_type reflectivityField;
        private common_float_or_param_type shininessField;
        private common_color_or_texture_type specularField;

        private common_float_or_param_type transparencyField;
        private common_transparent_type transparentField;

        /// <remarks />
        public common_color_or_texture_type emission
        {
            get { return emissionField; }
            set { emissionField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type ambient
        {
            get { return ambientField; }
            set { ambientField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type diffuse
        {
            get { return diffuseField; }
            set { diffuseField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type specular
        {
            get { return specularField; }
            set { specularField = value; }
        }

        /// <remarks />
        public common_float_or_param_type shininess
        {
            get { return shininessField; }
            set { shininessField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type reflective
        {
            get { return reflectiveField; }
            set { reflectiveField = value; }
        }

        /// <remarks />
        public common_float_or_param_type reflectivity
        {
            get { return reflectivityField; }
            set { reflectivityField = value; }
        }

        /// <remarks />
        public common_transparent_type transparent
        {
            get { return transparentField; }
            set { transparentField = value; }
        }

        /// <remarks />
        public common_float_or_param_type transparency
        {
            get { return transparencyField; }
            set { transparencyField = value; }
        }

        /// <remarks />
        public common_float_or_param_type index_of_refraction
        {
            get { return index_of_refractionField; }
            set { index_of_refractionField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class effectFx_profile_abstractProfile_COMMONTechniqueConstant
    {
        private common_color_or_texture_type emissionField;
        private common_float_or_param_type index_of_refractionField;

        private common_color_or_texture_type reflectiveField;

        private common_float_or_param_type reflectivityField;

        private common_float_or_param_type transparencyField;
        private common_transparent_type transparentField;

        /// <remarks />
        public common_color_or_texture_type emission
        {
            get { return emissionField; }
            set { emissionField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type reflective
        {
            get { return reflectiveField; }
            set { reflectiveField = value; }
        }

        /// <remarks />
        public common_float_or_param_type reflectivity
        {
            get { return reflectivityField; }
            set { reflectivityField = value; }
        }

        /// <remarks />
        public common_transparent_type transparent
        {
            get { return transparentField; }
            set { transparentField = value; }
        }

        /// <remarks />
        public common_float_or_param_type transparency
        {
            get { return transparencyField; }
            set { transparencyField = value; }
        }

        /// <remarks />
        public common_float_or_param_type index_of_refraction
        {
            get { return index_of_refractionField; }
            set { index_of_refractionField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class effectFx_profile_abstractProfile_COMMONTechniqueLambert
    {
        private common_color_or_texture_type ambientField;

        private common_color_or_texture_type diffuseField;
        private common_color_or_texture_type emissionField;
        private common_float_or_param_type index_of_refractionField;

        private common_color_or_texture_type reflectiveField;

        private common_float_or_param_type reflectivityField;

        private common_float_or_param_type transparencyField;
        private common_transparent_type transparentField;

        /// <remarks />
        public common_color_or_texture_type emission
        {
            get { return emissionField; }
            set { emissionField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type ambient
        {
            get { return ambientField; }
            set { ambientField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type diffuse
        {
            get { return diffuseField; }
            set { diffuseField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type reflective
        {
            get { return reflectiveField; }
            set { reflectiveField = value; }
        }

        /// <remarks />
        public common_float_or_param_type reflectivity
        {
            get { return reflectivityField; }
            set { reflectivityField = value; }
        }

        /// <remarks />
        public common_transparent_type transparent
        {
            get { return transparentField; }
            set { transparentField = value; }
        }

        /// <remarks />
        public common_float_or_param_type transparency
        {
            get { return transparencyField; }
            set { transparencyField = value; }
        }

        /// <remarks />
        public common_float_or_param_type index_of_refraction
        {
            get { return index_of_refractionField; }
            set { index_of_refractionField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class effectFx_profile_abstractProfile_COMMONTechniquePhong
    {
        private common_color_or_texture_type ambientField;

        private common_color_or_texture_type diffuseField;
        private common_color_or_texture_type emissionField;
        private common_float_or_param_type index_of_refractionField;

        private common_color_or_texture_type reflectiveField;

        private common_float_or_param_type reflectivityField;
        private common_float_or_param_type shininessField;
        private common_color_or_texture_type specularField;

        private common_float_or_param_type transparencyField;
        private common_transparent_type transparentField;

        /// <remarks />
        public common_color_or_texture_type emission
        {
            get { return emissionField; }
            set { emissionField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type ambient
        {
            get { return ambientField; }
            set { ambientField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type diffuse
        {
            get { return diffuseField; }
            set { diffuseField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type specular
        {
            get { return specularField; }
            set { specularField = value; }
        }

        /// <remarks />
        public common_float_or_param_type shininess
        {
            get { return shininessField; }
            set { shininessField = value; }
        }

        /// <remarks />
        public common_color_or_texture_type reflective
        {
            get { return reflectiveField; }
            set { reflectiveField = value; }
        }

        /// <remarks />
        public common_float_or_param_type reflectivity
        {
            get { return reflectivityField; }
            set { reflectivityField = value; }
        }

        /// <remarks />
        public common_transparent_type transparent
        {
            get { return transparentField; }
            set { transparentField = value; }
        }

        /// <remarks />
        public common_float_or_param_type transparency
        {
            get { return transparencyField; }
            set { transparencyField = value; }
        }

        /// <remarks />
        public common_float_or_param_type index_of_refraction
        {
            get { return index_of_refractionField; }
            set { index_of_refractionField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_force_fields
    {
        private asset assetField;

        private extra[] extraField;
        private force_field[] force_fieldField;

        private string idField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("force_field")]
        public force_field[] force_field
        {
            get { return force_fieldField; }
            set { force_fieldField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class force_field
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;

        private string nameField;
        private technique[] techniqueField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_geometries
    {
        private asset assetField;

        private extra[] extraField;
        private geometry[] geometryField;

        private string idField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("geometry")]
        public geometry[] geometry
        {
            get { return geometryField; }
            set { geometryField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class geometry
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private object itemField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("convex_mesh", typeof (convex_mesh))]
        [XmlElement("mesh", typeof (mesh))]
        [XmlElement("spline", typeof (spline))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class convex_mesh
    {
        private string convex_hull_ofField;
        private extra[] extraField;
        private object[] itemsField;
        private source[] sourceField;

        private vertices verticesField;

        /// <remarks />
        [XmlElement("source")]
        public source[] source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        public vertices vertices
        {
            get { return verticesField; }
            set { verticesField = value; }
        }

        /// <remarks />
        [XmlElement("lines", typeof (lines))]
        [XmlElement("linestrips", typeof (linestrips))]
        [XmlElement("polygons", typeof (polygons))]
        [XmlElement("polylist", typeof (polylist))]
        [XmlElement("triangles", typeof (triangles))]
        [XmlElement("trifans", typeof (trifans))]
        [XmlElement("tristrips", typeof (tristrips))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string convex_hull_of
        {
            get { return convex_hull_ofField; }
            set { convex_hull_ofField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class vertices
    {
        private extra[] extraField;

        private string idField;
        private InputLocal[] inputField;

        private string nameField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocal[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class lines
    {
        private ulong countField;
        private extra[] extraField;
        private InputLocalOffset[] inputField;

        private string materialField;
        private string nameField;
        private string pField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocalOffset[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        public string p
        {
            get { return pField; }
            set { pField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string material
        {
            get { return materialField; }
            set { materialField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class linestrips
    {
        private ulong countField;
        private extra[] extraField;
        private InputLocalOffset[] inputField;

        private string materialField;
        private string nameField;
        private string[] pField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocalOffset[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        [XmlElement("p")]
        public string[] p
        {
            get { return pField; }
            set { pField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string material
        {
            get { return materialField; }
            set { materialField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class polygons
    {
        private ulong countField;
        private extra[] extraField;
        private InputLocalOffset[] inputField;

        private object[] itemsField;

        private string materialField;
        private string nameField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocalOffset[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        [XmlElement("p", typeof (string))]
        [XmlElement("ph", typeof (polygonsPH))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string material
        {
            get { return materialField; }
            set { materialField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class polygonsPH
    {
        private string[] hField;
        private string pField;

        /// <remarks />
        public string p
        {
            get { return pField; }
            set { pField = value; }
        }

        /// <remarks />
        [XmlElement("h")]
        public string[] h
        {
            get { return hField; }
            set { hField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class polylist
    {
        private ulong countField;
        private extra[] extraField;
        private InputLocalOffset[] inputField;

        private string materialField;
        private string nameField;
        private string pField;
        private string vcountField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocalOffset[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        public string vcount
        {
            get { return vcountField; }
            set { vcountField = value; }
        }

        /// <remarks />
        public string p
        {
            get { return pField; }
            set { pField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string material
        {
            get { return materialField; }
            set { materialField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class triangles
    {
        private ulong countField;
        private extra[] extraField;
        private InputLocalOffset[] inputField;

        private string materialField;
        private string nameField;
        private string pField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocalOffset[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        public string p
        {
            get { return pField; }
            set { pField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string material
        {
            get { return materialField; }
            set { materialField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class trifans
    {
        private ulong countField;
        private extra[] extraField;
        private InputLocalOffset[] inputField;

        private string materialField;
        private string nameField;
        private string[] pField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocalOffset[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        [XmlElement("p")]
        public string[] p
        {
            get { return pField; }
            set { pField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string material
        {
            get { return materialField; }
            set { materialField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class tristrips
    {
        private ulong countField;
        private extra[] extraField;
        private InputLocalOffset[] inputField;

        private string materialField;
        private string nameField;
        private string[] pField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocalOffset[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        [XmlElement("p")]
        public string[] p
        {
            get { return pField; }
            set { pField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        public ulong count
        {
            get { return countField; }
            set { countField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string material
        {
            get { return materialField; }
            set { materialField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class mesh
    {
        private extra[] extraField;
        private object[] itemsField;
        private source[] sourceField;

        private vertices verticesField;

        /// <remarks />
        [XmlElement("source")]
        public source[] source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        public vertices vertices
        {
            get { return verticesField; }
            set { verticesField = value; }
        }

        /// <remarks />
        [XmlElement("lines", typeof (lines))]
        [XmlElement("linestrips", typeof (linestrips))]
        [XmlElement("polygons", typeof (polygons))]
        [XmlElement("polylist", typeof (polylist))]
        [XmlElement("triangles", typeof (triangles))]
        [XmlElement("trifans", typeof (trifans))]
        [XmlElement("tristrips", typeof (tristrips))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class spline
    {
        private bool closedField;
        private splineControl_vertices control_verticesField;

        private extra[] extraField;
        private source[] sourceField;

        public spline()
        {
            closedField = false;
        }

        /// <remarks />
        [XmlElement("source")]
        public source[] source
        {
            get { return sourceField; }
            set { sourceField = value; }
        }

        /// <remarks />
        public splineControl_vertices control_vertices
        {
            get { return control_verticesField; }
            set { control_verticesField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(false)]
        public bool closed
        {
            get { return closedField; }
            set { closedField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class splineControl_vertices
    {
        private extra[] extraField;
        private InputLocal[] inputField;

        /// <remarks />
        [XmlElement("input")]
        public InputLocal[] input
        {
            get { return inputField; }
            set { inputField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_images
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private image[] imageField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("image")]
        public image[] image
        {
            get { return imageField; }
            set { imageField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_lights
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private light[] lightField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("light")]
        public light[] light
        {
            get { return lightField; }
            set { lightField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class light
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;

        private string nameField;
        private technique[] techniqueField;
        private lightTechnique_common technique_commonField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        public lightTechnique_common technique_common
        {
            get { return technique_commonField; }
            set { technique_commonField = value; }
        }

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class lightTechnique_common
    {
        private object itemField;

        /// <remarks />
        [XmlElement("ambient", typeof (lightTechnique_commonAmbient))]
        [XmlElement("directional", typeof (lightTechnique_commonDirectional))]
        [XmlElement("point", typeof (lightTechnique_commonPoint))]
        [XmlElement("spot", typeof (lightTechnique_commonSpot))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class lightTechnique_commonAmbient
    {
        private TargetableFloat3 colorField;

        /// <remarks />
        public TargetableFloat3 color
        {
            get { return colorField; }
            set { colorField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot("scale", Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class TargetableFloat3
    {
        private string sidField;

        private double[] textField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public string _Text_
        {
            get { return COLLADA.ConvertFromArray(Values); }

            set { Values = COLLADA.ConvertDoubleArray(value); }
        }

        [XmlIgnore]
        public double[] Values
        {
            get { return textField; }
            set { textField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class lightTechnique_commonDirectional
    {
        private TargetableFloat3 colorField;

        /// <remarks />
        public TargetableFloat3 color
        {
            get { return colorField; }
            set { colorField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class lightTechnique_commonPoint
    {
        private TargetableFloat3 colorField;

        private TargetableFloat constant_attenuationField;

        private TargetableFloat linear_attenuationField;

        private TargetableFloat quadratic_attenuationField;

        /// <remarks />
        public TargetableFloat3 color
        {
            get { return colorField; }
            set { colorField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='1.0' attribute.
        public TargetableFloat constant_attenuation
        {
            get { return constant_attenuationField; }
            set { constant_attenuationField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0' attribute.
        public TargetableFloat linear_attenuation
        {
            get { return linear_attenuationField; }
            set { linear_attenuationField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0' attribute.
        public TargetableFloat quadratic_attenuation
        {
            get { return quadratic_attenuationField; }
            set { quadratic_attenuationField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class lightTechnique_commonSpot
    {
        private TargetableFloat3 colorField;

        private TargetableFloat constant_attenuationField;

        private TargetableFloat falloff_angleField;

        private TargetableFloat falloff_exponentField;
        private TargetableFloat linear_attenuationField;

        private TargetableFloat quadratic_attenuationField;

        /// <remarks />
        public TargetableFloat3 color
        {
            get { return colorField; }
            set { colorField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='1.0' attribute.
        public TargetableFloat constant_attenuation
        {
            get { return constant_attenuationField; }
            set { constant_attenuationField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0' attribute.
        public TargetableFloat linear_attenuation
        {
            get { return linear_attenuationField; }
            set { linear_attenuationField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0' attribute.
        public TargetableFloat quadratic_attenuation
        {
            get { return quadratic_attenuationField; }
            set { quadratic_attenuationField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='180.0' attribute.
        public TargetableFloat falloff_angle
        {
            get { return falloff_angleField; }
            set { falloff_angleField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0' attribute.
        public TargetableFloat falloff_exponent
        {
            get { return falloff_exponentField; }
            set { falloff_exponentField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_materials
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private material[] materialField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("material")]
        public material[] material
        {
            get { return materialField; }
            set { materialField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class material
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private instance_effect instance_effectField;

        private string nameField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        public instance_effect instance_effect
        {
            get { return instance_effectField; }
            set { instance_effectField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class instance_effect
    {
        private extra[] extraField;

        private string nameField;
        private instance_effectSetparam[] setparamField;
        private string sidField;
        private instance_effectTechnique_hint[] technique_hintField;
        private string urlField;

        /// <remarks />
        [XmlElement("technique_hint")]
        public instance_effectTechnique_hint[] technique_hint
        {
            get { return technique_hintField; }
            set { technique_hintField = value; }
        }

        /// <remarks />
        [XmlElement("setparam")]
        public instance_effectSetparam[] setparam
        {
            get { return setparamField; }
            set { setparamField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string url
        {
            get { return urlField; }
            set { urlField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class instance_effectTechnique_hint
    {
        private string platformField;

        private string profileField;

        private string refField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string platform
        {
            get { return platformField; }
            set { platformField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string profile
        {
            get { return profileField; }
            set { profileField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string @ref
        {
            get { return refField; }
            set { refField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class instance_effectSetparam
    {
        private string bool2Field;

        private string bool3Field;

        private string bool4Field;
        private bool boolField;
        private string enumField;

        private double float1x1Field;

        private string float1x2Field;

        private string float1x3Field;

        private string float1x4Field;
        private string float2Field;

        private string float2x1Field;

        private string float2x2Field;

        private string float2x3Field;

        private string float2x4Field;
        private string float3Field;

        private string float3x1Field;

        private string float3x2Field;

        private string float3x3Field;

        private string float3x4Field;
        private string float4Field;

        private string float4x1Field;

        private string float4x2Field;

        private string float4x3Field;

        private string float4x4Field;
        private double floatField;
        private string int2Field;

        private string int3Field;

        private string int4Field;
        private long intField;
        private string refField;

        private fx_sampler1D_common sampler1DField;

        private fx_sampler2D_common sampler2DField;

        private fx_sampler3D_common sampler3DField;

        private fx_samplerCUBE_common samplerCUBEField;

        private fx_samplerDEPTH_common samplerDEPTHField;
        private fx_samplerRECT_common samplerRECTField;
        private fx_surface_common surfaceField;

        /// <remarks />
        public bool @bool
        {
            get { return boolField; }
            set { boolField = value; }
        }

        /// <remarks />
        public string bool2
        {
            get { return bool2Field; }
            set { bool2Field = value; }
        }

        /// <remarks />
        public string bool3
        {
            get { return bool3Field; }
            set { bool3Field = value; }
        }

        /// <remarks />
        public string bool4
        {
            get { return bool4Field; }
            set { bool4Field = value; }
        }

        /// <remarks />
        public long @int
        {
            get { return intField; }
            set { intField = value; }
        }

        /// <remarks />
        public string int2
        {
            get { return int2Field; }
            set { int2Field = value; }
        }

        /// <remarks />
        public string int3
        {
            get { return int3Field; }
            set { int3Field = value; }
        }

        /// <remarks />
        public string int4
        {
            get { return int4Field; }
            set { int4Field = value; }
        }

        /// <remarks />
        public double @float
        {
            get { return floatField; }
            set { floatField = value; }
        }

        /// <remarks />
        public string float2
        {
            get { return float2Field; }
            set { float2Field = value; }
        }

        /// <remarks />
        public string float3
        {
            get { return float3Field; }
            set { float3Field = value; }
        }

        /// <remarks />
        public string float4
        {
            get { return float4Field; }
            set { float4Field = value; }
        }

        /// <remarks />
        public double float1x1
        {
            get { return float1x1Field; }
            set { float1x1Field = value; }
        }

        /// <remarks />
        public string float1x2
        {
            get { return float1x2Field; }
            set { float1x2Field = value; }
        }

        /// <remarks />
        public string float1x3
        {
            get { return float1x3Field; }
            set { float1x3Field = value; }
        }

        /// <remarks />
        public string float1x4
        {
            get { return float1x4Field; }
            set { float1x4Field = value; }
        }

        /// <remarks />
        public string float2x1
        {
            get { return float2x1Field; }
            set { float2x1Field = value; }
        }

        /// <remarks />
        public string float2x2
        {
            get { return float2x2Field; }
            set { float2x2Field = value; }
        }

        /// <remarks />
        public string float2x3
        {
            get { return float2x3Field; }
            set { float2x3Field = value; }
        }

        /// <remarks />
        public string float2x4
        {
            get { return float2x4Field; }
            set { float2x4Field = value; }
        }

        /// <remarks />
        public string float3x1
        {
            get { return float3x1Field; }
            set { float3x1Field = value; }
        }

        /// <remarks />
        public string float3x2
        {
            get { return float3x2Field; }
            set { float3x2Field = value; }
        }

        /// <remarks />
        public string float3x3
        {
            get { return float3x3Field; }
            set { float3x3Field = value; }
        }

        /// <remarks />
        public string float3x4
        {
            get { return float3x4Field; }
            set { float3x4Field = value; }
        }

        /// <remarks />
        public string float4x1
        {
            get { return float4x1Field; }
            set { float4x1Field = value; }
        }

        /// <remarks />
        public string float4x2
        {
            get { return float4x2Field; }
            set { float4x2Field = value; }
        }

        /// <remarks />
        public string float4x3
        {
            get { return float4x3Field; }
            set { float4x3Field = value; }
        }

        /// <remarks />
        public string float4x4
        {
            get { return float4x4Field; }
            set { float4x4Field = value; }
        }

        /// <remarks />
        public fx_surface_common surface
        {
            get { return surfaceField; }
            set { surfaceField = value; }
        }

        /// <remarks />
        public fx_sampler1D_common sampler1D
        {
            get { return sampler1DField; }
            set { sampler1DField = value; }
        }

        /// <remarks />
        public fx_sampler2D_common sampler2D
        {
            get { return sampler2DField; }
            set { sampler2DField = value; }
        }

        /// <remarks />
        public fx_sampler3D_common sampler3D
        {
            get { return sampler3DField; }
            set { sampler3DField = value; }
        }

        /// <remarks />
        public fx_samplerCUBE_common samplerCUBE
        {
            get { return samplerCUBEField; }
            set { samplerCUBEField = value; }
        }

        /// <remarks />
        public fx_samplerRECT_common samplerRECT
        {
            get { return samplerRECTField; }
            set { samplerRECTField = value; }
        }

        /// <remarks />
        public fx_samplerDEPTH_common samplerDEPTH
        {
            get { return samplerDEPTHField; }
            set { samplerDEPTHField = value; }
        }

        /// <remarks />
        public string @enum
        {
            get { return enumField; }
            set { enumField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "token")]
        public string @ref
        {
            get { return refField; }
            set { refField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_nodes
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;

        private string nameField;
        private node[] nodeField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("node")]
        public node[] node
        {
            get { return nodeField; }
            set { nodeField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class node
    {
        private asset assetField;
        private extra[] extraField;

        private string idField;

        private InstanceWithExtra[] instance_cameraField;

        private instance_controller[] instance_controllerField;

        private instance_geometry[] instance_geometryField;

        private InstanceWithExtra[] instance_lightField;

        private InstanceWithExtra[] instance_nodeField;
        private ItemsChoiceType2[] itemsElementNameField;
        private object[] itemsField;
        private string[] layerField;

        private string nameField;
        private node[] node1Field;

        private string sidField;

        private NodeType typeField;

        public node()
        {
            typeField = NodeType.NODE;
        }

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("lookat", typeof (lookat))]
        [XmlElement("matrix", typeof (matrix))]
        [XmlElement("rotate", typeof (rotate))]
        [XmlElement("scale", typeof (TargetableFloat3))]
        [XmlElement("skew", typeof (skew))]
        [XmlElement("translate", typeof (TargetableFloat3))]
        [XmlChoiceIdentifier("ItemsElementName")]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlElement("ItemsElementName")]
        [XmlIgnore]
        public ItemsChoiceType2[] ItemsElementName
        {
            get { return itemsElementNameField; }
            set { itemsElementNameField = value; }
        }

        /// <remarks />
        [XmlElement("instance_camera")]
        public InstanceWithExtra[] instance_camera
        {
            get { return instance_cameraField; }
            set { instance_cameraField = value; }
        }

        /// <remarks />
        [XmlElement("instance_controller")]
        public instance_controller[] instance_controller
        {
            get { return instance_controllerField; }
            set { instance_controllerField = value; }
        }

        /// <remarks />
        [XmlElement("instance_geometry")]
        public instance_geometry[] instance_geometry
        {
            get { return instance_geometryField; }
            set { instance_geometryField = value; }
        }

        /// <remarks />
        [XmlElement("instance_light")]
        public InstanceWithExtra[] instance_light
        {
            get { return instance_lightField; }
            set { instance_lightField = value; }
        }

        /// <remarks />
        [XmlElement("instance_node")]
        public InstanceWithExtra[] instance_node
        {
            get { return instance_nodeField; }
            set { instance_nodeField = value; }
        }

        /// <remarks />
        [XmlElement("node")]
        public node[] node1
        {
            get { return node1Field; }
            set { node1Field = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute]
        [DefaultValue(NodeType.NODE)]
        public NodeType type
        {
            get { return typeField; }
            set { typeField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "Name")]
        public string[] layer
        {
            get { return layerField; }
            set { layerField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class lookat
    {
        private string sidField;

        private double[] textField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public string _Text_
        {
            get { return COLLADA.ConvertFromArray(Values); }

            set { Values = COLLADA.ConvertDoubleArray(value); }
        }

        [XmlIgnore]
        public double[] Values
        {
            get { return textField; }
            set { textField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class matrix
    {
        private string sidField;

        private double[] textField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public string _Text_
        {
            get { return COLLADA.ConvertFromArray(Values); }

            set { Values = COLLADA.ConvertDoubleArray(value); }
        }

        [XmlIgnore]
        public double[] Values
        {
            get { return textField; }
            set { textField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class rotate
    {
        private string sidField;

        private double[] textField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public string _Text_
        {
            get { return COLLADA.ConvertFromArray(Values); }

            set { Values = COLLADA.ConvertDoubleArray(value); }
        }

        [XmlIgnore]
        public double[] Values
        {
            get { return textField; }
            set { textField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class skew
    {
        private string sidField;

        private double[] textField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public string _Text_
        {
            get { return COLLADA.ConvertFromArray(Values); }

            set { Values = COLLADA.ConvertDoubleArray(value); }
        }

        [XmlIgnore]
        public double[] Values
        {
            get { return textField; }
            set { textField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IncludeInSchema = false)]
    public enum ItemsChoiceType2
    {
        /// <remarks />
        lookat,

        /// <remarks />
        matrix,

        /// <remarks />
        rotate,

        /// <remarks />
        scale,

        /// <remarks />
        skew,

        /// <remarks />
        translate,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class instance_controller
    {
        private bind_material bind_materialField;

        private extra[] extraField;

        private string nameField;
        private string sidField;
        private string[] skeletonField;
        private string urlField;

        /// <remarks />
        [XmlElement("skeleton", DataType = "anyURI")]
        public string[] skeleton
        {
            get { return skeletonField; }
            set { skeletonField = value; }
        }

        /// <remarks />
        public bind_material bind_material
        {
            get { return bind_materialField; }
            set { bind_materialField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string url
        {
            get { return urlField; }
            set { urlField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class bind_material
    {
        private extra[] extraField;
        private param[] paramField;

        private technique[] techniqueField;
        private instance_material[] technique_commonField;

        /// <remarks />
        [XmlElement("param")]
        public param[] param
        {
            get { return paramField; }
            set { paramField = value; }
        }

        /// <remarks />
        [XmlArrayItem("instance_material", IsNullable = false)]
        public instance_material[] technique_common
        {
            get { return technique_commonField; }
            set { technique_commonField = value; }
        }

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class instance_geometry
    {
        private bind_material bind_materialField;

        private extra[] extraField;

        private string nameField;
        private string sidField;
        private string urlField;

        /// <remarks />
        public bind_material bind_material
        {
            get { return bind_materialField; }
            set { bind_materialField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string url
        {
            get { return urlField; }
            set { urlField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum NodeType
    {
        /// <remarks />
        JOINT,

        /// <remarks />
        NODE,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_physics_materials
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;

        private string nameField;
        private physics_material[] physics_materialField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("physics_material")]
        public physics_material[] physics_material
        {
            get { return physics_materialField; }
            set { physics_materialField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class physics_material
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;

        private string nameField;
        private technique[] techniqueField;
        private physics_materialTechnique_common technique_commonField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        public physics_materialTechnique_common technique_common
        {
            get { return technique_commonField; }
            set { technique_commonField = value; }
        }

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class physics_materialTechnique_common
    {
        private TargetableFloat dynamic_frictionField;

        private TargetableFloat restitutionField;

        private TargetableFloat static_frictionField;

        /// <remarks />
        public TargetableFloat dynamic_friction
        {
            get { return dynamic_frictionField; }
            set { dynamic_frictionField = value; }
        }

        /// <remarks />
        public TargetableFloat restitution
        {
            get { return restitutionField; }
            set { restitutionField = value; }
        }

        /// <remarks />
        public TargetableFloat static_friction
        {
            get { return static_frictionField; }
            set { static_frictionField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_physics_models
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;

        private string nameField;
        private physics_model[] physics_modelField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("physics_model")]
        public physics_model[] physics_model
        {
            get { return physics_modelField; }
            set { physics_modelField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class physics_model
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private instance_physics_model[] instance_physics_modelField;

        private string nameField;
        private rigid_body[] rigid_bodyField;

        private rigid_constraint[] rigid_constraintField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("rigid_body")]
        public rigid_body[] rigid_body
        {
            get { return rigid_bodyField; }
            set { rigid_bodyField = value; }
        }

        /// <remarks />
        [XmlElement("rigid_constraint")]
        public rigid_constraint[] rigid_constraint
        {
            get { return rigid_constraintField; }
            set { rigid_constraintField = value; }
        }

        /// <remarks />
        [XmlElement("instance_physics_model")]
        public instance_physics_model[] instance_physics_model
        {
            get { return instance_physics_modelField; }
            set { instance_physics_modelField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class rigid_body
    {
        private extra[] extraField;

        private string nameField;
        private string sidField;
        private technique[] techniqueField;
        private rigid_bodyTechnique_common technique_commonField;

        /// <remarks />
        public rigid_bodyTechnique_common technique_common
        {
            get { return technique_commonField; }
            set { technique_commonField = value; }
        }

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_bodyTechnique_common
    {
        private rigid_bodyTechnique_commonDynamic dynamicField;

        private TargetableFloat3 inertiaField;

        private object itemField;
        private TargetableFloat massField;

        private object[] mass_frameField;

        private rigid_bodyTechnique_commonShape[] shapeField;

        /// <remarks />
        public rigid_bodyTechnique_commonDynamic dynamic
        {
            get { return dynamicField; }
            set { dynamicField = value; }
        }

        /// <remarks />
        public TargetableFloat mass
        {
            get { return massField; }
            set { massField = value; }
        }

        /// <remarks />
        [XmlArrayItem("rotate", typeof (rotate), IsNullable = false)]
        [XmlArrayItem("translate", typeof (TargetableFloat3), IsNullable = false)]
        public object[] mass_frame
        {
            get { return mass_frameField; }
            set { mass_frameField = value; }
        }

        /// <remarks />
        public TargetableFloat3 inertia
        {
            get { return inertiaField; }
            set { inertiaField = value; }
        }

        /// <remarks />
        [XmlElement("instance_physics_material", typeof (InstanceWithExtra))]
        [XmlElement("physics_material", typeof (physics_material))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }

        /// <remarks />
        [XmlElement("shape")]
        public rigid_bodyTechnique_commonShape[] shape
        {
            get { return shapeField; }
            set { shapeField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_bodyTechnique_commonDynamic
    {
        private string sidField;

        private bool valueField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public bool Value
        {
            get { return valueField; }
            set { valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_bodyTechnique_commonShape
    {
        private TargetableFloat densityField;
        private extra[] extraField;
        private rigid_bodyTechnique_commonShapeHollow hollowField;

        private object item1Field;
        private object itemField;

        private object[] itemsField;
        private TargetableFloat massField;

        /// <remarks />
        public rigid_bodyTechnique_commonShapeHollow hollow
        {
            get { return hollowField; }
            set { hollowField = value; }
        }

        /// <remarks />
        public TargetableFloat mass
        {
            get { return massField; }
            set { massField = value; }
        }

        /// <remarks />
        public TargetableFloat density
        {
            get { return densityField; }
            set { densityField = value; }
        }

        /// <remarks />
        [XmlElement("instance_physics_material", typeof (InstanceWithExtra))]
        [XmlElement("physics_material", typeof (physics_material))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }

        /// <remarks />
        [XmlElement("box", typeof (box))]
        [XmlElement("capsule", typeof (capsule))]
        [XmlElement("cylinder", typeof (cylinder))]
        [XmlElement("instance_geometry", typeof (instance_geometry))]
        [XmlElement("plane", typeof (plane))]
        [XmlElement("sphere", typeof (sphere))]
        [XmlElement("tapered_capsule", typeof (tapered_capsule))]
        [XmlElement("tapered_cylinder", typeof (tapered_cylinder))]
        public object Item1
        {
            get { return item1Field; }
            set { item1Field = value; }
        }

        /// <remarks />
        [XmlElement("rotate", typeof (rotate))]
        [XmlElement("translate", typeof (TargetableFloat3))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_bodyTechnique_commonShapeHollow
    {
        private string sidField;

        private bool valueField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public bool Value
        {
            get { return valueField; }
            set { valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class box
    {
        private extra[] extraField;
        private string half_extentsField;

        /// <remarks />
        public string half_extents
        {
            get { return half_extentsField; }
            set { half_extentsField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class capsule
    {
        private extra[] extraField;
        private double heightField;

        private string radiusField;

        /// <remarks />
        public double height
        {
            get { return heightField; }
            set { heightField = value; }
        }

        /// <remarks />
        public string radius
        {
            get { return radiusField; }
            set { radiusField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class cylinder
    {
        private extra[] extraField;
        private double heightField;

        private string radiusField;

        /// <remarks />
        public double height
        {
            get { return heightField; }
            set { heightField = value; }
        }

        /// <remarks />
        public string radius
        {
            get { return radiusField; }
            set { radiusField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class plane
    {
        private string equationField;

        private extra[] extraField;

        /// <remarks />
        public string equation
        {
            get { return equationField; }
            set { equationField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class sphere
    {
        private extra[] extraField;
        private double radiusField;

        /// <remarks />
        public double radius
        {
            get { return radiusField; }
            set { radiusField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class tapered_capsule
    {
        private extra[] extraField;
        private double heightField;

        private string radius1Field;

        private string radius2Field;

        /// <remarks />
        public double height
        {
            get { return heightField; }
            set { heightField = value; }
        }

        /// <remarks />
        public string radius1
        {
            get { return radius1Field; }
            set { radius1Field = value; }
        }

        /// <remarks />
        public string radius2
        {
            get { return radius2Field; }
            set { radius2Field = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class tapered_cylinder
    {
        private extra[] extraField;
        private double heightField;

        private string radius1Field;

        private string radius2Field;

        /// <remarks />
        public double height
        {
            get { return heightField; }
            set { heightField = value; }
        }

        /// <remarks />
        public string radius1
        {
            get { return radius1Field; }
            set { radius1Field = value; }
        }

        /// <remarks />
        public string radius2
        {
            get { return radius2Field; }
            set { radius2Field = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class rigid_constraint
    {
        private rigid_constraintAttachment attachmentField;

        private extra[] extraField;

        private string nameField;
        private rigid_constraintRef_attachment ref_attachmentField;
        private string sidField;
        private technique[] techniqueField;
        private rigid_constraintTechnique_common technique_commonField;

        /// <remarks />
        public rigid_constraintRef_attachment ref_attachment
        {
            get { return ref_attachmentField; }
            set { ref_attachmentField = value; }
        }

        /// <remarks />
        public rigid_constraintAttachment attachment
        {
            get { return attachmentField; }
            set { attachmentField = value; }
        }

        /// <remarks />
        public rigid_constraintTechnique_common technique_common
        {
            get { return technique_commonField; }
            set { technique_commonField = value; }
        }

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_constraintRef_attachment
    {
        private object[] itemsField;

        private string rigid_bodyField;

        /// <remarks />
        [XmlElement("extra", typeof (extra))]
        [XmlElement("rotate", typeof (rotate))]
        [XmlElement("translate", typeof (TargetableFloat3))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string rigid_body
        {
            get { return rigid_bodyField; }
            set { rigid_bodyField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_constraintAttachment
    {
        private object[] itemsField;

        private string rigid_bodyField;

        /// <remarks />
        [XmlElement("extra", typeof (extra))]
        [XmlElement("rotate", typeof (rotate))]
        [XmlElement("translate", typeof (TargetableFloat3))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string rigid_body
        {
            get { return rigid_bodyField; }
            set { rigid_bodyField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_constraintTechnique_common
    {
        private rigid_constraintTechnique_commonEnabled enabledField;

        private rigid_constraintTechnique_commonInterpenetrate interpenetrateField;

        private rigid_constraintTechnique_commonLimits limitsField;

        private rigid_constraintTechnique_commonSpring springField;

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type rigid_constraintTechnique_commonEnabled is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='true' attribute.
        public rigid_constraintTechnique_commonEnabled enabled
        {
            get { return enabledField; }
            set { enabledField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type rigid_constraintTechnique_commonInterpenetrate is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='false' attribute.
        public rigid_constraintTechnique_commonInterpenetrate interpenetrate
        {
            get { return interpenetrateField; }
            set { interpenetrateField = value; }
        }

        /// <remarks />
        public rigid_constraintTechnique_commonLimits limits
        {
            get { return limitsField; }
            set { limitsField = value; }
        }

        /// <remarks />
        public rigid_constraintTechnique_commonSpring spring
        {
            get { return springField; }
            set { springField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_constraintTechnique_commonEnabled
    {
        private string sidField;

        private bool valueField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public bool Value
        {
            get { return valueField; }
            set { valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_constraintTechnique_commonInterpenetrate
    {
        private string sidField;

        private bool valueField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public bool Value
        {
            get { return valueField; }
            set { valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_constraintTechnique_commonLimits
    {
        private rigid_constraintTechnique_commonLimitsLinear linearField;
        private rigid_constraintTechnique_commonLimitsSwing_cone_and_twist swing_cone_and_twistField;

        /// <remarks />
        public rigid_constraintTechnique_commonLimitsSwing_cone_and_twist swing_cone_and_twist
        {
            get { return swing_cone_and_twistField; }
            set { swing_cone_and_twistField = value; }
        }

        /// <remarks />
        public rigid_constraintTechnique_commonLimitsLinear linear
        {
            get { return linearField; }
            set { linearField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_constraintTechnique_commonLimitsSwing_cone_and_twist
    {
        private TargetableFloat3 maxField;
        private TargetableFloat3 minField;

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat3 is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0 0.0 0.0' attribute.
        public TargetableFloat3 min
        {
            get { return minField; }
            set { minField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat3 is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0 0.0 0.0' attribute.
        public TargetableFloat3 max
        {
            get { return maxField; }
            set { maxField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_constraintTechnique_commonLimitsLinear
    {
        private TargetableFloat3 maxField;
        private TargetableFloat3 minField;

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat3 is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0 0.0 0.0' attribute.
        public TargetableFloat3 min
        {
            get { return minField; }
            set { minField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat3 is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0 0.0 0.0' attribute.
        public TargetableFloat3 max
        {
            get { return maxField; }
            set { maxField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_constraintTechnique_commonSpring
    {
        private rigid_constraintTechnique_commonSpringAngular angularField;

        private rigid_constraintTechnique_commonSpringLinear linearField;

        /// <remarks />
        public rigid_constraintTechnique_commonSpringAngular angular
        {
            get { return angularField; }
            set { angularField = value; }
        }

        /// <remarks />
        public rigid_constraintTechnique_commonSpringLinear linear
        {
            get { return linearField; }
            set { linearField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_constraintTechnique_commonSpringAngular
    {
        private TargetableFloat dampingField;
        private TargetableFloat stiffnessField;

        private TargetableFloat target_valueField;

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='1.0' attribute.
        public TargetableFloat stiffness
        {
            get { return stiffnessField; }
            set { stiffnessField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0' attribute.
        public TargetableFloat damping
        {
            get { return dampingField; }
            set { dampingField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0' attribute.
        public TargetableFloat target_value
        {
            get { return target_valueField; }
            set { target_valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class rigid_constraintTechnique_commonSpringLinear
    {
        private TargetableFloat dampingField;
        private TargetableFloat stiffnessField;

        private TargetableFloat target_valueField;

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='1.0' attribute.
        public TargetableFloat stiffness
        {
            get { return stiffnessField; }
            set { stiffnessField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0' attribute.
        public TargetableFloat damping
        {
            get { return dampingField; }
            set { dampingField = value; }
        }

        /// <remarks />
        // CODEGEN Warning: DefaultValue attribute on members of type TargetableFloat is not supported in this version of the .Net Framework.
        // CODEGEN Warning: 'default' attribute supported only for primitive types.  Ignoring default='0.0' attribute.
        public TargetableFloat target_value
        {
            get { return target_valueField; }
            set { target_valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class instance_physics_model
    {
        private extra[] extraField;
        private InstanceWithExtra[] instance_force_fieldField;

        private instance_rigid_body[] instance_rigid_bodyField;

        private instance_rigid_constraint[] instance_rigid_constraintField;

        private string nameField;

        private string parentField;
        private string sidField;
        private string urlField;

        /// <remarks />
        [XmlElement("instance_force_field")]
        public InstanceWithExtra[] instance_force_field
        {
            get { return instance_force_fieldField; }
            set { instance_force_fieldField = value; }
        }

        /// <remarks />
        [XmlElement("instance_rigid_body")]
        public instance_rigid_body[] instance_rigid_body
        {
            get { return instance_rigid_bodyField; }
            set { instance_rigid_bodyField = value; }
        }

        /// <remarks />
        [XmlElement("instance_rigid_constraint")]
        public instance_rigid_constraint[] instance_rigid_constraint
        {
            get { return instance_rigid_constraintField; }
            set { instance_rigid_constraintField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string url
        {
            get { return urlField; }
            set { urlField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string parent
        {
            get { return parentField; }
            set { parentField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class instance_rigid_body
    {
        private string bodyField;
        private extra[] extraField;

        private string nameField;
        private string sidField;

        private string targetField;
        private technique[] techniqueField;
        private instance_rigid_bodyTechnique_common technique_commonField;

        /// <remarks />
        public instance_rigid_bodyTechnique_common technique_common
        {
            get { return technique_commonField; }
            set { technique_commonField = value; }
        }

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string body
        {
            get { return bodyField; }
            set { bodyField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string target
        {
            get { return targetField; }
            set { targetField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class instance_rigid_bodyTechnique_common
    {
        private string angular_velocityField;

        private instance_rigid_bodyTechnique_commonDynamic dynamicField;

        private TargetableFloat3 inertiaField;

        private object itemField;
        private TargetableFloat massField;

        private object[] mass_frameField;

        private instance_rigid_bodyTechnique_commonShape[] shapeField;
        private string velocityField;

        public instance_rigid_bodyTechnique_common()
        {
            angular_velocityField = "0.0 0.0 0.0";
            velocityField = "0.0 0.0 0.0";
        }

        /// <remarks />
        [DefaultValue("0.0 0.0 0.0")]
        public string angular_velocity
        {
            get { return angular_velocityField; }
            set { angular_velocityField = value; }
        }

        /// <remarks />
        [DefaultValue("0.0 0.0 0.0")]
        public string velocity
        {
            get { return velocityField; }
            set { velocityField = value; }
        }

        /// <remarks />
        public instance_rigid_bodyTechnique_commonDynamic dynamic
        {
            get { return dynamicField; }
            set { dynamicField = value; }
        }

        /// <remarks />
        public TargetableFloat mass
        {
            get { return massField; }
            set { massField = value; }
        }

        /// <remarks />
        [XmlArrayItem("rotate", typeof (rotate), IsNullable = false)]
        [XmlArrayItem("translate", typeof (TargetableFloat3), IsNullable = false)]
        public object[] mass_frame
        {
            get { return mass_frameField; }
            set { mass_frameField = value; }
        }

        /// <remarks />
        public TargetableFloat3 inertia
        {
            get { return inertiaField; }
            set { inertiaField = value; }
        }

        /// <remarks />
        [XmlElement("instance_physics_material", typeof (InstanceWithExtra))]
        [XmlElement("physics_material", typeof (physics_material))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }

        /// <remarks />
        [XmlElement("shape")]
        public instance_rigid_bodyTechnique_commonShape[] shape
        {
            get { return shapeField; }
            set { shapeField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class instance_rigid_bodyTechnique_commonDynamic
    {
        private string sidField;

        private bool valueField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public bool Value
        {
            get { return valueField; }
            set { valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class instance_rigid_bodyTechnique_commonShape
    {
        private TargetableFloat densityField;
        private extra[] extraField;
        private instance_rigid_bodyTechnique_commonShapeHollow hollowField;

        private object item1Field;
        private object itemField;

        private object[] itemsField;
        private TargetableFloat massField;

        /// <remarks />
        public instance_rigid_bodyTechnique_commonShapeHollow hollow
        {
            get { return hollowField; }
            set { hollowField = value; }
        }

        /// <remarks />
        public TargetableFloat mass
        {
            get { return massField; }
            set { massField = value; }
        }

        /// <remarks />
        public TargetableFloat density
        {
            get { return densityField; }
            set { densityField = value; }
        }

        /// <remarks />
        [XmlElement("instance_physics_material", typeof (InstanceWithExtra))]
        [XmlElement("physics_material", typeof (physics_material))]
        public object Item
        {
            get { return itemField; }
            set { itemField = value; }
        }

        /// <remarks />
        [XmlElement("box", typeof (box))]
        [XmlElement("capsule", typeof (capsule))]
        [XmlElement("cylinder", typeof (cylinder))]
        [XmlElement("instance_geometry", typeof (instance_geometry))]
        [XmlElement("plane", typeof (plane))]
        [XmlElement("sphere", typeof (sphere))]
        [XmlElement("tapered_capsule", typeof (tapered_capsule))]
        [XmlElement("tapered_cylinder", typeof (tapered_cylinder))]
        public object Item1
        {
            get { return item1Field; }
            set { item1Field = value; }
        }

        /// <remarks />
        [XmlElement("rotate", typeof (rotate))]
        [XmlElement("translate", typeof (TargetableFloat3))]
        public object[] Items
        {
            get { return itemsField; }
            set { itemsField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class instance_rigid_bodyTechnique_commonShapeHollow
    {
        private string sidField;

        private bool valueField;

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlText]
        public bool Value
        {
            get { return valueField; }
            set { valueField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class instance_rigid_constraint
    {
        private string constraintField;
        private extra[] extraField;

        private string nameField;
        private string sidField;

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string constraint
        {
            get { return constraintField; }
            set { constraintField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string sid
        {
            get { return sidField; }
            set { sidField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_physics_scenes
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;

        private string nameField;
        private physics_scene[] physics_sceneField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("physics_scene")]
        public physics_scene[] physics_scene
        {
            get { return physics_sceneField; }
            set { physics_sceneField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class physics_scene
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;
        private InstanceWithExtra[] instance_force_fieldField;

        private instance_physics_model[] instance_physics_modelField;

        private string nameField;
        private technique[] techniqueField;
        private physics_sceneTechnique_common technique_commonField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("instance_force_field")]
        public InstanceWithExtra[] instance_force_field
        {
            get { return instance_force_fieldField; }
            set { instance_force_fieldField = value; }
        }

        /// <remarks />
        [XmlElement("instance_physics_model")]
        public instance_physics_model[] instance_physics_model
        {
            get { return instance_physics_modelField; }
            set { instance_physics_modelField = value; }
        }

        /// <remarks />
        public physics_sceneTechnique_common technique_common
        {
            get { return technique_commonField; }
            set { technique_commonField = value; }
        }

        /// <remarks />
        [XmlElement("technique")]
        public technique[] technique
        {
            get { return techniqueField; }
            set { techniqueField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class physics_sceneTechnique_common
    {
        private TargetableFloat3 gravityField;

        private TargetableFloat time_stepField;

        /// <remarks />
        public TargetableFloat3 gravity
        {
            get { return gravityField; }
            set { gravityField = value; }
        }

        /// <remarks />
        public TargetableFloat time_step
        {
            get { return time_stepField; }
            set { time_stepField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class library_visual_scenes
    {
        private asset assetField;

        private extra[] extraField;

        private string idField;

        private string nameField;
        private visual_scene[] visual_sceneField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("visual_scene")]
        public visual_scene[] visual_scene
        {
            get { return visual_sceneField; }
            set { visual_sceneField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class visual_scene
    {
        private asset assetField;

        private visual_sceneEvaluate_scene[] evaluate_sceneField;

        private extra[] extraField;

        private string idField;

        private string nameField;
        private node[] nodeField;

        /// <remarks />
        public asset asset
        {
            get { return assetField; }
            set { assetField = value; }
        }

        /// <remarks />
        [XmlElement("node")]
        public node[] node
        {
            get { return nodeField; }
            set { nodeField = value; }
        }

        /// <remarks />
        [XmlElement("evaluate_scene")]
        public visual_sceneEvaluate_scene[] evaluate_scene
        {
            get { return evaluate_sceneField; }
            set { evaluate_sceneField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "ID")]
        public string id
        {
            get { return idField; }
            set { idField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class visual_sceneEvaluate_scene
    {
        private string nameField;
        private visual_sceneEvaluate_sceneRender[] renderField;

        /// <remarks />
        [XmlElement("render")]
        public visual_sceneEvaluate_sceneRender[] render
        {
            get { return renderField; }
            set { renderField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "NCName")]
        public string name
        {
            get { return nameField; }
            set { nameField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class visual_sceneEvaluate_sceneRender
    {
        private string camera_nodeField;
        private instance_effect instance_effectField;
        private string[] layerField;

        /// <remarks />
        [XmlElement("layer", DataType = "NCName")]
        public string[] layer
        {
            get { return layerField; }
            set { layerField = value; }
        }

        /// <remarks />
        public instance_effect instance_effect
        {
            get { return instance_effectField; }
            set { instance_effectField = value; }
        }

        /// <remarks />
        [XmlAttribute(DataType = "anyURI")]
        public string camera_node
        {
            get { return camera_nodeField; }
            set { camera_nodeField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public class COLLADAScene
    {
        private extra[] extraField;
        private InstanceWithExtra[] instance_physics_sceneField;

        private InstanceWithExtra instance_visual_sceneField;

        /// <remarks />
        [XmlElement("instance_physics_scene")]
        public InstanceWithExtra[] instance_physics_scene
        {
            get { return instance_physics_sceneField; }
            set { instance_physics_sceneField = value; }
        }

        /// <remarks />
        public InstanceWithExtra instance_visual_scene
        {
            get { return instance_visual_sceneField; }
            set { instance_visual_sceneField = value; }
        }

        /// <remarks />
        [XmlElement("extra")]
        public extra[] extra
        {
            get { return extraField; }
            set { extraField = value; }
        }
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [XmlType(Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    public enum VersionType
    {
        /// <remarks />
        [XmlEnum("1.4.0")] Item140,

        /// <remarks />
        [XmlEnum("1.4.1")] Item141,
    }

    /// <remarks />
    [GeneratedCode("xsd", "4.0.30319.1")]
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [XmlType(AnonymousType = true, Namespace = "http://www.collada.org/2005/11/COLLADASchema")]
    [XmlRoot(Namespace = "http://www.collada.org/2005/11/COLLADASchema", IsNullable = false)]
    public class ellipsoid
    {
        private string sizeField;

        /// <remarks />
        public string size
        {
            get { return sizeField; }
            set { sizeField = value; }
        }
    }


    /// <summary>
    ///   Extend COLLADA class to provide convertion helpers
    /// </summary>
    public partial class COLLADA
    {
        private static Regex regex = new Regex(@"\s+");

        public static string ConvertFromArray<T>(IList<T> array)
        {
            if (array == null)
                return null;

            StringBuilder text = new StringBuilder();
            if (typeof (T) == typeof (double))
            {
                // If type is double, then use a plain ToString with no exponent
                for (int i = 0; i < array.Count; i++)
                {
                    object value1 = array[i];
                    double value = (double) value1;
                    text.Append(
                        value.ToString(
                            "0.000000",
                            NumberFormatInfo.InvariantInfo));
                    if ((i + 1) < array.Count)
                        text.Append(" ");
                }
            }
            else
            {
                for (int i = 0; i < array.Count; i++)
                {
                    text.Append(Convert.ToString(array[i], NumberFormatInfo.InvariantInfo));
                    if ((i + 1) < array.Count)
                        text.Append(" ");
                }
            }
            return text.ToString();
        }

        internal static string[] ConvertStringArray(string arrayStr)
        {
            string[] elements = regex.Split(arrayStr.Trim());
            string[] ret = new string[elements.Length];
            for (int i = 0; i < ret.Length; i++)
                ret[i] = elements[i];
            return ret;
        }

        internal static int[] ConvertIntArray(string arrayStr)
        {
            string[] elements = regex.Split(arrayStr.Trim());
            int[] ret = new int[elements.Length];
            for (int i = 0; i < ret.Length; i++)
                ret[i] = int.Parse(elements[i], NumberStyles.Integer, CultureInfo.InvariantCulture);
            return ret;
        }

        internal static double[] ConvertDoubleArray(string arrayStr)
        {
            string[] elements = regex.Split(arrayStr.Trim());
            double[] ret = new double[elements.Length];
            try
            {
                for (int i = 0; i < ret.Length; i++)
                    ret[i] = double.Parse(elements[i], NumberStyles.Float, CultureInfo.InvariantCulture);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return ret;
        }

        internal static bool[] ConvertBoolArray(string arrayStr)
        {
            string[] elements = regex.Split(arrayStr.Trim());
            bool[] ret = new bool[elements.Length];
            for (int i = 0; i < ret.Length; i++)
                ret[i] = bool.Parse(elements[i]);
            return ret;
        }


        public static COLLADA Load(string fileName)
        {
            FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read);       //cgm - to handle read-only files
            COLLADA result;
            try
            {
                result = Load(stream);
            }
            finally
            {
                stream.Close();
            }
            return result;
        }

        public static COLLADA Load(Stream stream)
        {
            StreamReader str = new StreamReader(stream);
            XmlSerializer xSerializer = new XmlSerializer(typeof(COLLADA));

            return (COLLADA)xSerializer.Deserialize(str);            
        }

        public void Save(string fileName)
        {
            FileStream stream = new FileStream(fileName, FileMode.Create);
            try
            {
                Save(stream);
            }
            finally
            {
                stream.Close();
            }
        }

        public void Save(Stream stream)
        {
            XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);
            XmlSerializer xSerializer = new XmlSerializer(typeof(COLLADA));
            writer.Formatting = Formatting.Indented;
            xSerializer.Serialize(writer, this);          
        }
    }
}