private bool recursed;\r
private XmlSchemaDerivationMethod variety;\r
\r
+#if NET_2_0\r
+ // predefined simple types\r
+ internal static readonly XmlSchemaSimpleType XsAnySimpleType;\r
+ internal static readonly XmlSchemaSimpleType XsString;\r
+ internal static readonly XmlSchemaSimpleType XsBoolean;\r
+ internal static readonly XmlSchemaSimpleType XsDecimal;\r
+ internal static readonly XmlSchemaSimpleType XsFloat;\r
+ internal static readonly XmlSchemaSimpleType XsDouble;\r
+ internal static readonly XmlSchemaSimpleType XsDuration;\r
+ internal static readonly XmlSchemaSimpleType XsDateTime;\r
+ internal static readonly XmlSchemaSimpleType XsTime;\r
+ internal static readonly XmlSchemaSimpleType XsDate;\r
+ internal static readonly XmlSchemaSimpleType XsGYearMonth;\r
+ internal static readonly XmlSchemaSimpleType XsGYear;\r
+ internal static readonly XmlSchemaSimpleType XsGMonthDay;\r
+ internal static readonly XmlSchemaSimpleType XsGDay;\r
+ internal static readonly XmlSchemaSimpleType XsGMonth;\r
+ internal static readonly XmlSchemaSimpleType XsHexBinary;\r
+ internal static readonly XmlSchemaSimpleType XsBase64Binary;\r
+ internal static readonly XmlSchemaSimpleType XsAnyUri;\r
+ internal static readonly XmlSchemaSimpleType XsQName;\r
+ internal static readonly XmlSchemaSimpleType XsNotation;\r
+ internal static readonly XmlSchemaSimpleType XsNormalizedString;\r
+ internal static readonly XmlSchemaSimpleType XsToken;\r
+ internal static readonly XmlSchemaSimpleType XsLanguage;\r
+ internal static readonly XmlSchemaSimpleType XsNMToken;\r
+ internal static readonly XmlSchemaSimpleType XsNMTokens;\r
+ internal static readonly XmlSchemaSimpleType XsName;\r
+ internal static readonly XmlSchemaSimpleType XsNCName;\r
+ internal static readonly XmlSchemaSimpleType XsID;\r
+ internal static readonly XmlSchemaSimpleType XsIDRef;\r
+ internal static readonly XmlSchemaSimpleType XsIDRefs;\r
+ internal static readonly XmlSchemaSimpleType XsEntity;\r
+ internal static readonly XmlSchemaSimpleType XsEntities;\r
+ internal static readonly XmlSchemaSimpleType XsInteger;\r
+ internal static readonly XmlSchemaSimpleType XsNonPositiveInteger;\r
+ internal static readonly XmlSchemaSimpleType XsNegativeInteger;\r
+ internal static readonly XmlSchemaSimpleType XsLong;\r
+ internal static readonly XmlSchemaSimpleType XsInt;\r
+ internal static readonly XmlSchemaSimpleType XsShort;\r
+ internal static readonly XmlSchemaSimpleType XsByte;\r
+ internal static readonly XmlSchemaSimpleType XsNonNegativeInteger;\r
+ internal static readonly XmlSchemaSimpleType XsUnsignedLong;\r
+ internal static readonly XmlSchemaSimpleType XsUnsignedInt;\r
+ internal static readonly XmlSchemaSimpleType XsUnsignedShort;\r
+ internal static readonly XmlSchemaSimpleType XsUnsignedByte;\r
+ internal static readonly XmlSchemaSimpleType XsPositiveInteger;\r
+ // xdt:*\r
+ internal static readonly XmlSchemaSimpleType XdtUntypedAtomic;\r
+ internal static readonly XmlSchemaSimpleType XdtAnyAtomicType;\r
+ internal static readonly XmlSchemaSimpleType XdtYearMonthDuration;\r
+ internal static readonly XmlSchemaSimpleType XdtDayTimeDuration;\r
+#endif\r
+\r
static XmlSchemaSimpleType ()\r
{\r
// This is not used in the meantime.\r
st.BaseXmlSchemaTypeInternal = null;\r
st.variety = XmlSchemaDerivationMethod.List;\r
schemaLocationType = st;\r
+\r
+#if NET_2_0\r
+ // Built-In schema types\r
+ XsAnySimpleType = BuildSchemaType ("anySimpleType", null);\r
+ XsString = BuildSchemaType ("string", "anySimpleType");\r
+ XsBoolean = BuildSchemaType ("boolean", "anySimpleType");\r
+ XsDecimal = BuildSchemaType ("decimal", "anySimpleType");\r
+ XsFloat = BuildSchemaType ("float", "anySimpleType");\r
+ XsDouble = BuildSchemaType ("double", "anySimpleType");\r
+ XsDuration = BuildSchemaType ("duration", "anySimpleType");\r
+ XsDateTime = BuildSchemaType ("dateTime", "anySimpleType");\r
+ XsTime = BuildSchemaType ("time", "anySimpleType");\r
+ XsDate = BuildSchemaType ("date", "anySimpleType");\r
+ XsGYearMonth = BuildSchemaType ("gYearMonth", "anySimpleType");\r
+ XsGYear = BuildSchemaType ("gYear", "anySimpleType");\r
+ XsGMonthDay = BuildSchemaType ("gMonthDay", "anySimpleType");\r
+ XsGDay = BuildSchemaType ("gDay", "anySimpleType");\r
+ XsGMonth = BuildSchemaType ("gMonth", "anySimpleType");\r
+ XsHexBinary = BuildSchemaType ("hexBinary", "anySimpleType");\r
+ XsBase64Binary = BuildSchemaType ("base64Binary", "anySimpleType");\r
+ XsAnyUri = BuildSchemaType ("anyURI", "anySimpleType");\r
+ XsQName = BuildSchemaType ("QName", "anySimpleType");\r
+ XsNotation = BuildSchemaType ("NOTATION", "anySimpleType");\r
+ // derived types\r
+ XsNormalizedString = BuildSchemaType ("normalizedString", "string");\r
+ XsToken = BuildSchemaType ("token", "normalizedString");\r
+ XsLanguage = BuildSchemaType ("language", "token");\r
+ XsNMToken = BuildSchemaType ("NMTOKEN", "token");\r
+ XsName = BuildSchemaType ("Name", "token");\r
+ XsNCName = BuildSchemaType ("NCName", "Name");\r
+\r
+ XsID = BuildSchemaType ("ID", "NCName");\r
+ XsIDRef = BuildSchemaType ("IDREF", "NCName");\r
+ XsEntity = BuildSchemaType ("ENTITY", "NCName");\r
+\r
+ XsInteger = BuildSchemaType ("integer", "decimal");\r
+ XsNonPositiveInteger = BuildSchemaType ("nonPositiveInteger", "integer");\r
+ XsNegativeInteger = BuildSchemaType ("negativeInteger", "nonPositiveInteger");\r
+ XsLong = BuildSchemaType ("long", "integer");\r
+ XsInt = BuildSchemaType ("int", "long");\r
+ XsShort = BuildSchemaType ("short", "int");\r
+ XsByte = BuildSchemaType ("byte", "short");\r
+ XsNonNegativeInteger = BuildSchemaType ("nonNegativeInteger", "integer");\r
+ XsUnsignedLong = BuildSchemaType ("unsignedLong", "nonNegativeInteger");\r
+ XsUnsignedInt = BuildSchemaType ("unsignedInt", "unsignedLong");\r
+ XsUnsignedShort = BuildSchemaType ("unsignedShort", "unsignedInt");\r
+ XsUnsignedByte = BuildSchemaType ("unsignedByte", "unsignedShort");\r
+ XsPositiveInteger = BuildSchemaType ("positiveInteger", "nonNegativeInteger");\r
+\r
+ // xdt:*\r
+ XdtAnyAtomicType = BuildSchemaType ("anyAtomicType", "anySimpleType", true, false);\r
+ XdtUntypedAtomic = BuildSchemaType ("untypedAtomic", "anyAtomicType", true, true);\r
+ XdtDayTimeDuration = BuildSchemaType ("dayTimeDuration", "duration", true, false);\r
+ XdtYearMonthDuration = BuildSchemaType ("yearMonthDuration", "duration", true, false);\r
+\r
+ // NMTOKENS, IDREFS, ENTITIES - lists\r
+ XsIDRefs = new XmlSchemaSimpleType ();\r
+ XmlSchemaSimpleTypeList sl = new XmlSchemaSimpleTypeList ();\r
+ sl.ItemType = XsIDRef;\r
+ XsIDRefs.Content = sl;\r
+ XsEntities = new XmlSchemaSimpleType ();\r
+ sl = new XmlSchemaSimpleTypeList ();\r
+ sl.ItemType = XsEntity;\r
+ XsEntities.Content = sl;\r
+ XsNMTokens = new XmlSchemaSimpleType ();\r
+ sl = new XmlSchemaSimpleTypeList ();\r
+ sl.ItemType = XsNMToken;\r
+ XsNMTokens.Content = sl;\r
+#endif\r
+ }\r
+\r
+#if NET_2_0\r
+ private static XmlSchemaSimpleType BuildSchemaType (string name, string baseName)\r
+ {\r
+ return BuildSchemaType (name, baseName, false, false);\r
}\r
\r
+ private static XmlSchemaSimpleType BuildSchemaType (string name, string baseName, bool xdt, bool baseXdt)\r
+ {\r
+ string ns = xdt ? "http://www.w3.org/2003/11/xpath-datatypes" : XmlSchema.Namespace;\r
+ string ns2 = baseXdt ? "http://www.w3.org/2003/11/xpath-datatypes" : XmlSchema.Namespace;\r
+ XmlSchemaSimpleType st = new XmlSchemaSimpleType ();\r
+ st.QNameInternal = new XmlQualifiedName (name, ns);\r
+ if (baseName != null)\r
+ st.BaseXmlSchemaTypeInternal = XmlSchemaType. GetBuiltInSimpleType (new XmlQualifiedName (baseName, ns2));\r
+ st.DatatypeInternal = XmlSchemaDatatype.FromName (st.QualifiedName);\r
+ st.ValueConverter = XmlSchemaType.BuildConverter (st.TypeCode);\r
+ return st;\r
+ }\r
+#endif\r
+\r
internal static XsdAnySimpleType AnySimpleType {\r
get { return XsdAnySimpleType.Instance; }\r
}\r
get { return schemaLocationType; }\r
}\r
\r
- public XmlSchemaSimpleType()\r
+ public XmlSchemaSimpleType ()\r
{\r
}\r
\r
// If this is already compiled this time, simply skip.\r
if (this.IsComplied (schema.CompilationId))\r
return 0;\r
+#if NET_2_0\r
+ if (Content != null)\r
+ Content.Parent = this;\r
+#endif\r
\r
errorCount = 0;\r
\r
// TODO: 1.3 facet restriction valid.
break;
case XmlSchemaDerivationMethod.List:
+ /*\r
XmlSchemaSimpleTypeList thisList = Content as XmlSchemaSimpleTypeList;
- /*
// 2.1 item list type not allowed
if (baseSimpleType != null && baseSimpleType.resolvedDerivedBy == XmlSchemaDerivationMethod.List)
error (h, "Base list schema type is not allowed.");