From: <fab...@us...> - 2009-11-27 18:12:08
|
Revision: 4860 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4860&view=rev Author: fabiomaulo Date: 2009-11-27 18:12:00 +0000 (Fri, 27 Nov 2009) Log Message: ----------- Refactoring (improvement of performance parsing mappings) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/XmlSchemas.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/XmlSchemas.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/XmlSchemas.cs 2009-11-25 21:46:06 UTC (rev 4859) +++ trunk/nhibernate/src/NHibernate/Cfg/XmlSchemas.cs 2009-11-27 18:12:00 UTC (rev 4860) @@ -10,36 +10,39 @@ private const string CfgSchemaResource = "NHibernate.nhibernate-configuration.xsd"; private const string MappingSchemaResource = "NHibernate.nhibernate-mapping.xsd"; - private readonly XmlSchema config = ReadXmlSchemaFromEmbeddedResource(CfgSchemaResource); - private readonly XmlSchema mapping = ReadXmlSchemaFromEmbeddedResource(MappingSchemaResource); + private static readonly XmlSchemaSet ConfigSchemaSet = ReadXmlSchemaFromEmbeddedResource(CfgSchemaResource); + private static readonly XmlSchemaSet MappingSchemaSet = ReadXmlSchemaFromEmbeddedResource(MappingSchemaResource); public XmlReaderSettings CreateConfigReaderSettings() { - XmlReaderSettings result = CreateXmlReaderSettings(config); - result.ValidationEventHandler += new ValidationEventHandler(ConfigSettingsValidationEventHandler); + XmlReaderSettings result = CreateXmlReaderSettings(ConfigSchemaSet); + result.ValidationEventHandler += ConfigSettingsValidationEventHandler; result.IgnoreComments = true; return result; } public XmlReaderSettings CreateMappingReaderSettings() { - return CreateXmlReaderSettings(mapping); + return CreateXmlReaderSettings(MappingSchemaSet); } - private static XmlSchema ReadXmlSchemaFromEmbeddedResource(string resourceName) + private static XmlSchemaSet ReadXmlSchemaFromEmbeddedResource(string resourceName) { Assembly executingAssembly = Assembly.GetExecutingAssembly(); using (Stream resourceStream = executingAssembly.GetManifestResourceStream(resourceName)) - return XmlSchema.Read(resourceStream, null); + { + var xmlSchema = XmlSchema.Read(resourceStream, null); + var xmlSchemaSet = new XmlSchemaSet(); + xmlSchemaSet.Add(xmlSchema); + xmlSchemaSet.Compile(); + return xmlSchemaSet; + } } - private static XmlReaderSettings CreateXmlReaderSettings(XmlSchema xmlSchema) + private static XmlReaderSettings CreateXmlReaderSettings(XmlSchemaSet xmlSchemaSet) { - XmlReaderSettings settings = new XmlReaderSettings(); - settings.ValidationType = ValidationType.Schema; - settings.Schemas.Add(xmlSchema); - return settings; + return new XmlReaderSettings {ValidationType = ValidationType.Schema, Schemas = xmlSchemaSet}; } private static void ConfigSettingsValidationEventHandler(object sender, ValidationEventArgs e) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |