}\r
}\r
\r
+ private bool ReadSchemaElement (XmlReader reader)\r
+ {\r
+ var insideElement = false;\r
+ reader.MoveToElement ();\r
+ while (reader.Read ())\r
+ {\r
+ if (reader.NodeType == XmlNodeType.Element || reader.NodeType == XmlNodeType.EndElement)\r
+ {\r
+ if (reader.NamespaceURI != XmlSchema.Namespace)\r
+ {\r
+ if (reader.LocalName == "schema" || insideElement)\r
+ throw new ArgumentException ("The schema namespace is invalid. Please use this one instead: " + XmlSchema.Namespace);\r
+\r
+ insideElement = true;\r
+ reader.MoveToElement ();\r
+ }\r
+ else\r
+ {\r
+ return true;\r
+ }\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+\r
public void ReadXmlSchema (XmlReader reader)\r
{\r
if (this.Columns.Count > 0)\r
return;\r
\r
DataSet ds = new DataSet ();\r
+\r
+ if (reader.ReadState == ReadState.Initial && !ReadSchemaElement (reader))\r
+ return;\r
+\r
new XmlSchemaDataImporter (ds, reader, false).Process ();\r
DataTable target = null;\r
if (TableName == String.Empty) {\r