New test.
[mono.git] / mcs / class / System.XML / System.Xml.Schema / XmlSchemaFacet.cs
1 // Author: Dwivedi, Ajay kumar\r
2 //            Adwiv@Yahoo.com\r
3
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining
6 // a copy of this software and associated documentation files (the
7 // "Software"), to deal in the Software without restriction, including
8 // without limitation the rights to use, copy, modify, merge, publish,
9 // distribute, sublicense, and/or sell copies of the Software, and to
10 // permit persons to whom the Software is furnished to do so, subject to
11 // the following conditions:
12 // 
13 // The above copyright notice and this permission notice shall be
14 // included in all copies or substantial portions of the Software.
15 // 
16 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 //
24 using System;\r
25 using System.Xml;\r
26 using System.Xml.Serialization;\r
27 using System.ComponentModel;\r
28 \r
29 namespace System.Xml.Schema\r
30 {\r
31                         \r
32         /// <summary>\r
33         /// Summary description for XmlSchemaFacet.\r
34         /// </summary>\r
35         public abstract class XmlSchemaFacet : XmlSchemaAnnotated\r
36         {\r
37                 [Flags]\r
38                 internal protected enum Facet {\r
39                         None = 0,\r
40                         length = 1 ,\r
41                         minLength = 2,\r
42                         maxLength = 4,\r
43                         pattern = 8,\r
44                         enumeration = 16,\r
45                         whiteSpace = 32,\r
46                         maxInclusive = 64,\r
47                         maxExclusive = 128,\r
48                         minExclusive = 256,\r
49                         minInclusive = 512, \r
50                         totalDigits = 1024,\r
51                         fractionDigits = 2048\r
52                 };\r
53  \r
54                 internal static readonly Facet AllFacets = \r
55                                         Facet.length | Facet.minLength |  Facet.maxLength |\r
56                                         Facet.minExclusive | Facet.maxExclusive |\r
57                                         Facet.minInclusive | Facet.maxInclusive |\r
58                                         Facet.pattern | Facet.enumeration | Facet.whiteSpace |\r
59                                         Facet.totalDigits | Facet.fractionDigits;\r
60                 \r
61                 internal virtual Facet ThisFacet { get { return Facet.None; } }\r
62                 \r
63                 private bool isFixed;\r
64                 private string val;\r
65 \r
66                 protected XmlSchemaFacet()\r
67                 {\r
68                 }\r
69                 \r
70                 [System.Xml.Serialization.XmlAttribute("value")]\r
71                 public string Value\r
72                 {\r
73                         get{ return  val; } \r
74                         set{ val = value; }\r
75                 }\r
76 \r
77                 [DefaultValue(false)]\r
78                 [System.Xml.Serialization.XmlAttribute("fixed")]\r
79                 public virtual bool IsFixed \r
80                 {\r
81                         get{ return  isFixed; }\r
82                         set{ isFixed = value; }\r
83                 }\r
84         }\r
85 }\r