Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ HandleColumnType()

void System.Data.XmlTreeGen.HandleColumnType ( DataColumn col,
XmlDocument dc,
XmlElement root,
XmlElement schema )
inlinepackage

Definition at line 1080 of file XmlTreeGen.cs.

1081 {
1082 string name = "type";
1083 if (col.ColumnMapping == MappingType.SimpleContent)
1084 {
1085 name = "base";
1086 }
1087 if (col.SimpleType != null)
1088 {
1089 for (SimpleType simpleType = col.SimpleType; simpleType != null; simpleType = simpleType.BaseSimpleType)
1090 {
1091 string name2 = simpleType.Name;
1092 if (name2 != null && name2.Length != 0)
1093 {
1094 string text = ((_schFormat != SchemaFormat.Remoting) ? simpleType.Namespace : ((col.Table.DataSet != null) ? col.Table.DataSet.Namespace : col.Table.Namespace));
1096 if (simpleType.BaseSimpleType != null && simpleType.BaseSimpleType.Namespace != null && simpleType.BaseSimpleType.Namespace.Length > 0)
1097 {
1098 GetSchema(simpleType.BaseSimpleType.Namespace);
1099 }
1101 if (simpleType == col.SimpleType)
1102 {
1103 string text2 = (string)_prefixes[text];
1104 if (text2 != null && text2.Length > 0)
1105 {
1106 if (_schFormat != SchemaFormat.Remoting)
1107 {
1108 root.SetAttribute(name, text2 + ":" + name2);
1109 }
1110 else
1111 {
1112 root.SetAttribute(name, name2);
1113 }
1114 }
1115 else
1116 {
1117 root.SetAttribute(name, name2);
1118 }
1119 }
1121 if (xmlElement == null)
1122 {
1123 schema2.AppendChild(newChild);
1124 }
1125 }
1126 else
1127 {
1128 if (simpleType.BaseSimpleType != null && simpleType.BaseSimpleType.Namespace != null && simpleType.BaseSimpleType.Namespace.Length > 0)
1129 {
1130 GetSchema(simpleType.BaseSimpleType.Namespace);
1131 }
1133 root.AppendChild(newChild);
1134 }
1135 }
1136 return;
1137 }
1138 if (col.XmlDataType != null && col.XmlDataType.Length != 0 && XSDSchema.IsXsdType(col.XmlDataType))
1139 {
1140 root.SetAttribute(name, XSDSchema.QualifiedName(col.XmlDataType));
1141 return;
1142 }
1143 string text3 = XmlDataTypeName(col.DataType);
1144 if (text3 == null || text3.Length == 0)
1145 {
1146 if (col.DataType == typeof(Guid) || col.DataType == typeof(Type))
1147 {
1148 text3 = "string";
1149 }
1150 else
1151 {
1152 if (col.ColumnMapping == MappingType.Attribute)
1153 {
1154 ValidateColumnMapping(col.DataType);
1155 }
1156 text3 = "anyType";
1157 }
1158 }
1159 root.SetAttribute(name, XSDSchema.QualifiedName(text3));
1160 }
static void ValidateColumnMapping(Type columnType)
static string XmlDataTypeName(Type type)
XmlElement GetSchema(string NamespaceURI)
readonly SchemaFormat _schFormat
Definition XmlTreeGen.cs:36
static XmlElement FindSimpleType(XmlElement schema, string name)
virtual void SetAttribute(string name, string? value)
virtual ? XmlNode AppendChild(XmlNode newChild)
Definition XmlNode.cs:739

References System.Data.SimpleType.SimpleType(), System.Data.XmlTreeGen._prefixes, System.Data.XmlTreeGen._schFormat, System.Xml.XmlNode.AppendChild(), System.Xml.Dictionary, System.Data.XmlTreeGen.FindSimpleType(), System.Data.XmlTreeGen.GetSchema(), System.Data.XSDSchema.IsXsdType(), System.Data.XSDSchema.QualifiedName(), System.Xml.XmlElement.SetAttribute(), System.text, System.Data.XmlTreeGen.ValidateColumnMapping(), and System.Data.XmlTreeGen.XmlDataTypeName().

Referenced by System.Data.XmlTreeGen.HandleColumn(), and System.Data.XmlTreeGen.HandleTable().