private void WriteDataColumn(XmlSchema schema, CremaDataColumn dataColumn) { if (dataColumn.Validation != string.Empty) { var simpleType = new XmlSchemaSimpleType() { Name = CremaSchema.GenerateColumnTypeName(dataColumn.ColumnName), }; { var simpleTypeRestriction = new XmlSchemaSimpleTypeRestriction() { BaseTypeName = GetSystemQualifiedName(dataColumn.DataType) }; { var facet = new XmlSchemaPatternFacet() { Value = dataColumn.Validation }; simpleTypeRestriction.Facets.Add(facet); } simpleType.Content = simpleTypeRestriction; } schema.Items.Add(simpleType); } }
private XmlQualifiedName GetXmlQualifiedName(XmlSchema schema, CremaDataColumn dataColumn) { if (dataColumn.CremaType != null) { var cremaType = dataColumn.CremaType; foreach (var item in schema.Includes) { if (item is XmlSchemaImport == true) { var n = (item as XmlSchemaImport).Namespace; if (cremaType.Namespace == n) { return(new XmlQualifiedName(cremaType.TypeName, cremaType.Namespace)); } } } if (this.dataSet == null) { using (var sr = new StringReader(cremaType.GetXmlSchema())) { var typeSchema = XmlSchema.Read(sr, ValidationCallbackOne); var schemaLocation = UriUtility.MakeRelative(dataColumn.Namespace, cremaType.Namespace) + CremaSchema.SchemaExtension; schema.Includes.Add(new XmlSchemaImport() { Schema = typeSchema, SchemaLocation = schemaLocation, Namespace = cremaType.Namespace, }); } return(new XmlQualifiedName(cremaType.TypeName, cremaType.Namespace)); } return(new XmlQualifiedName(cremaType.TypeName, schema.TargetNamespace)); } else if (string.IsNullOrEmpty(dataColumn.Validation) == false) { return(new XmlQualifiedName(CremaSchema.GenerateColumnTypeName(dataColumn.ColumnName), schema.TargetNamespace)); } else if (dataColumn.DataType == typeof(Guid)) { return(new XmlQualifiedName(typeof(Guid).GetSchemaTypeName(), schema.TargetNamespace)); } else { return(GetSystemQualifiedName(dataColumn.DataType)); } }