Commits

Mike Chaliy committed aa31db2

Added very-very old stuff.

Comments (0)

Files changed (24)

releases/01.05.2006/UpdatableXmlDataSource.zip

Binary file added.

releases/03.05.2006/UpdatableXmlDataSource.zip

Binary file added.

releases/15.05.2006/UpdatableXmlDataSource.zip

Binary file added.

src/Chaliy Updatable Xml DataSource Test Site/AddNew.aspx

+<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="AddNew.aspx.cs" Inherits="AddNew" Title="Add New - Test site for Chaliy Updatable Xml DataSource" %>
+
+<%@ Register Assembly="Chaliy.Web.UI.UpdatableXmlDataSource" Namespace="Chaliy.Web.UI"
+    TagPrefix="chaliy" %>
+<asp:Content ID="Content" ContentPlaceHolderID="ContentPlaceHolder" Runat="Server">
+    <asp:FormView ID="FormView1" runat="server" DataSourceID="UpdatableXmlDataSource1" DefaultMode="Insert" CellPadding="4" ForeColor="#333333" OnItemInserted="FormView1_ItemInserted">
+        <InsertItemTemplate>
+            Name:<br />
+            <asp:TextBox ID="nameTextBox" runat="server" Text='<%# Bind("name") %>' Width="250px"></asp:TextBox><br />
+            Title:<br />
+            <asp:TextBox ID="titleTextBox" runat="server" Text='<%# Bind("title") %>' Width="250px"></asp:TextBox><br />
+            Description:<br />
+            <asp:TextBox ID="descriptionTextBox" runat="server" Text='<%# Bind("description") %>' Height="50px" TextMode="MultiLine" Width="250px"></asp:TextBox><br />
+            <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
+                Text="Insert">
+            </asp:LinkButton>
+            <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
+                Text="Cancel">
+            </asp:LinkButton>
+        </InsertItemTemplate>
+        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
+        <EditRowStyle BackColor="#999999" />
+        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
+        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
+        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
+    </asp:FormView>
+    <chaliy:updatablexmldatasource id="UpdatableXmlDataSource1" runat="server" datafile="~/App_Data/TestData.xml" ItemTagName="Item"></chaliy:updatablexmldatasource>
+</asp:Content>
+

src/Chaliy Updatable Xml DataSource Test Site/AddNew.aspx.cs

+/*
+    Purpose: AddNew page for the UpdatableXmlDataSource Test Web Site.
+ 
+    Original file name:  AddNew.aspx.cs
+
+    Copyright: Mike Chaliy (mike@chaliy.com). All rights reserved.
+
+    License: This work is licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/).
+    <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <Work rdf:about="">
+        <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
+        <dc:title>.Net 2.0 Updatable Xml DataSource Control</dc:title>
+        <dc:date>2006</dc:date>
+        <dc:description>Represents an XML editable data source to data-bound controls.</dc:description>
+        <dc:creator>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:creator>
+        <dc:rights>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:rights>
+        <dc:source rdf:resource="http://www.chaliy.com/Sources/UpdatableXmlDataSource/" />
+      </Work>
+      <License rdf:about="http://creativecommons.org/licenses/by/2.5/">
+        <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </License>
+    </rdf:RDF>
+*/
+
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+public partial class AddNew : System.Web.UI.Page
+{
+    protected void Page_Load(object sender, EventArgs e)
+    {
+
+    }
+    
+    protected void FormView1_ItemInserted(object sender, FormViewInsertedEventArgs e)
+    {
+        this.Response.Redirect("Default.aspx");
+    }
+}

src/Chaliy Updatable Xml DataSource Test Site/App_Data/TestData.xml

+<?xml version="1.0" encoding="utf-8"?>
+<Data>
+  <Item name="FirstItem" title="First item" description="First items text. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam laoreet dolor et dolor. Vestibulum quis nunc auctor ante dignissim venenatis. Curabitur wisi. Donec faucibus auctor ipsum. In fermentum dui. Ut suscipit aliquam eros. Nullam elementum quam eu enim. Sed a purus id nisl imperdiet blandit. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed at quam." />
+  <Item name="SecondItem" title="Second item" description="Second items text. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam laoreet dolor et dolor. Vestibulum quis nunc auctor ante dignissim venenatis. Curabitur wisi. Donec faucibus auctor ipsum. In fermentum dui. Ut suscipit aliquam eros. Nullam elementum quam eu enim. Sed a purus id nisl imperdiet blandit. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed at quam." />
+  <Item name="ThirdItem" title="Third item" description="Third items text. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam laoreet dolor et dolor. Vestibulum quis nunc auctor ante dignissim venenatis. Curabitur wisi. Donec faucibus auctor ipsum. In fermentum dui. Ut suscipit aliquam eros. Nullam elementum quam eu enim. Sed a purus id nisl imperdiet blandit. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed at quam." />
+  <Item name="Hi" title="Hi23" description="sdf sdfs dfsdf" />
+</Data>

src/Chaliy Updatable Xml DataSource Test Site/Default.aspx

