private bool ProcessXsdSchema()
{
if (((object)_dataReader.LocalName == _XSD_SCHEMA && (object)_dataReader.NamespaceURI == _XSDNS))
{
// Found XSD schema
if (_ignoreSchema)
{ // Should ignore it?
_dataReader.Skip(); // Yes, skip it
}
else
{ // Have to load schema.
if (_isTableLevel)
{ // Loading into the DataTable ?
_dataTable.ReadXSDSchema(_dataReader, false); // Invoke ReadXSDSchema on a table
_nodeToSchemaMap = new XmlToDatasetMap(_dataReader.NameTable, _dataTable);
} // Rebuild XML to DataSet map with new schema.
else
{ // Loading into the DataSet ?
_dataSet.ReadXSDSchema(_dataReader, false); // Invoke ReadXSDSchema on a DataSet
_nodeToSchemaMap = new XmlToDatasetMap(_dataReader.NameTable, _dataSet);
} // Rebuild XML to DataSet map with new schema.
}
}
else if (((object)_dataReader.LocalName == _XDR_SCHEMA && (object)_dataReader.NamespaceURI == _XDRNS) ||
((object)_dataReader.LocalName == _SQL_SYNC && (object)_dataReader.NamespaceURI == _UPDGNS))
{
_dataReader.Skip(); // Skip XDR or SQL sync
}
else
{
return false; // No schema found. That means reader's position
// is unchganged. Report that to the caller.
}
return true; // Schema found, reader's position changed.
}
}