Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

53 lines
1.3 KiB
C#

using System;
using System.Collections;
using System.Collections.Specialized;
using System.Xml;
using Commons.Xml;
namespace Commons.Xml.Nvdl
{
public class NvdlConfig
{
XmlResolver resolver = new XmlUrlResolver ();
ArrayList providers = new ArrayList ();
public NvdlConfig ()
{
providers.Add (new NvdlBuiltInValidationProvider ());
}
public void AddProvider (NvdlValidationProvider provider)
{
providers.Add (provider);
}
internal XmlResolver XmlResolverInternal {
get { return resolver; }
}
public XmlResolver XmlResolver {
set { resolver = value; }
}
public NvdlValidatorGenerator GetGenerator (NvdlValidate validate, string inheritSchemaType)
{
this.resolver = this.XmlResolverInternal;
string schemaType = validate.SchemaType;
if (schemaType == null)
schemaType = inheritSchemaType;
if (schemaType == null)
schemaType = "application/xml";
foreach (NvdlValidationProvider p in providers) {
NvdlValidatorGenerator g =
p.CreateGenerator (validate, schemaType, this);
if (g != null)
return g;
}
throw new NvdlCompileException (String.Format ("Either schema type '{0}' or the target schema document is not supported in this configuration. Add custom provider that supports this schema type.", schemaType), validate);
}
}
}