2005-01-26 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Wed, 26 Jan 2005 09:59:27 +0000 (09:59 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Wed, 26 Jan 2005 09:59:27 +0000 (09:59 -0000)
* RelaxngGrammar.cs, RelaxngPattern.cs, RelaxngNameClass.cs :
  added RelaxngPattern.WriteCompact(TextWriter) and all internal
  WriteRnc() overrides.

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

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/RelaxngNameClass.cs
mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng/RelaxngPattern.cs

index 6354c941f30593e63f1b8d93943d6961ecb2c68f..28a1674dd67a7a4d2024558698932000bae027b5 100644 (file)
@@ -1,3 +1,9 @@
+2005-01-26  Atsushi Enomoto <atsushi@ximian.com>
+
+       * RelaxngGrammar.cs, RelaxngPattern.cs, RelaxngNameClass.cs :
+         added RelaxngPattern.WriteCompact(TextWriter) and all internal 
+         WriteRnc() overrides.
+
 2004-12-06  Atsushi Enomoto <atsushi@ximian.com>
 
        * RelaxngValidatingReader.cs :
index e0a8568e245906f161e79929cfe8c537bcc85199..f106009408df0f0a22457715ad3b6b90fd69a50c 100644 (file)
@@ -36,6 +36,7 @@ using System.IO;
 using System.Net;\r
 using System.Xml;\r
 using Commons.Xml.Relaxng.Derivative;\r
+using Commons.Xml.Relaxng.Rnc;\r
 \r
 namespace Commons.Xml.Relaxng\r
 {\r
@@ -142,6 +143,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteGrammar (this);\r
+               }\r
+\r
                internal Hashtable IncludedUris {\r
                        get { return includedUris; }\r
                }\r
index f0995001fa48c9f8d9015d27cc943d277a8eb6f3..8152884e7e3307d847e74552f79ffe5e0bf0a847 100644 (file)
@@ -37,6 +37,7 @@ using System.IO;
 using System.Net;\r
 using System.Xml;\r
 using Commons.Xml.Relaxng.Derivative;\r
+using Commons.Xml.Relaxng.Rnc;\r
 \r
 namespace Commons.Xml.Relaxng\r
 {\r
@@ -112,6 +113,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteAnyName (this);\r
+               }\r
+\r
                internal override RdpNameClass Compile (RelaxngGrammar g)\r
                {\r
                        if (except != null) {\r
@@ -160,6 +166,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteNsName (this);\r
+               }\r
+\r
                internal override RdpNameClass Compile (RelaxngGrammar g)\r
                {\r
                        if (except != null) {\r
@@ -221,6 +232,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteName (this);\r
+               }\r
+\r
                internal override RdpNameClass Compile (RelaxngGrammar g)\r
                {\r
                        return new RdpName (ncname, ns);\r
@@ -253,6 +269,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteNameChoice (this);\r
+               }\r
+\r
                internal override RdpNameClass Compile (RelaxngGrammar g)\r
                {\r
                        // Flatten names into RdpChoice. See 4.12.\r
@@ -294,6 +315,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteNameExcept (this);\r
+               }\r
+\r
                internal RdpNameClass Compile (RelaxngGrammar g)\r
                {\r
                        // Flatten names into RdpGroup. See 4.12.\r
index 4a896af2628c4046625b010137fda6ed26964f67..94615917fa76b87fd1c587c9092ed242a266d63c 100644 (file)
@@ -36,6 +36,13 @@ using System.Collections;
 using System.IO;\r
 using System.Xml;\r
 using Commons.Xml.Relaxng.Derivative;\r
+using Commons.Xml.Relaxng.Rnc;\r
+\r
+#if NET_2_0\r
+using NSResoler = System.Xml.IXmlNamespaceResolver;\r
+#else\r
+using NSResolver = System.Xml.XmlNamespaceManager;\r
+#endif\r
 \r
 namespace Commons.Xml.Relaxng\r
 {\r
@@ -66,7 +73,9 @@ namespace Commons.Xml.Relaxng
                        set { baseUri = value; }\r
                }\r
 \r
-               public abstract void Write (XmlWriter write);\r
+               public abstract void Write (XmlWriter writer);\r
+\r
+               internal abstract void WriteRnc (RncWriter writer);\r
        }\r
 \r
        public abstract class RelaxngSingleContentPattern : RelaxngPattern\r
@@ -177,6 +186,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteStart (this);\r
+               }\r
+\r
                internal RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        return p.Compile (grammar);\r
@@ -218,6 +232,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteDefine (this);\r
+               }\r
+\r
                internal RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        return makeSingle (grammar);\r
@@ -286,6 +305,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteInclude (this);\r
+               }\r
+\r
                // compile into div\r
                internal RelaxngDiv Compile (RelaxngGrammar grammar)\r
                {\r
@@ -399,6 +423,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteDiv (this);\r
+               }\r
+\r
                internal void Compile (RelaxngGrammar grammar)\r
                {\r
                        foreach (RelaxngDiv div in divs)\r
@@ -481,6 +510,15 @@ namespace Commons.Xml.Relaxng
                        this.IsCompiled = true;\r
                }\r
 \r