+<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Test site for Chaliy Updatable Xml DataSource" %>
+<%@ Register Assembly="Chaliy.Web.UI.UpdatableXmlDataSource" Namespace="Chaliy.Web.UI"
+    TagPrefix="chaliy" %>
+<asp:Content ID="Content" ContentPlaceHolderID="ContentPlaceHolder" Runat="Server">
+    <center>
+        <h1>Test site for Chaliy Updatable Xml DataSource.</h1>
+        For more details please refer to the <a href="http://www.chaliy.com/Sources/UpdatableXmlDataSource/">Updatable Xml DataSource Home Page</a>.
+    </center>
+    <br />
+    <br />
+    <center>
+        <asp:GridView ID="GridView1" runat="server" DataSourceID="UpdatableXmlDataSource1" AutoGenerateColumns="False" AutoGenerateDeleteButton="True" AllowSorting="True" AutoGenerateEditButton="True" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" EnableSortingAndPagingCallbacks="True">
+            <Columns>
+                <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
+                <asp:BoundField DataField="title" HeaderText="title" SortExpression="title" />
+                <asp:BoundField DataField="description" HeaderText="description" SortExpression="description" />
+            </Columns>
+            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
+            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
+            <EditRowStyle BackColor="#999999" />
+            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
+            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
+            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
+            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
+        </asp:GridView>
+        
+    </center>    
+    <asp:HyperLink ID="AddNewHyperLink" runat="server" NavigateUrl="~/AddNew.aspx">Add new</asp:HyperLink>    
+        <chaliy:updatablexmldatasource id="UpdatableXmlDataSource1" runat="server" DataFile="~/App_Data/TestData.xml" RootXPath="Data" FilterXPath="/Item">
+            <Data>
+</Data>
+        </chaliy:updatablexmldatasource>
+</asp:Content>
+

src/Chaliy Updatable Xml DataSource Test Site/Default.aspx.cs

+/*
+    Purpose: Default page for the UpdatableXmlDataSource Test Web Site.
+ 
+    Original file name:  Default.aspx.cs
+
+    Copyright: Mike Chaliy (mike@chaliy.com). All rights reserved.
+
+    License: This work is licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/).
+    <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <Work rdf:about="">
+        <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
+        <dc:title>.Net 2.0 Updatable Xml DataSource Control</dc:title>
+        <dc:date>2006</dc:date>
+        <dc:description>Represents an XML editable data source to data-bound controls.</dc:description>
+        <dc:creator>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:creator>
+        <dc:rights>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:rights>
+        <dc:source rdf:resource="http://www.chaliy.com/Sources/UpdatableXmlDataSource/" />
+      </Work>
+      <License rdf:about="http://creativecommons.org/licenses/by/2.5/">
+        <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </License>
+    </rdf:RDF>
+*/
+
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+public partial class _Default : System.Web.UI.Page
+{
+    protected void Page_Load(object sender, EventArgs e)
+    {
+    }
+}

src/Chaliy Updatable Xml DataSource Test Site/MasterPage.master

+<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head runat="server">
+    <title>Test site for Chaliy Updatable Xml DataSource</title>
+    <style type="text/css">
+    body
+    {
+        font-family: Verdana, Arial, Sans-Serif;
+	    font-size: 0.7em;
+	    color: black;
+	    background-color:#f8f9fd;
+    }
+    h1
+    {
+        font-size: 1.1em;
+    }
+    </style>
+</head>
+<body>
+    <form id="form1" runat="server">
+    <div>
+        <asp:contentplaceholder id="ContentPlaceHolder" runat="server">
+        </asp:contentplaceholder>
+    </div>
+    </form>
+</body>
+</html>

src/Chaliy Updatable Xml DataSource Test Site/MasterPage.master.cs

+/*
+    Purpose: Master page for the UpdatableXmlDataSource Test Web Site.
+ 
+    Original file name:  Master.master.cs
+
+    Copyright: Mike Chaliy (mike@chaliy.com). All rights reserved.
+
+    License: This work is licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/).
+    <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <Work rdf:about="">
+        <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
+        <dc:title>.Net 2.0 Updatable Xml DataSource Control</dc:title>
+        <dc:date>2006</dc:date>
+        <dc:description>Represents an XML editable data source to data-bound controls.</dc:description>
+        <dc:creator>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:creator>
+        <dc:rights>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:rights>
+        <dc:source rdf:resource="http://www.chaliy.com/Sources/UpdatableXmlDataSource/" />
+      </Work>
+      <License rdf:about="http://creativecommons.org/licenses/by/2.5/">
+        <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </License>
+    </rdf:RDF>
+*/
+
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+public partial class MasterPage : System.Web.UI.MasterPage
+{
+    protected void Page_Load(object sender, EventArgs e)
+    {
+
+    }
+}

src/Chaliy Updatable Xml DataSource Test Site/Web.Config

+<?xml version="1.0"?>
+<!-- 
+    Note: As an alternative to hand editing this file you can use the 
+    web admin tool to configure settings for your application. Use
+    the Website->Asp.Net Configuration option in Visual Studio.
+    A full list of settings and comments can be found in 
+    machine.config.comments usually located in 
+    \Windows\Microsoft.Net\Framework\v2.x\Config 
+-->
+<configuration>
+	<appSettings/>
+	<connectionStrings/>
+	<system.web>
+		<!-- 
+            Set compilation debug="true" to insert debugging 
+            symbols into the compiled page. Because this 
+            affects performance, set this value to true only 
+            during development.
+        -->
+		<compilation debug="true">
+			<assemblies>
+				<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
+				<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies></compilation>
+		<!--
+            The <authentication> section enables configuration 
+            of the security authentication mode used by 
+            ASP.NET to identify an incoming user. 
+        -->
+		<authentication mode="Windows"/>
+		<!--
+            The <customErrors> section enables configuration 
+            of what to do if/when an unhandled error occurs 
+            during the execution of a request. Specifically, 
+            it enables developers to configure html error pages 
+            to be displayed in place of a error stack trace.
+
+        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
+            <error statusCode="403" redirect="NoAccess.htm" />
+            <error statusCode="404" redirect="FileNotFound.htm" />
+        </customErrors>
+        -->
+	</system.web>
+</configuration>

src/Chaliy Updatable Xml DataSource.sln

