2002-03-27 Duncan Mak <duncan@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml.Schema / XmlSchemaAttribute.cs
1 // Author: Dwivedi, Ajay kumar\r
2 //            Adwiv@Yahoo.com\r
3 using System;\r
4 using System.Xml;\r
5 using System.ComponentModel;\r
6 using System.Xml.Serialization;\r
7 \r
8 namespace System.Xml.Schema\r
9 {\r
10         /// <summary>\r
11         /// Summary description for XmlSchemaAttribute.\r
12         /// </summary>\r
13         public class XmlSchemaAttribute : XmlSchemaAnnotated\r
14         {\r
15                 private object attributeType;\r
16                 private string defaultValue;\r
17                 private string fixedValue;\r
18                 private XmlSchemaForm form;\r
19                 private string name;\r
20                 private XmlQualifiedName qualifiedName;\r
21                 private XmlQualifiedName refName;\r
22                 private XmlSchemaSimpleType schemaType;\r
23                 private XmlQualifiedName schemaTypeName;\r
24                 private XmlSchemaUse use;\r
25 \r
26                 public XmlSchemaAttribute()\r
27                 {\r
28                         //FIXME: Docs says the default is optional.\r
29                         //Whereas the MS implementation has default None.\r
30                         use = XmlSchemaUse.None;\r
31                         qualifiedName = XmlQualifiedName.Empty;\r
32                         refName = XmlQualifiedName.Empty;\r
33                 }\r
34 \r
35                 // Properties\r
36                 [XmlIgnore]\r
37                 public object AttributeType \r
38                 { //FIXME: This is not correct. Is it?\r
39                         get{ return attributeType; }\r
40                 }\r
41 \r
42                 [DefaultValue(null)]\r
43                 [System.Xml.Serialization.XmlAttribute("default")]\r
44                 public string DefaultValue \r
45                 {\r
46                         get{ return defaultValue;}\r
47                         set\r
48                         { // Default Value and fixed Value are mutually exclusive\r
49                                 fixedValue = null;\r
50                                 defaultValue = value;\r
51                         }\r
52                 }\r
53 \r
54                 [DefaultValue(null)]\r
55                 [System.Xml.Serialization.XmlAttribute("fixed")]\r
56                 public string FixedValue \r
57                 {\r
58                         get{ return fixedValue;}\r
59                         set\r
60                         { // Default Value and fixed Value are mutually exclusive\r
61                                 defaultValue = null;\r
62                                 fixedValue = value;\r
63                         }\r
64                 }\r
65 \r
66                 [DefaultValue(XmlSchemaForm.None)]\r
67                 [System.Xml.Serialization.XmlAttribute("form")]\r
68                 public XmlSchemaForm Form \r
69                 {\r
70                         get{ return form;}\r
71                         set{ form = value;}\r
72                 }\r
73 \r
74                 [System.Xml.Serialization.XmlAttribute("name")]\r
75                 public string Name \r
76                 {\r
77                         get{ return name;}\r
78                         set\r
79                         { // Name and RefName are mutually exclusive\r
80                                 refName = null;\r
81                                 name  = value;\r
82                         }\r
83                 }\r
84                 [XmlIgnore]\r
85                 public XmlQualifiedName QualifiedName \r
86                 {\r
87                         get{ return qualifiedName;}\r
88                 }\r
89 \r
90                 [System.Xml.Serialization.XmlAttribute("ref")]\r
91                 public XmlQualifiedName RefName \r
92                 {\r
93                         get{ return refName;}\r
94                         set\r
95                         { // Name and RefName are mutually exclusive\r
96                                 name = null;\r
97                                 refName = value; \r
98                         }\r
99                 }\r
100 \r
101                 [XmlElement("simpleType",Namespace="http://www.w3.org/2001/XMLSchema")]\r
102                 public XmlSchemaSimpleType SchemaType \r
103                 {\r
104                         get{ return schemaType;}\r
105                         set{ schemaType = value;}\r
106                 }\r
107                 \r
108                 [System.Xml.Serialization.XmlAttribute("type")]\r
109                 public XmlQualifiedName SchemaTypeName \r
110                 {\r
111                         get{ return schemaTypeName;}\r
112                         set{ schemaTypeName = value;}\r
113                 }\r
114 \r
115                 [DefaultValue(XmlSchemaUse.None)]\r
116                 [System.Xml.Serialization.XmlAttribute("use")]\r
117                 public XmlSchemaUse Use \r
118                 {\r
119                         get{ return use;}\r
120                         set{ use = value;}\r
121                 }\r
122         }\r
123 }\r