步骤
1、开发dll(需要签名)
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.Schema;
namespace ETLXmlParser
{
public class ETLXmlParser
{
private static bool isValid = true;
public static bool Validate(string XmlFilepath, string XsdFilePath)
{
try{
XmlReader reader;
XmlReaderSettings settings = new XmlReaderSettings();
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add(null, XsdFilePath);
settings.Schemas.Add(schemaSet);
settings.ValidationType = ValidationType.Schema;
settings.ValidationEventHandler += new ValidationEventHandler(settings_ValidationEventHandler);
settings.ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings | XmlSchemaValidationFlags.ProcessInlineSchema | XmlSchemaValidationFlags.AllowXmlAttributes | XmlSchemaValidationFlags.ProcessIdentityConstraints | XmlSchemaValidationFlags.ProcessSchemaLocation;
reader = XmlReader.Create(XmlFilepath, settings);
while (reader.Read())
{
string xmlFile = reader.Value;
}
reader.Close();
return isValid;
}
catch(Exception ex)
{
return false;
}
}
private static void settings_ValidationEventHandler(object sender, ValidationEventArgs e)
{
isValid = false;
}
}
}
2 将编译好的dll拷贝到C:\Program Files\Microsoft SQL Server\90\DTS\PipelineComponents(SQL Server 安装目录)和C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
3、将DLL拖进C:\WINDOWS\assembly文件夹,也可以用命令安装该dll(gacutil.exe /i myassembly.dll)
4 在SSIS中拖入一个Script Task,然后设计脚本,添加应用dll