internal static DataSet BuildDataSetFromXml(XmlDocument schemaXml)
{
Dictionary<string, int> dataTypes = new Dictionary<string, int>();
dataTypes.Add("String", 1);
dataTypes.Add("Text", 2);
dataTypes.Add("Int", 3);
dataTypes.Add("Currency", 4);
dataTypes.Add("DateTime", 5);
dataTypes.Add("Binary", 6);
dataTypes.Add("Reference", 7);
Dictionary<PropertySetType, int> propertySetTypes = new Dictionary<PropertySetType, int>();
propertySetTypes.Add(PropertySetType.NodeType, 1);
propertySetTypes.Add(PropertySetType.ContentListType, 2);
DataSet dataSet = CreateDataSet(dataTypes, propertySetTypes);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(schemaXml.NameTable);
nsmgr.AddNamespace("x", RepositoryStorageSchemaXmlNamespace);
foreach (XmlNode node in schemaXml.DocumentElement.SelectNodes("x:UsedPropertyTypes/x:PropertyType", nsmgr))
BuildPropertyTypeRow(node, dataSet.Tables["PropertyTypes"], dataTypes);
foreach (XmlNode node in schemaXml.DocumentElement.SelectNodes("x:NodeTypeHierarchy/x:NodeType", nsmgr))
BuildNodeTypeRow(node, nsmgr, dataSet.Tables["PropertySets"], PropertySetType.NodeType, propertySetTypes);
foreach (XmlNode node in schemaXml.DocumentElement.SelectNodes("x:ContentListTypes/x:ContentListType", nsmgr))
BuildNodeTypeRow(node, nsmgr, dataSet.Tables["PropertySets"], PropertySetType.ContentListType, propertySetTypes);
foreach (XmlNode node in schemaXml.DocumentElement.SelectNodes("x:PermissionTypes/x:PermissionType", nsmgr))
BuildPermissionRow(node, dataSet.Tables["Permissions"]);
return dataSet;
}
private static DataSet CreateDataSet(Dictionary<string, int> dataTypes, Dictionary<PropertySetType, int> propertySetTypes)