+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Chaliy Updatable Xml DataSource", "Chaliy Updatable Xml DataSource\Chaliy Updatable Xml DataSource.csproj", "{09A5D973-342E-484D-84B4-1F4690CA0FAF}"
+EndProject
+Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "Chaliy Updatable Xml DataSource Test Site\", "Chaliy Updatable Xml DataSource Test Site\", "{68AE180D-430F-47E7-BD21-638211D3ED3A}"
+	ProjectSection(WebsiteProperties) = preProject
+		ProjectReferences = "{09A5D973-342E-484D-84B4-1F4690CA0FAF}|Chaliy.Web.UI.UpdatableXmlDataSource.dll;"
+		Debug.AspNetCompiler.VirtualPath = "/Chaliy Updatable Xml DataSource Test Site"
+		Debug.AspNetCompiler.PhysicalPath = "Chaliy Updatable Xml DataSource Test Site\"
+		Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\Chaliy Updatable Xml DataSource Test Site\"
+		Debug.AspNetCompiler.Updateable = "true"
+		Debug.AspNetCompiler.ForceOverwrite = "true"
+		Debug.AspNetCompiler.FixedNames = "false"
+		Debug.AspNetCompiler.Debug = "True"
+		Release.AspNetCompiler.VirtualPath = "/Chaliy Updatable Xml DataSource Test Site"
+		Release.AspNetCompiler.PhysicalPath = "Chaliy Updatable Xml DataSource Test Site\"
+		Release.AspNetCompiler.TargetPath = "PrecompiledWeb\Chaliy Updatable Xml DataSource Test Site\"
+		Release.AspNetCompiler.Updateable = "true"
+		Release.AspNetCompiler.ForceOverwrite = "true"
+		Release.AspNetCompiler.FixedNames = "false"
+		Release.AspNetCompiler.Debug = "False"
+		VWDPort = "2172"
+		DefaultWebSiteLanguage = "Visual C#"
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|.NET = Debug|.NET
+		Debug|Any CPU = Debug|Any CPU
+		Debug|Mixed Platforms = Debug|Mixed Platforms
+		Release|.NET = Release|.NET
+		Release|Any CPU = Release|Any CPU
+		Release|Mixed Platforms = Release|Mixed Platforms
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{09A5D973-342E-484D-84B4-1F4690CA0FAF}.Debug|.NET.ActiveCfg = Debug|Any CPU
+		{09A5D973-342E-484D-84B4-1F4690CA0FAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{09A5D973-342E-484D-84B4-1F4690CA0FAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{09A5D973-342E-484D-84B4-1F4690CA0FAF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{09A5D973-342E-484D-84B4-1F4690CA0FAF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{09A5D973-342E-484D-84B4-1F4690CA0FAF}.Release|.NET.ActiveCfg = Release|Any CPU
+		{09A5D973-342E-484D-84B4-1F4690CA0FAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{09A5D973-342E-484D-84B4-1F4690CA0FAF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{09A5D973-342E-484D-84B4-1F4690CA0FAF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{09A5D973-342E-484D-84B4-1F4690CA0FAF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{68AE180D-430F-47E7-BD21-638211D3ED3A}.Debug|.NET.ActiveCfg = Debug|.NET
+		{68AE180D-430F-47E7-BD21-638211D3ED3A}.Debug|.NET.Build.0 = Debug|.NET
+		{68AE180D-430F-47E7-BD21-638211D3ED3A}.Debug|Any CPU.ActiveCfg = Debug|.NET
+		{68AE180D-430F-47E7-BD21-638211D3ED3A}.Debug|Mixed Platforms.ActiveCfg = Debug|.NET
+		{68AE180D-430F-47E7-BD21-638211D3ED3A}.Debug|Mixed Platforms.Build.0 = Debug|.NET
+		{68AE180D-430F-47E7-BD21-638211D3ED3A}.Release|.NET.ActiveCfg = Debug|.NET
+		{68AE180D-430F-47E7-BD21-638211D3ED3A}.Release|.NET.Build.0 = Debug|.NET
+		{68AE180D-430F-47E7-BD21-638211D3ED3A}.Release|Any CPU.ActiveCfg = Debug|.NET
+		{68AE180D-430F-47E7-BD21-638211D3ED3A}.Release|Mixed Platforms.ActiveCfg = Debug|.NET
+		{68AE180D-430F-47E7-BD21-638211D3ED3A}.Release|Mixed Platforms.Build.0 = Debug|.NET
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

src/Chaliy Updatable Xml DataSource/Chaliy Updatable Xml DataSource.csproj

+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.50727</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{09A5D973-342E-484D-84B4-1F4690CA0FAF}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Chaliy.Web.UI</RootNamespace>
+    <AssemblyName>Chaliy.Web.UI.UpdatableXmlDataSource</AssemblyName>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>private.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <DocumentationFile>bin\Release\Chaliy.Web.UI.UpdatableXmlDataSource.xml</DocumentationFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Design" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Web" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Design\UpdatableXmlDataSourceDesigner.cs" />
+    <Compile Include="Design\UpdatableXmlDataSourceFieldSchema.cs" />
+    <Compile Include="Design\UpdatableXmlDesignerDataSourceView.cs" />
+    <Compile Include="Design\UpdatableXmlDataSourceViewSchema.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="UpdatableXmlDataNode.cs" />
+    <Compile Include="UpdatableXmlDataSource.cs" />
+    <Compile Include="UpdatableXmlDataSourceView.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="private.snk" />
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <SubType>Designer</SubType>
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

src/Chaliy Updatable Xml DataSource/Design/UpdatableXmlDataSourceDesigner.cs

+/*
+    Purpose: Designer for the UpdatableXmlDataSource.
+ 
+    Original file name:  UpdatableXmlDataSourceDesigner.cs
+
+    Copyright: Mike Chaliy (mike@chaliy.com). All rights reserved.
+
+    License: This work is licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/).
+    <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <Work rdf:about="">
+        <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
+        <dc:title>.Net 2.0 Updatable Xml DataSource Control</dc:title>
+        <dc:date>2006</dc:date>
+        <dc:description>Represents an XML editable data source to data-bound controls.</dc:description>
+        <dc:creator>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:creator>
+        <dc:rights>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:rights>
+        <dc:source rdf:resource="http://www.chaliy.com/Sources/UpdatableXmlDataSource/" />
+      </Work>
+      <License rdf:about="http://creativecommons.org/licenses/by/2.5/">
+        <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </License>
+    </rdf:RDF>
+*/
+
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Web.UI.Design;
+using System.Collections;
+using System.ComponentModel;
+using System.Xml;
+using System.Web;
+using System.ComponentModel.Design;
+using System.IO;
+using System.Web.UI;
+using System.Windows.Forms;
+
+namespace Chaliy.Web.UI.Design
+{
+    /// <summary>
+    ///     Designer for the <see cref="UpdatableXmlDataSource"/>.
+    /// </summary>
+    internal class UpdatableXmlDataSourceDesigner : DataSourceDesigner
+    {
+        #region Fields
+
+        private string _mappedDataFile;
+
+        #endregion
+
+        #region Properties
+
+        private UpdatableXmlDataSource UpdatableXmlDataSource
+        {
+            get
+            {
+                return (UpdatableXmlDataSource)base.Component;
+            }
+        }
+
+        public string RootXPath
+        {
+            get
+            {
+                return this.UpdatableXmlDataSource.RootXPath;
+            }
+            set
+            {
+                if (this.UpdatableXmlDataSource.RootXPath != value)
+                {
+                    this.UpdatableXmlDataSource.RootXPath = value;
+                    this.OnDataSourceChanged(EventArgs.Empty);
+                    this.OnSchemaRefreshed(EventArgs.Empty);
+                }
+
+            }
+        }
+
+        public string FilterXPath
+        {
+            get
+            {
+                return this.UpdatableXmlDataSource.FilterXPath;
+            }
+            set
+            {
+                if (this.UpdatableXmlDataSource.FilterXPath != value)
+                {
+                    this.UpdatableXmlDataSource.FilterXPath = value;
+                    this.OnDataSourceChanged(EventArgs.Empty);
+                    this.OnSchemaRefreshed(EventArgs.Empty);
+                }
+
+            }
+        }       
+
+        public string Data
+        {
+            get
+            {
+                return this.UpdatableXmlDataSource.Data;
+            }
+            set
+            {
+                if (this.UpdatableXmlDataSource.Data != value)
+                {
+                    this.UpdatableXmlDataSource.Data = value;
+                    this.OnDataSourceChanged(EventArgs.Empty);
+                    this.OnSchemaRefreshed(EventArgs.Empty);
+                }
+            }
+        }
+
+        public string DataFile
+        {
+            get
+            {
+                return this.UpdatableXmlDataSource.DataFile;
+            }
+            set
+            {
+                if (this.UpdatableXmlDataSource.DataFile != value)
+                {
+                    this.UpdatableXmlDataSource.DataFile = value;
+                    this._mappedDataFile = null;
+                    this.OnDataSourceChanged(EventArgs.Empty);
+                    this.OnSchemaRefreshed(EventArgs.Empty);
+                }
+            }
+        }
+
+        #endregion
+
+        #region Implementation
+
+        public override DesignerDataSourceView GetView(string viewName)
+        {
+            string[] viewNames = this.GetViewNames();
+            if ((viewNames == null) || (viewNames.Length <= 0))
+            {
+                return new UpdatableXmlDesignerDataSourceView(this, string.Empty);
+            }
+            if (String.IsNullOrEmpty(viewName))
+            {
+                viewName = viewNames[0];
+            }
+            foreach (string name in viewNames)
+            {
+                if (string.Equals(viewName, name, StringComparison.OrdinalIgnoreCase))
+                {
+                    return new UpdatableXmlDesignerDataSourceView(this, viewName);
+                }
+            }
+            return null;
+        }
+
+        public override string[] GetViewNames()
+        {
+            return new string[]{"DefaultView"};
+        }
+
+        protected override void PreFilterProperties(IDictionary properties)
+        {
+            base.PreFilterProperties(properties);
+
+            PropertyDescriptor rootXPathDescriptor = (PropertyDescriptor)properties["RootXPath"];
+            properties["RootXPath"] = TypeDescriptor.CreateProperty(base.GetType(), rootXPathDescriptor, new Attribute[0]);
+
+            PropertyDescriptor filterXPathDescriptor = (PropertyDescriptor)properties["FilterXPath"];
+            properties["FilterXPath"] = TypeDescriptor.CreateProperty(base.GetType(), filterXPathDescriptor, new Attribute[0]);
+
+
+            PropertyDescriptor dataDescriptor = (PropertyDescriptor)properties["Data"];
+            properties["Data"] = TypeDescriptor.CreateProperty(base.GetType(), dataDescriptor, new Attribute[0]);
+
+            PropertyDescriptor dataFileDescriptor = (PropertyDescriptor)properties["DataFile"];
+            properties["DataFile"] = TypeDescriptor.CreateProperty(base.GetType(), dataFileDescriptor, new Attribute[0]);
+        }
+
+        public override void RefreshSchema(bool preferSilent)
+        {
+            try
+            {
+                this.SuppressDataSourceEvents();
+                this.OnDataSourceChanged(EventArgs.Empty);
+                this.OnSchemaRefreshed(EventArgs.Empty);
+            }
+            finally
+            {
+                this.ResumeDataSourceEvents();
+            }
+
+        }
+
+        public override bool CanRefreshSchema
+        {
+            get
+            {
+                return true;
+            }
+        }        
+
+        internal IEnumerable GetDesignTimeData(int minimumRows)
+        {
+            try
+            {
+                UpdatableXmlDataSource source = this.GetDesignTimeDataSource();
+                if (source != null)
+                {
+                    UpdatableXmlDataSourceView view = ((IDataSource)source).GetView("DefaultView") as UpdatableXmlDataSourceView;
+                    if (view != null)
+                    {
+                        return view.Select(DataSourceSelectArguments.Empty);
+                    }
+                }
+            }
+            catch { }
+
+            return null;
+        }
+
+        private UpdatableXmlDataSource GetDesignTimeDataSource()
+        {
+            UpdatableXmlDataSource source = new UpdatableXmlDataSource();
+            source.RootXPath = this.RootXPath;
+            source.Data = this.Data;
+            if (String.IsNullOrEmpty(this.DataFile) == false)
+            {
+                if (this._mappedDataFile == null)
+                {
+                    this._mappedDataFile = UpdatableXmlDataSourceDesigner.MapPath(base.Component.Site, this.DataFile);
+                }
+                source.DataFile = this._mappedDataFile;
+
+                if (!File.Exists(source.DataFile))
+                {
+                    return null;
+                }
+            }
+            else if (String.IsNullOrEmpty(this.Data))
+            {
+                return null;
+            }
+
+            return source;
+        }
+
+        private static string MapPath(IServiceProvider serviceProvider, string path)
+        {
+            if (path.Length != 0)
+            {
+                if (UpdatableXmlDataSourceDesigner.IsAbsolutePhysicalPath(path))
+                {
+                    return path;
+                }
+                WebFormsRootDesigner designer = null;
+                if (serviceProvider != null)
+                {
+                    IDesignerHost host = (IDesignerHost)serviceProvider.GetService(typeof(IDesignerHost));
+                    if ((host != null) && (host.RootComponent != null))
+                    {
+                        designer = host.GetDesigner(host.RootComponent) as WebFormsRootDesigner;
+                        if (designer != null)
+                        {
+                            string url = designer.ResolveUrl(path);
+                            IWebApplication application = (IWebApplication)serviceProvider.GetService(typeof(IWebApplication));
+                            if (application != null)
+                            {
+                                IProjectItem projectItem = application.GetProjectItemFromUrl(url);
+                                if (projectItem != null)
+                                {
+                                    return projectItem.PhysicalPath;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            return null;
+        }
+
+        private static bool IsAbsolutePhysicalPath(string path)
+        {
+            if ((path != null) && (path.Length >= 3))
+            {
+                if (path.StartsWith(@"\\", StringComparison.Ordinal))
+                {
+                    return true;
+                }
+                if (char.IsLetter(path[0]) && (path[1] == ':'))
+                {
+                    return (path[2] == '\\');
+                }
+            }
+            return false;
+        }
+
+        #endregion
+    }
+}

src/Chaliy Updatable Xml DataSource/Design/UpdatableXmlDataSourceFieldSchema.cs

+/*
+    Purpose: Designer realted file.
+ 
+    Original file name:  UpdatableXmlDataSourceFieldSchema.cs
+
+    Copyright: Mike Chaliy (mike@chaliy.com). All rights reserved.
+
+    License: This work is licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/).
+    <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <Work rdf:about="">
+        <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
+        <dc:title>.Net 2.0 Updatable Xml DataSource Control</dc:title>
+        <dc:date>2006</dc:date>
+        <dc:description>Represents an XML editable data source to data-bound controls.</dc:description>
+        <dc:creator>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:creator>
+        <dc:rights>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:rights>
+        <dc:source rdf:resource="http://www.chaliy.com/Sources/UpdatableXmlDataSource/" />
+      </Work>
+      <License rdf:about="http://creativecommons.org/licenses/by/2.5/">
+        <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </License>
+    </rdf:RDF>
+*/
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Web.UI.Design;
+
+namespace Chaliy.Web.UI.Design
+{
+    internal class UpdatableXmlDataSourceFieldSchema : IDataSourceFieldSchema
+    {
+
+        #region Fields
+
+        private string _name;
+
+        #endregion
+
+        #region Constructors
+
+        public UpdatableXmlDataSourceFieldSchema(string name)
+        {
+            this._name = name;
+        }
+
+        #endregion
+
+        #region IDataSourceFieldSchema Members
+
+        public Type DataType
+        {
+            get
+            {
+                return typeof(string);
+            }
+        }
+
+        public bool Identity
+        {
+            get
+            {
+                return false;
+            }
+        }
+
+        public bool IsReadOnly
+        {
+            get
+            {
+                return false;    
+            }
+        }
+
+        public bool IsUnique
+        {
+            get 
+            {
+                return false;
+            }
+        }
+
+        public int Length
+        {
+            get 
+            {
+                return Int32.MaxValue;
+            }
+        }
+
+        public string Name
+        {
+            get 
+            {
+                return this._name;
+            }
+        }
+
+        public bool Nullable
+        {
+            get
+            {
+                return false;
+            }
+        }
+
+        public int Precision
+        {
+            get
+            {
+                return 0;
+            }
+        }
+
+        public bool PrimaryKey
+        {
+            get
+            {
+                return false;
+            }
+        }
+
+        public int Scale
+        {
+            get
+            {
+                return 0;
+            }
+        }
+
+        #endregion
+    }
+}

src/Chaliy Updatable Xml DataSource/Design/UpdatableXmlDataSourceViewSchema.cs

+/*
+    Purpose: Designer realted file.
+ 
+    Original file name:  UpdatableXmlDataSourceViewSchema.cs
+
+    Copyright: Mike Chaliy (mike@chaliy.com). All rights reserved.
+
+    License: This work is licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/).
+    <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <Work rdf:about="">
+        <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
+        <dc:title>.Net 2.0 Updatable Xml DataSource Control</dc:title>
+        <dc:date>2006</dc:date>
+        <dc:description>Represents an XML editable data source to data-bound controls.</dc:description>
+        <dc:creator>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:creator>
+        <dc:rights>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:rights>
+        <dc:source rdf:resource="http://www.chaliy.com/Sources/UpdatableXmlDataSource/" />
+      </Work>
+      <License rdf:about="http://creativecommons.org/licenses/by/2.5/">
+        <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </License>
+    </rdf:RDF>
+*/
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Web.UI.Design;
+using System.Collections;
+using System.ComponentModel;
+using System.Windows.Forms;
+
+namespace Chaliy.Web.UI.Design
+{
+    internal class UpdatableXmlDataSourceViewSchema : IDataSourceViewSchema
+    {
+
+        #region Fields
+
+        private UpdatableXmlDataSourceDesigner _owner;
+
+        #endregion
+
+        #region Constructors
+
+        public UpdatableXmlDataSourceViewSchema(UpdatableXmlDataSourceDesigner owner)
+        {
+            this._owner = owner;
+        }
+
+        #endregion
+
+        #region IDataSourceViewSchema Members
+
+        public IDataSourceViewSchema[] GetChildren()
+        {
+            return null;
+        }
+
+        public IDataSourceFieldSchema[] GetFields()
+        {
+            IEnumerable data = this._owner.GetDesignTimeData(0);            
+            if (data != null)
+            {              
+                IEnumerator dataEnum = data.GetEnumerator();
+                if (dataEnum.MoveNext())
+                {
+                    UpdatableXmlDataNode current = (UpdatableXmlDataNode)dataEnum.Current;
+
+                    PropertyDescriptorCollection descriptors = ((ICustomTypeDescriptor)current).GetProperties();
+
+                    int fieldCount = descriptors.Count;
+                    IDataSourceFieldSchema[] fields = new IDataSourceFieldSchema[fieldCount];
+
+                    for (int i = 0; i < fieldCount; i++)
+                    {
+                        fields[i] = new UpdatableXmlDataSourceFieldSchema(descriptors[i].Name);
+                    }
+
+                    return fields;
+                }
+            }
+
+            return null;
+        }
+
+        public string Name
+        {
+            get
+            {
+                return "UpdatableXmlDataSource";
+            }
+        }
+
+        #endregion
+    }
+}

src/Chaliy Updatable Xml DataSource/Design/UpdatableXmlDesignerDataSourceView.cs

+/*
+    Purpose: Designer realted file.
+ 
+    Original file name:  UpdatableXmlDesignerDataSourceView.cs
+
+    Copyright: Mike Chaliy (mike@chaliy.com). All rights reserved.
+
+    License: This work is licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/).
+    <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <Work rdf:about="">
+        <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
+        <dc:title>.Net 2.0 Updatable Xml DataSource Control</dc:title>
+        <dc:date>2006</dc:date>
+        <dc:description>Represents an XML editable data source to data-bound controls.</dc:description>
+        <dc:creator>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:creator>
+        <dc:rights>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:rights>
+        <dc:source rdf:resource="http://www.chaliy.com/Sources/UpdatableXmlDataSource/" />
+      </Work>
+      <License rdf:about="http://creativecommons.org/licenses/by/2.5/">
+        <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </License>
+    </rdf:RDF>
+*/
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Web.UI.Design;
+using System.Collections;
+using System.Web;
+using System.Windows.Forms;
+
+namespace Chaliy.Web.UI.Design
+{
+    internal class UpdatableXmlDesignerDataSourceView : DesignerDataSourceView
+    {
+
+        #region Fields
+
+        private UpdatableXmlDataSourceDesigner _owner;
+        private UpdatableXmlDataSourceViewSchema _schema;
+
+        #endregion
+
+        #region Constructors
+
+        public UpdatableXmlDesignerDataSourceView(UpdatableXmlDataSourceDesigner owner, string viewName)
+            : base(owner, viewName)
+        {
+            this._owner = owner;
+            this._schema = new UpdatableXmlDataSourceViewSchema(this._owner);
+        }
+
+        #endregion
+
+        #region Properties
+
+        public override IDataSourceViewSchema Schema
+        {
+            get
+            {
+                return this._schema;
+            }
+        }
+
+        #endregion
+
+        #region Implementation
+
+        public override IEnumerable GetDesignTimeData(int minimumRows, out bool isSampleData)
+        {
+            IEnumerable data = this._owner.GetDesignTimeData(minimumRows);
+            if (data != null)
+            {
+                isSampleData = false;
+                return data;
+            }
+
+            return base.GetDesignTimeData(minimumRows, out isSampleData);
+        }
+
+        #endregion
+
+    }
+}

src/Chaliy Updatable Xml DataSource/Properties/AssemblyInfo.cs

+/*
+    Purpose: Assembly definition file.
+ 
+    Original file name:  Assembly.cs
+
+    Copyright: Mike Chaliy (mike@chaliy.com). All rights reserved.
+
+    License: This work is licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/).
+    <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <Work rdf:about="">
+        <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
+        <dc:title>.Net 2.0 Updatable Xml DataSource Control</dc:title>
+        <dc:date>2006</dc:date>
+        <dc:description>Represents an XML editable data source to data-bound controls.</dc:description>
+        <dc:creator>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:creator>
+        <dc:rights>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:rights>
+        <dc:source rdf:resource="http://www.chaliy.com/Sources/UpdatableXmlDataSource/" />
+      </Work>
+      <License rdf:about="http://creativecommons.org/licenses/by/2.5/">
+        <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </License>
+    </rdf:RDF>
+*/
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Web.UI;
+using System.Security;
+
+[assembly: AssemblyTitle("Chaliy Updatable Xml DataSource")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Mike Chaliy")]
+[assembly: AssemblyProduct("Chaliy Updatable Xml DataSource")]
+[assembly: AssemblyCopyright("Copyright © Mike Chaliy 2006")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+[assembly: TagPrefix("Chaliy.Web.UI.WebControls", "chaliy")]
+
+[assembly: AllowPartiallyTrustedCallers()]
+
+[assembly: ComVisible(false)]
+
+[assembly: Guid("c37e4913-e9e7-44f0-879d-7de1a4876a47")]
+
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

src/Chaliy Updatable Xml DataSource/Properties/Resources.Designer.cs

+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.42
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Chaliy.Web.UI.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Chaliy.Web.UI.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Insert fail. Root node does not exists..
+        /// </summary>
+        internal static string InsterFailRootNodeDoesNotExistsException {
+            get {
+                return ResourceManager.GetString("InsterFailRootNodeDoesNotExistsException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Sort fail. Sort expression is wrong..
+        /// </summary>
+        internal static string SortFailExpressoinWrongException {
+            get {
+                return ResourceManager.GetString("SortFailExpressoinWrongException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to View name &apos;{0}&apos; is invalid..
+        /// </summary>
+        internal static string ViewNameIsInvalidException {
+            get {
+                return ResourceManager.GetString("ViewNameIsInvalidException", resourceCulture);
+            }
+        }
+    }
+}

src/Chaliy Updatable Xml DataSource/Properties/Resources.resx

+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="InsterFailRootNodeDoesNotExistsException" xml:space="preserve">
+    <value>Insert fail. Root node does not exists.</value>
+  </data>
+  <data name="SortFailExpressoinWrongException" xml:space="preserve">
+    <value>Sort fail. Sort expression is wrong.</value>
+  </data>
+  <data name="ViewNameIsInvalidException" xml:space="preserve">
+    <value>View name '{0}' is invalid.</value>
+  </data>
+</root>

src/Chaliy Updatable Xml DataSource/UpdatableXmlDataNode.cs

+/*
+    Purpose: Data holder for all xml node data.
+ 
+    Original file name:  UpdatableXmlDataNode.cs
+
+    Copyright: Mike Chaliy (mike@chaliy.com). All rights reserved.
+
+    License: This work is licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/).
+    <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <Work rdf:about="">
+        <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
+        <dc:title>.Net 2.0 Updatable Xml DataSource Control</dc:title>
+        <dc:date>2006</dc:date>
+        <dc:description>Represents an XML editable data source to data-bound controls.</dc:description>
+        <dc:creator>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:creator>
+        <dc:rights>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:rights>
+        <dc:source rdf:resource="http://www.chaliy.com/Sources/UpdatableXmlDataSource/" />
+      </Work>
+      <License rdf:about="http://creativecommons.org/licenses/by/2.5/">
+        <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </License>
+    </rdf:RDF>
+*/
+
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.ComponentModel;
+
+namespace Chaliy.Web.UI
+{
+    /// <summary>
+    ///     Data holder for all xml node data.
+    /// </summary>
+    public class UpdatableXmlDataNode : ICustomTypeDescriptor
+    {
+        #region Fields
+
+        private PropertyDescriptorCollection _propertyDescriptors;
+        private object[] _values;
+
+        #endregion
+
+        #region Constructors
+
+        /// <summary>
+        /// 	Initializes a new instance of the <see cref="UpdatableXmlDataNode"/> class.
+        /// </summary>
+        /// <param name="values">The values.</param>
+        /// <param name="propertyDescriptors">The property descriptors.</param>
+        internal UpdatableXmlDataNode(object[] values, PropertyDescriptorCollection propertyDescriptors)
+        {
+            this._values = values;
+            this._propertyDescriptors = propertyDescriptors;
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        ///     Indicates the value at the specified field in its native format given the field index. This property is read-only.
+        /// </summary>        
+        /// <param name="index">The index of the field.</param>
+        /// <returns>
+        ///     The value at the specified field in its native format.
+        /// </returns>
+        public object this[int index]
+        {
+            get
+            {
+                return this.GetValue(index);
+            }
+        }
+
+
+        #endregion
+
+        #region Implementation
+
+        /// <summary>
+        ///     Returns the value of the specified attribute.
+        /// </summary>        
+        /// <param name="index">The index of the field.</param>
+        /// <returns>
+        ///     The value to return.
+        /// </returns>
+        public object GetValue(int index)
+        {
+            return this._values[index];
+        }
+
+        #endregion
+
+        #region ICustomTypeDescriptor Members
+
+        /// <summary>
+        ///     Returns a collection of custom attributes for this instance of a component.
+        /// </summary>
+        /// <returns>
+        ///     An <see cref="T:System.ComponentModel.AttributeCollection"></see> containing the attributes for this object.
+        /// </returns>
+        AttributeCollection ICustomTypeDescriptor.GetAttributes()
+        {
+            return AttributeCollection.Empty;
+        }
+
+        /// <summary>
+        ///     Returns the class name of this instance of a component.
+        /// </summary>
+        /// <returns>
+        ///     The class name of the object, or null if the class does not have a name.
+        /// </returns>
+        string ICustomTypeDescriptor.GetClassName()
+        {
+            return null;
+        }
+
+        /// <summary>
+        ///     Returns the name of this instance of a component.
+        /// </summary>
+        /// <returns>
+        ///     The name of the object, or null if the object does not have a name.
+        /// </returns>
+        string ICustomTypeDescriptor.GetComponentName()
+        {
+            return null;
+        }
+
+        /// <summary>
+        ///     Returns a type converter for this instance of a component.
+        /// </summary>
+        /// <returns>
+        ///     A <see cref="T:System.ComponentModel.TypeConverter"></see> that is the converter for this object, or null if there is no <see cref="T:System.ComponentModel.TypeConverter"></see> for this object.
+        /// </returns>
+        TypeConverter ICustomTypeDescriptor.GetConverter()
+        {
+            return null;
+        }
+
+        /// <summary>
+        ///     Returns the default event for this instance of a component.
+        /// </summary>
+        /// <returns>
+        ///     An <see cref="T:System.ComponentModel.EventDescriptor"></see> that represents the default event for this object, or null if this object does not have events.
+        /// </returns>
+        EventDescriptor ICustomTypeDescriptor.GetDefaultEvent()
+        {
+            return null;
+        }
+
+        /// <summary>
+        ///     Returns the default property for this instance of a component.
+        /// </summary>
+        /// <returns>
+        ///     A <see cref="T:System.ComponentModel.PropertyDescriptor"></see> that represents the default property for this object, or null if this object does not have properties.
+        /// </returns>
+        PropertyDescriptor ICustomTypeDescriptor.GetDefaultProperty()
+        {
+            return null;
+        }
+
+        /// <summary>
+        ///     Returns an editor of the specified type for this instance of a component.
+        /// </summary>
+        /// <param name="editorBaseType">A <see cref="T:System.Type"></see> that represents the editor for this object.</param>
+        /// <returns>
+        ///     An <see cref="T:System.Object"></see> of the specified type that is the editor for this object, or null if the editor cannot be found.
+        /// </returns>
+        object ICustomTypeDescriptor.GetEditor(Type editorBaseType)
+        {
+            return null;
+        }
+
+        /// <summary>
+        ///     Returns the events for this instance of a component using the specified attribute array as a filter.
+        /// </summary>
+        /// <param name="attributes">An array of type <see cref="T:System.Attribute"></see> that is used as a filter.</param>
+        /// <returns>
+        ///     An <see cref="T:System.ComponentModel.EventDescriptorCollection"></see> that represents the filtered events for this component instance.
+        /// </returns>
+        EventDescriptorCollection ICustomTypeDescriptor.GetEvents(Attribute[] attributes)
+        {
+            return EventDescriptorCollection.Empty;
+        }
+
+        /// <summary>
+        ///     Returns the events for this instance of a component.
+        /// </summary>
+        /// <returns>
+        ///     An <see cref="T:System.ComponentModel.EventDescriptorCollection"></see> that represents the events for this component instance.
+        /// </returns>
+        EventDescriptorCollection ICustomTypeDescriptor.GetEvents()
+        {
+            return EventDescriptorCollection.Empty;
+        }
+
+        /// <summary>
+        ///     Returns the properties for this instance of a component using the attribute array as a filter.
+        /// </summary>
+        /// <param name="attributes">An array of type <see cref="T:System.Attribute"></see> that is used as a filter.</param>
+        /// <returns>
+        ///     A <see cref="T:System.ComponentModel.PropertyDescriptorCollection"></see> that represents the filtered properties for this component instance.
+        /// </returns>
+        PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties(Attribute[] attributes)
+        {
+            if (this._propertyDescriptors == null)
+            {
+                this._propertyDescriptors = PropertyDescriptorCollection.Empty;
+            }
+
+            return this._propertyDescriptors;
+        }
+
+        /// <summary>
+        ///     Returns the properties for this instance of a component.
+        /// </summary>
+        /// <returns>
+        ///     A <see cref="T:System.ComponentModel.PropertyDescriptorCollection"></see> that represents the properties for this component instance.
+        /// </returns>
+        PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties()
+        {
+            return ((ICustomTypeDescriptor)this).GetProperties(null);
+        }
+
+        /// <summary>
+        ///     Returns an object that contains the property described by the specified property descriptor.
+        /// </summary>
+        /// <param name="pd">A <see cref="T:System.ComponentModel.PropertyDescriptor"></see> that represents the property whose owner is to be found.</param>
+        /// <returns>
+        ///     An <see cref="T:System.Object"></see> that represents the owner of the specified property.
+        /// </returns>
+        object ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor pd)
+        {
+            return this;
+        }
+
+        #endregion
+    }
+}

src/Chaliy Updatable Xml DataSource/UpdatableXmlDataSource.cs

+/*
+    Purpose: Represents an XML editable data source to data-bound controls.
+ 
+    Original file name:  UpdatableXmlDataSource.cs
+
+    Copyright: Mike Chaliy (mike@chaliy.com). All rights reserved.
+
+    License: This work is licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/).
+    <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <Work rdf:about="">
+        <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
+        <dc:title>.Net 2.0 Updatable Xml DataSource Control</dc:title>
+        <dc:date>2006</dc:date>
+        <dc:description>Represents an XML editable data source to data-bound controls.</dc:description>
+        <dc:creator>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:creator>
+        <dc:rights>
+          <Agent>
+            <dc:title>Mike Chaliy</dc:title>
+          </Agent>
+        </dc:rights>
+        <dc:source rdf:resource=&qu