2 // System.Xml.Schema.XmlSchemaDatatype.cs
\r
7 // (C)2003 Atsushi Enomoto
\r
10 using System.Collections;
\r
13 using System.Xml.Schema;
\r
15 namespace Mono.Xml.Schema
\r
17 public enum XsdWhitespaceFacet
\r
25 public class XsdString : XmlSchemaDatatype
\r
27 internal XsdString ()
\r
31 public override XmlTokenizedType TokenizedType {
\r
32 get { return XmlTokenizedType.CDATA; }
\r
35 public override Type ValueType {
\r
36 get { return typeof (string); }
\r
39 public override object ParseValue (string s,
\r
40 XmlNameTable nameTable, XmlNamespaceManager nsmgr)
\r
42 return Normalize (s);
\r
45 // Fundamental Facets
\r
46 public virtual bool Bounded {
\r
47 get { return false; }
\r
49 public virtual bool Finite {
\r
50 get { return false; }
\r
52 public virtual bool Numeric {
\r
53 get { return false; }
\r
55 public virtual bool Ordered {
\r
56 get { return false; }
\r
59 // Constraining Facets
\r
60 public bool HasLengthFacet;
\r
61 public bool HasMaxLengthFacet;
\r
62 public bool HasMinLengthFacet;
\r
64 public int MaxLength;
\r
65 public int MinLength;
\r
66 public string Pattern;
\r
67 public ICollection Enumeration;
\r
70 // xs:normalizedString
\r
71 public class XsdNormalizedString : XsdString
\r
73 internal XsdNormalizedString ()
\r
75 this.WhitespaceValue = XsdWhitespaceFacet.Replace;
\r
78 public override XmlTokenizedType TokenizedType {
\r
79 get { return XmlTokenizedType.CDATA; }
\r
82 public override Type ValueType {
\r
83 get { return typeof (string); }
\r
86 // ParseValue () method is as same as that of xs:string
\r
90 public class XsdToken : XsdNormalizedString
\r
92 internal XsdToken ()
\r
96 public override XmlTokenizedType TokenizedType {
\r
97 get { return XmlTokenizedType.CDATA; }
\r
100 public override Type ValueType {
\r
101 get { return typeof (string); }
\r
104 // ParseValue () method is as same as that of xs:string
\r
108 public class XsdLanguage : XsdToken
\r
110 internal XsdLanguage ()
\r
114 public override XmlTokenizedType TokenizedType {
\r
115 get { return XmlTokenizedType.CDATA; }
\r
118 public override Type ValueType {
\r
119 get { return typeof (string); }
\r
122 // ParseValue () method is as same as that of xs:string
\r
126 public class XsdNMToken : XsdToken
\r
128 internal XsdNMToken ()
\r
132 public override XmlTokenizedType TokenizedType {
\r
133 get { return XmlTokenizedType.NMTOKEN; }
\r
136 public override Type ValueType {
\r
137 get { return typeof (string); }
\r
140 // ParseValue () method is as same as that of xs:string
\r
144 public class XsdNMTokens : XsdNMToken
\r
146 internal XsdNMTokens ()
\r
150 public override XmlTokenizedType TokenizedType {
\r
151 get { return XmlTokenizedType.NMTOKENS; }
\r
154 public override Type ValueType {
\r
155 get { return typeof (string []); }
\r
158 // ParseValue () method is as same as that of xs:string
\r
162 public class XsdName : XsdToken
\r
164 internal XsdName ()
\r
168 public override XmlTokenizedType TokenizedType {
\r
169 get { return XmlTokenizedType.CDATA; }
\r
172 public override Type ValueType {
\r
173 get { return typeof (string); }
\r
176 // ParseValue () method is as same as that of xs:string
\r
180 public class XsdNCName : XsdName
\r
182 internal XsdNCName ()
\r
186 public override XmlTokenizedType TokenizedType {
\r
187 get { return XmlTokenizedType.NCName; }
\r
190 public override Type ValueType {
\r
191 get { return typeof (string); }
\r
194 // ParseValue () method is as same as that of xs:string
\r
198 public class XsdID : XsdName
\r
204 public override XmlTokenizedType TokenizedType {
\r
205 get { return XmlTokenizedType.ID; }
\r
208 public override Type ValueType {
\r
209 get { return typeof (string); }
\r
212 // ParseValue () method is as same as that of xs:string
\r
216 public class XsdIDRef : XsdName
\r
218 internal XsdIDRef ()
\r
222 public override XmlTokenizedType TokenizedType {
\r
223 get { return XmlTokenizedType.IDREF; }
\r
226 public override Type ValueType {
\r
227 get { return typeof (string); }
\r
230 // ParseValue () method is as same as that of xs:string
\r
234 public class XsdIDRefs : XsdName
\r
236 internal XsdIDRefs ()
\r
240 public override XmlTokenizedType TokenizedType {
\r
241 get { return XmlTokenizedType.IDREFS; }
\r
244 public override Type ValueType {
\r
245 get { return typeof (string []); }
\r
248 // ParseValue () method is as same as that of xs:string
\r
252 public class XsdEntity : XsdName
\r
254 internal XsdEntity ()
\r
258 public override XmlTokenizedType TokenizedType {
\r
259 get { return XmlTokenizedType.ENTITY; }
\r
262 public override Type ValueType {
\r
263 get { return typeof (string); }
\r
266 // ParseValue () method is as same as that of xs:string
\r
270 public class XsdEntities : XsdName
\r
272 internal XsdEntities ()
\r
276 public override XmlTokenizedType TokenizedType {
\r
277 get { return XmlTokenizedType.ENTITIES; }
\r
280 public override Type ValueType {
\r
281 get { return typeof (string []); }
\r
284 // ParseValue () method is as same as that of xs:string
\r
288 public class XsdNotation : XmlSchemaDatatype
\r
290 internal XsdNotation ()
\r
294 public override XmlTokenizedType TokenizedType {
\r
295 get { return XmlTokenizedType.NOTATION; }
\r
298 public override Type ValueType {
\r
299 get { return typeof (string); }
\r
302 public override object ParseValue (string s,
\r
303 XmlNameTable nameTable, XmlNamespaceManager nsmgr)
\r
305 throw new NotImplementedException ();
\r
308 // Fundamental Facets
\r
309 public virtual bool Bounded {
\r
310 get { return false; }
\r
312 public virtual bool Finite {
\r
313 get { return false; }
\r
315 public virtual bool Numeric {
\r
316 get { return false; }
\r
318 public virtual bool Ordered {
\r
319 get { return false; }
\r
322 // Constraining Facets
\r
323 public bool HasLengthFacet;
\r
324 public bool HasMaxLengthFacet;
\r
325 public bool HasMinLengthFacet;
\r
327 public int MaxLength;
\r
328 public int MinLength;
\r
329 public string Pattern;
\r
330 public ICollection Enumeration;
\r