private void ExportDataContract(DataContract dataContract) { if (dataContract.IsBuiltInDataContract) { return; } else if (dataContract is XmlDataContract) { ExportXmlDataContract((XmlDataContract)dataContract); } else { XmlSchema schema = GetSchema(dataContract.StableName.Namespace); if (dataContract is ClassDataContract) { ClassDataContract classDataContract = (ClassDataContract)dataContract; if (classDataContract.IsISerializable) { ExportISerializableDataContract(classDataContract, schema); } else { ExportClassDataContract(classDataContract, schema); } } else if (dataContract is CollectionDataContract) { ExportCollectionDataContract((CollectionDataContract)dataContract, schema); } else if (dataContract is EnumDataContract) { ExportEnumDataContract((EnumDataContract)dataContract, schema); } ExportTopLevelElement(dataContract, schema); Schemas.Reprocess(schema); } }