public Execute ( |
||
schema | ||
targetNamespace | string | |
loadExternals | bool | |
xsc | ||
return | bool |
public bool Execute(XmlSchema schema, string targetNamespace, bool loadExternals, XmlSchemaCollection xsc) {
this.schema = schema;
Xmlns = NameTable.Add("xmlns");
Cleanup(schema);
if (loadExternals && xmlResolver != null) {
schemaLocations = new Hashtable(); //new Dictionary<Uri, Uri>();
if (schema.BaseUri != null) {
schemaLocations.Add(schema.BaseUri, schema.BaseUri);
}
LoadExternals(schema, xsc);
}
ValidateIdAttribute(schema);
Preprocess(schema, targetNamespace, Compositor.Root);
if (!HasErrors) {
schema.IsPreprocessed = true;
foreach(XmlSchemaExternal include in schema.Includes) {
if (include.Schema != null) {
include.Schema.IsPreprocessed = true;
}
}
}
return !HasErrors;
}
internal bool CompileSchema(XmlSchemaCollection xsc, XmlResolver resolver, SchemaInfo schemaInfo, string ns, ValidationEventHandler validationEventHandler, XmlNameTable nameTable, bool CompileContentModel) { lock (this) { SchemaCollectionPreprocessor preprocessor = new SchemaCollectionPreprocessor(nameTable, null, validationEventHandler) { XmlResolver = resolver }; if (!preprocessor.Execute(this, ns, true, xsc)) { return false; } this.isCompiled = new SchemaCollectionCompiler(nameTable, validationEventHandler).Execute(this, schemaInfo, CompileContentModel); this.SetIsCompiled(this.isCompiled); return this.isCompiled; } }