2004-05-30 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Sun, 30 May 2004 20:22:51 +0000 (20:22 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Sun, 30 May 2004 20:22:51 +0000 (20:22 -0000)
* RelaxngDatatypeProvider.cs : removed meaningless using alias.
* RelaxngGrammar.cs : modified ArrayList to RelaxngGrammarContentList.
  RelaxngMergedProvider.cs : Added #if PNET switch to support non-
  xmlschema available environment.
* RelaxngPattern.cs : added IGrammarContent and
  RelaxngGrammarContentList.

svn path=/trunk/mcs/; revision=28501

mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng/ChangeLog
mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng/RelaxngGrammar.cs
mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng/RelaxngMergedProvider.cs
mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng/RelaxngPattern.cs

index 4d1278d34c04ba81788b63396d68c808b67f5bec..7c247cb580b7e0c457a98822287052c405019c21 100644 (file)
@@ -1,3 +1,12 @@
+2004-05-30  Atsushi Enomoto <atsushi@ximian.com>
+
+       * RelaxngDatatypeProvider.cs : removed meaningless using alias.
+       * RelaxngGrammar.cs : modified ArrayList to RelaxngGrammarContentList.
+         RelaxngMergedProvider.cs : Added #if PNET switch to support non-
+         xmlschema available environment.
+       * RelaxngPattern.cs : added IGrammarContent and
+         RelaxngGrammarContentList.
+
 2004-03-17  Atsushi Enomoto <atsushi@ximian.com>
 
        * RelaxngNameClass.cs : Introduced RelaxngNameClassList class.
index f8ac7a6be59d16a614835643f44715e3493ecdbc..49568fc7c7c7682d7c8d06ef1712afc69b65a0d9 100644 (file)
@@ -23,10 +23,10 @@ namespace Commons.Xml.Relaxng
                        "http://relaxng.org/ns/structure/1.0";\r
 \r
                // object model fields\r
-               ArrayList starts = new ArrayList ();\r
-               ArrayList defs = new ArrayList ();\r
-               ArrayList includes = new ArrayList ();\r
-               ArrayList divs = new ArrayList ();\r
+               RelaxngGrammarContentList starts = new RelaxngGrammarContentList ();\r
+               RelaxngGrammarContentList defs = new RelaxngGrammarContentList ();\r
+               RelaxngGrammarContentList includes = new RelaxngGrammarContentList ();\r
+               RelaxngGrammarContentList divs = new RelaxngGrammarContentList ();\r
 \r
                RelaxngDatatypeProvider provider;\r
 \r
@@ -75,19 +75,19 @@ namespace Commons.Xml.Relaxng
                        get { return RelaxngPatternType.Grammar; }\r
                }\r
 \r
