2002-03-13 Duncan Mak <duncan@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml / XmlComment.cs
index f6d650654223e3872c4b8c00e8a8d19b82bda157..aed7777f9b2aa026cd6954e41c7256b91ba75593 100644 (file)
+//
+// System.Xml.XmlComment
+//
+// Author:
+//   Kral Ferch <kral_ferch@hotmail.com>
+//
+// (C) 2002 Kral Ferch
+//
+
 using System;
 
 namespace System.Xml
 {
-       /// <summary>
-       /// 
-       /// </summary>
-       /// 
-
-       /*
-        * Section 2.5 of the XML spec says...
-       [Definition: Comments may appear anywhere in a document outside other markup;   in addition, they may appear within the document type declaration at places     allowed by the grammar. They are not part of the document's character data;     an XML processor may, but need not, make it possible for an application to retrieve     the text of comments. For compatibility, the string "--" (double-hyphen)        must not occur within comments.] Parameter entity references are not recognized within comments.
-       
-       Note that the grammar does not allow a comment ending in --->.
-       Comment ::=   '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
-       */
        public class XmlComment : XmlCharacterData
        {
-               // Private data members
+               #region Constructors
 
-               // public properties
-               public override string InnerText 
-               {
-                       get
-                       {
-                               // TODO - implement XmlComment.InnerText.get
-                               throw new NotImplementedException();
-                       }
-                       
-                       set
-                       {
-                               // TODO - implement XmlComment.InnerText.set
-                               throw new NotImplementedException();
-                       }
-               }
+               protected internal XmlComment(string comment, XmlDocument doc) : base(comment, doc) { }
+
+               #endregion
 
-               public override string LocalName 
+               #region Properties
+
+               public override string LocalName
                {
-                       get
-                       {
+                       get {
                                return "#comment";
                        }
                }
 
-               public override string Name 
+               public override string Name
                {
-                       get
-                       {
+                       get {
                                return "#comment";
                        }
                }
 
-               public override string Value 
+               public override XmlNodeType NodeType
                {
-                       get
-                       {
-                               return Fvalue;
-                       }
-                       
-                       set
-                       {
-                               // TODO - Do our well-formedness checks on Value.set? (no)
-                               Fvalue = value;
+                       get {
+                               return XmlNodeType.Comment;
                        }
                }
                
+               #endregion
+
+               #region Methods
 
-               // Public Methods
                public override XmlNode CloneNode(bool deep)
                {
-                       // TODO - implement XmlComment.CloneNode(bool)
-                       throw new NotImplementedException();
+                       return new XmlComment(Value, OwnerDocument);
                }
 
+               [MonoTODO]
                public override void WriteContentTo(XmlWriter w)
                {
-                       // TODO - implement XmlComment.WriteContentTo(XmlWriter)
-                       throw new NotImplementedException();
+                       throw new NotImplementedException ();
                }
 
+               [MonoTODO]
                public override void WriteTo(XmlWriter w)
                {
-                       // TODO - implement XmlComment.WriteTo(XmlWriter)
-                       throw new NotImplementedException();
+                       throw new NotImplementedException ();
                }
 
-
-               // Internal methods
-               /// <summary>
-               /// Returns an exception object if passed text is not well-formed.
-               /// Text is passed without introductory syntax elements.
-               /// For comments, the leading "<!--" and trailing "-->" should be stripped.
-               /// </summary>
-               /// <param name="data"></param>
-               /// <returns></returns>
-               private XmlException wellFormed(string data, XmlInputSource src)
-               {
-                       if (data.IndexOf("--") != -1)
-                               return new XmlException("Invalid characters (\"--\") in comment", src);
-                       if (data[0] == '-')
-                               return new XmlException("Invalid comment beginning (<!---)", src);
-                       if (data[data.Length - 1] == '-')
-                               return new XmlException("Invalid comment ending (--->)", src);
-                       return null;
-
-               }
-               // Constructors
-               internal XmlComment(XmlDocument aOwner, string txt, XmlInputSource src) : base(aOwner)
-               {
-                       XmlException e = wellFormed(txt, src);
-
-                       if ( e == null )
-                       {
-                               Fvalue = txt;
-                       }
-                       else
-                               throw e;
-               }
+               #endregion
        }
 }