|
@@ -0,0 +1,275 @@
|
|
|
|
|
+//
|
|
|
|
|
+// 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
|
|
|
|
|
+ }
|
|
|
|
|
+}
|