private void LoadSchemaItems()
{
if (_schemas != null)
{
foreach (XmlSchema schema in _schemas.Values)
{
foreach (object schemaObject in schema.SchemaTypes)
{
var schemaType = schemaObject as XmlSchemaType;
if (schemaType != null)
{
_schemaTypes.Add( schemaType.QualifiedName.ToString(), schemaType );
}
else if (schemaObject is DictionaryEntry)
{
_schemaTypes.Add( ( (DictionaryEntry) schemaObject ).Key.ToString(),
(XmlSchemaType) ( (DictionaryEntry) schemaObject ).Value );
}
else
{
int i = 0;
}
}
List<XmlSchemaSimpleType> sts = XsdUtils.extractSimpleTypes( schema );
List<XmlSchemaComplexType> cts = XsdUtils.extractComplexTypes( schema );
List<XmlSchemaAttributeGroup> ats = XsdUtils.extractAttributeGroups( schema );
List<XmlSchemaGroup> gts = XsdUtils.extractGroups( schema );
List<XmlSchemaElement> els = XsdUtils.extractElements( schema );
String _namespace = schema.TargetNamespace;
foreach (XmlSchemaSimpleType simpleType in sts)
{
if (_simpleTypes.ContainsKey( _namespace + ":" + simpleType.Name ))
Console.WriteLine( @"Duplicate SimpleType Name: " + _namespace + @":" + simpleType.Name );
else
_simpleTypes.Add( _namespace + ":" + simpleType.Name, simpleType );
}
foreach (XmlSchemaComplexType complexType in cts)
{
if (_complexTypes.ContainsKey( _namespace + ":" + complexType.Name ))
Console.WriteLine( @"Duplicate ComplexType Name: " + _namespace + @":" + complexType.Name );
else
_complexTypes.Add( _namespace + ":" + complexType.Name, complexType );
}
foreach (XmlSchemaAttributeGroup group in ats)
{
if (_attributeGroups.ContainsKey( _namespace + ":" + group.Name ))
Console.WriteLine( @"Duplicate Attribute Group Name: " + _namespace + @":" + group.Name );
else
_attributeGroups.Add( _namespace + ":" + group.Name, group );
}
foreach (XmlSchemaGroup group in gts)
{
if (_groups.ContainsKey( _namespace + ":" + group.Name ))
Console.WriteLine( @"Duplicate Group Name: " + _namespace + @":" + group.Name );
else
_groups.Add( _namespace + ":" + group.Name, group );
}
foreach (XmlSchemaElement element in els)
{
if (_groups.ContainsKey( _namespace + ":" + element.Name ))
Console.WriteLine( @"Duplicate Element Name: " + _namespace + @":" + element.Name );
else
_elements.Add( _namespace + ":" + element.Name, element );
}
}
}
}