-               public IList Starts {\r
+               public RelaxngGrammarContentList Starts {\r
                        get { return starts; }\r
                }\r
 \r
-               public IList Defines {\r
+               public RelaxngGrammarContentList Defines {\r
                        get { return defs; }\r
                }\r
 \r
-               public IList Includes {\r
+               public RelaxngGrammarContentList Includes {\r
                        get { return includes; }\r
                }\r
 \r
-               public IList Divs {\r
+               public RelaxngGrammarContentList Divs {\r
                        get { return divs; }\r
                }\r
 \r
index bd0911d7509616a7ff5bc8480537e380de8db3d1..6079191d908f7e8ad8ef02cd57389ad647393327 100755 (executable)
@@ -20,8 +20,10 @@ namespace Commons.Xml.Relaxng
                static RelaxngMergedProvider ()\r
                {\r
                        RelaxngMergedProvider p = new RelaxngMergedProvider ();\r
+#if !PNET\r
                        p ["http://www.w3.org/2001/XMLSchema-datatypes"] = XsdDatatypeProvider.Instance;\r
                        p [XSchema.Namespace] = XsdDatatypeProvider.Instance;\r
+#endif\r
                        p [String.Empty] = RelaxngNamespaceDatatypeProvider.Instance;\r
                        defaultProvider = p;\r
                }\r
index e95188969be878f856445294b670d8af9ad2a009..e44a8a7a5f5d29f70e6f16de72322ba5261d6244 100644 (file)
@@ -121,7 +121,11 @@ namespace Commons.Xml.Relaxng
        #endregion\r
 \r
        #region Grammatical elements\r
-       public class RelaxngStart : RelaxngElementBase\r
+       public interface IGrammarContent\r
+       {\r
+       }\r
+\r
+       public class RelaxngStart : RelaxngElementBase, IGrammarContent\r
        {\r
                RelaxngPattern p;\r
                string combine;\r
@@ -155,7 +159,7 @@ namespace Commons.Xml.Relaxng
                }\r
        }\r
 \r
-       public class RelaxngDefine : RelaxngElementBase\r
+       public class RelaxngDefine : RelaxngElementBase, IGrammarContent\r
        {\r
                string name;\r
                private RelaxngPatternList patterns = new RelaxngPatternList ();\r
@@ -211,12 +215,12 @@ namespace Commons.Xml.Relaxng
                }\r
        }\r
 \r
-       public class RelaxngInclude : RelaxngElementBase\r
+       public class RelaxngInclude : RelaxngElementBase, IGrammarContent\r
        {\r
                string href;\r
-               IList starts = new ArrayList ();\r
-               IList defines = new ArrayList ();\r
-               IList divs = new ArrayList ();\r
+               RelaxngGrammarContentList starts = new RelaxngGrammarContentList ();\r
+               RelaxngGrammarContentList defines = new RelaxngGrammarContentList ();\r
+               RelaxngGrammarContentList divs = new RelaxngGrammarContentList ();\r
                string ns;\r
 \r
                public RelaxngInclude ()\r
@@ -228,15 +232,15 @@ namespace Commons.Xml.Relaxng
                        set { href = value; }\r
                }\r
 \r
-               public IList Starts {\r
+               public RelaxngGrammarContentList Starts {\r
                        get { return starts; }\r
                }\r
 \r
-               public IList Defines {\r
+               public RelaxngGrammarContentList Defines {\r
                        get { return defines; }\r
                }\r
 \r
-               public IList Divs {\r
+               public RelaxngGrammarContentList Divs {\r
                        get { return divs; }\r
                }\r
 \r
@@ -292,7 +296,7 @@ namespace Commons.Xml.Relaxng
                        // starts.\r
                        if (this.Starts.Count > 0 && g.Starts.Count == 0)\r
                                throw new RelaxngException ("When the included grammar does not contain start components, this include component must not contain start components.");\r
-                       IList appliedStarts = (this.starts.Count > 0) ?\r
+                       RelaxngGrammarContentList appliedStarts = (this.starts.Count > 0) ?\r
                                this.starts : g.Starts;\r
 \r
                        RelaxngDiv div = new RelaxngDiv ();\r
@@ -325,30 +329,30 @@ namespace Commons.Xml.Relaxng
                }\r
        }\r
 \r
-       public class RelaxngDiv : RelaxngElementBase\r
+       public class RelaxngDiv : RelaxngElementBase, IGrammarContent\r
        {\r
-               IList starts = new ArrayList ();\r
-               IList defines = new ArrayList ();\r
-               IList includes = new ArrayList ();\r
-               IList divs = new ArrayList ();\r
+               RelaxngGrammarContentList starts = new RelaxngGrammarContentList ();\r
+               RelaxngGrammarContentList defines = new RelaxngGrammarContentList ();\r
+               RelaxngGrammarContentList includes = new RelaxngGrammarContentList ();\r
+               RelaxngGrammarContentList divs = new RelaxngGrammarContentList ();\r
 \r
                public RelaxngDiv ()\r
                {\r
                }\r
 \r
-               public IList Starts {\r
+               public RelaxngGrammarContentList Starts {\r
                        get { return starts; }\r
                }\r
 \r
-               public IList Defines {\r
+               public RelaxngGrammarContentList Defines {\r
                        get { return defines; }\r
                }\r
 \r
-               public IList Includes {\r
+               public RelaxngGrammarContentList Includes {\r
                        get { return includes; }\r
                }\r
 \r
-               public IList Divs {\r
+               public RelaxngGrammarContentList Divs {\r
                        get { return divs; }\r
                }\r
 \r
@@ -480,6 +484,33 @@ namespace Commons.Xml.Relaxng
                }\r
        }\r
 \r
+       public class RelaxngGrammarContentList : CollectionBase\r
+       {\r
+               public RelaxngGrammarContentList ()\r
+               {\r
+               }\r
+\r
+               public void Add (IGrammarContent p)\r
+               {\r
+                       List.Add (p);\r
+               }\r
+\r
+               public IGrammarContent this [int i] {\r
+                       get { return this.List [i] as IGrammarContent; }\r
+                       set { this.List [i] = value; }\r
+               }\r
+\r
+               public void Insert (int pos, IGrammarContent p)\r
+               {\r
+                       List.Insert (pos, p);\r
+               }\r
+\r
+               public void Remove (IGrammarContent p)\r
+               {\r
+                       List.Remove (p);\r
+               }\r
+       }\r
+\r
        // strict to say, it's not a pattern ;)\r
        public class RelaxngNotAllowed : RelaxngPattern\r
        {\r