I just went and got all of the members of the C++ XML class from MSDN Help and came up with this class:

public __gc class Xml : public Control
__property virtual String* get_ClientID();
__property virtual ControlCollection* get_Controls();
__property XmlDocument* get_Document();
__property void set_Document(XmlDocument*);
__property String* get_DocumentContent();
__property void set_DocumentContent(String*);
__property String* get_DocumentSource();
__property void set_DocumentSource(String*);
__property virtual bool get_EnableViewState();
__property virtual void set_EnableViewState(bool);
__property virtual String* get_ID();
__property virtual void set_ID(String*);
__property virtual Control* get_NamingContainer();
__property virtual Page* get_Page();
__property virtual void set_Page(Page*);
__property virtual Control* get_Parent();
__property ISite* get_Site();
__property void set_Site(ISite*);
__property virtual String* get_TemplateSourceDirectory();
__property XslTransform* get_Transform();
__property void set_Transform(XslTransform*);
__property XsltArgumentList* get_TransformArgumentList();
__property void set_TransformArgumentList(XsltArgumentList*);
__property String* get_TransformSource();
__property void set_TransformSource(String*);
__property virtual String* get_UniqueID();
__property virtual bool get_Visible();
__property virtual void set_Visible(bool);
virtual void DataBind();
virtual void Dispose();
virtual bool Equals(Object*);
static bool Equals(Object*, Object*);
virtual Control* FindControl(String*);
virtual int GetHashCode();
Type* GetType();
virtual bool HasControls();
void RenderControl(HtmlTextWriter* writer);
String* ResolveUrl(String* relativeUrl);
void SetRenderMethodDelegate(RenderMethod* renderMethod);
virtual String* ToString();
__event EventHandler* DataBinding;
__sealed __event EventHandler* Disposed;
__event EventHandler* Init;
__event EventHandler* Load;
__event EventHandler* PreRender;
__event EventHandler* Unload;
virtual Control* FindControl(String*);


virtual Control* FindControl(String*, int);
__property bool get_ChildControlsCreated();
__property void set_ChildControlsCreated(bool);
__property virtual HttpContext* get_Context();
__property EventHandlerList* get_Events();
__property bool get_HasChildViewState();
__property bool get_IsTrackingViewState();
__property virtual StateBag* get_ViewState();
__property virtual bool get_ViewStateIgnoresCase();
virtual void AddParsedSubObject(Object* obj);
void BuildProfileTree(String* parentId,bool calcViewState);
void ClearChildViewState();
virtual void CreateChildControls();
virtual ControlCollection* CreateControlCollection();
virtual void EnsureChildControls();
virtual Control* FindControl(String*, int);
bool IsLiteralContent();
virtual void LoadViewState(Object* savedState);
String* MapPathSecure(String* virtualPath);
Object* MemberwiseClone();
virtual bool OnBubbleEvent(Object* source,EventArgs* args);
virtual void OnDataBinding(EventArgs* e);
virtual void OnInit(EventArgs* e);
virtual void OnLoad(EventArgs* e);
virtual void OnPreRender(EventArgs* e);
virtual void OnUnload(EventArgs* e);
void RaiseBubbleEvent(Object* source,EventArgs* args);
virtual void RenderChildren(HtmlTextWriter* writer);
virtual Object* SaveViewState();
virtual void TrackViewState();


My first question is: Why is the constructor called XML and the destructor Object?

Also, anyone who wants to go down and try to make an implementation of each member of this class with me let me know.