// // System.Xml.Schema.XmlSchemaDatatype.cs // // Author: // Atsushi Enomoto // // (C)2003 Atsushi Enomoto // using System; using System.Collections; using System.Text; using System.Xml; using System.Xml.Schema; namespace Mono.Xml.Schema { public enum XsdWhitespaceFacet { Preserve, Replace, Collapse } // xs:string public class XsdString : XmlSchemaDatatype { internal XsdString () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.CDATA; } } public override Type ValueType { get { return typeof (string); } } public override object ParseValue (string s, XmlNameTable nameTable, XmlNamespaceManager nsmgr) { return Normalize (s); } // Fundamental Facets public virtual bool Bounded { get { return false; } } public virtual bool Finite { get { return false; } } public virtual bool Numeric { get { return false; } } public virtual bool Ordered { get { return false; } } // Constraining Facets public bool HasLengthFacet; public bool HasMaxLengthFacet; public bool HasMinLengthFacet; public int Length; public int MaxLength; public int MinLength; public string Pattern; public ICollection Enumeration; } // xs:normalizedString public class XsdNormalizedString : XsdString { internal XsdNormalizedString () { this.WhitespaceValue = XsdWhitespaceFacet.Replace; } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.CDATA; } } public override Type ValueType { get { return typeof (string); } } // ParseValue () method is as same as that of xs:string } public class XsdToken : XsdNormalizedString { internal XsdToken () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.CDATA; } } public override Type ValueType { get { return typeof (string); } } // ParseValue () method is as same as that of xs:string } public class XsdLanguage : XsdToken { internal XsdLanguage () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.CDATA; } } public override Type ValueType { get { return typeof (string); } } // ParseValue () method is as same as that of xs:string } public class XsdNMToken : XsdToken { internal XsdNMToken () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.NMTOKEN; } } public override Type ValueType { get { return typeof (string); } } // ParseValue () method is as same as that of xs:string } public class XsdNMTokens : XsdNMToken { internal XsdNMTokens () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.NMTOKENS; } } public override Type ValueType { get { return typeof (string []); } } // ParseValue () method is as same as that of xs:string } public class XsdName : XsdToken { internal XsdName () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.CDATA; } } public override Type ValueType { get { return typeof (string); } } // ParseValue () method is as same as that of xs:string } public class XsdNCName : XsdName { internal XsdNCName () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.NCName; } } public override Type ValueType { get { return typeof (string); } } // ParseValue () method is as same as that of xs:string } public class XsdID : XsdName { internal XsdID () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.ID; } } public override Type ValueType { get { return typeof (string); } } // ParseValue () method is as same as that of xs:string } public class XsdIDRef : XsdName { internal XsdIDRef () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.IDREF; } } public override Type ValueType { get { return typeof (string); } } // ParseValue () method is as same as that of xs:string } public class XsdIDRefs : XsdName { internal XsdIDRefs () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.IDREFS; } } public override Type ValueType { get { return typeof (string []); } } // ParseValue () method is as same as that of xs:string } public class XsdEntity : XsdName { internal XsdEntity () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.ENTITY; } } public override Type ValueType { get { return typeof (string); } } // ParseValue () method is as same as that of xs:string } public class XsdEntities : XsdName { internal XsdEntities () { } public override XmlTokenizedType TokenizedType { get { return XmlTokenizedType.ENTITIES; } } public override Type ValueType { get { return typeof (string []); } } // ParseValue () method is as same as that of xs:string } }