2003-08-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
authorAtsushi Eno <atsushieno@gmail.com>
Thu, 7 Aug 2003 22:00:44 +0000 (22:00 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Thu, 7 Aug 2003 22:00:44 +0000 (22:00 -0000)
* BuiltInDatatypes.cs : Fixed whitespace facet in XsdToken.
  Tokenized type of nmtokens and entities is string [].
* XmlSchema.cs : Changed IsCompile implementation a bit.
  Compile() should reset compiled contents.
* XmlSchemaDatatype.cs : Fixed collapsing Normalize().
* XmlSchemaObject.cs : added CompilationId initialization.

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

mcs/class/System.XML/System.Xml.Schema/BuiltInDatatype.cs
mcs/class/System.XML/System.Xml.Schema/ChangeLog
mcs/class/System.XML/System.Xml.Schema/XmlSchema.cs
mcs/class/System.XML/System.Xml.Schema/XmlSchemaDatatype.cs
mcs/class/System.XML/System.Xml.Schema/XmlSchemaObject.cs

index bc8f75cf9ee675dcc64c5402dc63e588d1c913bf..a71c6f2e3f5fd51d5bb347b4b0de666d9ee1521a 100644 (file)
@@ -112,6 +112,7 @@ namespace Mono.Xml.Schema
        {\r
                internal XsdToken ()\r
                {\r
+                       this.WhitespaceValue = XsdWhitespaceFacet.Collapse;\r
                }\r
 \r
                public override XmlTokenizedType TokenizedType {\r
@@ -176,7 +177,11 @@ namespace Mono.Xml.Schema
                        get { return typeof (string []); }\r
                }\r
 \r
-               // ParseValue () method is as same as that of xs:string\r
+               readonly char [] whitespaceArray = new char [] {' '};\r
+               public override object ParseValue (string value, XmlNameTable nt, XmlNamespaceManager nsmgr)\r
+               {\r
+                       return this.Normalize (value).Split (whitespaceArray);\r
+               }\r
        }\r
 \r
        // xs:Name\r
@@ -307,7 +312,11 @@ namespace Mono.Xml.Schema
                        get { return typeof (string []); }\r
                }\r
 \r
-               // ParseValue () method is as same as that of xs:string\r
+               readonly char [] whitespaceArray = new char [] {' '};\r
+               public override object ParseValue (string value, XmlNameTable nt, XmlNamespaceManager nsmgr)\r
+               {\r
+                       return this.Normalize (value).Split (whitespaceArray);\r
+               }\r
        }\r
 \r
        // xs:NOTATION\r
index 077f00d13bb62e6bea7087b5b334c2ae489c4984..9525453a5fea14404d72c2768a43e41db3bfd294 100755 (executable)
@@ -1,3 +1,12 @@
+2003-08-07  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * BuiltInDatatypes.cs : Fixed whitespace facet in XsdToken.
+         Tokenized type of nmtokens and entities is string [].
+       * XmlSchema.cs : Changed IsCompile implementation a bit.
+         Compile() should reset compiled contents.
+       * XmlSchemaDatatype.cs : Fixed collapsing Normalize().
+       * XmlSchemaObject.cs : added CompilationId initialization.
+
 2003-08-05  Lluis Sanchez Gual <lluis@ximian.com>
 
        * XmlSchema.cs: Set IsCompiled to true after compiling.
index a7cdb9f130553a2d8f624fa285567579050d486d..6cebd515c19e8c145da0d537cf1807b156514831 100755 (executable)
@@ -146,7 +146,7 @@ namespace System.Xml.Schema
                 [XmlIgnore]\r
                 public bool IsCompiled\r
                 {\r
-                        get{ return isCompiled;}\r
+                        get{ return this.CompilationId != Guid.Empty;}\r
                 }\r
 \r
                 [XmlIgnore]\r
@@ -270,6 +270,15 @@ namespace System.Xml.Schema
                        schemas = new XmlSchemaCollection ();\r
                        schemas.Add (this);\r
 \r
+                       attributeGroups = new XmlSchemaObjectTable ();\r
+                       attributes = new XmlSchemaObjectTable ();\r
+                       elements = new XmlSchemaObjectTable ();\r
+                       groups = new XmlSchemaObjectTable ();\r
+                       missingElementTypeRefs.Clear ();\r
+                       missingBaseSchemaTypeRefs.Clear ();\r
+                       notations = new XmlSchemaObjectTable ();\r
+                       schemaTypes = new XmlSchemaObjectTable ();\r
+\r
                        //1. Union and List are not allowed in block default\r
                         if(BlockDefault != XmlSchemaDerivationMethod.All)\r
                         {\r
index 1910ea930afa14c7c3cda3769c863f8ee88316a3..05a817b616f9cd4d5d8b7bc25febc7b02acffd8d 100755 (executable)
@@ -36,17 +36,27 @@ namespace System.Xml.Schema
 \r
                char [] wsChars = new char [] {' ', '\t', '\n', '\r'};\r
 \r
+               StringBuilder sb = new StringBuilder ();\r
                internal string Normalize (string s)\r
                {\r
                        switch (Whitespace) {\r
                        case XsdWhitespaceFacet.Collapse:\r
-                               return String.Join (" ", s.Trim ().Split (wsChars));\r
+                               string [] arr = s.Trim ().Split (wsChars);\r
+                               foreach (string one in arr)\r
+                                       if (one != "") {\r
+                                               sb.Append (one);\r
+                                               sb.Append (" ");\r
+                                       }\r
+                               string result = sb.ToString ();\r
+                               sb.Length = 0;\r
+                               return result.Trim ();\r
                        case XsdWhitespaceFacet.Replace:\r
-                               StringBuilder sb = new StringBuilder (s);\r
+                               sb.Length = 0;\r
+                               sb.Append (s);\r
                                sb.Replace ('\r', ' ');\r
                                sb.Replace ('\n', ' ');\r
                                sb.Replace ('\t', ' ');\r
-                               string result = sb.ToString ();\r
+                               result = sb.ToString ();\r
                                sb.Length = 0;\r
                                return result;\r
                        default:\r
index 6e68a6f86d8afc454b984760f196f471bbca40fa..d3769deaa04d961dd12ad4463e52da4ab7b1524e 100755 (executable)
@@ -25,6 +25,7 @@ namespace System.Xml.Schema
                {\r
                        namespaces = new XmlSerializerNamespaces();\r
                        unhandledAttributeList = null;\r
+                       CompilationId = Guid.Empty;\r
                }\r
 \r
                [XmlIgnore]\r