2 // RelaxngDefaultDatatypes.cs
5 // Atsushi Enomoto <atsushi@ximian.com>
7 // Copyright (c) 2004 Novell Inc.
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 namespace Commons.Xml.Relaxng
36 public class RelaxngString : RelaxngDatatype
38 static RelaxngString instance;
39 static RelaxngString ()
41 instance = new RelaxngString ();
44 internal static RelaxngString Instance {
45 get { return instance; }
48 public override string Name { get { return "string"; } }
49 public override string NamespaceURI { get { return String.Empty; } }
51 public override bool IsValid (string text, XmlReader reader)
56 public override object Parse (string text, XmlReader reader)
61 public override bool Compare (object o1, object o2)
63 return (string) o1 == (string) o2;
67 public class RelaxngToken : RelaxngDatatype
69 static RelaxngToken instance;
70 static RelaxngToken ()
72 instance = new RelaxngToken ();
75 internal static RelaxngToken Instance {
76 get { return instance; }
79 public override string Name { get { return "token"; } }
80 public override string NamespaceURI { get { return String.Empty; } }
82 public override bool IsValid (string text, XmlReader reader)
87 public override object Parse (string text, XmlReader reader)
89 return Util.NormalizeWhitespace (text);
92 public override bool Compare (object o1, object o2)
94 return Util.NormalizeWhitespace ((string) o1) ==
95 Util.NormalizeWhitespace ((string) o2);