+               public void WriteCompact (TextWriter writer)\r
+               {\r
+                       WriteRnc (new RncWriter (writer));\r
+               }\r
+\r
+               public void WriteCompact (TextWriter writer, NSResolver res)\r
+               {\r
+                       WriteRnc (new RncWriter (writer, res));\r
+               }\r
 \r
                // Internal\r
                internal XmlResolver Resolver {\r
@@ -577,6 +615,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteNotAllowed (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        return RdpNotAllowed.Instance;\r
@@ -604,6 +647,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteEmpty (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        return RdpEmpty.Instance;\r
@@ -631,6 +679,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteText (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        return RdpText.Instance;\r
@@ -703,6 +756,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteData (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
 //                     RdpParamList rdpl = new RdpParamList ();\r
@@ -758,6 +816,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteValue (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        IsCompiled = true;\r
@@ -789,6 +852,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteList (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
 \r
@@ -828,6 +896,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteElement (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        return new RdpElement (\r
@@ -875,6 +948,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteAttribute (this);\r
+               }\r
+\r
                private void checkInvalidAttrNameClass (RdpNameClass nc)\r
                {\r
                        string xmlnsNS = "http://www.w3.org/2000/xmlns";\r
@@ -1027,6 +1105,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteRef (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        // Important!! This compile method only generates stub.\r
@@ -1064,6 +1147,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteParentRef (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        IsCompiled = false;\r
@@ -1106,6 +1194,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteExternalRef (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        grammar.CheckIncludeRecursion (Href);\r
@@ -1157,6 +1250,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteOneOrMore (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        IsCompiled = true;\r
@@ -1182,6 +1280,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteZeroOrMore (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        IsCompiled = true;\r
@@ -1209,6 +1312,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteOptional (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        IsCompiled = true;\r
@@ -1235,6 +1343,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteMixed (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        IsCompiled = true;\r
@@ -1260,6 +1373,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteChoice (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        IsCompiled = true;\r
@@ -1285,6 +1403,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteGroup (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        IsCompiled = true;\r
@@ -1310,6 +1433,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteInterleave (this);\r
+               }\r
+\r
                internal override RdpPattern Compile (RelaxngGrammar grammar)\r
                {\r
                        IsCompiled = true;\r
@@ -1350,6 +1478,11 @@ namespace Commons.Xml.Relaxng
                        writer.WriteEndElement ();\r
                }\r
 \r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteParam (this);\r
+               }\r
+\r
                internal RdpParam Compile (RelaxngGrammar grammar)\r
                {\r
                        IsCompiled = true;\r
@@ -1403,6 +1536,11 @@ namespace Commons.Xml.Relaxng
                                p.Write (writer);\r
                        writer.WriteEndElement ();\r
                }\r
+\r
+               internal override void WriteRnc (RncWriter writer)\r
+               {\r
+                       writer.WriteDataExcept (this);\r
+               }\r
        }\r
 \r
        internal class RelaxngRefPattern\r